![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA
文章平均质量分 52
baoxiaofei
这个作者很懒,什么都没留下…
展开
-
使用NIO中ByteBuffer.allocateDirect和ByteBuffer.allocate后性能的确不一样。
package com.bxf.NIOTest;import java.io.FileInputStream;import java.io.FileOutputStream;import java.nio.ByteBuffer;import java.nio.channels.FileChannel;public class allocateDirectTest {...原创 2015-12-14 15:31:32 · 807 阅读 · 0 评论 -
每天学一点:java虚拟机11
对象生命周期之--实例化实例化一个类有四种途径:1、使用new操作符;2、调用Class或者newInstance()方法;3、调用任何现有对象的clone()方法;4、通过java.io.ObjectInputStream类的getObject()方法反序列化;虚拟机为实例变量赋初值会根据创建对象的方法不同采用三种技术:1、如果对象是clone()调用创建,虚拟机...原创 2016-01-26 11:38:42 · 167 阅读 · 0 评论 -
每天学一点:java虚拟机10
准备:在准备阶段,虚拟机为类变量分配内存,设置默认初始值;解析:解析过程就是在类型的常量池中寻找类、接口、字段、方法的符号引用,把这些符号引用替换成直接饮用的过程;初始化:为类变量赋予正确的初始值,一个正确的初始值是通过类变量初始化语句或者静态初始化语句给出的;所有的类变量初始化语句和类型的静态初始化器都被java虚拟机收集在一起,放到被称为的方法中,此方法只能被虚拟机调用...原创 2016-01-26 11:15:40 · 153 阅读 · 0 评论 -
每天学一点:java虚拟机9
类型的声明周期所有java虚拟机必须实现在每个类或者接口首次主动使用时初始化。以下六种情形符合主动使用要求:1、创建某个类的新实例;2、调用某个类的静态方法,即在字节码中执行invokestatic指令时;3、使用某个类或者接口的静态字段,或者对静态字段赋值(在字节码中执行getstatic、putstatic指令)。用final修士的静态字段除外,他被初始化为一个编译时的常量表达...原创 2016-01-25 20:25:30 · 131 阅读 · 0 评论 -
每天学一点:java虚拟机8
特殊字符串: 常量池中容纳的符号引用包括三种特殊的字符串:权限定名、简单名称、描述符。 所有的符号引用都包括类或者接口的全限定名。字段的符号引用除了全限定类型名外,还包含简单字段名和字段描述符。方法的符号引用除了全限定类型名外,还包含简单方法名和方法描述符。字段的描述符给出了字段的类型,方法描述符给出了方法的返回值和方法参数的数量、类型、顺序;方法描述符只能包含25...原创 2016-01-25 17:38:19 · 134 阅读 · 0 评论 -
每天学一点:java虚拟机7
Class文件:access_flags:access_flags为两个字节,紧跟常量池,展示了文件中定义的类或接口的几段信息。access_flags中所有未使用的位都必须有编译器置0,而且java虚拟机必须忽略它。this_class:两个字节,他是一个对常量池的索引。this_class位置的常量池入口必须为CONSTANT_Class_info标。该表由两部分组成:...原创 2016-01-21 16:02:53 · 105 阅读 · 0 评论 -
每天学一点:java虚拟机6
Class文件:每个文件前4个字节都被称为它的魔数(magic number):0xCAFEBABE。如果一个文件不是以这个开头,那就肯定不是java class文件。注:CAFEBABE是咖啡品牌Peet's Coffee深受欢迎的一个产品。版本号确定了特定的class文件格式,只有给定了主版本号和一系列次版本号后,虚拟机才弄呢狗狗读取class文件。例:45.0:主版本号4...原创 2016-01-21 15:03:21 · 137 阅读 · 0 评论 -
每天学一点:java虚拟机5
java的方法调用和动态派发的频度要比C++高很多。程序的正常运行不能依靠时间分片。虚拟机规范中,java线程的行为是通过术语--变量、主存和工作内存--来定义的。每一个虚拟机实例都有一个主存,用于保存所有的程序变量(对象的实例变量、数组的元素以及类变量)每一个线程都有一个工作内存,先策划给你用它保存所使用和复制的变量的“工作拷贝”局部变量和参数,每个线程私有,逻辑上可看作...原创 2016-01-20 14:39:48 · 109 阅读 · 0 评论 -
每天学一点:java虚拟机4
虚拟机实现的核心都是他的执行引擎,使用指令集来定义java虚拟机指令集的每种操作码都有助记符,使用汇编风格,使用javap可以查看class文件中方法的字节码助记符虽然java虚拟机没有保存任意值的寄存器,但每个方法都有一个局部变量集合。指令集实际的工作方式就是吧局部变量当做寄存器,用索引来访问,局部变量使用前,必须将它压入操作数栈;平台无关性是影响指令集设计的最大因素,保证在很多...原创 2016-01-20 14:39:09 · 134 阅读 · 0 评论 -
每天学一点:java虚拟机3
局部变量区被组织为一个以字长为单位,从0开始计数的数组。类型byte、short、char的值在存入数组前被转换为int值。类型为long、double的值在数组中占据连续的两项。静态方法被视为类方法,在其局部变量中不会隐含加入reference(引用)类型参数,此隐含类型参数表示调用该方法的对象本身。byte、short、char、boolean在局部变量区都被转换成了int...原创 2016-01-20 11:12:09 · 97 阅读 · 0 评论 -
有用网站,自己收藏用
JVM、类加载1、http://www.ibm.com/developerworks/cn/java/j-dyn0429/index.html2、http://www.importnew.com/16735.html3、http://www.importnew.com/11412.html4、http://www.importnew.com/17086.html5、https:...原创 2016-01-07 14:24:42 · 122 阅读 · 0 评论 -
关于EnumMap、EnumSet的使用
enum定义是别人的,第一次看见这种用法,就测试了一下。发现EnumMap的使用与网上大家写的不一样呢,哪位大侠知道:public enum WeekDayOfEnum{ Mon("Monday"), Tue("Tuesday"), Wed("Wednesday"), Thu("Thursday"), Fri( "Friday"), Sat("Saturday")原创 2015-12-17 14:46:52 · 292 阅读 · 0 评论 -
每天学一点:java虚拟机12
finalize()方法,垃圾收集器会在释放这个实例(所占用的内存空间)前执行这个方法一次;finalize()方法抛出的任何异常都将被忽略;判断动态装载的类型的class实例在正常的垃圾收集过程中是否是可触及的有两种方式:1、如果程序保持对Class实例的明确引用,那就是可触及的;2、如果在队中还存在一个可触及的对象,在方法区中它的类型数据指向一个Class实例,那这个Cla...原创 2016-01-26 16:34:20 · 129 阅读 · 0 评论