| 跨越彩虹's profile╰☆跨越彩虹,.-~*'¨¯¨'*·~-.¸PhotosBlogLists | Help |
|
|
12/21/2005 在Tomcat5中配置连接池 折磨了我好久的一段代码,吼吼~~~
打开%TOMCAT_HOME\conf\server.xml,在</host>前添加下面的代码:
<Context path="/examplse" docBase="project" debug="0" reloadable="true" crossContext="true">
<Resource name="jdbc/yaolu" auth="Container" type="javax.sql.DataSource"/> <ResourceParams name="jdbc/yaolu" > <parameter> <name>factory</name> <value>org.apache.commons.dbcp.BasicDateSourceFactory</value> </parameter> <parameter> <name>driverClassName</name> <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value> </parameter> <!-- DBCP database connection settings -->
<parameter> <name>driverName</name> <value>jdbc:microsoft:sqlserver://localhost:1433; DatabaseName=dbname</value> </parameter> <parameter> <name>user</name> <value>sa</value> </parameter> <parameter> <name>password</name> <value>sa</value> </parameter> <!-- DBCP connection polling option -->
<parameter> <name>maxActive</name> <value>20</value> </parameter> <parameter> <name>maxIdle</name> <value>10</value> </parameter> <parameter> <name>maxWait</name> <value>-1</value> </parameter> </ResourceParams> </Context> ![]() 参数:
Context path:指定虚拟目录名称
docBase:指定应用程序的实际路径
reloadable:开发时设置为true,Tomcat自动检测应用程序的程序文件,自动装载新的文件,不用重启Tomcat,便于调试;正式运行时设置为false,节约资源,提高性能。
Resource(连接池的DataSource对象)
name:JNDI的名称定义,程序通过JNDI才能找到此对象,这里取名jdbc/yaolu;
auth:连接池管理权属性,这里取值Container,申明为容器管理;
type:对象的类型,这里取值javax.sql.DataSource,申明为数据库连接池。
其中,桔红色的部分要根据具体的情况而设置。并且要使用这个连接池,需要把SQL Server的驱动程序(mssqlserver.jar;msbase.jar;msutil.jar)拷贝到%TOMCAT_HOME\common\lib目录下。 7/31/2005 静下心来,从C开始~~~经典C程序100例
受了高中同学Ywch的影响,最近也决定“从C开始”。以前在网上找到的“经典C程序100例”,觉得非常好,应该是全部要记住的,但是自从下载了之后也一直没有看,惭愧ing~~~从今天开始决定要看,不可以浮躁,不要一味的追求快快,要塌实一点,哪怕每天只看五例,只要坚持。
【程序1】
题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的排列。
2.程序源代码:
main()
{ int i,j,k; printf("\n"); for(i=1;i<5;i++) /*以下为三重循环*/ for(j=1;j<5;j++) for (k=1;k<5;k++) { if (i!=k&&i!=j&&j!=k) /*确保i、j、k三位互不相同*/ printf("%d,%d,%d\n",i,j,k); } } 【程序2】
题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?
1.程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。 2.程序源代码: main()
{ long int i; int bonus1,bonus2,bonus4,bonus6,bonus10,bonus; scanf("%ld",&i); bonus1=100000*0.1;bonus2=bonus1+100000*0.75; bonus4=bonus2+200000*0.5; bonus6=bonus4+200000*0.3; bonus10=bonus6+400000*0.15; if(i<=100000) bonus=i*0.1; else if(i<=200000) bonus=bonus1+(i-100000)*0.075; else if(i<=400000) bonus=bonus2+(i-200000)*0.05; else if(i<=600000) bonus=bonus4+(i-400000)*0.03; else if(i<=1000000) bonus=bonus6+(i-600000)*0.015; else bonus=bonus10+(i-1000000)*0.01; printf("bonus=%d",bonus); } 【程序3】
题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。请看具体分析: 2.程序源代码: #include "math.h" main() { long int i,x,y,z; for (i=1;i<100000;i++) { x=sqrt(i+100); /*x为加上100后开方后的结果*/ y=sqrt(i+268); /*y为再加上168后开方后的结果*/ if(x*x==i+100&&y*y==i+268) /*如果一个数的平方根的平方等于该数,这说明此数是完全平方数*/ printf("\n%ld\n",i); } } 【程序4】
题目:输入某年某月某日,判断这一天是这一年的第几天?
1.程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。 2.程序源代码: main() { int day,month,year,sum,leap; printf("\nplease input year,month,day\n"); scanf("%d,%d,%d",&year,&month,&day); switch(month) /*先计算某月以前月份的总天数*/ { case 1:sum=0;break; case 2:sum=31;break; case 3:sum=59;break; case 4:sum=90;break; case 5:sum=120;break; case 6:sum=151;break; case 7:sum=181;break; case 8:sum=212;break; case 9:sum=243;break; case 10:sum=273;break; case 11:sum=304;break; case 12:sum=334;break; default:printf("data error");break; } sum=sum+day; /*再加上某天的天数*/ if(year%400==0||(year%4==0&&year%100!=0)) /*判断是不是闰年*/ leap=1; else leap=0; if(leap==1&&month>2) /*如果是闰年且月份大于2,总天数应该加一天*/ sum++; printf("It is the %dth day.",sum); } 【程序5】
题目:输入三个整数x,y,z,请把这三个数由小到大输出。
1.程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。 2.程序源代码: main()
{ int x,y,z,t; scanf("%d%d%d",&x,&y,&z); if (x>y) { t=x; x=y; y=t; } /*交换x,y的值*/ if(x>z)
{ t=z; z=x; x=t; }/*交换x,z的值*/ if(y>z)
{ t=y; y=z; z=t; }/*交换z,y的值*/ printf("small to big: %d %d %d\n",x,y,z);
} 6/5/2005 福彩36选7算法(JAVA)2.0版
这个程序是对以前写的一个同样功能的程序的改进版,各位朋友要是有更好的想法,请不吝赐教!
import java.util.*; class Fucai02 //将1~36添加到v中 int x; //产生29个0到(36-j)的随机位,并将该位的数删除 System.out.println(v); 5/26/2005 大家来玩OnlineJudge
一直以来都感觉,虽然学了一些编程语言,可是始终都停留在一个很低的水平,不知道该怎么样进一步提高。最近知道了一个可以提高编程水平的好东西——Online Judge,很感谢Fermi把她介绍给我! 可能很多和我一样想练习编程的人都不知道OJ系统,所以给大家介绍一下。 Online Judge系统是一个在线的裁判系统。她可以对程序原代码进行编译和执行,并通过预先设计的测试数据来检验程序原代码的正确性。 一个用户提交的程序在Online Judge系统下执行时将受到比较严格的限制,包括运行时间限制,内存使用限制和安全限制等。用户程序执行的结果将被Online Judge系统捕捉并保存,然后再转交给一个裁判程序。该裁判程序或者比较用户程序的输出数据和标准输出样例的差别,或者检验用户程序的输出数据是否满足一定的逻辑条件。最后系统返回给用户一个状态。 而要了解OJ系统,就不能不提到ACM大赛。ACM/ICPC(ACM International Collegiate Programming Contest,国际大学生程序设计竞赛)是由国际计算机界历史悠久、颇具权威性的组织ACM(Association for Computing Machinery,美国计算机协会)主办的,世界上公认的规模最大、水平最高的国际大学生程序设计竞赛,其目的旨在使大学生运用计算机来充分展示自己分析问题和解决问题的能力。他发起于1977年,要比国际信息学奥林匹克竞赛(IOI)的首届还早12年。世界各地的知名大学都会派队参加,每年的下半年在各个洲进行预赛,全世界大约有60多个队可以参加最后的决赛。我国迄今在ACM大赛中的最好成绩是冠军,由上海交通大学在2002年三月获得。 现在很多大学都开设了Online Judge系统,用以训练自己的ACM/IOI队员。系统通常摆放在他们的网站上,同时对公众开放。而其中规模最大、参与人数最多、水平最高的,当属西班牙 University of Valladolid 开设的OJ系统(简称UVA),据称那就是ACM官方设置的。全世界有n十万的兄弟姐妹们在搞上面的题目,除了个人排名,还有国家地区排名。目前,中国大陆排第四,第三名是中国台湾省,第二名是孟加拉,第一名是欧共体。香港特区也在前十名,位列第九。说是训练题库,题目的难度可不低。最基础的大约有二十个左右题目,纯属熟悉系统环境用,比较难的题,程度与ACM的试题不相上下。但要意识到即使有这么多人在做,还是有个别题目至今无人能够解答的情况,你对UVA的OJ系统的难度也就有了大体的估量吧。同时题量也不小,大约是1800题。按民间的说法,如果你能够完成总量的80%到90%,可以试着向微软或者IBM等大公司的技术研发部投一封求职信了,应该会有所收获哦。当然不是每个OJ系统难度都那么高,也不是每个OJ的题库都那么庞大,不过100~200题的量总是有的。 OJ通常支持C、C++ 、JAVA和pascal等语言,对编译器也有所限制,题目基本不涉及GUI图形界面,具体情况,不同的OJ有所不同,要看他的说明。 P.S 几个可去的OJ: 西班牙的Universidad de Valladolid,著名的UVA,有能力就去为国争光啦。 5/20/2005 初学者学习C++的50条忠告
1.把C++当成一门新的语言学习(和C没啥关系!真的。); 2.看《Thinking In C++》,不要看《C++变成死相》; 3.看《The C++ Programming Language》和《Inside The C++ Object Model》,不要因为他们很难而我们自己是初学者所以就不看; 4.不要被VC、BCB、BC、MC、TC等词汇所迷惑——他们都是集成开发环境,而我们要学的是一门语言; 5.不要放过任何一个看上去很简单的小编程问题——他们往往并不那么简单,或者可以引伸出很多知识点; 6.会用Visual C++,并不说明你会C++; 7.学class并不难,template、STL、generic programming也不过如此——难的是长期坚持实践和不遗余力的博览群书; 8.如果不是天才的话,想学编程就不要想玩游戏——你以为你做到了,其实你的C++水平并没有和你通关的能力一起变高——其实可以时刻记住:学C++是为了编游戏的; 9.看Visual C++的书,是学不了C++语言的; 10.浮躁的人容易说:XX语言不行了,应该学YY;——是你自己不行了吧!? 11.浮躁的人容易问:我到底该学什么;——别问,学就对了; 12.浮躁的人容易问:XX有钱途吗;——建议你去抢银行; 13.浮躁的人容易说:我要中文版!我英文不行!——不行?学呀! 14.浮躁的人容易问:XX和YY哪个好;——告诉你吧,都好——只要你学就行; 15.浮躁的人分两种:a)只观望而不学的人;b)只学而不坚持的人; 16.把时髦的技术挂在嘴边,还不如把过时的技术记在心里; 17.C++不仅仅是支持面向对象的程序设计语言; 18.学习编程最好的方法之一就是阅读源代码; 19.在任何时刻都不要认为自己手中的书已经足够了; 20.请阅读《The Standard C++ Bible》(中文版:标准C++宝典),掌握C++标准; 21.看得懂的书,请仔细看;看不懂的书,请硬着头皮看; 22.别指望看第一遍书就能记住和掌握什么——请看第二遍、第三遍; 23.请看《Effective C++》和《More Effective C++》以及《Exceptional C++》; 24.不要停留在集成开发环境的摇篮上,要学会控制集成开发环境,还要学会用命令行方式处理程序; 25.和别人一起讨论有意义的C++知识点,而不是争吵XX行不行或者YY与ZZ哪个好; 26.请看《程序设计实践》,并严格的按照其要求去做; 27.不要因为C和C++中有一些语法和关键字看上去相同,就认为它们的意义和作用完全一样; 28.C++绝不是所谓的C的“扩充”——如果C++一开始就起名叫Z语言,你一定不会把C和Z语言联系得那么紧密; 29.请不要认为学过XX语言再改学C++会有什么问题——你只不过又在学一门全新的语言而已; 30.读完了《Inside The C++ Object Model》以后再来认定自己是不是已经学会了C++; 31.学习编程的秘诀是:编程,编程,再编程; 32.请留意下列书籍:《C++面向对象高效编程(C++ Effective Object-Oriented Software Construction)》、《面向对象软件构造(Object-Oriented Software Construction)》、《设计模式(Design Patterns)》、《The Art of Computer Programming》; 33.记住:面向对象技术不只是C++专有的; 34.请把书上的程序例子亲手输入到电脑上实践,即使配套光盘中有源代码; 35.把在书中看到的有意义的例子扩充; 36.请重视C++中的异常处理技术,并将其切实的运用到自己的程序中; 37.经常回顾自己以前写过的程序,并尝试重写,把自己学到的新知识运用进去; 38.不要漏掉书中任何一个练习题——请全部做完并记录下解题思路; 39.C++语言和C++的集成开发环境要同时学习和掌握; 40.既然决定了学C++,就请坚持学下去,因为学习程序设计语言的目的是掌握程序设计技术,而程序设计技术是跨语言的; 41.就让C++语言的各种平台和开发环境去激烈的竞争吧,我们要以学习C++语言本身为主; 42.当你写C++程序写到一半却发现自己用的方法很拙劣时,请不要马上停手;请尽快将余下的部分粗略的完成以保证这个设计的完整性,然后分析自己的错误并重新设计和编写(参见43); 43.别心急,设计C++的class确实不容易;自己程序中的class和自己的class设计水平是在不断的编程实践中完善和发展的; 44.决不要因为程序“很小”就不遵循某些你不熟练的规则——好习惯是培养出来的,而不是一次记住的; 45.每学到一个C++难点的时候,尝试着对别人讲解这个知识点并让他理解——你能讲清楚才说明你真的理解了; 46.记录下在和别人交流时发现的自己忽视或不理解的知识点; 47.请不断的对自己写的程序提出更高的要求,哪怕你的程序版本号会变成Version 100.XX; 48.保存好你写过的所有的程序——那是你最好的积累之一; 49.请不要做浮躁的人; 50.请热爱C++! 5/14/2005 福彩36选7算法(JAVA)
分析:把36个数想像成写了36张分别写着1~~~36的纸条,打乱顺序后从中随意选出7个。 import java.util.*;
5/10/2005 基础软件工程师(软件蓝领)的素质要求
基本素质一 具有良好的编码能力。编码能力直接决定了项目开发的效率,至少精通一门编程语言,比如企业常用的C/C++、VB和国际上最流行的Java语言,熟悉它的基本语法、技术特点和API(应用程序接口)。
自觉的规范意识和团队精神。需要非常规范,需要合作意识很好。
认识和运用数据库的能力。会使用常用的数据库软件,如Oracle数据库和SQLServer等。
较强的英语阅读和写作能力。
具有软件工程的概念。从项目需求分析开始到安装调试完毕,必须理解和把握并胜任各环节的具体工作。
求知欲和进取心。 3/18/2005 变态级JAVA程序员面试32问(附答案)
1.谈谈final, finally, finalize的区别。 2.Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)? 3.Static Nested Class 和 Inner Class的不同,说得越多越好(面试题有的很笼统)。 4.&和&&的区别。 5.HashMap和Hashtable的区别。 6.Collection 和 Collections的区别。 7.什么时候用assert。 8.GC是什么? 为什么要有GC? 9.String s = new String("xyz");创建了几个String Object? 10.Math.round(11.5)等於多少? Math.round(-11.5)等於多少? 11.short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错? 12.sleep() 和 wait() 有什么区别? 13.Java有没有goto? 14.数组有没有length()这个方法? String有没有length()这个方法? 15.Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型? 16.Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别? 17.给我一个你最常见到的runtime exception。 18.error和exception有什么区别? 19.List, Set, Map是否继承自Collection接口? 20.abstract class和interface有什么区别? 21.abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized? 22.接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)? 23.启动一个线程是用run()还是start()? 24.构造器Constructor是否可被override? 25.是否可以继承String类? 26.当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法? 27.try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后? 28.编程题: 用最有效率的方法算出2乘以8等於几? 29.两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对? 30.当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递? 31.swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上? 32.编程题: 写一个Singleton出来。
答案 1.谈谈final, finally, finalize的区别。 2.Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)? 3.Static Nested Class 和 Inner Class的不同,说得越多越好(面试题有的很笼统)。 4.&和&&的区别。 5.HashMap和Hashtable的区别。 6.Collection 和 Collections的区别。 7.什么时候用assert。 9.String s = new String("xyz");创建了几个String Object? 10.Math.round(11.5)等於多少? Math.round(-11.5)等於多少? 11.short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错? 12.sleep() 和 wait() 有什么区别? 13.Java有没有goto? 14.数组有没有length()这个方法? String有没有length()这个方法? 15.Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型? 16.Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别? 17.给我一个你最常见到的runtime exception。 18.error和exception有什么区别? 19.List, Set, Map是否继承自Collection接口? 20.abstract class和interface有什么区别? 21.abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized? 22.接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)? 23.启动一个线程是用run()还是start()? 24.构造器Constructor是否可被override? 25.是否可以继承String类? 26.当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法? 27.try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后? 2 << 3 29.两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对? 30.当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递? 32.编程题: 写一个Singleton出来。 HashMap允许将null作为一个entry的key或者value,而Hashtable不允许 还有就是,HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。因为contains方法容易让人引起误解。 最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在 Hashtable和HashMap采用的hash/rehash算法都大概一样,所以性能不会有很大的差异。 3/8/2005 C++大师 Lippman:我对中国程序员的忠告
天极网:做为C++大师,你认为一个优秀的程序员应该具备什么素质? Lippman:不仅是C++,对所有的语言而言,我认为一个好的程序员应该具备独立性,而且要不惧困难,你必须心甘情愿的面对失败。所谓的独立性就是因为有时你要能独处,你必须相信你能处理你明白的事情。我认为一个好的程序员要具备创造性,而管理人员要确保程序员有独立的空间,成为他们自己。 天极网:中国的程序员被一些人认为是吃青春饭的,程序员好像转向管理职位才有职业发展空间,你怎么看? Lippman:我所认识的一些Unix创立者被提升为部门主管,但他们拒绝了提升,回到了程序员的职位上,因为他们认为这是自己能做得最好的地方。总之,最后辞掉了部门主管的职位,回去做研究去了。 天极网:你如何看待C++语言的未来和C++与C#的关系? Lippman:如果你想做web service,asp等等,c++将不会很适用,因为这个语言不灵活,它太繁复了,它不是为了网络服务(Web service)而设计的。 C#就是为了网络需求而设计的,.net的理念就是并不是一种语言能解决所有的问题。它不像Java,迫使你只能用一种语言。如果你在开发的时候发现另一个工具更好,那么你就可以选择另一个工具。 记得1991年Java出现的时候,人们预言c++将会消失,可这并没有发生,而是SmallTalk消失了。当Linux出现的时候,人们又说微软有麻烦了,可实际上是Sun有了麻烦。C##并不会威胁到C++,在微软我们在一栋大楼里工作。我相信C++现在表现得很好,在微软起着重要的作用。我们为整个社区做出了很多贡献。 天极网:你怎么看待面向对象技术的发展前景? Lippman:从开始来看,每一种汇编语言的产生都是为了在计算机环境中解决特定问题的。你使用这个语言解决问题,而解决方案将使你面对更复杂的问题,而这个语言可能就解决不了了,这时我们就需要另一种语言了。 天极网:在.NET环境下,你认为程序设计有何变化? Lippman:我想每一个人都同意这一点,那就是软件是脆弱的。其实我们在软件上不算成功。开发软件所需要的时间太长了,并不是说我们的编程人员不合格,是因为这个工作不符合人类的自然本性,因为你必须像计算机那样进行线性的思索。 天极网:为了避免30岁时被炒掉,你对程序员有什么建议吗? Lippman:我想如果你不喜欢编程,那么编程的生活将是十分恐怖的!而且如果你仅仅是出于对金钱的考虑而选择程序员这一职业,而并不是真心喜爱这个工作,那么我奉劝你还是早点抽身的好。 |
|
|