面试笔试题总结
2016-05-16 21:57
411 查看
1 Java基本类型数据占用字节数
整型: byte 1字节;short 2字节;int 4字节;long 8字节
字符型:char 2字节
浮点型:float 4字节;double 8字节
布尔类型:boolean 1字节(Java中boolean类型的值只能为true或false,不能和1/0比较)
2 Java关键字
3 Java垃圾收集机制
Java自动检查并释放不再使用的内存,程序开发者可以调用System.gc()方法请求Java的垃圾回收。JVM收到请求后并不是立即进行垃圾回收,gc方法只是使垃圾回收操作更容易发生,或提早发生,或回收较多而已。
4 try catch finally语句执行顺序
try{
method();
system.out.println("condition1");
return;
}catch(Exception e){
system.out.println("condition2");
return;
}finally{
system.out.println("condition3");
}
当try语句中method()方法正常运行时,程序输出condition1 condition3然后return;当发生异常时,直接转入catch语句,程序输出condition2 condition3然后return。不管在何时返回,返回前都会执行finally语句。
catch语句块可以有多个,也可以没有。如果没有catch语句块,异常或者向上层抛出,或者中断程序执行。
finally语句块只能有一个或者没有,如果没有catch语句块,则finally块是必须的。
5 JSP注释的格式
合法注释:<%--comment--%> <!--comment--> <% //comment %> <% /*comment*/ %>
<@ //comment %> <@ /*comment*/ %> 编译通过,打印到客户端浏览器
<!--comment-- %> 编译不通过,非法
6 Java集合框架
Collection<--List<--Vector
Collection<--List<--ArrayList
Collection<--List<--LinkedList
Collection<--Set<--HashSet
Collection<--Set<--HashSet<--LinkedHashSet
Collection<--Set<--SortedSet<--TreeSet
Map<--SortedMap<--TreeMap
Map<--HashMap
这里的Collection/List/Set/Map都是接口,不是具体的实现类。
7 方法重载
方法具有相同的名字,但是参数不同(或者参数的数量不同,或者参数的类型不同),称为方法重载,是多态性的一种。返回类型可以相同或者不相同,不能以返回类型作为区别重载的标准。
另外一种多态是有关继承的多态。当子类重写父类的某个实例方法时,可以产生同一个方法由于调用对象不同造成结果不同的多态。
重写和重载:重写是子类覆盖父类的方法,方法名/参数/返回类型都相同。重载是多个方法,方法名相同,但参数不同。
8 split函数
" |DF|A".split("|").length的值是多少? 6
" |DF|A".split("|")返回的字符串数组为[" ","|","D","F","|","A"],长度为6
"|"是转义字符,需要加"\\"才能正确分割(".","+","*"同理,也需要加双斜线)(这几个符号在正则表达式中有含义)
9 单例模式类的设计
public class Singleton{
<span style="white-space:pre"> </span>private static Singleton instance=null;
<span style="white-space:pre"> </span>public static Singleton getInstance(){
<span style="white-space:pre"> </span>if(instance==null){
<span style="white-space:pre"> </span>synchronized(Singleton.class);
<span style="white-space:pre"> </span>if(instance==null)
<span style="white-space:pre"> </span>instance = new Singleton();
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>return instance;
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>private Singleton(){}
}
10 有1000盏灯泡,第一轮点亮所有电灯,第二轮每两盏灯熄灭一盏,即熄灭第2盏/第4盏/....以此类推,第三轮熄灭编号为3的倍数的电灯,即第3盏/第6盏/.....如果原来那盏灯是亮的,就熄灭它;如果原来是灭的,就点亮它,以此类推直到第1000轮。问第1000轮结束后,还有几盏灯是亮的?
解决方案:找1000以内的平方数,因为31^2=961<1000,32^2=1024>1000,所以最后还有31盏灯是亮的,分别是第1盏灯,第4盏灯,第9盏灯,.......第961盏灯。(原理暂时不明)
相关文章推荐
- 程序员必知的8大排序(java实现)
- 面试总结(一家国内一流互联网公司)
- 2016Android某公司面试题
- 一个程序员的伤感
- 一个程序员的进化史2
- Android面试题集合
- Android面试基础知识总结(一)
- Android面试——编程算法题
- Android面试——Java相关
- 一些面试题
- 由一道面试题想到的:Finally
- 面试基础整理(一)---Java中==和equals的区别
- SegmentFault 巨献 1024 程序员护卫队#1红岸的呼唤
- iOS面试常见问题最全梳理
- 面试基本问题
- 自我总结初级程序员易错问题1—命令空间使用
- 2016年社招面试小结
- 奋斗吧,程序员——第三十七章.雄关漫道真如铁,而今迈步从头越
- 如何成为一名优秀的程序员
- JAVA多线程和并发基础面试问答