12 2019 档案

摘要:线程是比进程更轻量级的调度执行单位,线程的引入可以把一个进程的资源分配和执行调度分开,各个线程可以共享进程资源,又可以独立调度。 每个已经执行start()方法且还未结束的java.lang.Thread类的实例就代表了一个线程。 1.线程的实现(三种):使用内核线程实现、使用用户线程实现、使用用户 阅读全文
posted @ 2019-12-09 13:17 MrHH 阅读(296) 评论(0) 推荐(0)
摘要:Java内存模型(JMM) Java内存模型规定了所有的变量都存储在主内存中。每条线程都有自己的工作内存,线程对变量的所有操作都必须在工作内存中进行,而不能直接读写主内存中的变量。不同的线程之间也无法直接访问对方工作内存中的变量,线程间变量值的传递均需通过主内存来完成。 内存间交互操作:Java内存 阅读全文
posted @ 2019-12-08 15:36 MrHH 阅读(250) 评论(0) 推荐(0)
摘要:虚拟机类加载机制 虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验、转换、解析和初始化,最终形成可已被虚拟机直接使用的Java类型。 在Java语言里,类型的加载、连接和初始化过程都是在程序运行期间完成的。 类加载的时机 类被加载到虚拟机后它的生命周期包括:加载、验证、准备、解析、初 阅读全文
posted @ 2019-12-07 13:20 MrHH 阅读(244) 评论(0) 推荐(0)
摘要:一、GC 第一步:判断对象是否已死?有两种方法:第一种是引用计数法,即给对象添加一个引用计数器,当被引用时,计数器就+1;当引用失效时,就-1;当计数器为0时,代表对象没有被引用。但是计数器的缺点就是:对象之间相互引用时导致计数器不为零,无法被回收。第二种方法是可达性分析法,即通过定义一系列的GC 阅读全文
posted @ 2019-12-05 22:39 MrHH 阅读(668) 评论(0) 推荐(0)
摘要:一、运行时数据区域 Java程序的执行流程:首先 .java源代码文件会被Java编译器编译为字节码文件(.class后缀),然后由JVM中的类加载器加载各个类的字节码文件,加载完毕之后,交由JVM执行引擎(包括即时编译器、垃圾收集器)执行。在整个程序执行过程中,JVM会用一段空间来存储程序执行期间 阅读全文
posted @ 2019-12-02 18:36 MrHH 阅读(418) 评论(0) 推荐(0)
摘要:存储过程(特定功能的SQL语句集) 一组为了完成特定功能的SQL语句集,存储在数据库中,经过第一次编译后再次调用不需要编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中一个重要对象。 1.创建存储过程: create procedure 存储过程名称 ( 阅读全文
posted @ 2019-12-01 14:44 MrHH 阅读(659) 评论(0) 推荐(0)