- 博客(12)
- 收藏
- 关注
原创 2-JVM-字节码
概述 字节码采用Big-Endian,是Spark、PowerPC等处理器的默认字节序;x86则是用Little-Endian - 字节码文件采用一种类似于C语言结构体的伪结构来存储数据,只有两种数据类型:无符号数和表 - 无符号数 - 基本数据类型,以u1,u2,u4,u8分别代表1,2,4,8字节的无符号数 - 可用来描述数字、索引引用、数量值或者按UTF...
2018-04-06 16:44:43 178
原创 2-JVM-类加载
加载过程 装载load 查找并加载类的二进制数据 链接link 验证 确保被加载类的正确性和合法性,防止高手伪造恶意的非法class文件 准备 为类的静态变量分配内存,并将其初始化为默认值 解析 符号引用 - 直接引用 初始化initialize 为类的静态变量赋予正确的初始值 静态代码块 初始化 引起类初始化情况 称为主动引用,被动引用不会引发初始化 new一个对象,ne...
2018-04-06 16:43:41 153
原创 2-JVM-虚拟机参数
堆大小设置 JVM堆大小限制因素 操作系统位数 系统可用物理内存 系统可用虚拟内存 x32:Windows一般1.5~2G;Linux 2~3G x64:无限制 典型设置 -Xms3550M -Xmx3550M -Xmn2G -Xss128K -XX:NewRatio=4 -XX:SurvivorRatio=8 -XX:PermSize=16M -XX:MaxPermSize=16...
2018-04-06 16:43:10 143
原创 2-JVM-GC
引用 狭义引用 地址 扩充引用 强引用 Strong Reference Object obj = new Object() 软引用 Soft Reference SoftReference,将要发生内存溢出才会回收 弱引用 Weak Reference WeakReference,不影响回收,可做回收通知 虚引用 Phantom Reference PhantomReference,不...
2018-04-06 16:39:49 122
原创 2-JVM-java对象
对象组成 对象头(Header)= Mark Word + Class Pointer 实例数据(Instance Data) 对齐填充(Padding) 普通对象头 2个机器码 x32:8 bytes x64:16 bytes 数组对象头: x64:24 bytes(多的8 bytes是数组长度) reference: x32:4 bytes x64:8 bytes 指针压缩 -X...
2018-04-06 16:39:05 114
原创 2-JVM-内存模型
私有 线程 程序计数器PC(native时为undefined) 虚拟机栈 本地方法栈(结构取决于语言) 虚拟机栈 栈帧(分配后无法改变大小) 本地变量数组(slot) 类方法参数从0开始,实例方法0放this this引用 方法参数 局部变量 返回值地址(returnAddress) 常量池引用 -> 当前类运行时常量池(reference) 操作数栈 类似cpu通用寄存器 本...
2018-04-06 16:37:32 144
原创 1-Java历史-jvm历史
JDK 1.0 Classic VM,纯解释执行 想要使用JIT,就需要外挂 外挂后,虚拟机执行系统被JIT接管,解释器不再工作 Sun提供的外挂JIT是sunwjit 编译器和解释器不能配合工作,导致所有代码都需要编译,编译优化被极大削弱,影响执行效率,Java比C/C++慢的映象就是这个时候出现的 JDK 1.2 在Solaris平台上发布Exact VM 执行系统已具备现代高性能虚拟机...
2018-04-06 16:34:54 209
原创 3-redis-数据类型
key 字符串类型 redis内部并不限制binary字符,但redis协议做了限制,即key中不能出现空格、换行符等边界字符 redis 1.2以后的协议中部分命令已经采用新的协议格式,但严谨而言,不建议乱用 格式约定 # 长度不要太长,占内存,查找慢;不推荐过短,可读性不好 object-type:id:field user:1000:password blog:73972:tit...
2018-01-24 10:08:12 127
原创 3-redis-安装
Linux 官网下载tar包 解压,进主目录 make 进入src,发现redis-server和redis-cli已经生成了 server启动 # 未加参数redis.conf,将按默认配置启动 src/redis-server redis.conf src/redis-cli来一发 set foo bar get foo windows redis官...
2018-01-24 10:07:28 97
原创 3-redis-概述
Redis 简介 C语言编写的,开源的key-value数据库 网络请求模块单线程,其余应该多线程;NIO 特点 非关系型数据库 5种不同类型的值 持久化(快照/AOF) 复制特性(扩展读性能) 客户端分片(扩展写性能) 数据类型 持久化 RDB(Redis Database) 指定时间间隔内,将内存中的数据集快照写入磁盘;fork一个子进程,先将数据集...
2018-01-24 10:06:23 169
原创 6-Java IO-装饰模式
1.Java IO分类 节点流-过滤流 输入流-输出流 字节流-字符流 2.InputStream,节点输入字节流的祖宗,抽象类 read():留给子类实现 public abstract int read() throws IOException; read(byte b[]):0偏移,塞满数组b public int read(byte b[]) throws IOEx...
2017-11-25 00:42:52 208
原创 1-Java历史-概述
1.0 1991.4 传奇大牛:James Gosling 项目:Green Project 用途:消费性电子产品(机顶盒,冰箱,收音机) 名称:Oak 1995.5.23 Oak -> Java Java 1.0 Write once, run any where. 1996.1.23 JDK 1.0 虚拟机:Sun Classic VM(纯解释执行) 代表特性 JVM,Appl...
2017-11-25 00:08:28 215
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人