------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
------小弟在因特网的小窝,祝愿所有的朋友身体健康-------
包这个东东 所有字母小写;
类的全名 包名..类名;
包也是一种封装;
可以用protected修饰;
使用其他包中的类时,import能够简化书写,不用写长的要死的全名;
import支持星号作为通配符;
建议不要用星号通配符;
导入了多个包 多个包中有重名的东西,还是需要些全名来区分;
建议使用cn.域名.项目名这样的格式作为包名;
多线程:
线程是最小执行单元;
JAVA.EXE是虚拟机;
新建一个对象就新建了一个线程;
线程具有随机性;现在的操作系统都是多任务操作系统导致;CPU
是分时执行不同线程的;
可以继承thread类,重写run方法 方法内放置需要多线程运行的代码;
调用start方法开启新的线程;
runable接口,可以玩多实现,突破了thread的局限;
synchronize同步代码块;
传个随便对象做锁;
同步函数 作为修饰符修饰函数;
使用thread静态的同步方法用类名.class作为锁,么么么.class是后面的反射里面的东西;
懒汉式单例加同步关键字就安全了,可是效率降低了;
判断锁之前先我们自己if判断一次可以提高一点效率;
死锁:
就是你等着我释放资源A 我等着你释放资源B,最终谁都不释放,僵在哪里了;
notifyall和while替代if 避免全部睡过去;
1.5版本后使用lock.lock;
unlock;
condition.signalall;
和不all唤醒
互相唤醒,用多个condition玩;
lock.newcondition可以只唤醒对方;
finally中释放锁;
interrupt强制恢复执行;
setdeamon后台进程依靠前台,前台结束,后台自动结束;
t.join执行权给t自己挂起来等待t结束;
setpriority设置优先级;
yield强制释放,以达到类似交替执行效果;
匿名内部类玩多线程;