您的位置:首页 > 职场人生

Java面试笔试知识点

2014-09-06 14:03 363 查看

Java知识点

1. ClassLoader&JVM工作原理

当运行一个程序的时候,JVM启动,运行bootstrapclassloader,该ClassLoader加载java核心API(ExtClassLoader和AppClassLoader也在此时被加载),然后调用ExtClassLoader加载扩展API,最后AppClassLoader加载CLASSPATH目录下定义的Class,这就是一个程序最基本的加载流程。

双亲委托模式:任何一个自定义ClassLoader加载一个类之前,它都会先委托它的父亲ClassLoader进行加载,只有当父亲ClassLoader无法加载成功后,才会由自己加载

2.s+=1 与s=s+1区别

s+=1 <=> s = (s的类型)(s+1)

3.final,finally,finalize区别

Final成员:一旦初始化不可修改

Final方法:不允许继承类覆写

Final类:不允许继承

Finally 异常处理的最佳补充,无论有无异常,总会执行(return 之前)

http://blog.csdn.net/mymyway/article/details/7954549

finalize 在垃圾回收器将对象从内存清出之前做必要的清理工作

4.传值&传引用

不管java参数的类型是什么,一律传递参数的副本(值的副本&应用的副本)

http://blog.sina.com.cn/s/blog_4b622a8e0100c1bo.html

5.static

1.静态数据成员是该类的所有对象所共有的,静态数据成员存储在全局数据区。

2.静态数据成员定义时要分配空间,所以不能在类声明中定义。

3.与普通函数相比,静态成员函数由于不是与任何的对象相联系,它无法访问属于类对象的非静态数据成员,也无法访问非静态成员函数,它只能调用其余的静态成员函数

/article/1422727.html

6.内存管理和内存泄露

内存分配:由程序完成,释放由GC完成,对象在堆中分配。(有向图)

http://www.ibm.com/developerworks/cn/java/l-JavaMemoryLeak/

内存泄露:1、对象可达的,有向图中存在边 2、对象是无用的,程序不会再使用这些对象

7.封装、继承、多态

封装:将数据和函数集合在一个个单元里(类),保护代码不被无意中破坏

继承:代码的重用

多态:同一操作操作于不同的对象,产生不同的执行结果,基类指针实现。

重载(编译时多态),虚函数(运行时多态)

http://www.cnblogs.com/mountain-mist/articles/1214996.html

8.ArrayList 和LinkedList

1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。

2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。

3.对于新增/删除操作add和remove,LinedList占优势,因为ArrayList要移动数据。

9.HashMap 和Hashtable区别



10.构造函数和初始化变量执行顺序

先是成员变量的初始化,而且成员的初始化的顺序以成员变量的定义顺序有关,先定义的先初始化,初始化后再调用构造方法。static的成员比普通的成员变量先初始化。

/article/9700575.html

11.抽象类和接口

抽象类不可被实例化(new),抽象类可以包含非抽象方法,抽象类不可以是final,非抽象类派生抽象类必须覆盖抽象方法,抽象方法不可以自己实现。

12.异常

只要程序中的函数用throws声明了,就表示此函数中不会处理异常,而是交给调用此函数的函数去处理

/article/2091080.html

数据结构

一.排序





http://blog.sina.com.cn/s/blog_6d57505401019ulx.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: