引出基本类型包装类:
1).装箱:把基本类型数据转成对应的包装类对象。
2).拆箱:把包装类对象转成对应的基本数据类型数据。
Sun公司从Java5开始提供了的自动装箱(Autoboxing)和自动拆箱(AutoUnboxing)功能 :
自动装箱:可把一个基本类型变量直接赋给对应的包装类变量。
自动拆箱:允许把包装类对象直接赋给对应的基本数据类型变量。
自动装箱和拆箱,也是一个语法糖/编译器级别新特性.
在底层依然是手动装箱和拆箱操作.
但是:装箱操作使用的是Integer.valueOf的方式,而不是直接new Integer.
switch支持的数据类型:byte,short,char,int,也支持对应的包装类. 为何?
就是在底层,switch中会对包装类做手动拆箱操作.
Integet与int的区别(包装类型和基本数据类型的区别):
1.默认值:
int的默认值是0;
Integer的默认值为null;
推论Integer即可以表示null也可以表示0
异常
try
{
}
catch ()
{
}
flinaly(
)
1.异常就是导致程序终止的一种指令流。异常会使程序终止执行
2.throws和throw;
throws用于标致函数暴露的异常。
throw用语抛出异常的对象;
try:在这里面写可能会出错的代码
cath:捕获异常
flinaly:在捕获异常后,继续执行后面的代码:(如果写上System.exit(0),就会终止后面的代码)
线程
继承Thread类
2.建立子类对象的同时线程也被创建。
3.通过调用start方法开启线程。
Test t1 = new Test("haoren");
t1.start();
Test t2 = new Test("huairen");
t2.start();
}
class Test extends Thread{
private String name;
public Test(String name){
this.name = name;
}
public void run(){
for(int i=0;i<10;i++){
System.out.println(name+":"+i);
}
}
}
实现Runnable接口
2.通过Thread类创建线程,并将实现了Runnable接口的子类对象作为参数传递给Thread类的构造函数。
3.Thread类对象调用start方法开启线程。
实际上Thread和Runable的关系和我们前边讲的代理设计模式很像, 这里的Thread就是代理类。我们自己所实现的类才是real。
Thread和Runnable 的区别
Runnable可以共享数据