Java不可不知的6个小知识
Java不可不知的7个小知识
1、assert用法
(1)新增关键字(语法),用于测试boolean表达式状态,可用于调试程序
(2) assert <boolean表达式>,(true)则下面的语句执行,否则抛出AssertionError。
(3)assert < boolean表达式>:<other表达式>,(true)后面的表达式忽略,否则后面表达式的值用于AssertionError的构建参数。
2、GC是什么?
GC垃圾收集(Gabage Collection),Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,Java语言没有提供释放已分配内存的显示操作方法。
3、String s = new String(“xxx”) 创建了几个String Object?
2个,new一个,String一个
4、sleep() 和 wait() 区别?
(1)sleep是线程类(Thread)的方法,导致此线程暂停执行指定时间,给执行机会给其他线程,但是监控状态依然保持,到时后会自动恢复。调用sleep不会释放对象锁。
(2)wait是Object类的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify方法(或notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行状态。
5、Java没有goto
6、error和exception区别?
(1)error 表示恢复不是不可能但很困难的情况下的一种严重问题。
(2)exception 表示一种设计或实现问题。
7、abstract class和interface区别?
(1)abstract class)用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。
(2)接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。接口只可以定义static final成员变量。由于有抽象类,它允许使用接口名作为引用变量的类型,通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换,instanceof 运算符可以用来决定某对象的类是否实现了接口。