前言
java基础
1、switch 是否能作用在 byte 上,是否能作用在 long 上,是否能作用在 String 上?
byte,short,char 都可以隐含转换为 int,所以,这些类型以及这些类型的包装类型也是可以的。显然,long 和 String 类型都 不符合 sitch 的语法规定,并且不能被隐式转换成 int 类型
2、short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
对于 shorts1=1;s1=s1+1; 由于 s1+1 运算时会自动提升表达式的类型,所以结果是 int 型,再赋值给 short 类型 s1 时,编译器将 报告需要强制转换类型的错误。对于 shorts1=1;s1+=1;由于 += 是 java 语言规定的运算符,java 编译器会对它进行特殊处理,因此可以正确编译。
3、 编程题: 用最有效率的方法算出 2 乘以 8 等于几?
2<<3, 因为将一个数左移 n 位,就相当于乘以了 2 的 n 次方,那么,一个数乘以 8 只要将其左移 3 位即可,而位运算 cpu 直接支持的, 效率最高,所以,2 乘以 8 等於几的最效率的方法是 2<<3。4、 使用 final 关键字修饰一个变量时,是引用不能变,还是引用的对象不能变?
使用 final 关键字修饰一个变量时,是指引用变量不能变,引用变量所指向的对象中的内容还是可以改变的。5、"=="和 equals 方法究竟有什么区别?
== 比较内容equels 比较引用
6、静态变量和实例变量的区别?
在语法定义上的区别:静态变量前要加 static 关键字,而实例变量前则不加。在程序运行时的区别:实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变量才会被分配空间,才能使用这个实 例变量。静态变量不属于某个实例对象,而是属于类,所以也称为类变量,
7、Integer 与 int 的区别?
int 是 java 提供的 8 种原始数据类型之一。Java 为每个原始类型提供了封装类, Integer 是 java 为 int 提供的封装类。 int 的默认值为 0,而 Integer 的默认值为 null
8、Math.round(11.5)等于多少? Math.round(-11.5)等于多少?
它表示“四舍五入”,算法为 Math.floor(x+0.5),即将原来的数字加上 0.5 后再向下取整,所以,Math.round(11.5)的结果为 12,Math.round(-11.5)的结果为-119、abstract class 和 interface 有什么区别?
1.抽象类可以有构造方法,接口中不能有构造方法。2.抽象类中可以有普通成员变量,接口中没有普通成员变量 3.抽象类中可以包含非抽象的普通方法,接口中的所有方法必须都是抽象的,不能有非抽象的普通方
4.抽象类中的抽象方法的访问类型可以是 public,protected 和默认类型,但接口中的抽象方法只能是 public 类型的,并且默认即 为 publicabstract 类型。
5.抽象类中可以包含静态方法,接口中不能包含静态方法
6.抽象类和接口中都可以包含静态成员变量,抽象类中的静态成员变量的访问类型可以任意,但接口中定义的变量只能是 public static 类型,并且默认即为 publicstatic 类型。
7.一个类可以实现多个接口,但只能继承一个抽象
接口更多的是在系统架构设计方法发挥作用,主要用于定义模块之间的通信契约。而抽象类在代码实现方面发挥作用,可以实现 代码的重用,例如,模板方法设计模式是抽象类的一个典型应用,假设某个项目的所有 Servlet 类都要用相同的方式进行权限判断、记 录访问日志和处理异常,那么就可以定义一个抽象的基类,让所有的 Servlet 都继承这个抽象基类,在抽象基类的 service 方法中完成 权限判断、记录访问日志和处理异常的代码,在各个子类中只是完成各自的业务逻辑代码,
10、是否可以继承 String 类?
String 类是 final 类故不可以继承。11、String 和 StringBuffer 的区别
JAVA 平台提供了两个类:String 和 StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。这个 String 类提供了 数值不可改变的字符串。 而这个StringBuffer类提供的字符串进行修改12、final, finally, finalize 的区别
final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。 内部类要访问局部变量,局部变量必须定义成 final 类型,例如,一段代码……
finally 是异常处理语句结构的一部分,表示总是执行。
//析构函数 finalize 是 Object
类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回 收,例如关闭文件等。JVM 不保证此方法总被调用