1.sleep() 和 wait() 有什么区别?
sleep():是线程类的静态方法,让调用线程进入睡眠状态,让出执行机会给其他线程,等到休眠时间结束后,线程进入就绪状态和其它线程一起竞争cpu的执行时间。
wait():方法是Object类的方法,当一个线程执行到wait方法时,它就进入到一个和该对象相关的等待池,同时释放对象的锁,使得其他线程能够访问
2.线程的 run()和 start()有什么区别?
start()方法来启动一个线程,真正实现了一个多线程的运行
run()方法是在本线程里的,只是线程里的一个函数,而不是多线程
每个线程都是通过某个特定Thread对象所对应的方法run()来完成其操作的,方run()称为线程体,通过调用Thread类的start()方法来启动一个线程
3.如何将字符串反转
①,使用StringBuilder或StringBuffer的reverse方法,本质都调用了他们的父类
②,递归
4.什么是反射,有什么作用?
就是在运行状态中:
获取任意名称,package信息,所有属性,方法,注解,类型。
获取任意对象的属性,并且能改变对象的属性
调用任意对象的方法
判断任意对象所属的类
5,重载和重写有什么区别
①,作用范围:重写的作用范围是父类和子类之间;重写是发生在一个类里面
②,参数列表:重载必须不同,重写不能修改
③,返回类型:重载可修改,重写方法返回相同类型或子类
④,抛出异常:重载可修改,重写一定不能抛出比父类更广的异常
⑤,访问权限:重载可修改,重写一定不能做更为严格的限制



