虚拟机
文章平均质量分 65
愤怒的猴子
好的习惯是一天一天养成的,加油
展开
-
java之面向对象下
jdk1.5实现了装箱和拆箱的功能,装箱允许把基本类型值直接赋给对应的包装类引用变量,拆箱允许把包装类对象赋值给对应的基本类型变量。 包装类可以实现基本类型变量和字符串之间的转换。把字符串类型的值转换成基本类型的值有两种方式: 1、利用包装类的parseXXX(String s)静态方法 2、利用包装类提供的Xxx(String s)构造器 String类则提供多个重载的valueOf()原创 2016-04-22 11:31:11 · 389 阅读 · 0 评论 -
java之面向对象上
java面向对象的三大特征:封装、继承、多态 引用变量放在栈内存里,实际的对象放在堆内存里。引用变量里存放的仅仅是一个引用,它指向实际的对象。Java里的引用就是C里的指针。 如果堆内存里的对象没有任何变量指向该对象,那么程序将无法访问该对象,Java的垃圾回收机制会回收该对象,释放内存。如果希望通知垃圾回收机制回收某个对象,只要将引用变量赋值为null即可。 java提供this关键字,指原创 2016-04-21 22:15:15 · 559 阅读 · 0 评论 -
虚拟机方法调用和字节码执行
执行引擎是Java虚拟机最核心的组成部分之一。虚拟机和物理机都有代码执行能力,其别是物理机的执行引擎建立在处理器,硬件,指令集和操作系统上。而虚拟机的执行引擎是自己实现的,因此可以自行制定指令集与执行引擎的结构体系,并且能够执行那些不被硬件直接支持的指令集格式。 栈帧是虚拟机运行时数据区中的虚拟机栈的栈元素。栈帧存储了方法的局部变量表,操作数栈,动态连接和方法返回地址等信息。每一个方法从调用开始原创 2016-04-20 22:19:24 · 664 阅读 · 0 评论 -
Class文件结构
java虚拟机不和包括java在内的任何语言绑定,它只和”Class文件”这种特定的二进制文件格式所关联。使用其他语言的编译器一样可以把程序代码编译成Class文件,这样就实现了程序的“一次编写,到处运行”。Class文件是一组以8位字节为基础单位的二进制流,各个数据项目严格按照顺序紧凑的排列在Class文件之中,中间没有添加任何分隔符,这使得整个Class文件中存储的内容几乎全部是程序运行的必要数原创 2016-04-20 20:32:58 · 443 阅读 · 0 评论 -
类的加载与反射之代码演示
看下面代码请参考上一篇《类的加载加载与反射》 例子一:class FinalTest{ //编译时候直接将常量yeshiwu放入常量池中,本质上并没有直接引用到定义常量类的初始化 public static final String str="yeshiwu"; //编译的时候就可以确定为2,所以不会对类进行初始化 public static final int x原创 2016-04-18 14:48:49 · 357 阅读 · 0 评论 -
类的加载机制
Java虚拟机与程序的生命周期 在如下的几种情况下,Java虚拟机将结束生命周期 1、执行了System.exit()或者Runtime.getRuntime().exit()代码结束程序 2、程序运行到最后正常结束 3、程序在执行过程中遇到未捕获的异常或错误而结束 4、操作系统出现错误而导致Java虚拟机程序终止 当程序主动使用某个类时,如果该类没有加载到内存中,则系统会通过加载、连接原创 2016-04-18 11:42:59 · 435 阅读 · 0 评论