本文的主要内容包括在下图,下面来一起看看吧。
1、&和&&的区别
2、switch
switch语句能否作用在byte,能否作用在long上,能否作用在string上,还能用在哪里?
switch支持的类型是byte,short,char,int。本质上说,switch仅仅只能支持int类型.(byte,short,char,会自动提升为int类型),所以,switch不支持long类型
3、final
使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变
4、"=="和"equals"方法究竟有什么区别
5、overload和override的区别
overload是方法重载, override是方法重写,两者除了名字比较像外,没啥关系
6、构造器constructor是否可被override
构造器constructor不能被继承,因此不能重写override,但可以被重载overload。
7、序列化接口的id有什么用
序列化版本的控制.对象序列化到存储设备上,数据和原始类结构之间就没有了必然的联系,他们联系的依据就是类的全限定名.那么代码中类的结构是可以改的,采用序列化id来作为一个版本的控制,当类的结构发生变化时,我们就改变序列化的id版本值,在反序列化的时候,对比序列化文件的类型的版本号是否和当前类型的版本号相同,如果相同,则反序列化,如果不同,则报错.
8、hashcode方法的作用
1.一般来说,equals这个方法是给用户调用的,如果你想判断2个对象是否相等,你可以重写equals方法,然后在代码中调用,就可以判断他们是否相等了.
2.hashcode方法一般用户不会去调用,比如在hashmap中,由于key是不可以重复的,他在判断key是否重复的时候就判断了hashcode这个方法,而且也用到了equals方法,这里说的不重复是说hashcode和equals只要有一个不等就可以了.所以简单来说,hashcode相当于一个对象的编码,就好像文件中的md5,他和equals不同就在于他返回的是int型的,比较起来不直观,我们一般重写equals的同时也重写hashcode,让他们逻辑一致
9、java中多态的机制是什么
靠的是父类或接口定义的引用变量可以指向子类或具体实现类的实例对象,而程序调用的方法在运行时才动态绑定,引用变量所指向的具体实例对象的方法,也就是内存里正在运行的那个对象的方法,而不是引用变量类型中定义的方法.
10、接口和抽象类的区别
11、jdk中哪些类是不能被继承的
被final修饰的类是不能被继承的
八大基本数据类型包装类和string等
12、final, finally, finalize的区别
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。
原文链接:http://www.jianshu.com/p/782083b9320c