1.java有哪些数据类型
(1)基本数据类型:byte(1字节),short(2字节),int(4字节),long(8字节),float(4字节),double(8字节),boolean(2字节),char(1字节)
(2)引用数据类型:类,接口,数组
2.switch 是否能作用在 long 上,是否能作用在 String 上?
在 Java 5 以前,switch(expr)中,expr 只能是 byte、short、int,char。从 Java5 后引入了枚举和字符串。但是还不支持long
3.用最有效率的方法计算 2 乘以 8
2 << 3(左移 3 位相当于乘以 2 的 3 次方,右移 3 位相当于除以 2 的 3 次方)
因为移位指令占2个机器周期(也称cpu周期,完成一个基本操作所需要的时间称为机器周期),而乘除法指令占4个机器周期。从硬件上看,移位对硬件更容易实现
4.Math.round(11.5)?Math.round(-11.5)?
结果为12和-11.
(1)Math.round() 四舍五入
(2)Math.ceil() “向上取整”, 即小数部分直接舍去,并向正数部分进1
(3)Math.floor() “向下取整” ,即小数部分直接舍去
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);其中有隐含的强制类型转换
1.三大特征:封装,继承,多态
封装:封装把一个对象的属性私有化,同时提供一些可以被外界访问的属性的方法
继承:继承是使用已存在的类的定义作为基础建立新子类,达到复用的目的
多态:指程序中定义的引用变量所指向的具体类型在程序运行期间才确定,这样使java语言虽然是静态的,但有了动态语言的特性
抽象类是用来捕捉子类的通用特性的。接口是抽象方法的集合
从设计层面来说,抽象类是对类的抽象,是一种模板设计,接口是行为的抽象,是一种行为的规范
1.成员变量与局部变量
成员变量:方法外部,类内部定义的变量。有默认初始值
局部变量:类的方法中的变量。没有初始值,使用前必须赋值
2.静态变量与普通变量
静态变量: 静态变量由于不属于任何实例对象,属于类的,所以在内存中只会有一份,在类的加载过程中,JVM只为静态变量分配一次内存空间
实例变量: 每次创建对象,都会为每个对象分配成员变量内存空间,实例变量是属于实例对象的,在内存中,创建几次对象,就有几份成员变量
原文:https://www.cnblogs.com/muacheng/p/13494204.html