java基础部分面试题汇总1(十题一章)

1.一个Java源文件中 是否可以包括多个类(内部类除外)?有什么限制?
一个java文件中可以包括多个类,但是必须有且只能有一个类被public修饰,且该类名必须与文件名相同


2.&和&&的异同
相同点:他们都可以用作逻辑与的运算符
不同点:&还可以做位运算符,进行按位与;&&具有短路逻辑与的特点


3.switch语句能否作用在byte/long/Sytinh上?
在switch(condition)中,condition只能是一个整数表达式或者枚举常量值,byte/short/char三种基本类型都可以自动类型转换成int,因此可以作用;而long/String就不行


4.short s1 = 1; s1 = s1 +1有什么错?short s2 = 1; s2 += 1;有什么错
对于第一个,错误原因在于在进行s1+1运算时,s1会自动转换成int类型,而此时将int类型数据复制给short类型变量将会报需要强制转换类型的错误;而第二个,+=运算符是java语言规定的运算符,就类似于++自增运算符,java编译器会对他进行特殊的处理,因此可以正确编译不会报错


5.char类型变量能不能存储一个中文汉字?
char类型变量是用来存储Unicode编码的字符的,而在Unicode字符集中包含了汉字,所以char类型变量可以用来存储一个中文汉字,不过前提是该汉字被包含在Unicode字符集中;
Unicode编码字符占用两个字符,所以char类型变量也是占用两个字符


6.使用final修饰一个引用变量时,是引用变量不能变,还是引用的对象不能变?
引用的变量不能变,即该变量的地址不能变,而该变量所指向的对象中的内容还是可以改变的


7.==和equals的区别
==操作符专门用于比较两个基本变量的值是否相同或者两个引用变量是否指向同一块地址;而equals用于比较两个引用变量的值是否相同,而不在乎他们是否指向同一个地址,同一个对象
通俗点来说,==是看看左右是不是一个东西。equals是看看左右是不是长得一样。
如果一个类没有重写equals方法,他默认的比较方式就是==操作符,源代码如下:
boolean equals(Object o){

return this==o;

}


8.静态与非静态的区别
语法上:静态变量需要添加static关键字,而非静态则不用
程序运行时:非静态变量属于某个对象的属性,必须创建了实例对象,才会为这些非静态变量分配空间从而才能使用这个实例变量;而静态变量属于类,只要加载了类字节码class文件,静态变量就会被分配空间立即使用了
调用上:在静态方法中,我们不能够使用实例变量,因为这时候实例变量并没有被分配空间,并没有实例对象,因此会报错;而在实例方法中,我们可以使用静态变量


9.Integer和int的区别
首先,int为基本类型,而Integer为引用类型;其次,int类型变量默认值为0,而Integer的默认值为null,这样Integer可以区分未赋值和值为0的区别,而int就无法区分;另外,Integer提供了多个与整数相关的操作方法与一些常量


10.重写的要求
子类方法抛出的异常只能比父类抛出的更少或者为父类抛出的异常的自异常;子类方法的访问权限只能比父类的更大;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值