|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
那这个对象有什么意义?现在很多用javabean的人就不能保证对象有完整的意义,不成熟的使用模式等导致代码疯狂增长,调试维护的时间要得多得多。在说性能之前,先说说你这个比较的来历。据说微软为了证明。net比java好。程序|程序员后面部分是成绩,前面部分是一些网友给的谜底,人人参考吧:
****************************原题部分**************************************
第一,谈谈final,finally,finalize的区分。
第二,AnonymousInnerClass(匿名外部类)是不是能够extends(承继)别的类,是不是能够implements(完成)interface(接口)?
第三,StaticNestedClass和InnerClass的分歧,说得越多越好(口试题有的很笼统)。
第四,&和&&的区分。
第五,HashMap和Hashtable的区分。
第六,Collection和Collections的区分。
第七,甚么时分用assert。
第八,GC是甚么?为何要有GC?
第九,Strings=newString("xyz");创立了几个StringObject?
第十,Math.round(11.5)等於几?Math.round(-11.5)等於几?
第十一,shorts1=1;s1=s1+1;有甚么错?shorts1=1;s1+=1;有甚么错?
第十二,sleep()和wait()有甚么区分?
第十三,Java有无goto?
第十四,数组有无length()这个办法?String有无length()这个办法?
第十五,Overload和Override的区分。Overloaded的办法是不是能够改动前往值的范例?
第十六,Set里的元素是不克不及反复的,那末用甚么办法来辨别反复与否呢?是用==仍是equals()?它们有何区分?
第十七,给我一个你最多见到的runtimeexception。
第十八,error和exception有甚么区分?
第十九,List,Set,Map是不是承继自Collection接口?
第二十,abstractclass和interface有甚么区分?
第二十一,abstract的method是不是可同时是static,是不是可同时是native,是不是可同时是synchronized?
第二十二,接口是不是可承继接口?笼统类是不是可完成(implements)接口?笼统类是不是可承继实体类(concreteclass)?
第二十三,启动一个线程是用run()仍是start()?
第二十四,机关器Constructor是不是可被override?
第二十五,是不是能够承继String类?
第二十六,当一个线程进进一个对象的一个synchronized办法后,别的线程是不是可进进此对象的别的办法?
第二十七,try{}里有一个return语句,那末紧跟在这个try后的finally{}里的code会不会被实行,甚么时分被实行,在return前仍是后?
第二十八,编程题:用最无效率的办法算出2乘以8等於几?
第二十九,两个对象值不异(x.equals(y)==true),但却可有分歧的hashcode,这句话对不合错误?
第三十,当一个对象被看成参数传送到一个办法后,此办法可改动这个对象的属性,并可前往变更后的了局,那末这里究竟是值传送仍是援用传送?
第三十一,swtich是不是能感化在byte上,是不是能感化在long上,是不是能感化在String上?
第三十二,编程题:写一个Singleton出来。
***********************第一团体的回覆abcdhy(程旭)**********************************
对照复杂,不是太难吧.
第一,谈谈final,finally,finalize的区分。
太长....不写出来了.
第二,AnonymousInnerClass(匿名外部类)是不是能够extends(承继)别的类,是不是能够implements(完成)interface(接口)?
能够
第三,StaticNestedClass和InnerClass的分歧,说得越多越好(口试题有的很笼统)。
晓得80%吧,说不全,了解起来太难
第四,&和&&的区分。
按位和逻辑与
第五,HashMap和Hashtable的区分。
分歧步同步
第六,Collection和Collections的区分。
接口有用类
第七,甚么时分用assert。
第八,GC是甚么?为何要有GC?
主动内存接纳,削减内存泄露,进步体系不乱性
第九,Strings=newString("xyz");创立了几个StringObject?
2个s和"xyz"
第十,Math.round(11.5)等於几?Math.round(-11.5)等於几?
不晓得.随机的
第十一,shorts1=1;s1=s1+1;有甚么错?shorts1=1;s1+=1;有甚么错?
必要一个short,却找到一个int
第十二,sleep()和wait()有甚么区分?
sleep()休眠指准时间wait()休眠,必要其他线程叫醒
第十三,Java有无goto?
没有,但break能够是完成部分goto的功效
第十四,数组有无length()这个办法?String有无length()这个办法?
没有,有
第十五,Overload和Override的区分。Overloaded的办法是不是能够改动前往值的范例?
不成以,Overloaded必需变动参数
第十六,Set里的元素是不克不及反复的,那末用甚么办法来辨别反复与否呢?是用==仍是equals()?它们有何区分?
视详细子类而定,好比HashSet,就以hashCode来对照.
==是对照实例的内存地点是否是一样,而equals()通常为对照实例的详细内容
第十七,给我一个你最多见到的runtimeexception。
NullPointerException,IOException
第十八,error和exception有甚么区分?
error是不成恢复的,必需中断运转.而exception是可预期,可恢复的.
第十九,List,Set,Map是不是承继自Collection接口?
Map不是
第二十,abstractclass和interface有甚么区分?
就是class和interface的区分,详细的能够任意说
第二十一,abstract的method是不是可同时是static,是不是可同时是native,是不是可同时是synchronized?
都不成以
第二十二,接口是不是可承继接口?笼统类是不是可完成(implements)接口?笼统类是不是可承继实体类(concreteclass)?
都能够
第二十三,启动一个线程是用run()仍是start()?
start();
第二十四,机关器Constructor是不是可被override?
不成以
第二十五,是不是能够承继String类?
不成以
第二十六,当一个线程进进一个对象的一个synchronized办法后,别的线程是不是可进进此对象的别的办法?
能够,但不克不及进代对象的synchronized办法.
第二十七,try{}里有一个return语句,那末紧跟在这个try后的finally{}里的code会不会被实行,甚么时分被实行,在return前仍是后?
会,呈现非常时.在return前
第二十八,编程题:用最无效率的办法算出2乘以8等於几?
2<<3
第二十九,两个对象值不异(x.equals(y)==true),但却可有分歧的hashcode,这句话对不合错误?
能够如许做,但不切合Java的标准
第三十,当一个对象被看成参数传送到一个办法后,此办法可改动这个对象的属性,并可前往变更后的了局,那末这里究竟是值传送仍是援用传送?
援用传送
第三十一,swtich是不是能感化在byte上,是不是能感化在long上,是不是能感化在String上?
long和String不成以.byte能够
第三十二,编程题:写一个Singleton出来。
publicclassaaa{
privateaaaii=newaaa();
privateaaa(){};
publicaaaget(){
returnii;
}
}
花了几分中,复杂的回覆了一下,学得不敷深切,请妙手们指导.
*************************第二团体的回覆dengyin2000**************************************
第一,谈谈final,finally,finalize的区分。
final―润色符(关头字)假如一个类被声明为final,意味着它不克不及再派生出新的子类,不克不及作为父类被承继。因而一个类不克不及既被声明为abstract的,又被声明为final的。将变量或办法声明为final,能够包管它们在利用中不被改动。被声明为final的变量必需在声明时给定初值,而在今后的援用中只能读取,不成修正。被声明为final的办法也一样只能利用,不克不及重载
finally―再非常处置时供应finally块来实行任何扫除操纵。假如抛出一个非常,那末相婚配的catch子句就会实行,然后把持就会进进finally块(假如有的话)。
finalize―办法名。Java手艺同意利用finalize()办法在渣滓搜集器将对象从内存中扫除进来之前做需要的清算事情。这个办法是由渣滓搜集器在断定这个对象没有被援用时对这个对象挪用的。它是在Object类中界说的,因而一切的类都承继了它。子类掩盖finalize()办法以收拾体系资本大概实行其他清算事情。finalize()办法是在渣滓搜集器删除对象之前对这个对象挪用的。
第二,AnonymousInnerClass(匿名外部类)是不是能够extends(承继)别的类,是不是能够implements(完成)interface(接口)?
匿名的外部类是没着名字的外部类。不克不及extends(承继)别的类,但一个外部类能够作为一个接口,由另外一个外部类完成。
第三,StaticNestedClass和InnerClass的分歧,说得越多越好(口试题有的很笼统)。
NestedClass(通常为C++的说法),InnerClass(通常为JAVA的说法)。Java外部类与C++嵌套类最年夜的分歧就在因而否有指向内部的援用上。详细可见http://www.frontfree.net/articles/services/view.asp?id=704&page=1
注:静态外部类(InnerClass)意味着1创立一个static外部类的对象,不必要一个内部类对象,2不克不及从一个static外部类的一个对象会见一个内部类对象
第四,&和&&的区分。
&是位运算符。&&是布尔逻辑运算符。
第五,HashMap和Hashtable的区分。
都属于Map接口的类,完成了将唯一键映照到特定的值上。
HashMap类没有分类大概排序。它同意一个null键和多个null值。
Hashtable相似于HashMap,可是不同意null键和null值。它也比HashMap慢,由于它是同步的。
第六,Collection和Collections的区分。
Collections是个java.util下的类,它包括有各类有关汇合操纵的静态办法。
Collection是个java.util下的接口,它是各类汇合布局的父接口。
第七,甚么时分用assert。
断言是一个包括布尔表达式的语句,在实行这个语句时假定该表达式为true。假如表达式盘算为false,那末体系会呈报一个AssertionError。它用于调试目标:
assert(a>0);//throwsanAssertionErrorifa<=0
断言能够有两种情势:
assertExpression1;
assertExpression1:Expression2;
Expression1应当老是发生一个布尔值。
Expression2能够是得出一个值的恣意表达式。这个值用于天生显现更多调试信息的String动静。
断言在默许情形下是禁用的。要在编译时启用断言,必要利用source1.4标志:
javac-source1.4Test.java
要在运转时启用断言,可以使用-enableassertions大概-ea标志。
要在运转时选择禁用断言,可以使用-da大概-disableassertions标志。
要体系类中启用断言,可以使用-esa大概-dsa标志。还能够在包的基本上启用大概禁用断言。
能够在估计一般情形下不会抵达的任何地位上安排断言。断言能够用于考证传送给公有办法的参数。不外,断言不该该用于考证传送给私有办法的参数,由于不论是否启用了断言,私有办法都必需反省其参数。不外,既能够在私有办法中,也能够在非私有办法中使用断言测试后置前提。别的,断言不该该以任何体例改动程序的形态。
第八,GC是甚么?为何要有GC?(基本)。
GC是渣滓搜集器。Java程序员不必忧虑内存办理,由于渣滓搜集器会主动举行办理。要哀求渣滓搜集,能够挪用上面的办法之一:
System.gc()
Runtime.getRuntime().gc()
第九,Strings=newString("xyz");创立了几个StringObject?
两个对象,一个是“xyx”,一个是指向“xyx”的援用对象s。
第十,Math.round(11.5)等於几?Math.round(-11.5)等於几?
Math.round(11.5)前往(long)12,Math.round(-11.5)前往(long)-11;
第十一,shorts1=1;s1=s1+1;有甚么错?shorts1=1;s1+=1;有甚么错?
shorts1=1;s1=s1+1;有错,s1是short型,s1+1是int型,不克不及显式转化为short型。可修正为s1=(short)(s1+1)。shorts1=1;s1+=1准确。
第十二,sleep()和wait()有甚么区分?弄线程的最爱
sleep()办法是使线程中断一段工夫的办法。在sleep工夫距离期满后,线程纷歧定当即恢复实行。这是由于在谁人时候,别的线程大概正在运转并且没有被调剂为保持实行,除非(a)“醒来”的线程具有更高的优先级
(b)正在运转的线程由于别的缘故原由而堵塞。
wait()是线程交互时,假如线程对一个同步对象x收回一个wait()挪用,该线程会停息实行,被调对象进进守候形态,直到被叫醒或守候工夫到。
第十三,Java有无goto?
Goto―java中的保存字,如今没有在java中利用。
第十四,数组有无length()这个办法?String有无length()这个办法?
数组没有length()这个办法,有length的属性。
String有有length()这个办法。
第十五,Overload和Override的区分。Overloaded的办法是不是能够改动前往值的范例?
办法的重写Overriding和重载Overloading是Java多态性的分歧体现。重写Overriding是父类与子类之间多态性的一种体现,重载Overloading是一个类中多态性的一种体现。假如在子类中界说某办法与其父类有不异的称号和参数,我们说该办法被重写(Overriding)。子类的对象利用这个办法时,将挪用子类中的界说,对它而言,父类中的界说好像被“屏障”了。假如在一个类中界说了多个同名的办法,它们或有分歧的参数个数或有分歧的参数范例,则称为办法的重载(Overloading)。Overloaded的办法是能够改动前往值的范例。
第十六,Set里的元素是不克不及反复的,那末用甚么办法来辨别反复与否呢?是用==仍是equals()?它们有何区分?
Set里的元素是不克不及反复的,那末用iterator()办法来辨别反复与否。equals()是判读两个Set是不是相称。
equals()和==办法决意援用值是不是指向统一对象equals()在类中被掩盖,为的是当两个分别的对象的内容和范例相配的话,前往真值。
第十七,给我一个你最多见到的runtimeexception。
ArithmeticException,ArrayStoreException,BufferOverflowException,BufferUnderflowException,CannotRedoException,CannotUndoException,ClassCastException,CMMException,ConcurrentModificationException,DOMException,EmptyStackException,IllegalArgumentException,IllegalMonitorStateException,IllegalPathStateException,IllegalStateException,
ImagingOpException,IndexOutOfBoundsException,MissingResourceException,NegativeArraySizeException,NoSuchElementException,NullPointerException,ProfileDataException,ProviderException,RasterFormatException,SecurityException,SystemException,UndeclaredThrowableException,UnmodifiableSetException,UnsupportedOperationException
第十八,error和exception有甚么区分?
error暗示恢复不是不成能但很坚苦的情形下的一种严峻成绩。好比说内存溢出。不成能期望程序能处置如许的情形。
exception暗示一种计划或完成成绩。也就是说,它暗示假如程序运转一般,从不会产生的情形。
第十九,List,Set,Map是不是承继自Collection接口?
List,Set是
Map不是
第二十,abstractclass和interface有甚么区分?
声明办法的存在而不往完成它的类被叫做笼统类(abstractclass),它用于要创立一个别现某些基础举动的类,并为该类声明办法,但不克不及在该类中完成该类的情形。不克不及创立abstract类的实例。但是能够创立一个变量,其范例是一个笼统类,并让它指向详细子类的一个实例。不克不及有笼统机关函数或笼统静态办法。Abstract类的子类为它们父类中的一切笼统办法供应完成,不然它们也是笼统类为。取而代之,在子类中完成该办法。晓得其举动的别的类能够在类中完成这些办法。
接口(interface)是笼统类的变体。在接口中,一切办法都是笼统的。多承继性可经由过程完成如许的接口而取得。接口中的一切办法都是笼统的,没有一个有程序体。接口只能够界说staticfinal成员变量。接口的完成与子类类似,除该完成类不克不及从接口界说中承继举动。当类完成特别接口时,它界说(行将程序体赐与)一切这类接口的办法。然后,它能够在完成了该接口的类的任何对象上挪用接口的办法。因为有笼统类,它同意利用接口名作为援用变量的范例。一般的静态联编将失效。援用能够转换到接口范例或从接口范例转换,instanceof运算符能够用来决意某对象的类是不是完成了接口。
第二十一,abstract的method是不是可同时是static,是不是可同时是native,是不是可同时是synchronized?
都不克不及
第二十二,接口是不是可承继接口?笼统类是不是可完成(implements)接口?笼统类是不是可承继实体类(concreteclass)?
接口能够承继接口。笼统类能够完成(implements)接口,笼统类是不是可承继实体类,但条件是实体类必需有明白的机关函数。
第二十三,启动一个线程是用run()仍是start()?
启动一个线程是挪用start()办法,使线程所代表的假造处置机处于可运转形态,这意味着它能够由JVM调剂并实行。这其实不意味着线程就会当即运转。run()办法能够发生必需加入的标记来中断一个线程。
第二十四,机关器Constructor是不是可被override?
机关器Constructor不克不及被承继,因而不克不及重写Overriding,但能够被重载Overloading。
第二十五,是不是能够承继String类?
String类是final类故不成以承继。
第二十六,当一个线程进进一个对象的一个synchronized办法后,别的线程是不是可进进此对象的别的办法?
不克不及,一个对象的一个synchronized办法只能由一个线程会见。
第二十七,try{}里有一个return语句,那末紧跟在这个try后的finally{}里的code会不会被实行,甚么时分被实行,在return前仍是后?
会实行,在return前实行。
第二十八,编程题:用最无效率的办法算出2乘以8等於几?
有C背景的程序员出格喜好问这类成绩。
2<<3
第二十九,两个对象值不异(x.equals(y)==true),但却可有分歧的hashcode,这句话对不合错误?
不合错误,有不异的hashcode。
第三十,当一个对象被看成参数传送到一个办法后,此办法可改动这个对象的属性,并可前往变更后的了局,那末这里究竟是值传送仍是援用传送?
是值传送。Java编程言语只由值传送参数。当一个对象实例作为一个参数被传送到办法中时,参数的值就是对该对象的援用。对象的内容能够在被挪用的办法中改动,但对象的援用是永久不会改动的。
第三十一,swtich是不是能感化在byte上,是不是能感化在long上,是不是能感化在String上?
switch(expr1)中,expr1是一个整数表达式。因而传送给switch和case语句的参数应当是int、short、char大概byte。long,string都不克不及感化于swtich。
第三十二,编程题:写一个Singleton出来。
Singleton形式次要感化是包管在Java使用程序中,一个类Class只要一个实例存在。
一样平常Singleton形式一般有几各种情势:
第一种情势:界说一个类,它的机关函数为private的,它有一个static的private的该类变量,在类初始化时实例话,经由过程一个public的getInstance办法猎取对它的援用,继而挪用个中的办法。
publicclassSingleton{
privateSingleton(){}
//在本人外部界说本人一个实例,是否是很奇异?
//注重这是private只供外部挪用
privatestaticSingletoninstance=newSingleton();
//这里供应了一个供内部会见本class的静态办法,能够间接会见
publicstaticSingletongetInstance(){
returninstance;
}
}
第二种情势:
publicclassSingleton{
privatestaticSingletoninstance=null;
publicstaticsynchronizedSingletongetInstance(){
//这个办法比下面有所改善,不必每次都举行天生对象,只是第一次
//利用时天生实例,进步了效力!
if(instance==null)
instance=newSingleton();
returninstance; }
}
其他情势:
界说一个类,它的机关函数为private的,一切办法为static的。
一样平常以为第一种情势要加倍平安些
第三十三Hashtable和HashMap
Hashtable承继自Dictionary类,而HashMap是Java1.2引进的Mapinterface的一个完成
HashMap同意将null作为一个entry的key大概value,而Hashtable不同意
另有就是,HashMap把Hashtable的contains办法往失落了,改成containsvalue和containsKey。由于contains办法简单让人引发曲解。
最年夜的分歧是,Hashtable的办法是Synchronize的,而HashMap不是,在
多个线程会见Hashtable时,不必要本人为它的办法完成同步,而HashMap
就必需为之供应外同步。
Hashtable和HashMap接纳的hash/rehash算法都也许一样,以是功能不会有很年夜的差别。
***********************第一团体的增补abcdhy(程旭)**********************************
下面的谜底有成绩:!!!我把有争议的几个列出来:
第二,AnonymousInnerClass(匿名外部类)是不是能够extends(承继)别的类,是不是能够implements(完成)interface(接口)?
匿名的外部类是能够extends(承继)别的类的,这个我做过测试.
第十一,shorts1=1;s1=s1+1;有甚么错?shorts1=1;s1+=1;有甚么错?
shorts1=1;s1+=1也不是准确。个中shorts1=1这句会堕落的,由于1是int的
第十六,Set里的元素是不克不及反复的,那末用甚么办法来辨别反复与否呢?是用==仍是equals()?它们有何区分?
Set里的元素是不克不及反复的,那末用iterator()办法来辨别反复与否。equals()是判读两个Set是不是相称。这个谜底也不准确,Set辨别反复元素是有详细子类来完成的.
第二十六,当一个线程进进一个对象的一个synchronized办法后,别的线程是不是可进进此对象的别的办法?
不克不及,一个对象的一个synchronized办法只能由一个线程会见。
这个也有成绩,一个线程进进一个对象的一个synchronized办法后,这个线程占据了该对象的同步锁.其他线程是不克不及进进此对象的别的同步办法的,由于其他线程得不到该对象的同步锁.但其他线程能够进此对象的别的非同步办法,由于进进非同步办法,不必要同步锁.
第二十九,两个对象值不异(x.equals(y)==true),但却可有分歧的hashcode,这句话对不合错误?
不合错误,有不异的hashcode。依照Java的编码标准,x.equals(y)==true的,hashcode必定一样,但这只是编码标准,本人编程的时分能够不这么做,一样能够一般运转.
第三十,当一个对象被看成参数传送到一个办法后,此办法可改动这个对象的属性,并可前往变更后的了局,那末这里究竟是值传送仍是援用传送?
是值传送。Java编程言语只由值传送参数。当一个对象实例作为一个参数被传送到办法中时,参数的值就是对该对象的援用。对象的内容能够在被挪用的办法中改动,但对象的援用是永久不会改动的。
晕,竟然说:对象的援用是永久不会改动 ,对象的援用是甚么,是内存地点(uint),怎样变啊.传值仍是传援用,是针对"对象"来讲的.对一个"对象的援用"来讲是:传值仍是传援用,成心义吗??晕
我复杂看了一下,人人有甚么定见能够一同会商!!
***********************第三团体的回覆abcdhy(程旭)**********************************
第一,谈谈final,finally,finalize的区分。
太复杂
第二,AnonymousInnerClass(匿名外部类)是不是能够extends(承继)别的类,是不是能够implements(完成)interface(接口)?
都能够
第三,StaticNestedClass和InnerClass的分歧,说得越多越好。
static类不存在和核心类的联系关系
第四,&和&&的区分。
太复杂
第五,HashMap和Hashtable的区分。
太复杂
第六,Collection和Collections的区分。
太复杂:前者是接口,大概是一个使用类
第七,甚么时分用assert。
调试吧
第八,GC是甚么?为何要有GC?
不必说
第九,Strings=newString("xyz");创立了几个StringObject?
空话,固然是一个,别说援用是对象
第十,Math.round(11.5)等於几?Math.round(-11.5)等於几?
我晕
第十一,shorts1=1;s1=s1+1;有甚么错?shorts1=1;s1+=1;有甚么错?
前者编译不了
第十二,sleep()和wait()有甚么区分?
前者本人睡,后者等他人
第十三,Java有无goto?
关头字,没有效
第十四,数组有无length()这个办法?String有无length()这个办法?
数组是属性,String是办法
第十五,Overload和Override的区分。Overloaded的办法是不是能够改动前往值的范例?
重载和掩盖
第十六,Set里的元素是不克不及反复的,那末用甚么办法来辨别反复与否呢?是用==仍是equals()?它们有何区分?
空话!怎样会用==?
第十七,给我一个你最多见到的runtimeexception。
NullPointerException
第十八,error和exception有甚么区分?
毛病和非常,严峻度纷歧样
第十九,List,Set,Map是不是承继自Collection接口?
Map不是
第二十,abstractclass和interface有甚么区分?
这个也问?
第二十一,abstract的method是不是可同时是static,是不是可同时是native,是不是可同时是synchronized?
我猜:不克不及
第二十二,接口是不是可承继接口?笼统类是不是可完成(implements)接口?笼统类是不是可承继实体类(concreteclass)?
固然能够
第二十三,启动一个线程是用run()仍是start()?
空话,start
第二十四,机关器Constructor是不是可被override?
有点好笑
第二十五,是不是能够承继String类?
noway
第二十六,当一个线程进进一个对象的一个synchronized办法后,别的线程是不是可进进此对象的别的办法?
固然能够
第二十七,try{}里有一个return语句,那末紧跟在这个try后的finally{}里的code会不会被实行,甚么时分被实行,在return前仍是后?
固然是return前
第二十八,编程题:用最无效率的办法算出2乘以8等於几?
我考intsb=2<<3;
第二十九,两个对象值不异(x.equals(y)==true),但却可有分歧的hashcode,这句话对不合错误?
这个成绩是sb问给sb的.
能够有分歧的hashCode,可是java不倡议如许
第三十,当一个对象被看成参数传送到一个办法后,此办法可改动这个对象的属性,并可前往变更后的了局,那末这里究竟是值传送仍是援用传送?
这个成绩又是sb问给sb的
是传值,可是这个值是一个援用
第三十一,swtich是不是能感化在byte上,是不是能感化在long上,是不是能感化在String上?
int
第三十二,编程题:写一个Singleton出来
两重check有效
***********************别的人的增补abcdhy(程旭)**********************************
我以为finally应当在return之前运转
如许的语句常常被用在猎取数据库毗连的时分
try{
connection=DBPool.get();
.......
//todo
}
catch(SQlExceptione)
{
//todo
}
finally
{
try{
if(connection!=null)
connection.close();
}
catch(SQLExceptione)
{
connection=null;
//todo
}
}
如许写的目标就是不论呈现甚么样的情形,数据库的毗连都应当封闭。
二十七这个很贫苦:
classTestFinally
{
publicstaticvoidmain(String[]args)
{
System.out.println(test());
}
publicstaticinttest(){
inti=0;
try{
System.out.println("try");
returni;
}
finally{
System.out.println("finally");
i=1;
returni;
}
}
}
看看了局?
你怎样能这么测呢?如许你只能证实
System.out.println(test());这条语句是在System.out.println("intofinally");这条语句后实行的,而System.out.println(test())这一句中包括了两步,第一步test()能够了解为return,第二步打印,现实上finally就是在这两步傍边实行的,为何不拿我的例子来尝尝呢?
publicstaticinttest(){
inti=0;
try{
returni;
}
finally{
i=1;
System.out.println(i);
}
}
zstzah(加亮)说得对,finally是不管怎样都要实行的!!
但我测试了一下,finally在return之前实行的.
测试代码:
publicclassa{
publicstaticvoidmain(String[]args){
System.out.println(test());
}
publicstaticinttest(){
inti=0;
try{
returni;
}
finally{
System.out.println("intofinally");
}
}
}
C#是盗用了Java的源代码,仿照开发的,原因是Java是开源的啊,盗了也白盗,还有一点,开发C#语言的团队是就是开发Java语言的团队,是微软重金挖过去的啊 |
|