码迷,mamicode.com
首页 >  
搜索关键字:java虚拟机    ( 4370个结果
深入JAVA虚拟机之类加载机制
前言:前面学习了类Class文件格式和里面具体的内容,也已经学习了运行时数据区的各部分区域的内容。接下来就是学习JVM是如何把Class文件中记录的信息加载到运行时内存中的,以及class文件中各个部分的信息分别存放在运行时数据区的什么地方。从这篇文字中我们能获得什么?1.虚拟机是如何加载Class文件的2.Class文件信息进入JVM后有那些变化3.进一步理解运行时数据区、Class文件信息、以
分类:编程语言   时间:2018-08-11 23:48:37    阅读次数:430
垃圾收集器与内存分配策略(深入理解Java虚拟机)
3.1 概述 垃圾收集器要解决哪些问题? 哪些内存需要回收 什么时候回收 如何回收 哪些内存需要回收 什么时候回收 如何回收 引用计数算法:当有一个地方引用,+1,引用失效,-1。 缺点:对象之间相互循环引用的问题。 可达性分析算法: 思路:通过一系列的成为“Gc Roots"的对象作为起始点,从这 ...
分类:编程语言   时间:2018-08-11 15:35:33    阅读次数:190
深入JAVA虚拟机之运行时数据区
前言最近在啃一本书《深入JAVA虚拟机》,这本书不是第一次看,可以说是从大学就开始看,这一次应该算第三次啃这本书,也应该说算是第一次真正啃这本书。大学的时候,只是好奇表层的一些神奇现象,随着工作几年后,现在回过头来再次啃这本书,对于表层的那些以前觉得神奇的现在已经感觉乏味,反而对于底层是如何实现、如何运作的越来越着迷。这也是这次看这本书的初衷。通过写博客记录下自己的学习过程,也方便以后回头看看现在
分类:编程语言   时间:2018-08-10 21:13:46    阅读次数:181
java创建对象的初始化过程
1. 父类静态成员变量和静态代码块 (java虚拟机加载类时,就会执行该块代码,故只执行一次) 2.子类静态成员变量和静态代码块 (java虚拟机加载类时,就会执行该块代码,故只执行一次) 3. 父类普通成员变量 4. 父类普通代码块(每次new,每次执行 ) 5. 父类构造函数(每次new,每次执 ...
分类:编程语言   时间:2018-08-10 19:45:14    阅读次数:190
配置JAVA开发环境
领导要求使用java做接口测试,所以第一步先搭建java的开发环境啦。 第一步:安装JDK 1、 了解一下 JVM(Java Virtual Machine—Java虚拟机) JRE(Java Runtime Environment—Java运行时环境) JDK(Java Development k ...
分类:编程语言   时间:2018-08-10 19:32:55    阅读次数:138
GC回收方法区
很多人认为方法区(或者hotSpot虚拟机中的永久代)是没有垃圾收集的,java虚拟机规范中确实说过不要求虚拟机在方法区实现垃圾收集,而且在方法区中进行垃圾收集的“性价比”一般比较低:在堆中,尤其是新生代中,常规应用进行一次垃圾收集一般可以回收70% ~ 95%的空间,而永久代的垃圾收集效率远低于此 ...
分类:其他好文   时间:2018-08-10 16:02:44    阅读次数:887
Java 虚拟机对锁优化所做的努力
作为一款公用平台,JDK 本身也为并发程序的性能绞尽脑汁,在 JDK 内部也想尽一切办法提供并发时的系统吞吐量。这里,我将向大家简单介绍几种 JDK 内部的 "锁" 优化策略。 1、 锁偏向 锁偏向是一种针对加锁操作的优化手段。 如果一个线程获得了锁,那么锁就进入偏向模式。当这个线程再次请求锁时,无 ...
分类:编程语言   时间:2018-08-10 10:48:12    阅读次数:122
java程序运行中如果出现异常未被处理,将会被抛到java虚拟机进行处理,程序中断运行后被挂起,在页面输出错误信息(不会输出到console)
下面的代码中,因为我是使用 迭代器遍历根节点的所有子节点的flag,但是因为linux基线有 <initcmd> 节点,导致flag为空, 在传入service中进行数据库操作时抛出异常未被处理导致程序被挂起,错误信息不输出到console,直接打印到了页面。 解决方法就是try catch处理掉异 ...
分类:编程语言   时间:2018-08-08 18:53:16    阅读次数:166
Java入门
Java应用程序的运行机制 JAVA利用javac(编译器)将程序文件(后缀名为.java)编译成.class(字节码文件), 最后利用虚拟机(解释器,java)解释执行。 Java虚拟机是实现跨平台的核心机制。不同的操作系统有不同的虚拟机。 在java中始终有一个main函数,它作为程序的入口,程 ...
分类:编程语言   时间:2018-08-07 18:53:05    阅读次数:140
线程生命周期
1、线程的生命周期:新建(New)、就绪(Runnable)、运行(Running)、阻塞(Blocked)和死亡(Dead)5种状态。 2、当线程对象调用了start()方法之后,该线程处于就绪状态,Java虚拟机会为其创建方法调用栈和程序计数器,处于这个状态中的线程并没有开始运行,只是表示该线程 ...
分类:编程语言   时间:2018-08-07 13:58:54    阅读次数:133
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!