JAVA必知必问问题-1
Posted akachengxuwang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA必知必问问题-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位。例程:
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不安全。
- 重点关键字
final,finally,finalize,abstract
-- final修饰类、变量、方法。修饰类意味着该类不能有子类,修饰变量意味着该变量是一个常量,修饰方法意味着该方法不能被子类重写,但,是可以重载的。
-- abstract 用在类上,指明该类是一个抽象类,里面至少有一个抽象方法,抽象类无法被new,通常使用其子类来操作。一个类不能既被abstract声明又被final声明。
-- finally是异常处理模块,不管有没有异常被抛出、捕获,finally块都会被执行,如果有return语句并且被正常执行,则会返回finally中的return值,如下返回“b”:
-- finalize是Object的protected方法,子类可以覆盖该方法以实现资源清理工作,当调用System.gc()回收垃圾时,垃圾对象的finalize()就会被自动调用。
获取更多资源请关注微信公众号:AKA程序王
以上是关于JAVA必知必问问题-1的主要内容,如果未能解决你的问题,请参考以下文章