一.访问修饰public,private,protected,缺省的区别
Java有四种访问修饰权限,外部类的修饰符只可以是上面四种
public或者是默认.而类的成员的修饰符可以是上面四种public 共有的,对于同一个包的其他类是公开的,被public修饰的属性,方法,类,可以跨类访问
protected 对于同一个包的子类是公开的.被protected修饰的类对同一个包的
default(缺省)类的成员不写访问修饰符时默认为default.被其修饰的类,方法,属性,可以被同一个包的其他类或当前类访问
private 私有的,对于同一个包的类是公开的,被private修饰的类,方法,属性,只有本类的对象可以访问.不是同一个包的其他类无法访问
二.Java的基本数据类型
byte,short,int,long,float,double,char,boolean
八种数据类型,除了这八种基本类型,其他都是引用类型.
三,强制转换类型
数据类型所占字节数由高到低排行
byte short char int long float double
运算时,不同数据类型的数据先转化为统一数据类型(低级到高级)
若高级数据转换成低级数据,需要用到强制类型转换
例如double(双精度类型)赋值給浮点数类型属于下转型,需要强制类型转换.
四.&和&&有什么区别
(引用了Java面试题)
&运算符有两种用法:(1)按位与;(2)逻辑与。&&运算符是短路与运算。逻辑与跟短路与的差别是非常巨大的,虽然二者都要求运算符左右两端的布尔值都是true整个表达式的值才是true。&&之所以称为短路运算是因为,如果&&左边的表达式的值是false,右边的表达式会被直接短路掉,不会进行运算。很多时候我们可能都需要用&&而不是&,例如在验证用户登录时判定用户名不是null而且不是空字符串,应当写为:username != null &&!username.equals(""),二者的顺序不能交换,更不能用&运算符,因为第一个条件如果不成立,根本不能进行字符串的equals比较,否则会产生NullPointerException异常。注意:逻辑或运算符(|)和短路或运算符(||)的差别也是如此