
Java
三生石1103
我是菜鸟
展开
-
【Java】JVM(六)虚拟机字节码执行引擎
一、概述 执行引擎是虚拟机中最核心的部分之一, 虚拟机自己实现引擎,自己定义指令集和执行引擎的结构体系。二、栈帧 栈帧包含(1)局部变量表、(2)操作数栈、(3)动态链接、(4)方法返回地址、(5)额外的附加信息 栈顶的栈帧为当前栈帧,是唯一有效的。 2.1 局部变量表 用于存放方法参数和方法内部定义的局部变量。单位为槽(Slot),每个槽可以存放...原创 2018-08-06 16:55:00 · 146 阅读 · 0 评论 -
【Java】JVM(三)、Java垃圾收集器
一、Minor GC、Major GC 和 Full GC Minor GC:清理新生代空间,当Eden空间不能分配时候引发Minor GC Major GC:清理老年代空间 Full GC:清理Java堆空间二、新生代垃圾收集器 1. Serial 收集器 线程:单线程收集器, 算法:新生代标记复制,老年代标记整理 缺点:在进行垃圾...原创 2018-07-12 09:14:00 · 151 阅读 · 0 评论 -
【Java】杂项、Equals 和 hashCode
equals 和 hashCode含义equal:判断两个对象是否相等,如果相同,返回true 否则返回falsehashcode: 返回一个int数 Object 默认(内部地址转化为一个数字)两者关系 如果equals(obj)返回true, 那么 hashCode一定返回一样的值 如果equals(obj)返回false, 那么 hashCode 不一定返回...原创 2019-04-02 10:33:00 · 167 阅读 · 0 评论 -
【Java】JVM(二)、Java垃圾收集算法
一、标记-清除算法 算法主要分为两个步骤 1. 标记: 遍历所有的 GC Roots, 然后标记所有可达对象为存活对象 2. 清除: 遍历堆中所有对象,然后将没有标记的对象清除。 存在不足: 1. 效率低下。 2. 产生大量的磁盘空间二、复制算法 原理:将磁盘分为一半一半,每次都是用50%内存,在内存用完了, 将这50%内存中存活的...原创 2018-07-11 10:01:00 · 133 阅读 · 0 评论 -
【Java】JVM(一)、Java内存区域
一、程序计数器(Program Counter Register) 当前执行字节码的行号指示器,可以通过修改该计数器的值来实现字节码指令(分支,循环,跳转等), 每个线程都都有一个程序计数器, 属于线程的私有变量, 独立存储, 互不影响。 ps. 如果当前执行的是Java方法,该计数器记录的事正在执行的指令地址。如果当前执行的事Native方法(本地方法,与平台有关,由于Java无...原创 2018-07-10 21:55:00 · 141 阅读 · 0 评论 -
【Java】JavaIO(二)、节点流
一、InputStream & outputStream Java字节流主要是以InputStream (输入流),outputStream(输出流)为基类,本身是抽象类不能创建实例,但是是字节流的基类,所以方法都可以使用,主要的方法有 InputStream:1 int read();读取单个字节2 int read(byte[] b); 最多读取b.length 字...原创 2017-09-08 21:28:00 · 148 阅读 · 0 评论 -
【Java】JavaIO(一)、基础知识
一、常用概念介绍 Java的IO,实现输入输出的基础,可以方便的实现数据的输入输出二、流的分类 1. 按照流向来分: a). 输入流:向应用程序输 b). 输出流:从应用程序中输出 输入输出流是站在程序的角度来说的,只要是向程序中输入就是输入流,从程序中输出数据就是输出流。 2. 按照流的数据单元来分: a). 字节流:数据的传输单元为一个字节,8位...原创 2017-09-08 20:24:00 · 201 阅读 · 0 评论 -
【Java】基础、Java 数据类型
Java 整形一、Java中整形有下面几种1. byte 共 8 字节 (-2^7 ~ 2^7-1 )2. short 16字节3. int 32字节4. long 64字节1).其中在内存中存储的时候是按照数字的补码存储的,下面说一下原码, 反码, 补码原码 : 对于正数将数字转化为二进制 比如 8 可以转化为二进制数字 00001000 其中最高位为符号位, 对于负数 最高位的...原创 2015-09-27 22:10:01 · 363 阅读 · 0 评论