面试零碎小知识点
1 数据类型
级别从低到高为:byte,char,short(这三个平级)-->int-->float-->long-->double
对应字节数:1 2 2—>4 8 4 8
自动类型转换:从低级别到高级别,系统自动转的;
强制类型转换:把一个高级别的变量赋给一个级别低的变量;
?
2 标识符的定义
已字母,_,$开头,由字母,数字,_,$组成。不能为Java关键字,大小写敏感。
?
3 重载和覆盖
重载条件:同一个类中,方法名相同,参数签名不同(参数个数,参数顺序,参数类型),返回值无关,修饰符无关。
覆盖条件:父子类中,方法名相同,参数签名相同,返回类型相同。另外还需满足(1)子类方法不能缩小父类方法的访问权限,如父类方法修饰符为public,子类不能为private。(2)子类方法不能抛出比父类方法更多的异常。如果父类抛出IOExceoption,子类不能抛出Exception,必须抛出相同的异常或者父类异常的子类。(3)方法覆盖只存在父类和子类中。
?
4 this关键字
this表示这个对象 ? 另外也在构造器中调用构造器时使用。
?
5 Java传值引用
?
6 访问权限修饰符
private ?允许本类中访问
protected ?允许本类,子类,以及同一个包内可访问
缺省 ? ? ? 允许本类,同一个包内访问
public ? ?任何地方都可以访问
?
7 接口与抽象类
抽象类的特点:
抽象方法必须存在于抽象类中。
抽象类中可以无抽象方法,也可以存在非抽象方法。
抽象类不能被创建对象(即实例化)。子类必须覆盖抽象方法,才能实例化。
abstract关键字不能被final,static,private修饰。
abstract不能被static修饰的原因:static方法在不创建对象时也可以调用,所以方法体(body)也应该被定义,若无方法体,也就是不能以”类名。方法名()”的形式对其调用,所以abstract方法(无方法体)不能被static关键字修饰。
?
8 final关键字
被final修饰的类,不可以被继承。
被final修饰的方法,不可以被覆盖。
被fianl修饰的变量,不能改变值。
?
9 泛型
作用:增加Java类型的安全。
?
10 封装,继承,多态
封装原则:将不需要对外提供的内容都隐藏起来,把属性都隐藏,提供公共方法对其访问。