JAVA必知必问问题-1

时间:2024-01-25 18:27:06
  1. 数据类型

1) 基本类型: byte, int, long, float, double, boolean....

要求记住基本类型占多少字节、范围。例如:byte 1字节范围-128-127,short 2字节,int 4字节,long 8字节,float 4字节,double 8字节,char 2字节,boolean 1字节。1字节=8位。例程:

file

2) 对象类型: Integer,Long,Float, Double,Boolean,Student...

占多少字节由java虚拟机决定。

3) 类型的转换:

A. 子类可*转父类,父类通常无法转子类;

B. 低精度可*转高精度,高精度无法转低精度, 例如:int 转double;

C. 兄弟之间无法强转,例如: apple转orange

D. 范围小的能转成范围大的,反之不能,例如:int 转long

4) 装箱和拆箱:自动将基本数据类型转换为引用类型就是装箱,自动将引用类型转换为基本数据类型就是拆箱。

5) 常被问到的几个类

第一,Object类型

-- equals(),hashcode(),wait(),notify(),toString(), sleep()

-- 为什么要重写hashcode()和equals()? 完全由业务决定,例如String类重写了equals(),它是为了比较2个字符串的内容是否相等。

第二,String,StringBuffer,StringBuilder

-- String为final的字符串常量,而StringBuilder和StringBuffer均为字符串变量;

-- 运行速度快慢为:StringBuilder > StringBuffer > String;

-- String是所以线程安全,StringBuffer线程也是安全的,StringBuilder不安全。

  1. 重点关键字

final,finally,finalize,abstract

-- final修饰类、变量、方法。修饰类意味着该类不能有子类,修饰变量意味着该变量是一个常量,修饰方法意味着该方法不能被子类重写,但,是可以重载的。

-- abstract 用在类上,指明该类是一个抽象类,里面至少有一个抽象方法,抽象类无法被new,通常使用其子类来操作。一个类不能既被abstract声明又被final声明。

-- finally是异常处理模块,不管有没有异常被抛出、捕获,finally块都会被执行,如果有return语句并且被正常执行,则会返回finally中的return值,如下返回“b”:

file

file

-- finalize是Object的protected方法,子类可以覆盖该方法以实现资源清理工作,当调用System.gc()回收垃圾时,垃圾对象的finalize()就会被自动调用。

file

获取更多资源请关注微信公众号:AKA程序王