1、面向对象的特征有哪些方面?
1)、抽象
抽象是指将一类对象的共同特征总结出来构建类的过程。
包括数据抽象和行为抽象。
2)、封装
把数据和操作数据的方法绑定,使得只能通过已定义的接口访问数据。
3)、继承
在已有类的基础上得到继承信息新建一个类。
4)、多态
一个事物的多种形态。父类对象引用指向子类对象。
也就是说同样的对象调用了同样的方法做了不同的事情。
多态又分为编译时多态和运行时多态。
重载是编译时多态,重写是运行时多态。
编译时期只检查参数,不检查方法内部过程。只有当代码执行到具体的类别时,才会去调用该类“重写”的方法,所以,重写是运行时多态。
2、作用域public,private,protected,以及不写时的区别
3、&和&&的区别
&是位运算符,表示按位与运算,
&&是逻辑运算符,表示逻辑与(and),也叫短路与,如果左边的表达式为false,则不执行右边的表达式。
&不管左边为不为false,都会继续执行
&只能操作boolean类型,而&&既可以操作boolean类型又可以操作数值类型。
4、String 是最基本的数据类型吗?
String是一个类,属于是引用数据类型,因此说String不是基本的数据类型。
Java中的基本数据类型只有8个:byte、short、int、long、float、double、char、boolean;
5、float f=3.4;是否正确?
不正确。3.4是双精度数,将双精度型(double)赋值给浮点型(float)属于下转型(down-casting,也称为窄化)会造成精度损失,因此需要强制类型转换float f =(float)3.4; 或者写成float f =3.4F;。
6、short s1 = 1; s1 = s1 + 1;有错吗?short s1 = 1; s1 += 1;有错吗?
对于short s1 = 1; s1 = s1 + 1;由于1是int类型,因此s1+1运算结果也是int 型,需要强制转换类型才能赋值给short型。而short s1 = 1; s1 += 1;可以正确编译,因为s1+= 1;相当于s1 = (short)(s1 + 1);其中有隐含的强制类型转换。
7、数组的创建方式有哪几种?
数据类型 [] 数组名=new 数据类型[元素的个数]
数据类型 [] 数组名={元素值,元素值,元组值3…}
数据类型[] 数组名=new 数据类型{元素值,元素值,元素值…}
8、Math.round(11.5) 等于多少? Math.round(-11.5)等于多少
Math.round(11.5)12 Math.round(-11.5)-11 round 方法返回与参数最接近的长整数,参数加1/2 后求其floor
9、swtich 是否能作用在byte 上,是否能作用在long 上,是否能作用在String上
早期的JDK中,switch(expr)中,expr可以是byte、short、char、int。从1.5版开始,Java中引入了枚举类型(enum),expr也可以是枚举,从JDK 1.7版开始,还可以是字符串(String)。长整型(long)是不可以的。
10、如何快速的把2计算成8
2<<3