Java
慧有未来
总会有一天,慧站在你身边
展开
-
Java初始化顺序
初始化过程: 1. 初始化父类中的静态成员变量和静态代码块 ; 2. 初始化子类中的静态成员变量和静态代码块 ; 3.初始化父类的普通成员变量和代码块,再执行父类的构造方法;4.初始化子类的普通成员变量和代码块,再执行子类的构造方法; ...原创 2018-04-18 22:59:06 · 125 阅读 · 0 评论 -
Java集合中的关系
原创 2018-04-18 23:36:37 · 178 阅读 · 0 评论 -
Java多线程之内存可见性
可见性:一个线程对共享变量变量的修改,能够及时地被其他线程看到。Java内存模型:描述了Java程序中各种变量(线程共享变量)的访问规则,以及在JVM中将变量存储到内存和从内存中读取变量这样的底层细节。所有的变量都存储在主内存每个线程都有自己独立的工作内存,里面保存该线程使用到的变量的副本线程对共享变量的操作都必须在自己工作内存中进行不能直接从主内存中读写线程变量值的传递需要通过主内存传递可见性实...原创 2018-06-06 21:20:22 · 147 阅读 · 0 评论 -
使用jstack生成线程快照
jstack:作用:生成JVM当前时刻线程的快照(threaddump,既当前进程所有线程的信息)目的:帮助定位程序问题出现的原因,如长时间停顿,CPU占用率过高原创 2018-06-07 20:47:08 · 1222 阅读 · 1 评论 -
Java线程创建方式的比较
Runnable方式可以避免Thread方式由于Java单继承特性带来的缺陷Runnable的代码可以被多个线程(Thread实例)共享,适用于多个线程处理处理同一资源的情况。原创 2018-06-07 19:20:03 · 152 阅读 · 0 评论 -
线程生命周期
创建:Thread th=new Thread()就绪:创建了线程对象,调用了线程的start()方法(注意:此时线程只是进入了线程队列,等待获取CPU服务,具备了运行的条件,但并不一定已经开始运行)运行:处于就绪状态的线程,一旦获取了CPU资源吗,便进入到运行状态,开始执行run方法的逻辑终止:线程的run()方法执行完毕阻塞:一个正在执行的线程在某些情况下,由于某种原因而暂时让出了CPU资源,...原创 2018-06-07 19:30:30 · 143 阅读 · 0 评论 -
守护线程
用户线程:运行在前台,执行具体的任务。程序的主线程,连接网络的子线程等都是用户线程守护线程:运行在后台,为其他前台线程服务特点:一旦所有的用户线程都运行结束,守护线程随JVM一起结束工作应用:数据库连接池中的监测线程 JVM虚拟机启动后的监测线程最常见的守护线程:垃圾回收线程注意事项:设置守护线程必须在start()方法之前调用,否则会抛出异常 在守护...原创 2018-06-07 19:40:18 · 668 阅读 · 0 评论 -
Java定时任务调度
定时任务调度:基于给定的时间点,给定的时间间隔或者给定的执行次数自动执行任务TImer:JDK内置,只有一个线程执行 有且只有一个后台线程对多个业务线程进行定时定频率的调度主要构件:Quartz:第三方jar包,有线程池,定时任务更详细...原创 2018-06-08 20:03:48 · 213 阅读 · 0 评论