??xml version="1.0" encoding="utf-8" standalone="yes"?>在线综合欧美,国产高清精品一区,亚洲精品一区av http://www.aygfsteel.com/gdufo/category/33689.htmlzh-cn Thu, 04 Sep 2008 07:43:46 GMT Thu, 04 Sep 2008 07:43:46 GMT 60 jsp自定义标{?taglib)~写的原理和实现 http://www.aygfsteel.com/gdufo/archive/2008/09/04/226974.htmlgdufo gdufo Thu, 04 Sep 2008 07:31:00 GMT http://www.aygfsteel.com/gdufo/archive/2008/09/04/226974.html http://www.aygfsteel.com/gdufo/comments/226974.html http://www.aygfsteel.com/gdufo/archive/2008/09/04/226974.html#Feedback 0 http://www.aygfsteel.com/gdufo/comments/commentRss/226974.html http://www.aygfsteel.com/gdufo/services/trackbacks/226974.html 阅读全文 ]]> 面试题:(x)解析一个字W串Q?/title> http://www.aygfsteel.com/gdufo/archive/2008/08/25/224164.htmlgdufo gdufo Mon, 25 Aug 2008 06:57:00 GMT http://www.aygfsteel.com/gdufo/archive/2008/08/25/224164.html 阅读全文 ]]> JAVA面试题解惑系列(三)(j)——变量(属性)(j)的覆?/title> http://www.aygfsteel.com/gdufo/archive/2008/08/22/223721.htmlgdufo gdufo Fri, 22 Aug 2008 05:07:00 GMT http://www.aygfsteel.com/gdufo/archive/2008/08/22/223721.html http://www.aygfsteel.com/gdufo/comments/223721.html http://www.aygfsteel.com/gdufo/archive/2008/08/22/223721.html#Feedback 0 http://www.aygfsteel.com/gdufo/comments/commentRss/223721.html http://www.aygfsteel.com/gdufo/services/trackbacks/223721.html 阅读全文 ]]> JAVA面试题解惑系列(四)(j)——final、finally和finalize的区?/title> http://www.aygfsteel.com/gdufo/archive/2008/08/22/223704.htmlgdufo gdufo Fri, 22 Aug 2008 03:37:00 GMT http://www.aygfsteel.com/gdufo/archive/2008/08/22/223704.html 阅读全文 ]]> JAVA面试题解惑系列(一Q——类的初始化序 http://www.aygfsteel.com/gdufo/archive/2008/08/22/223639.htmlgdufo gdufo Fri, 22 Aug 2008 00:26:00 GMT http://www.aygfsteel.com/gdufo/archive/2008/08/22/223639.html 阅读全文 ]]> java static到底有什么用 http://www.aygfsteel.com/gdufo/archive/2008/08/19/223107.htmlgdufo gdufo Tue, 19 Aug 2008 12:33:00 GMT http://www.aygfsteel.com/gdufo/archive/2008/08/19/223107.html 阅读全文 ]]> java|络~程QAjax+servlet实例 http://www.aygfsteel.com/gdufo/archive/2008/08/18/222720.htmlgdufo gdufo Mon, 18 Aug 2008 03:49:00 GMT http://www.aygfsteel.com/gdufo/archive/2008/08/18/222720.html 阅读全文 ]]> final ?abstract 的问?/title> http://www.aygfsteel.com/gdufo/archive/2008/08/14/222107.htmlgdufo gdufo Thu, 14 Aug 2008 13:39:00 GMT http://www.aygfsteel.com/gdufo/archive/2008/08/14/222107.html http://www.aygfsteel.com/gdufo/comments/222107.html http://www.aygfsteel.com/gdufo/archive/2008/08/14/222107.html#Feedback 0 http://www.aygfsteel.com/gdufo/comments/commentRss/222107.html http://www.aygfsteel.com/gdufo/services/trackbacks/222107.html
class Something{
final int f;
public void doSomething(){
System.out.println("f="+f)
}
}
W二?
abstract class Something{
private abstract void doSomething();
}
出错在哪里?
1)Somethingcd实例化的时候,?x)对成员变量q行初始化,f?x)被赋g0Q按照语法结果就是f=0,可是实际上不是。Java~译器ؓ(f)?jin)减h犯低U错误,对final修饰的变量不?x)再q行默认初始化,而是强制要求你显C的赋一个倹{Java~译器考虑的可真周到啊Q把它自q语法都给推翻?jin)。这么低U的E序我是写不出来Q所以我{错?jin)?br />
2Q这一题按照语法也没错?jin),可是Z么会(x)被编译不q去呢,说白?jin)原因也是Java~译器ؓ(f)我们考虑太周C(jin)Q我们ؓ(f)什么要在抽象类中定义一个抽象方法,我们大家都知道抽象类是不能实例化Q定义抽象方法就是ؓ(f)?jin)定义一个子cLl承该抽象类q实现它的抽象方法,但是题目中给定的抽象Ҏ(gu)是private修饰的,也就是说它是不能被承的Q也是说我们根本不肯能写出来一个能实现该抽象方法的c,说的更具体一点也是q个抽象c被定义的毫无意义。Java~译器真是太Z(jin)Q连q个也被考虑C(jin)Q反正我是从来没写过q么低的程序,更不?x)去写出来一个毫无意义的抽象cR?br />
一句话Q这两道题考得不是final和abstract的语法,因ؓ(f)完全合法Q而是语义Q也是Java~程规范?br />
PSQ关于ؓ(f)什么final修饰的成员变量不能被默认初始化的问题Q我想了(jin)很久Q终于想明白?jin)。我们大安知道对象初始化分Z步:(x)
1Q默认初始化
2Q赋值初始化
3Q构造方法初始化
如果你在cM定义的是一个普通的成员变量非final成员变量Q对该类的对象初始化Ӟ该成员变量会(x)严格按照以上三步q行初始化。如果是该类的成员变量是用final修饰的,该类对象初始化时Q对该成员变量的初始化按照常规也应该p三步l成Q但是由于final修饰的变量是帔RQ不能进行二ơ赋|所以对该类型的变量初始化只能由其中一步来完成Q不能出C叉,否则?x)有~译错误。下面是两个可以正常~译、运行的写法Q?br />
/** */ /**
*
* @author <a href="mailto:flustar2008@163.com">flustar</a>
* @version 1.0 Creation date: Mar 22, 2008 7:18:18 PM
*/
public class TestFinal {
final int f = 1 ;
public void doSomething() {
System.out.println( " f= " + f);
}
public static void main(String args[]) {
TestFinal test = new TestFinal();
test.doSomething();
}
}
?br />
/** */ /**
*
* @author <a href="mailto:flustar2008@163.com">flustar</a>
* @version 1.0 Creation date: Mar 22, 2008 7:18:18 PM
*/
public class TestFinal {
final int f;
public TestFinal() {
f = 1 ;
}
public void doSomething() {
System.out.println( " f= " + f);
}
public static void main(String args[]) {
TestFinal test = new TestFinal();
test.doSomething();
}
}
下面再让我们回过头来看看下面q个E序它完全符合Java的语法:(x)
class Something {
final int f;
public void doSomething() {
System.out.println( " f= " + f)
}
}
Z么说它完全符合语法:(x)
1Q按照常理会(x)对f默认初始化ؓ(f)0Q?br />
2Q程序中q没有出C叉,也就是说q没有进行二ơ赋值的可能?br />
但是~译器ؓ(f)什么不放过它呢Q?br />
现在让我们来假设一下如果不lf变量不显C的赋一个|它一定会(x)被初始化?Q按照final的定义一旦被初始化一个值后׃能修改了(jin)Q也是说f的值只能是0?jin)。再x当初我们Z么要定义一个final修饰的常量,N仅仅是Z(jin)得到一个默认的不能修改的初始值吗Q这恐怕有q我们当初定义final变量的真正意愿,那么我定义这个final变量又有何意义呢。所以在对对象进行初始化Ӟ发现对象的成员是用final修饰的就?x)查看它是否被显C的赋了(jin)|如果没有׃(x)不能正常~译。这也是Java~程规范中ؓ(f)什么要强制对final变量q行昄赋值的真正原因。同L(fng)道理在abstractc里面定义private abstractҎ(gu)Q这个又有何意义呢?Java中把那些W合语法但不W合常规的用法定义成?jin)规范,我想q也是JavaZ么会(x)有编E规范的原因吧,呵呵Q扯q了(jin)。。?br />
]]> JAVA 面试 http://www.aygfsteel.com/gdufo/archive/2008/08/11/221333.htmlgdufo gdufo Mon, 11 Aug 2008 08:45:00 GMT http://www.aygfsteel.com/gdufo/archive/2008/08/11/221333.html
面试是没什么道理可讲的Q它的题目有的不合情理、脱d际。有在纸上写的,有当面考你的,也有在电(sh)话里问的Q给你IDE的估计很?否则你赶快去买彩, 说不定中)。所以如果你看完此文后,请不要抱怨说q些问题都能用IDE来解冟뀂你必须在Q何情况下准确回答q些问题Q在面试中如果出C两题回答不准很有可能你p拒之门外?jin)?nbsp;
当然q些都是Java的基本题Q那些面试的人大多数不会(x)问你Hibernate有多先进QEclipse的三个组成部分,或command design patternQ他们都是老一辈了(jin)Q最喜欢问的是基础知识。别看?jin)这些基Q我朋友水^一,l果栽在一到基知识的问题下Q和高薪无缘?nbsp;
扑ַ作要面试Q有面试有对付面试的办法。以下一些题目来自我和我朋友痛苦的面试经历,提这些问题的公司包括IBM, E*Trade, Siebel, Motorola, SUN, 以及(qing)其它大小公司?nbsp;
面试是没什么道理可讲的Q它的题目有的不合情理、脱d际。有在纸上写的,有当面考你的,也有在电(sh)话里问的Q给你IDE的估计很?否则你赶快去买彩, 说不定中)。所以如果你看完此文后,请不要抱怨说q些问题都能用IDE来解冟뀂你必须在Q何情况下准确回答q些问题Q在面试中如果出C两题回答不准很有可能你p拒之门外?jin)?nbsp;
当然q些都是Java的基本题Q那些面试的人大多数不会(x)问你Hibernate有多先进QEclipse的三个组成部分,或command design patternQ他们都是老一辈了(jin)Q最喜欢问的是基础知识。别看?jin)这些基Q我朋友水^一,l果栽在一到基知识的问题下Q和高薪无缘?nbsp;
好了(jin)废话说Q开始正题?nbsp;
W一Q谈谈final, finally, finalize的区别?nbsp;
final 用于声明属性,Ҏ(gu)和类Q分别表C属性不可变Q方法不可覆盖,cM可ѝ?br />
finally是异常处理语句结构的一部分Q表CL执行?br />
finalize是Objectcȝ一个方法,在垃圾收集器执行的时候会(x)调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回Ӟ例如关闭文g{?br />
W二QAnonymous Inner Class (匿名内部c? 是否可以extends(l承)其它c,是否可以implements(实现)interface(接口)?
可以l承其他cL完成其他接口Q在swing~程中常用此方式?br />
W三QStatic Nested Class ?nbsp;Inner Class的不同,说得多好(面试题有的很W统)?nbsp;
Static Nested Class是被声明为静(rn)态(staticQ的内部c,它可以不依赖于外部类实例被实例化。而通常的内部类需要在外部cd例化后才能实例化?br />
W四Q?amp;?amp;&的区别?nbsp;
&是位q算W,表示按位与运,&&是逻辑q算W,表示逻辑与(andQ?
W五QHashMap和Hashtable的区别?nbsp;
HashMap是Hashtable的轻量实现Q非U程安全的实玎ͼ(j)Q他们都完成?jin)Map接口Q主要区别在于HashMap允许I(nullQ键|keyQ?׃非线E安全,效率上可能高于Hashtable.
W六QCollection ?nbsp;Collections的区别?nbsp;
Collection是集合类的上U接口,l承与他的接口主要有Set 和List.
Collections是针寚w合类的一个帮助类Q他提供一pd?rn)态方法实现对各种集合的搜索、排序、线E安全化{操作?br />
W七Q什么时候用assert?nbsp;
1.4新增关键字(语法Q,用于试boolean表达式状态,可用于调试程序?br />
使用Ҏ(gu) assert <boolean表达?gt;Q表C如果表辑ּ为真QtrueQ?则下面的语句执行Q否则抛出AssertionError?br />
另外的用方式assert < boolean表达?gt;:<other表达?gt;Q表C如果表辑ּ为真Q后面的表达式忽略,否则后面表达式的值用于AssertionError的构建参数?br />
注意~译时要增加-source 1.4 参数Q否则报错。]q行时要增加 -ea参数Q否则assert行被忽略
W八QGC是什? Z么要有GC?
GC是垃圾收集的意思(Gabage CollectionQ?内存处理是编Eh员容易出现问题的地方Q忘记或者错误的内存回收?x)导致程序或pȝ的不E_甚至崩溃QJava提供的GC功能可以自动监测对象是否过作用域从而达到自动回收内存的目的QJava语言没有提供释放已分配内存的昄操作Ҏ(gu)?nbsp;
W九(ji)QString s = new String("xyz");创徏?jin)几个String Object?
两个
W十QMath.round(11.5){於多少? Math.round(-11.5){於多少?
Math.round(11.5)==12
Math.round(-11.5)==-11
roundҎ(gu)q回与参数最接近的长整数Q参数加1/2后求其floor.
W十一Qshort s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
short s1 = 1; s1 = s1 + 1; Qs1+1q算l果是int型,需要强制{换类型)(j)
short s1 = 1; s1 += 1;Q可以正编译)(j)
W十二,sleep() ?nbsp;wait() 有什么区?
sleep是线E类QThreadQ的Ҏ(gu)Q导致此U程暂停执行指定旉Q给执行Z(x)l其他线E,但是监控状态依然保持,到时后会(x)自动恢复。调用sleep不会(x)释放对象锁?br />
wait是ObjectcȝҎ(gu)Q对此对象调用waitҎ(gu)D本线E放弃对象锁Q进入等待此对象的等待锁定池Q只有针Ҏ(gu)对象发出notifyҎ(gu)Q或notifyAllQ后本线E才q入对象锁定池准备获得对象锁q入q行状态?br />
W十三,Java有没有goto?
没有
很十三的问题Q如果哪个面试的问到q个问题Q我劝你q是别进q家公司。(完)(j)Qjob.sohu.comQ?br />
W十四,数组有没有length()q个Ҏ(gu)? String有没有length()q个Ҏ(gu)Q?br />
数组没有length()q个Ҏ(gu)Q有length的属性?br />
String有有length()q个Ҏ(gu)?br />
W十五,Overload和Override的区别。Overloaded的方法是否可以改变返回值的cd?
Ҏ(gu)的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父cM子类之间多态性的一U表玎ͼ重蝲Overloading是一个类中多态性的一U表现。如果在子类中定义某Ҏ(gu)与其父类有相同的名称和参敎ͼ我们说该Ҏ(gu)被重?nbsp;(Overriding)。子cȝ对象使用q个Ҏ(gu)Ӟ调用子cM的定义,对它而言Q父cM的定义如同被"屏蔽"?jin)。如果在一个类中定义了(jin)多个同名的方法,它们或有不同的参C数或有不同的参数cdQ则UCؓ(f)Ҏ(gu)的重?Overloading)。Overloaded的方法是可以改变q回值的cd?br />
W十六,Set里的元素是不能重复的Q那么用什么方法来区分重复与否? 是用==q是equals()? 它们有何区别?
Set里的元素是不能重复的Q那么用iterator()Ҏ(gu)来区分重复与否。equals()是判M个Set是否相等?br />
equals()?=Ҏ(gu)军_引用值是否指向同一对象equals()在类中被覆盖Qؓ(f)的是当两个分ȝ对象的内容和cd盔R的话Q返回真倹{?br />
W十七,l我一个你最常见到的runtime exception?br />
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
W十八,error和exception有什么区?
error 表示恢复不是不可能但很困隄情况下的一U严重问题。比如说内存溢出。不可能指望E序能处理这L(fng)情况?br />
exception 表示一U设计或实现问题。也是_(d)它表C如果程序运行正常,从不?x)发生的情况?br />
W十?ji),List, Set, Map是否l承自Collection接口?
ListQSet?br />
Map不是
W二十,abstract class和interface有什么区?
声明Ҏ(gu)的存在而不d现它的类被叫做抽象类Qabstract classQ,它用于要创徏一个体现某些基本行为的c,qؓ(f)该类声明Ҏ(gu)Q但不能在该cM实现该类的情c(din)不能创建abstract cȝ实例。然而可以创Z个变量,其类型是一个抽象类Qƈ让它指向具体子类的一个实例。不能有抽象构造函数或抽象?rn)态方法。Abstract cȝ子类为它们父cM的所有抽象方法提供实玎ͼ否则它们也是抽象cMؓ(f)。取而代之,在子cM实现该方法。知道其行ؓ(f)的其它类可以在类中实现这些方法?br />
接口QinterfaceQ是抽象cȝ变体。在接口中,所有方法都是抽象的。多l承性可通过实现q样的接口而获得。接口中的所有方法都是抽象的Q没有一个有E序体。接口只可以定义static final成员变量。接口的实现与子cȝ|除了(jin)该实现类不能从接口定义中l承行ؓ(f)。当cd现特D接口时Q它定义Q即程序体l予Q所有这U接口的Ҏ(gu)。然后,它可以在实现?jin)该接口的类的Q何对象上调用接口的方法。由于有抽象c,它允怋用接口名作ؓ(f)引用变量的类型。通常的动态联~将生效。引用可以{换到接口cd或从接口cd转换Qinstanceof q算W可以用来决定某对象的类是否实现?jin)接口?br />
W二十一Qabstract的method是否可同时是static,是否可同时是nativeQ是否可同时是synchronized?
都不?br />
W二十二Q接口是否可l承接口? 抽象cL否可实现(implements)接口? 抽象cL否可l承实体c?concrete class)?
接口可以l承接口。抽象类可以实现(implements)接口Q抽象类是否可承实体类Q但前提是实体类必须有明的构造函数?br />
W二十三Q启动一个线E是用run()q是start()?
启动一个线E是调用start()Ҏ(gu)QɾU程所代表的虚拟处理机处于可运行状态,q意味着它可以由JVM调度q执行。这q不意味着U程׃(x)立即q行。run()Ҏ(gu)可以产生必须退出的标志来停止一个线E?br />
W二十四Q构造器Constructor是否可被override?
构造器Constructor不能被承,因此不能重写OverridingQ但可以被重载Overloading?br />
W二十五Q是否可以承Stringc?
StringcLfinalcL不可以ѝ?br />
W二十六Q当一个线E进入一个对象的一个synchronizedҎ(gu)后,其它U程是否可进入此对象的其它方?
不能Q一个对象的一个synchronizedҎ(gu)只能׃个线E访问?br />
W二十七Qtry {}里有一个return语句Q那么紧跟在q个try后的finally {}里的code?x)不会(x)被执行Q什么时候被执行Q在return前还是后?
?x)执行,在return前执行?br />
W二十八Q编E题: 用最有效率的Ҏ(gu)出2乘以8{於?
有C背景的程序员特别喜欢问这U问题?br />
2 << 3
W二十九(ji)Q两个对象值相?x.equals(y) == true)Q但却可有不同的hash codeQ这句话对不?
不对Q有相同的hash code?br />
W三十,当一个对象被当作参数传递到一个方法后Q此Ҏ(gu)可改变这个对象的属性,q可q回变化后的l果Q那么这里到底是g递还是引用传?
是g递。Java ~程语言只由g递参数。当一个对象实例作Z个参数被传递到Ҏ(gu)中时Q参数的值就是对该对象的引用。对象的内容可以在被调用的方法中改变Q但对象的引用是永远不会(x)改变的?br />
W三十一Qswtich是否能作用在byte上,是否能作用在long上,是否能作用在String?
switchQexpr1Q中Qexpr1是一个整数表辑ּ。因此传递给 switch ?nbsp;case 语句的参数应该是 int?nbsp;short?nbsp;char 或?nbsp;byte。long,string 都不能作用于swtich?br />
W三十二Q编E题: 写一个Singleton出来?br />
Singleton模式主要作用是保证在Java应用E序中,一个类Class只有一个实例存在?br />
一般Singleton模式通常有几U种形式:
W一UŞ? 定义一个类Q它的构造函Cؓ(f)private的,它有一个static的private的该cd量,在类初始化时实例话,通过一个public的getInstanceҎ(gu)获取对它的引?l而调用其中的Ҏ(gu)?br />
public class Singleton {
private Singleton(){}
//在自己内部定义自׃个实例,是不是很奇怪?
//注意q是private 只供内部调用
private static Singleton instance = new Singleton();
//q里提供?jin)一个供外部讉K本class的静(rn)态方法,可以直接讉K
public static Singleton getInstance() {
return instance;
}
}
W二UŞ?
public class Singleton {
private static Singleton instance = null;
public static synchronized Singleton getInstance() {
//q个Ҏ(gu)比上面有所改进Q不用每ơ都q行生成对象Q只是第一ơ
//使用时生成实例,提高?jin)效率?br />
if (instance==null)
instanceQnew Singleton();
return instance; }
}
其他形式:
定义一个类Q它的构造函Cؓ(f)private的,所有方法ؓ(f)static的?br />
一般认为第一UŞ式要更加安全?br />
]]>
վ֩ģ壺
ˮ |
|
Դ |
|
|
|
|
߰ |
Ӣɽ |
|
½ |
ɽ |
|
|
Ԫ |
|
|
|
|
ʩ |
|
|
Ϲ |
|
|
» |
|
|
䰲 |
|
|
첼 |
ᶼ |
|
|
ˮ |
|
ʯ |
|
˳ |
ˮ |