1、Java基础部分
1、一个"java"源文件中是否可以包括多个类(不是内部类) ?有什么限制?
答:可以有多个类,但只能有一个public的类,并且public 的类名必须与文件名相一致。
2、Java 有没有goto?
答:java中的保留字,现在没有在java中使用。
3、说说&和&&的区别。
4、在JAVA中如何跳出当前的多重嵌套循环?
5、switch 语句能否作用在byte上,能否作用在long上,能否作用在String上?
答:在switch (expr1) 中,expr1 只能是一个整数表达式或者枚举常量(更大字体),整数表达式可以是int基本类型或Integer 包装类型,由于,byte,short,char 都可以隐含转换为int,所以,这些类型以及这些类型的包装类型也是可以的。显然,long 和String类型都不符合switch的语法规定,并且不能被隐式转换成int类型,所以,它们不能作用于swtich语句中。
6、shorts1= 1;s1=s1 + 1;有什么错? shorts1= 1;s1 += 1;有什么错?
答:对于shorts1= 1;s1 =s1 + 1;由于s1+1运算时会自动提升表达式的类型,所以结果是int型,再赋值给short类型s1时,编译器将报告需要强制转换类型的错误。
对于shorts1= 1;s1 += 1;由于+=是java语言规定的运算符,java 编译器会对它进行特殊处理,因此可以正确编译。
7、char 型变量中能不能存贮一个中 文汉字?为什么?
答:char型变量是用来存储Unicode编码的字符的,unicode 编码字符集中包含了汉字,所以,char型变量中当然可以存储汉字啦。不过,如果某个特殊的汉字没有被包含在unicode编码字符集中,那么,这个char型变量中就不能存储这个特殊汉字。补充说明: unicode 编码占用两个字节,所以,char类型的变量也是占用两个字节。
备注:后面一部分回答虽然不是在正面回答题目,但是,为了展现自己的学识和表现自己对问题理解的透彻深入,可以回答- -些相关的知识, 做到知无不言,言无不尽。
8、用最有效率的方法算出2乘以8等于几?
答:2<<3, 因为将-一个数左移n位,就相当于乘以了2的n次方,那么,一个数乘以8只要将其左移3位
即可,而位运算cpu直接支持的,效率最高,所以,2乘以8等於几的最效率的方法是2 << 3。
9、请设计一个一百亿的计算器
10、使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变?
11、"=="和equals方法究竟有什么区别?
答:(单独把一个东西说清楚,然后再说清楚另一个,这样,它们的区别自然就出来了,混在一起说,则很难说清楚)
12、静态变量和实例变量的区别?
答:在语法定义上的区别:静态变量前要加static 关键字,而实例变量前则不加。
在程序运行时的区别:实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变量才会被分配空间,才能使用这个实例变量。静态变量不属于某个实例对象,而是属于类,所以也称为类变量,只要程序加载了类的字节码,不用创建任何实例对象,静态变量就会被分配空间,静态变量就可以被使用了。总之,实例变量必须创建对象后才可以通过这个对象来使用,静态变量则可以直接使用类名来引用。
13、 是否可以从一个static方法内部发出对非static方法的调用?
答:不可以。因为非static方法是要与对象关联在一起的,必须创建一一个对象后,才可以在该对象上进行方法调用,而static方法调用时不需要创建对象,可以直接调用。也就是说,当一个static方法被调用时,可能还没有创建任何实例对象,如果从一个static方法中发出对非static方法的调用,那么非static方法是关联到哪个对象上的呢?这个逻辑无法成立,所以,一个static 方法内部发出对非static方法的调用。
14、Integer 与int的区别?
15、Math.round(1 1.5)等於多少? Math.round(-11.5)等于多少?
16、下面的代码有什么不妥之处?
答:1. if(username.equals(“zxx")}
usermame可能为NULL,会报空指针错误;改为"zxx" .equals(usermame)
2. int x= 1;
returm x==1?true:false;这个改成return x==1;就可以!
17、请说出作用域public, private, protected, 以及不写时的区别
答:这四个作用域的可见范围如下表所示。
18、Overload 和Override的区别。Overloaded 的方法是否可以改变返回值的类型?
答:
19、构造器Constructor是否可被override?
答:构造器Constructor不能被继承,因此不能重写Override,但可以被重载Overload
20、接口是否可继承接口?抽象类是否可实现(implements)接口?抽象类是否可继承具体类(concrete class)?抽象类中是否可以有静态的main方法?
21、写clone()方法时,通常都有一行代码,是什么?
答:clone有缺省行为,
super.clone();
因为首先要把父类中的成员复制到位,然后才是复制自己的成员。
22、面向对象的特征有哪些方面
23、java 中实现多态的机制是什么?
答:靠的是父类或接口定义的引用变量可以指向子类或具体实现类的实例对象,而程序调用的方法在运行期才动态绑定,就是引用变量所指向的具体实例对象的方法,也就是内存里正在运行的那个对象的方法,而不是引用变量的类型中定义的方法。
24、abstract class和interface有什么区别
25、abstract 的method是否可同时是static,是否可同时是native,是否可同时是synchronized?
答:abstract的method不可以是static 的,因为抽象的方法是要被子类实现的,而static 与子
类扯不上关系!
26、什么是内部类? Static Nested Class和Inner Class的不同。
27、内部类可以引用它的包含类的成员吗?有没有什么限制?
答:完全可以。如果不是静态内部类,那没有什么限制!
28、Anonymous Inner Class (匿名内部类)是否可以extends(继承)其它类,是否可以?
答:可以继承其他类或实现其他接口。不仅是可以,而是必须!
29、super.getClass()方法调用
30、String 是最基本的数据类型吗?
答:基本数据类型包括byte、int、 char、 long、 float、 double、 boolean 和short。
java.lang .String类是final类型的,因此不可以继承这个类、不能修改这个类。为了提高效率节省空间,我们应该用StringBuffer类
31、String s = "Hello";s = s + " world!;这两行代码执行后,原始的String 对象中的内容到底变了没有?
32、是否可以继承String类
答:String类是final类故不可以继承。
33、String s = new String("xyz" );创建了几个String Object?二者之间有什么区别?
34、String 和StringBuffer的区别
35、如何把一段逗号分割的字符串转换成一数
36、数组有没有length()这个方法? String有没有length()这个方法?
答:数组没有length()这个方法,有length的属性。String 有有length()这个方法。
37、下面这条语句一共创建了多少个对象: String s="a"+"b"+"+"."
38、try {里有一个return语句,那么紧跟在这个try后的finally {里的code会不会被执行,什么时候被执行,在return前还是?
39、下面的程序代码输出的结果是多少?
40、final, fnally, finalize的区别。
41、运行时异常与一般异常有何异同?
42、error 和exception有什么区别
43、Java中的异常处理机制的简单原理和应用。
44、请写出你最常见到的5个runtime exception。
45、JAVA 语言如何进行异常处理,关键字: throws,throw,try,catch,inally 分别代表什么意义?在try块中可以抛出异常吗?
46、java 中有几种方法可以实现一个线程?用什么关键字修饰同步方法? stop()和suspend()方法为何不推荐使用?
47、sleep()和wait()有 什么区别?
48、同步和异步有何异同,在什么情况下分别使用他们?举例说明。
49.下面两个方法同步吗? (自 己发明)
50、多线程有几种实现方法?同步有几种实现方法?
52、当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其他想法?
53、线程的基本概念、线程的基本状态以及状态之间的关系。
54、简述synchronized和java.til.concurrent.locks.Lock的异同?
55、设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。
56、子线程循环10次,接着主线程循环100,接着又回到子线程循环10次,接着再回到主线程又循环100,如此循环50次,请写出程序。
57、介绍Collection框架的结构
58、Collection 框架中实现比较要实现什么接口
59、ArrayList 和Vector的区别
60、HashMap和Hashtable的区
61、List和Map区别?
62、List, Set, Map是否继承自Collection接口?
63、List、 Map、Set 三个接口,存取元素时,各有什么特点?
64、说出ArrayList,Vector, LinkedList的存储性能和特性
66、Collection 和Collections 的区别。
67、Set里的元素是不能重复的,那么用什么方法来区分重复与否呢?是用==还是equals()?它们有何区别?
68、你所知道的集合类都有哪些?主要方法?
69、两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对?
70、TreeSet 里面放对象,如果同时放入了父类和子类的实例对象,那比较时使用的是父类的compareTo方法,还是使用的子类的compareTo方法,还是抛异常!
71、说出一些常用的类,包,接口,请各举
72、java 中有几种类型的流? JDK 为每种类型的流提供了一抽象类以供继承,请说出他们分别是哪些类?
73、字节流与字符流的区别
74、什么是java序列化,如何实现java序列化?或者请解释Serializable接口的作用。
75、描述- -下 JVM加载class文件的原理机制?
76、heap 和stack有什么区别。
77、GC是什么?为什么要有GC? .
78、垃圾回收的优点和原理。并考虑2种回收机制。
79、垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?
80、什么时候用assert。
81、java 中会存在内存泄漏吗,请简单描述。
82、能不能自己写个类,也叫java.lang .String?