标签:并且 处理 obj 操作 finally 对象关联 情况下 多态性 erro
1、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?
可以有多个类,但只能有一个public的类,并且public的类名必须与文件名相一致。
2、Java有没有goto?
java中的保留字,现在没有在java中使用
3、&和&&的区别
&和&&,都可以作为逻辑与运算。
&& 具有短路的功能。就是如果前一个条件不成立,不会执行后面的条件。
当两边不是boolean时。&可以作位运算符
4、switch语句能否作用byte、long、String上?
在switch(e)中,e只能是一个整数表达式或者枚举常量。
Byte、short、int、char及其对应的包装类都可以支持使用。
Long、double、float、boolean及其包装类不支持使用。
JDK1.7之后才可以作用在string上。
5、short i=1;i=i+1;会报错。而 i+=1;就不会
由于i+1时,会自动提升表达式的类型。变为int。所以int类型赋值给short类型。需要强转。
i+=1;是java语言规定的运算符。java编译器会对它进行特殊处理,因此可以正确编译。
6、char型变量中能不能存储一个中文汉字?为什么?
char型变量是用来存储Unicode编码的字符的,Unicode编码包含有的中文,都可以使用。不包含的就不能存储。
并且,unicode编码占用两个字节,所以,char类型的变量也是占用两个字节
7、用最有效率的方法算出2乘以8等于几?
可以用向左位移。2<<3。2向左位移3位。相当于2*2的3次方。Cpu支持的高效率算法。
位移符号:
m << n :相当于 m * 2的n次方
m >> n :相当于m/2的n次方(原来是正,得数为正,反为负)
>>> : 无符号右移。和右移一样。但是,得数是正数。
没有<<<这个符号的。
8、使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变?
是指引用变量不能变。
变量所指的内容是可以变的。像这样:
final int[] a = new int[2];
a[0] = 3; //可以改变内容
a = new int[5]; //不可以改变变量
9、静态变量和实例变量的区别?
语法上:静态变量需要加static。实例变量不用
运行时:实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变量才会被分配空间,才能使用这个实例变量。静态变量不属于某个实例对象,而是属于类,所以也称为类变量,只要程序加载了类的字节码,不用创建任何实例对象,静态变量就会被分配空间,静态变量就可以被使用了。总之,实例变量必须创建对象后才可以通过这个对象来使用,静态变量则可以直接使用类名来引用
10、是否可以从一个static方法内部发出对非static方法的调用?
不可以。因为非static方法是要与对象关联在一起的,必须创建一个对象后,才可以在该对象上进行方法调用,而static方法调用时不需要创建对象,可以直接调用
11、Integer与int的区别
Int是原始数据类型。Integer是int的包装类型。
Int默认值为0;Integer的默认值为null;
12、Math.round(11.5)等於多少?Math.round(-11.5)等於多少?
Math中提供了3中取整的方法:ceil、floor、round
Ceil(天花板):表示向上取整。
Floor(地板):表示向下取整。
Round(四舍五入):其实是Math.floor(x+0.5),即将原来的数字加上0.5后再向下取整
13、Overload和Override的区别?
Overload(重载):同一个类中可以有多个名称相同的方法,但,参数列表各不相同。不是多态性。
Override(重写/覆盖):覆盖/重写父类的方法。
13、接口和抽象类的解说
接口可以继承接口。
抽象类可以实现(implements)接口,
抽象类可以继承具体类。
抽象类中可以有静态的main方法。
14、abstract class和interface语法上有什么区别?
1、抽象类可以有构造方法,接口中不能有构造方法。
2.抽象类中可以有普通成员变量,接口中没有普通成员变量
3.抽象类中可以包含非抽象的普通方法,接口中的所有方法必须都是抽象的,不能有非抽象的普通方法。
4. 抽象类中的抽象方法的访问类型可以是public,protected和(默认类型,虽然eclipse下不报错,但应该也不行),但接口中的抽象方法只能是public类型的,并且默认即为public abstract类型。
5. 抽象类中可以包含静态方法,接口中不能包含静态方法
6. 抽象类和接口中都可以包含静态成员变量,抽象类中的静态成员变量的访问类型可以任意,但接口中定义的变量只能是publicstatic final类型,并且默认即为publicstatic final类型。
7. 一个类可以实现多个接口,但只能继承一个抽象类。
15、内部类可以引用它的包含类的成员吗?有没有什么限制?
完全可以。如果不是静态内部类,那没有什么限制!
如果用静态内部类来做一个特例。则只能访问外部类的静态成员变量。
16、String s = "Hello";s = s + "world!";这两行代码执行后,原始的String对象中的内容到底变了没有?
没有。因为String被设计成不可变(immutable)类,所以它的所有对象都是不可变对象。
在这段代码中,s原先指向一个String对象,内容是 "Hello",然后我们对s进行了+操作,那么s所指向的那个对象是否发生了改变呢?答案是没有。这时,s不指向原来那个对象了,而指向了另一个 String对象,内容为"Hello world!",原来那个对象还存在于内存之中,只是s这个引用变量不再指向它了。
17、是否可以继承string类
不可以继承。String默认final修饰,是不可继承的。
18、String和StringBuffer的区别
String类提供了数值不可改变的字符串。而这个StringBuffer类提供的字符串可以进行修改。当你知道字符数据要改变的时候你就可以使用StringBuffer。典型地,你可以使用StringBuffers来动态构造字符数据
19、final, finally, finalize的区别
final:用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。内部类要访问局部变量,局部变量必须定义成final类型。
finally :异常处理语句结构的一部分,表示总是执行。
finalize :Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。但是JVM不保证此方法总被调用
20、能将 int 强制转换为 byte 类型的变量吗?如果该值大于 byte 类型的范围,将会出现什么现象?
可以做强制转换,但是 Java 中 int 是 32 位的,而 byte 是 8 位的,所以,如果强制转化,int 类型的高 24 位将会被丢弃,因为byte 类型的范围是从 -128 到 128。
21、error和exception有什么区别?
error 表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况。
exception表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。
标签:并且 处理 obj 操作 finally 对象关联 情况下 多态性 erro
原文地址:https://www.cnblogs.com/huangcan1688/p/12121193.html