一、JVM的生命周期当启动一个Java程序时,一个Java虚拟机实例就诞生了;当该程序关闭退出时,这个Java虚拟机也就随之消亡;JVM实例通过调用某个初始类的main方法来运行一个Java程序;这个main方法必须是public、static的,而且返回值必须是void;任何一个拥有这样的main...
分类:
编程语言 时间:
2014-05-15 02:09:06
阅读次数:
350
一、Java内存组成组成图堆(Heap)运行时数据区域,所有类实例和数组的内存均从此处分配。Java虚拟机启动时创建。对象的堆内存由称为垃圾回收器的自动内存管理系统回收。组成
组成 详解Young Generation即图中的Eden + From Space + To Space1.Eden存放新...
分类:
编程语言 时间:
2014-05-15 02:07:43
阅读次数:
320
Java栈和局部变量操作Java虚拟机是基于栈的机器,几乎所有Java虚拟机的指令都与操作数栈相关。栈操作包括把常量压入操作数栈、执行通用的栈操作、在操作数栈和局部变量之间往返传输值。1常量入栈操作:操作码在执行常量入栈操作之前,使用三种方式指明常量的值:常量值隐含包含在操作码内部、常量值在字节码中...
分类:
编程语言 时间:
2014-05-15 02:07:03
阅读次数:
509
1、针对对象的操作码实例化一个新对象需要通过new操作码来实现。对象的创建操作码操作数说明newindex在堆中创建一个新的对象,将其引用压入栈new操作码后面紧跟一个无符号16位数,表示常量池中的一个索引。在特定偏移量位置处的常量池入口给出了新对象所属类的信息。如果还没有这些信息,那么虚拟机会解析...
分类:
编程语言 时间:
2014-05-15 02:03:49
阅读次数:
441
我们知道,在JVM编译期和加载器,甚至运行期已经做了大量的调优操作,但是那些都是JVM针对Java程序所做的通用的、简单的优化,程序在运行时由于运行环境的复杂性、业务逻辑的复杂性,很多JVM是无法进行优化处理的,这就需要我们自己在写代码的时候就注意,以便我们的程序在特定的业务场景发挥到最佳性能。要进...
分类:
其他好文 时间:
2014-05-15 01:59:58
阅读次数:
275
深度学习——人工神经网络再掀研究热潮胡晓林转自:http://caai.cn/contents/118/1934.html人工神经网络起源于上世纪40年代,到今天已经70年历史了。就像人的一生,经历了起起落落,有过辉煌,有过黯淡,有过嘈杂,有过冷清。总体说来,过去的20年中人工神经网络的研究不温不火...
分类:
其他好文 时间:
2014-05-15 01:59:20
阅读次数:
903
1.对多线程的支持是Java语言的一大优势,Java对线程的控制主要集中在对线程的同步和协作上,Java使用的同步机制是监视器。监视器java监视器支持两种线程:互斥和协作。java虚拟机通过对象锁来实现互斥,允许多个线程在同一个共享数据上独立而不干扰地工作。协作则通过object类的wait方法....
分类:
编程语言 时间:
2014-05-15 01:55:47
阅读次数:
297
《深入Java虚拟机学习笔记》- 第19章 方法的调用与返回
分类:
编程语言 时间:
2014-05-15 01:50:27
阅读次数:
234
一、体系结构组成当编写并运行一个Java程序时,就同时体验了这四种技术。用Java语言编写源代码,编译成Java
Class文件,然后再在Java虚拟机上运行class文件。当编写程序时,通过调用类中的方法来访问系统资源。当程序运行的时候,它通过调用class文件中的方法来满足程序的Java
API...
分类:
编程语言 时间:
2014-05-15 01:49:05
阅读次数:
359
Java虚拟机包括许多进行基本类型转换工作的操作码,这些执行转换工作的操作码后面没有操作数,转换的值从栈顶断获得。Java虚拟机从栈顶端弹出一个值,对它进行转换,然后再把转换结果压入栈。int、long、float、double类型之间的相互转换操作码操作数说明i2l(无)将int类型的值转换为lo...
分类:
编程语言 时间:
2014-05-15 01:45:48
阅读次数:
224