??xml version="1.0" encoding="utf-8" standalone="yes"?>
2 import java.util.Scanner;
3 public class SortTest {
4 public static void main(String[] args) throws IOException {
5 int temp = 0;//临时变量Q用于冒泡交?nbsp;
6 int[] num=new int[10]; //声明一个空的数l?nbsp; 10个长?/span>
7 Scanner sc = new Scanner(System.in);
8 FileOutputStream out=new FileOutputStream("1.txt");
9 PrintStream p=new PrintStream(out);
10 //开始@环赋?/span>
11 for(int i =0;i<num.length;i++){
12 num[i]=sc.nextInt();
13 }
14 p.append("排序前ؓ:");
15 for (int i = 0; i <num.length; i++) {
16 System.out.println(num[i]);
17 p.append(num[i]+" , ");
18 }
19 // 用于排序
20 for (int i = 0; i < num.length-1; i++) {
21 for (int j = 0; j < num.length - i - 1; j++) {
22 if (num[j] > num[j + 1]) {
23 temp = num[j];
24 num[j] = num[j + 1];
25 num[j + 1] = temp;
26 }
27 }
28 }
29 //输出文g
30 p.append("\n");
31 p.append("排序后ؓ:");
32 // 循环输出
33 System.out.println("排序后ؓ:");
34 for (int i = 0; i <num.length; i++) {
35 System.out.println(num[i]);
36 p.append(num[i]+" , ");
37 }
38
39
40 }
41 }
最后应该把plclose了哈
]]>
Spring的applicationContext.xml文g
p.s.Z部门是这样阅ȝ历的
* Q?15分)如果历中说到了和工作职位相符的技能超q?ơ以上?
* Q?8分)如果历中说到了和工作职位相符的技?ơ到5ơ?
* Q?4分)如果历中说到了和工作职位相符的技?ơ到2ơ?
* Q?4分)Cover LetterQ?#8220;求职?#8221;?#8220;自荐?#8221;Q提C招聘人员?
* Q?2分)历中有Cover LetterQ求职信Q?
* Q?10分)没有提到和职位描q相关的技能?
* Q?15分)没有受过大专教育?
2. Java的接口和C++的虚cȝ相同和不同处?/p>
׃Java不支持多l承Q而有可能某个cL对象要用分别在几个cL对象里面的方法或属性,现有的单l承机制׃能满求。与l承相比Q接口有更高的灵zL,因ؓ接口中没有Q何实C码。当一个类实现了接口以后,该类要实现接口里面所有的Ҏ和属性,接口里面的属性在默认状态下面都是public static,所有方法默认情况下是public.一个类可以实现多个接口?/p>
3. 垃圾回收的优点和原理。ƈ考虑2U回收机制?/p>
Java语言中一个显著的特点是引入了垃圑֛收机Ӟ使c++E序员最头疼的内存的问题q刃而解Q它使得JavaE序员在~写E序的时候不再需要考虑内存理。由于有个垃圑֛收机ӞJava中的对象不再?#8220;作用?#8221;的概念,只有对象的引用才?#8220;作用?#8221;。垃圑֛收可以有效的防止内存泄露Q有效的使用可以使用的内存。垃圑֛收器通常是作Z个单独的低别的U程q行Q不可预知的情况下对内存堆中已经M的或者长旉没有使用的对象进行清除和回收Q程序员不能实时的调用垃圑֛收器Ҏ个对象或所有对象进行垃圑֛收。回收机制有分代复制垃圾回收和标记垃圑֛Ӟ增量垃圾回收?/p>
4.U程同步的方法?/p>
wait():使一个线E处于等待状态,q且释放所持有的对象的lock?/p>
sleep():使一个正在运行的U程处于睡眠状态,是一个静态方法,调用此方法要捕捉InterruptedException异常?/p>
notify():唤醒一个处于等待状态的U程Q注意的是在调用此方法的时候,q不能确切地唤醒某一个等待状态的U程Q而是由JVM定唤醒哪个U程Q而且不是按优先?/p>
Allnotity():唤醒所有处入等待状态的U程Q注意ƈ不是l所有唤醒线E一个对象的锁,而是让它们竞争?/p>
5. Error与Exception有什么区别?
Error表示pȝU的错误和程序不必处理的异常Q?/p>
Exception表示需要捕捉或者需要程序进行处理的异常?/p>
6. 在java中一个类被声明ؓfinalcdQ表CZ什么意思?
表示该类不能被承,是顶U类?/p>
7. heap和stack有什么区别?/p>
栈是一U线形集合,其添加和删除元素的操作应在同一D完成。栈按照后进先出的方式进行处理。堆是栈的一个组成元素?/p>
8. 谈谈final, finally, finalize的区别?/p>
final—修饰符(关键?如果一个类被声明ؓfinalQ意味着它不能再z出新的子c,不能作ؓ父类被ѝ因此一个类不能既被声明?abstract的,又被声明为final的。将变量或方法声明ؓfinalQ可以保证它们在使用中不被改变。被声明为final的变量必d声明时给定初|而在以后的引用中只能dQ不可修攏V被声明为final的方法也同样只能使用Q不能重载?
finally—异常处理时提供 finally 块来执行M清除操作。如果抛Z个异常,那么相匹配的 catch 子句׃执行Q然后控制就会进?finally ?如果有的??br />
finalize—方法名。Java 技术允怋?finalize() Ҏ在垃圾收集器对象从内存中清除出M前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对q个对象调用的。它是在 ObjectcM定义的,因此所有的c都l承了它。子c覆?finalize() Ҏ以整理系l资源或者执行其他清理工作。finalize() Ҏ是在垃圾攉器删除对象之前对q个对象调用的?/p>
9. Anonymous Inner Class (匿名内部c?
是否可以extends(l承)其它c,是否可以implements(实现)interface(接口)?
匿名的内部类是没有名字的内部cR不能extends(l承) 其它c,但一个内部类可以作ؓ一个接口,由另一个内部类实现?/p>
10. Static Nested Class ?Inner Class的不?
Nested Class (一般是C++的说?QInner Class (一般是JAVA的说?。Java内部cMC++嵌套cL大的不同在于是否有指向外部的引用上?/p>
注: 静态内部类(Inner Class)意味着1创徏一个static内部cȝ对象Q不需要一个外部类对象Q?不能从一个static内部cȝ一个对象访问一个外部类对象?br />
H然发现不会q接数据库了……
思烦中,用jsp的方法去test了一下,感觉……对啊Q老师曄讲过q个跟jsp链接数据库是一LQ巨?#8230;… =_=Q?/p>
Class.forName………
con………..
stm………..
——运行——报错(ClassNotFoundExceptionQ——添加库MySQL-JDBC
应该没错了吧Q但?#8230;…
SQLException: No suitable driver for mysql://localhost:3306/stu
而后发现了一个很耻i的问题:
con = DriverManager.getConnection("mysql://localhost:3306/stu","×","×");
天啊Qmysql://localhost:3306/stuQ我竟然忘记?jdbc在mysql前面Q~?/strong>
--------------------------------------------------------
中国Ud老M公厕Q守门大爯Q进?毛,出来2毛?br />
老M愣说Q出来还收费Q大爯Q学习移动,双向收费?br />
老M厕所出来又被拦住Q你y的?号坑Q交1元钱的选号费,放了一个屁Q交1元的漫游费,过3分钟Q再?元的时贏V?br />
厕所有背景音乐,收彩铃费2毛?br />
大爷劝老总,如果你经常光,q是办个厕所套餐比较合算?br />
老d怒:q是那家的王法!大爷一摆手Q动感地带,我的地盘我做?
大家端午节开?/p>
Time Limit: 1000MS
Memory Limit: 65536K
Total Submissions: 726
Accepted: 422
Description
企鹅大学有很多很多名学生Q课E也很多。譬如企鹅语Q北极熊语,企鹅初数学Q企鹅高U数学等{等{?#8230;… 现在Q企鹅大学的校长惌你ؓ他们写一个程序:计算d的程序。请你由他们输入评的数量以及一个学生每门课E的分数Q输学生的d?
Input
W一行:一个整?i>n(1 ≤ n ≤ 5000)Q代表企鹅大学的评数目?br>W?至第n+1行:每行有一?整数Q第i+1行代表某一位学生在W?i>i门课上取得的分数。分Cؓ0?00的整数?
Output
一个整数。代表该学生在n门课中所得的d?
Sample Input
3 100 99 100
Sample Output
299
Problem B: Doudou
Time Limit: 1000MS
Memory Limit: 65536K
Total Submissions: 323
Accepted: 75
Description
有只企鹅叫豆豆,L被别的企鹅欺负。豆豆在长期的隐忍之后,掌握了所有企鹅的高度和攻d强度Q还得到了一把黄金剑。在拥有了黄金剑以后Q豆豆终于可以展开l地大反凅R但q把黄金剑的用法却很奇怪?
首先Q豆豆第一ơ可以选择M一只企鹅开始挑战。豆豆这一ơ必胜?
再次Q当豆豆已经挑战q某一只企鹅后Q再下一ơ的挑战对象只能是比上一名对手高Q且比上一名对手攻d强的企鹅。这栯豆必胜。否则黄金剑会觉得打的没意思而故意发脾气输掉。豆豆还会被大家集体暴打?
面对着q把脾气很大的黄金剑Q豆豆想请你帮助他计一下,他最多可以连l击败多只企鹅Q?
Input
W一行:一个数?i>nQ代表企鹅群里除了豆豆一共有n(1 ≤ n ≤ 1000)只企鹅?br>W?至第n+1行:每行2个数字。第i+1行的W一个数字ؓ企鹅i的高度。第i+1行的W二个数字ؓ企鹅i的攻d? ≤ 高度,d?≤ 1,000,000?
Output
一个数。代表豆豆最多可以连l击败的企鹅数?
Sample Input
Sample Input #1
Sample Input #2
3
1 3
3 2
2 4
5
10 1
9 2
7 3
6 4
5 5
Sample Output
Sample Output #1
Sample Output #2
2
1
Problem C: Ball
Time Limit: 1000MS
Memory Limit: 65536K
Total Submissions: 6
Accepted: 0
Description
l出I间上两个运动的球Q球心坐标在分别?i>A(xa , ya , 0)Q?b>B(xb , yb , 0)Q半径分别ؓRa , RbQ速度分别?i>Va( vax, vay , 0), Vb( vbx , vby, 0)。判断两个小球是否会撞Q若会碰撞, 输出首次撞时的时刻和两个小球的坐标Q若不会撞Q输?#8220;Impossible”Q球心和速度的z坐标恒ؓ0Q可本题视为只是^面上的运动。初始时Mؓ0Q若初始时刻球贴在一P视ؓ首次撞Q?
Input
W一行:一个整数TQ(T ≤ 30Q,表示下面?i>Tl数据?br>接下来,每两行组成一l数据,首行包含5个实敎ͼ用空格隔开Q依ơ是xa , ya , vax, vay , RaQ下面一行也包含5个实敎ͼ依次是xa , ya , vbx , vby, Rb。每l数据之间有一个空行?
Output
对于每组数据Q如果两个小球会撞Q输出首ơ碰撞时的时?i>tQ和两个球的坐标xap , yap , xbp , ybp Q用I格隔开Q保留三位小数。如果不能,输出“Impossible”?
Sample Input
3 100 200 0 0 55 100 100 0 0 45 131 123 45 2 43 454 230 0 -5 35 100 100 1 1 31 200 200 2 2 23
Sample Output
0.000 100.000 200.000 100.000 100.000 6.179 409.053 135.358 454.000 199.105 Impossible
Problem D: String
Time Limit: 1000MS
Memory Limit: 65536K
Total Submissions: 14
Accepted: 0
Description
l定一个字W串S[1..n]和一个整数TQ现在需要在字符串S中找出长度不于T的一个子Ԍ使得其在原串中不重叠出现的次数最多,求这个次数?
Input
W一行:一个整数T(T > 1)
W二行:一个字W串SQ且仅包含小写字母,字符串长度不过10000
Output
一个整数。代表出现最多的ơ数
Sample Input
2 ababab
Sample Output
3
Problem E: Papercut
Time Limit: 1000MS
Memory Limit: 65536K
Total Submissions: 3
Accepted: 0
Description
现在桌面上有一张矩形纸Q上Ҏn×m个格子,每个格子有一个数字?每张矩ŞU可以算Z个数值FQ?i>F是由U张里Q意两个不同的格子里的数字怹之和。如果该U只有一个格子,那么F=0?
剪纸规则是:
1、沿格子边缘一直剪成两个矩形纸Q每张纸里必L数字?br>2、每ơ剪U在桌面上Q意选一张矩形纸Q进?操作Q再把剪出来的两张纸攑ֈ桌面?
现在你可以对桌面上的U最多剪kơ,问最后桌面上所有矩形纸的Fg和最是多少Q?
1 ≤ n ≤ 10
1 ≤ m ≤ 10
1 ≤ k ≤ 50
Input
W一行:3个整?i>n, m, k
接下?i>n行:每行m个正整数Q范围在[1,10]Q第i行第j个数表示当前桌面那张矩ŞUR边第i行第j个格子里的数字?
Output
一个整数。代表最?i>F值和?
Sample Input
Sample Input #1
Sample Input #2
4 4 4
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
10 10 5
4 2 3 5 6 10 1 6 5 8
3 6 9 1 7 10 7 10 8 1
7 8 3 3 2 5 9 9 8 2
5 5 9 9 3 10 2 9 10 2
1 1 6 7 6 8 3 9 6 8
7 1 2 5 3 2 3 7 8 10
10 9 8 9 7 8 10 7 3 9
6 3 6 2 1 7 10 6 7 2
2 4 8 4 5 9 10 5 9 10
7 4 3 2 4 9 9 9 8 1
Sample Output
Sample Output #1
Sample Output #2
18
26612
Hint
Sample 1说明Q?按照下面方式剪纸4?br>1 1 1 1
-------------
1 | 1 | 1 | 1
| | |
1 | 1 | 1 | 1
| | |
1 | 1 | 1 | 1
得到6+3+3+3+3=18
Java 2 Platform, Enterprise Edition (J2EE)是当前很多商业应用系l用的开发^収ͼ该技术提供了一个基于组件的Ҏ来设计、开发、装配和部v企业U应用程序。J2EEq_提供了一个多层结构的分布式的应用E序模型Q可以更快地开发和发布的新的应用解x案?#160;
J2EE是一U技术规范,定义了整个标准的应用开发体pȝ构和一个部|环境,应用开发者开发时只要专注于具体商业逻辑和商业业务规则的实现上,而其他的诸如事务、持久化、安全等pȝ开发问题可以由应用E序容器或者服务器处理Q开发完成后Q就可以方便地部|到实现规范的应用服务器中?#160;
作ؓ|络上的商业应用pȝQ同时访问的人数是很多的Q在大量讉K的情况下Q过多的资源h和有限的服务器资源(内存、CPU旉、网l带宽等Q之间就会出现矛盾,应用pȝ的性能显得很重要了,有时正确的代码ƈ不能保证目的成功,性能往往是最后决定一个项目是否成功关键?/p>
本文主要从性能的角度出发,讨论J2EE服务器端的代码性能优化和提升。
二、常见的Java ~程 J2EE语言基础是JavaQ常用的Java代码问题对应用系l的性能影响Q?/p>
下面讨论了一些应该注意方面?#160;
使用StringBuffer代替String 当处理字W串的相加时Q常见的写法是:
String str1 = "Hello"; String str2 = "welcome to world"; String str3 = str1 + ", " + str2 +"!"; System.out.println(str3); |
public StringBuffer() { // 构造函?br />
this(16); // ~省定w16} public synchronized StringBuffer append(String str) { if (str == null) { str = String.valueOf(str); } int len =str.length(); int newcount = count + len; if(newcount > value.length) expandCapacity(newcount); // 扩充定w str.getChars(0, len, value, count); count = newcount; return this; } |
StringBuffer buffer = new StringBuffer(30); // 分配指定的大?br /> buffer.append("hello"); buffer.append(","); buffer.append("welcometo world!"); String str = buffer.toString(); |
public Vector() {// ~省构造函?br />
this(10); // 定w?10; } |
public synchronized boolean add(Object o) { modCount++; ensureCapacityHelper(elementCount+1); elementData[elementCount++] =o; return true; } private void ensureCapacityHelper(int minCapacity) { int oldCapacity = elementData.length; if (minCapacity > oldCapacity) { Object oldData[] = elementData; int newCapacity = (capacityIncrement > 0) ? (oldCapacity + capacityIncrement) : (oldCapacity * 2); if (newCapacity < minCapacity) { newCapacity = minCapacity; } elementData = new Object[newCapacity]; System.arraycopy(oldData, 0, elementData, 0, elementCount); } } |
Vector vect Q?. new Vector(100); |
Vector vect = new Vector(1000); ... for( inti=0; i<vect.size(); i++){ ... } |
int size = vect.size(); for( int i=0; i>size; i++){ ... } |
for (int i = 0;i <100000;i++) if (i%10 == 9) { ... // 每十ơ执行一?br /> } |
for(inti =0,j =10; i<100000; i++,j--){ if(j == 0){ ... // 每十ơ执行一?br /> j = 10; } } |
NewObject object = new NewObject(); int value; if(i>0 ) { value =object.getValue(); } |
int value; if(i>0 ) { NewObject object = new NewObject(); Value =object.getValue(); } |
public void CallMethod(int i ){ if( i ==0 ){ return; } ... // 其他处理 } |
int i = 0; ... CallMethod(i); |
int i = 0; ... if( i ==0 ){ CallMethod(i); } |
int size = 1000; String[] strArray1 = new String[size]; String[] strArray2 = new String[size]; for(inti=0;i<size;i++){ // 赋?br /> strArray1[i] = (new String("Array: " + i)); } for(inti=0;i<size;i++){ // 复制 strArray2[i]=(new String((String)a[i])); } |
int size = 1000; String[] strArray1 = new String[size]; String[] strArray2 = new String[size]; for(inti=0;i<size;i++){ // 赋?br /> strArray1[i] = (new String("Array: " + i)); } System.arraycopy(strArray1,0,strArray2,0,size); // 复制 |
HttpSession theSession = request.getSession(); // 获取当前Session if(theSession != null){ theSession.invalidate(); // 使该Session失效 } |
theSesionBean.remove(); |
Context ctx = new InitialContext(); DataSource dataSource = (DataSource) ctx.lookup("jdbc/CustomerDB"); Connection conn = dataSource.getConnection("password","username"); |
Connection conn = null; Statement stmt = null; ResultSet rs = null; try { DataSource dataSource = getDataSource(); // 取的DataSource的方法,实现略?br /> conn = datasource.getConnection(); stmt = conn.createStatement(); rs = stmt.executeQuery("SELECT * FROM ..."); ... // 其他处理 rs.close(); stmt.close(); conn.close(); }catch (SQLException ex) { ... // 错误处理 } |
Connection conn = null; Statement stmt = null; ResultSet rs = null; try { DataSource dataSource = getDataSource(); // 取的DataSource的方法,实现略?br /> conn = datasource.getConnection(); stmt = conn.createStatement(); rs = stmt.executeQuery("SELECT * FROM ..."); ... // 其他处理 }catch (SQLException ex) { ... // 错误处理 }finally{ if (rs!=null) { try { rs.close(); // 关闭ResultSet} catch (SQLException ex) { ... // 错误处理 } } if (stmt!=null){ try { stmt.close(); // 关闭Statement} catch (SQLException ex) { ... // 错误处理 } } if (conn!=null){ try { conn.close(); // 关闭Connection} catch (SQLException ex) { ... // 错误处理 } } } |
Z么要隐藏Email地址呢?
各种Email嗅探软g可以很方便地你个h的Email地址取过去,随之发送一些代理发等{一些无聊的邮g?/p>
讉K地址Q?a >http://scr.im
My EmailQ?a >http://scr.im/cheng
1. 学无止境。就是你有?0q以上的E序员经历,你也得要使劲地学习,因ؓ你在计算个充满一创造力的领域,每天都会有很多很多的C物出现。你需要跟上时代的步伐。你需要去了解新的E序语言Q以及了解正在发展中的程序语aQ以及一些编E框架。还需要去阅读一些业内的新闻QƈC些热门的Cd与在U的讨论Q这样你才能明白和了解整个Y件开发的势。在国内Q一些著名的C例如QCSDNQITPUBQCHINAUINX{等Q在国外Q徏议你l常上一上digg.comȝ看各UBLOG的聚合?/font>
2. 掌握多种语言。程序语aL有其最适合的领域。当你面寚w要解决的问题Ӟ你需要找C个最适合的语a来解册些问题。比如,如果你需要性能Q可能C/C++是首选,如果你需要跨q_Q可能Java是首选,如果你要写一个Web上的开发程序,那么 PHPQASPQAjaxQJSP可能会是你的选择Q如果你要处理一些文本ƈ和别的应用交互,可能Perl, Python会是最好的。所以,׃些时间去探烦一下其它你q熟悉的E序语言Q能让你的眼界变宽,因ؓ你被武装得更好,你思考问题也更为全面,q对于自己和目都会有好的帮助?/font>
3. 理性面对不同的操作pȝ或技?/strong>。程序员们L有自己心目中无可比拟的技术和操作pȝQ有的h喜欢UbuntuQ有的h喜欢DebianQ还有的人喜ƢWindowsQ以及FreeBSDQMacOSX或Solaris{等。看看我的BLOG( http://blog.csdn.net/haoel )中的那篇?/font> 其实Unix很简?/font> 》后的回复你q道程序员们在l护赯q忠爱时的那䆾执着了。只有一部分优秀的程序员明白不同操作pȝ的优势和长处和短处,q样Q在pȝ选型的时候,才能做到真正的客观和公正Q而不会让情A影响到自己。同P语言也是一P有太多的E序员L喜欢U缠于语a的对比,如:Java和Perl。哪个刚刚出道的E序员没有争论去cM的话题呢Q比如VC++和Delphi{等。争些东西只能表明自q肤浅和Q燥。优U的程序ƈ不会执着于这些,而是能够理性的分析和理心地面对Q从而才能客观地做出正确的选择?/font>
4. 别把自己框在单一的开发环境中?/strong> 再一ơ,正如上面所qͼ每个E序员都有自己忠q工具和技术,有的喜欢老的Q比如我喜ƢVi~辑E序Q,而有的喜Ƣ新的比如gedit或是Emacs {。有的喜Ƣ用像VC++一L调试器,而我更喜ƢGDB命o行方面的调式器。等{等{。程序员在用什么样的工具上的争吗Q到处都是啊。用什么样的工h来无所谓,只要你能更好更快地达C的目的。但是有一Ҏ优秀E序员都应该了解的——那是应该d试一下别的工作环境。没有比较,你永q不知道谁好谁不好,你也永远不知道你所不知道的?/font>
5. 使用版本理工具理你的代码?/strong>千万不要告诉我你不知道源码的版本理Q如果你的团队开发的源代码ƈ没有版本理pȝQ那么我要告诉你Q你的Y件开发还处于矛_时代。赶快用一个版式本理工具吧。CVS 是一个看上去qxE无奇的版本工P但它是被使用最q的版本理pȝQSubversion 是CVS的一个升U版Q其正在开始接CVS的领地。Git 又是一个不同的版本理工具。还有Visual SourceSafe{。用什么样的版本管理工具依赖于你的团队的大和地理分布Q你也许正在使用最有效率或最没有效率的工h理你的源代码。但一个优U的程序员L会用一ƾ源码版本管理工h理自己的代码。如果你要我推荐一个,我推荐你使用开源的Subversion?/font>
6. 是一个优U的团队成员?/strong> 除非你喜Ƣ独奏,除非你是孤胆英雄。但我想告诉你,今天Q可能没有一个成熟的软g是你一个h能做的到的,你可能是你团队中最牛的大拿Q但qƈ不意味着你就是好的团队成员。你的能力只有放C个团队中才能施展开来。你在和你的团队成员交流中有CD吗?你是否经常和他们沟通,q且大家都喜Ƣ和你在一赯论问题?想一想一个球队吧,你是q个队中好的成员吗?当别人看C在场上的跑动Q当别h看到你的传球和接球和抢断Q能受到鼓舞吗?
7. 把你的工作变成文档?/strong> q一条目当然包括了在代码中写注释Q但那还仅仅不够Q你q需要做得更多。有良好的注释风格的代码是一个文档的基础Q他能够让你和你的团队容易的明白你的意图和想法。写下文档,q不仅仅是怕我们忘了当时的xQ而且q是一U团队的ȝ交流的方法,更是一U知识传递的Ҏ。记录下你所知道的一切会是一个好的习惯。因为,我相信你不希望别人L在你最忙的时候来打断你问问题Q或是你在休假的时候接到公司的电话来询问你问题。而你自己如果老是守着自己的东西,其结果只可能是让你自己长旉地深陷在q块东西内,而你更本不可以d更多的事情。包括向上的晋升。你可能以ؓ“教会徒弟能饿死师父”,但我告诉你,你的保守会让你失L多更好的东西Q请你相信我Q我l不是在q里思h听闻?/font>
8. 注意备䆾和安全?/strong> 可能你觉得这是一个“废话”,你已明白了备份的重要性。但是,我还是要在这里提出,丢失东西是我们h生中的一部䆾Q你L会丢东西Q这点你永远无法避免。比如:你的W记本电脑被人偷了,你的盘损坏了,你的电脑中病毒了Q你的系l被人入侵了Q甚x个大D烧了Q等{,{等。所以,做好备䆾工作是非帔R帔R要的事情Q硬盘是不可信的Q所以定期的d光盘或是带可能会是一个好的方法,|络也是不可信的Q所以小心病毒和黑客Q不但用Y件方面的安全{略Q你更需要一个健全的理制度。此外,量的让你的数据攑֜不同的地方,q做好定期(每日Q每周,每月Q的备䆾{略?/font>
9. 设计要够灵zR?/strong> 可能你的需求只会要求你实现一个死的东西,但是Q你作ؓ一个优U的程序,你应该随时在思考这个死的东西是否可以有灉|的一面,比如把一些参数变成可以配|的Q把一些公用的东西形成你的函数库以便以后重用,是否提供插g斚w的功能?你的模块是否要以像积木一样随意组合?如果要有修改的话Q你的设计是否能够马上应付?当然Q灵zȝ设计可能q不是要你去重新发明轮子Q你应该可能是使用标准化的东西。所谓灵话的设计是要让让考虑更多需求之外的东西Q把需求中q一cȝ问题都考虑刎ͼ而不是只处理需求中所说的那一特定的东ѝ比如说Q需要需要的屏幕分L率是800×600Q那么你的设计能否灵zM其他的分辨率Q程序设计L需要我们去处理不同的环境,以及未来的趋ѝ我们需要用动态的眼光L考问题,而不是刻舟求剑。也许有一天,你今天写的程序就要移植到别的环境中去Q那个时候你p真正明白什么是灉|的设计了?/font>
10. 不要搬v矛_砸自q脚?/strong>E序员L有一U不好的习惯Q那是L惌快地完成自己手上的工作。但情况却往往事已愿违。越是想做得快,p是容易出问题Q越是想做得快,p是容易遗漏问题,最l,E序改过来改q去Q按下葫芦v了瓢Q最后花费的旉和精力反而更多。欲速而不达。优UE序员的习惯是前面多׃些时间多作一些调查,试验一下不|的解决ҎQ如果时间允许,一个好的习惯是Q每4个小时的~程Q需要一个小时的休息Q然后又?个小时的~码。当Ӟq因异Q但其目的就是让你时常回头看看,让你想一惌样三个问题:1Q是否这么做是对的?2Q是否这么做考虑C所有的情况Q?Q是否有更好的方法?惛_了再_时常回头看看走过的\Q时常ȝ一下过MQ会对你有很大的帮助?/font>
以上是十条优UE序员的习惯或行范,希望其可以对你有所帮助?/font>
本文来源于网上phil的BLOGQ但我在写作q程中用了自己的语a和方法重新描qC一下这十条Q所以,我希望你在{载的时候能够注明作者和出处以表C对我的重。谢谢!