【002期】JavaSE面试题(二):基本数据类型与访问修饰符

Java的数据类型有哪些?

访问权限修饰符 public、private、protected, 以及不写(默认)时的区别?

Java中成员的访问权限共有四种,可见性如下:

privatedefaultprotectedpublic
同一类中
同一包中的类
子类
其他包中的类

接口和抽象类有什么区别?

实现:

抽象类的子类使用extends来继承

接口必须使用implements来实现接口

构造函数:

抽象类可以有构造函数

接口没有

main方法:

抽象类有main方法,并且可以运行

接口不能有main方法

实现数量:

类可以实现多个接口

但是只能继承一个抽象类

访问修饰符:

接口中的方法默认使用public修饰符

抽象类中的方法可以是任意访问修饰符

final, finally, finalize 的区别?

final

用于声明属性、方法和类分别标识属性不可变,方法不可覆盖,类不可继承

finally

是异常处理语句结构的一部分,标识总是执行

finallize

是Object类中的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,

可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。jvm不保证此方法

总被调用。

抽象类能用final修饰吗?

不能,定义抽象类就是让其他类继承的,如果定义为final,该类就不能被继承,这样彼此

就会产生矛盾,所以final不能修饰抽象类。

为什么不能用浮点型表示金额?

由于计算机中保存的小数其实是十进制的小数的近似值,并不是准确值,所以千万不要

在代码中使用浮点数来标识金额等重要的指标。

建议使用BigDecimal或者Long(单位为分)来表示金额。

int 和 Integer 有什么区别?

int是java提供的8中原始数据类型之一。

java为每个原始类型提供了封装类,Integer是java为int提供的封装类。

int的默认值是0,而Integer默认值是null,是引用类型,即Integer可以区分出未赋值

和值为0的区别,int则无法表达出未赋值的情况。

int是基本的数据类型

Integer是int的封装类

int和Integer都可以表示某一个数值

int和Integer不能互用,因为他们两个不同的数值类型

char 型变量中能不能存储一个中文汉字,为什么?

char类型可以存储一个中文汉字,因为java中使用的编码是Unicode(不选择任何特定的

编码,直接使用字符在字符集中的编号,这是统一的唯一方法),一个char类型占2个字节

,所以放一个中文是没问题的。

补充:使用Unicode意味着字符在jvm内部和外部有不同的表现形式,在jvm内部都是Unicode,

当这个字符被从jvm内部转移到外部时(例如存入文件系统中),需要进行编码转换。

所以java中有字节流和字符流,以及在字符流和字节流之间进行转换的转换流,

如InputStreamReader和OutputStreamReader,这两个类是字节流和字符流之间的适配器类,

承担了编码转换的任务。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值