java面试知识点

1. 方法与函数:这两个概念不严格区分,就是一个东西,通过对象调用的,就是方法,直接调用,就是函数。

2. 超类就是父类。public private protected default:同一个package内的类可见,如果子类与父类不在同一个包内,也不可见。

3. java程序初始化执行顺序:

4. instanceof判断实例对象是否实现了给定的标识接口。

5. 只能用public修饰interface。接口中成员的作用域修饰符都是public,常量值默认使用public static final修饰。

6. Java在处理基本数据类型(例如int, char, double等)时,都是采用值传递,除此之外的其他类型都是引用传递。在函数调用和等号赋值都是引用传递。实现clone()方法先继承Cloneable接口,然后对对象调用clone()方法,再对对象中的非基本类型的属性调用clone()方法。

7. 不能通过方法的访问权限(private),返回值类型,抛出的异常类型来进行重载,如果返回类型不一样会报错。覆盖则包括对应的参数等必须完全一样。

8. abstract只能修饰类或者方法,不能修饰属性。接口中的成员变量默认是public static final,因此必须赋予初值,之后不能修改;而接口中成员方法都是public和abstract的,因此不能用private,static,synchronized,native等访问修饰符修饰。

9. 静态内部类不能访问外部的普通成员变量,只能访问外部的静态成员和静态方法。成员内部类可以自由访问外部类的属性和方法,但是非静态类成员内部不可以有静态成员,不可以定义静态的属性和方法。

10. 使用反射机制来获得父类的类名。如果用super.getClass().getName()不可以,因为getClass()在Object类中是final和native的,而且返回的是Object的运行时类。因此我们使用getClass().getSuperclass().getName()。

11. 当子类构造函数要调用父类构造函数时,super()必须是构造函数的第一条语句。

12. 变量名,函数名,数组名统称标识符。标识符只能以字母,_,$开头。不能以数字开头,不能是保留字,空格,别的符号。

13. final:final变量有引用不可变性,只能指向初始的对象,不关心对象内容的变化。final StringBuffer sb = "a"; sb.append("b"); final方法不允许子类重写,但可以使用。final类不能被继承,不能被重写。同时,String,StringBuffer和基本类型的类(被final修饰)也不能被继承(Integer,Float)。String是不可变类。

14. 小数是double类型的,float精度较低,用float f = 3.4F表示,或者float = (float)3.4。

15. java中的基本数据类型和boolean不能互相转换。

16. java涉及byte,short,char类型的运算时,会先强制转换为int再进行运算(+=是规定的运算法不会):short s = 1; s = (short)(s+1);或者short s = 1; s += 1;

17. equals和==是一样的,如果变量指向的是对象而不是基本类型的话,判断的是地址是否相等。比如String s1 = new String("a"); String s2 = new String("a"); return的是false。好处在于equals是可以被覆盖的,所以可以通过覆盖equals来比较地址对应的内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值