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