- 博客(14)
- 收藏
- 关注
原创 类的热编译+热加载的功能
类加载机制实践 系统调用一个class,比如xx.class去查看xx类的信息的时候: 1,loadClass,先在loadedClass里找,找不到,就交给父类去load试试,如果父类还是找不到(返回null),就去调用findClass试试 2,findClass去找未加载进内存的.class方法,如果找到了,就做defineClass的步骤,把它加载进内存 3,defineClass...
2018-04-23 02:30:29 1514
原创 多线程相关
读java并发编程的艺术,记录 各种关键字以及概念 CAS算法 campare and swap,比较并交换算法。比较旧值有没有更改,没有,才放入新值。 面临的问题/隐患 ABA问题,比较的旧值是A,写入值是B,当前值虽然是A,但是实际上是A->B->A,第三个A了,而不是第一个A。针对这种情况,在变量前追加版本号来解决。 针对多个变量的情况,就不能用CAS,要用锁...
2018-04-22 23:57:17 157
原创 编译器优化,运行时优化
读深入理解JAVA虚拟机 第十,十一章,记一下内容 编译器优化,运行时优化 虚拟机设计团队把对性能的优化集中到了后端的即时编译器中,这个可以让那些不是由javac产生的class文件有(比如其他语言编译的class文件)也享受到编译器优化带来的好处。 但是javac做了许多针对java语言编码过程的优化措施,来改善程序员的编码风格和提高编码效率,相当多的新生的java语法特性,都是靠编译器通...
2018-04-16 02:05:48 1253
原创 HashMap小记
HashMap小记 基于jdk1.8版本的 初始化 默认初始化参数是16,负载因子是0.75的情况下,初始化的容量就是 16*0.75= 12 也就是说在放入第13个数据的时候,就会进行扩容到16*2等于32 static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // aka 16 transie...
2018-04-15 21:50:31 148
原创 虚拟机字节码执行引擎
读深入理解JAVA虚拟机 第八章,记一下内容 虚拟机字节码执行引擎 概述 执行引擎在执行java代码的时候会有解释执行(通过解释器执行)和编译执行(通过即使编译器产生本地代码执行)两种选择,也可能两者兼备。 运行时栈帧结构 每一个栈帧都包括了局部变量表,操作数栈,动态连接,方法返回地址和一些额外的附加信息。 1,每个栈帧需要分配的内存大小,都是在编译代码的时候就已经确定并且写入...
2018-04-15 04:28:33 129 1
原创 虚拟机类加载机制
读深入理解JAVA虚拟机 第七章,记一下内容 虚拟机类加载机制 概述 虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验,转换解析和初始化,最终形成可以被虚拟机直接使用的java类型。这就是虚拟机的类加载机制 在java语言里,类型的加载,连接和初始化过程都是在程序运行期间完成的。这种策略会令类加载时稍微增加一些性能开销,都是会为java应用程序提供高度的灵活性。java里天...
2018-04-14 15:03:12 112
原创 垃圾收集器与内存分配策略
读深入理解JAVA虚拟机 第二三章,记一下内容 垃圾收集器与内存分配策略 判断对象是否没有被引用的方法: 1,引用计数算法,每当有地方引用,就+1,引用失效,就-1;,计数器为0就表示不能再被使用; 问题:不能解决对象之间的循环引用 2,可达性分析算法 Reachability Analysis,主流语言都使用它,做法:通过一系列称为“GC Roots”的对象作为起始点,从这些节点开始向下...
2018-04-12 00:25:23 107
原创 Java虚拟机所管理的内存的结构
读深入理解JAVA虚拟机 第二章,记一下内容 Java虚拟机所管理的内存将会包括以下几个运行时数据区域: 方法区 Method Area; 虚拟机栈 VM Stack ; 本地方法栈 Native Method Stack 堆 Heap ; 程序计数器Program Counter Register 1,程序计数器Pr...
2018-04-11 02:01:35 143
原创 javaweb常见编码类型以及使用场景
参考深入分析javaweb技术内幕第三章 常见编码类型 1,ASCII码: 单字节编码,共128字符,用1个字节的低七位表示,0-31是控制字符如换行,回车,删除等,32-126是打印字符,可以通过键盘输入并且能够显示出来 2,ISO-8859-1 在ASCII码基础上扩展的编码,包括ISO-8859-1到ISO-8859-15,其中ISO-8859-1涵盖了大多数西欧字符,所以应用...
2018-04-09 14:06:59 616
原创 web请求过程,DNS, CDN
看深入分析javaweb技术内幕,做个摘抄总结 B/S(Browser/Server)网络架构,基于统一的应用层协议HTTP来交互数据,HTTP采用无状态的短连接的通信方式,通常情况下,一次请求就完成了一次数据交互,也对应一个业务逻辑。然后连接就断开了。这种情况下,相比长链接,服务器能够同时服务更多的用户。 B/S架构大多要求满足海量用户的访问请求,同时保持用户请求的快速响应。 请求流程...
2018-04-08 19:41:09 976
原创 fastJson看书记录
看了阿里的逆流而上,里面提到的fastJson的坑,记录一下 what happen: "hidden":{ "xx":true; "xxx":true } "hidden":true class a{ private Hidden hidden; private boolean status; public boolean isHidden{ ...
2018-04-08 10:54:36 201
原创 Zookeeper 初始化以及get,set,监听
1,安装zookeeper 2,在目录和环境变量上做对应配置,太多了,懒得写 3,D:\zookeeper\zookeeper-3.4.10-1\conf里的zoo.cfg(一开始是sample)改成对应的参数 dataDir=D://zookeeper//zookeeper-3.4.10-3//bin//data clientPort=2181 默认是2181,也可以写成其他的,一台电...
2018-04-07 02:20:05 3378
原创 zookeeper相关create以及ACL权限
客户端 初始化zookeeper 创建zookeeper节点 api: create(final String path, byte data[], List<ACL> acl, CreateMode createMode); 使用方式 String returnPath = zooKeeper.create(path, "data".get...
2018-04-06 03:16:13 2455
原创 对paxos算法的理解
相关名词解释 CAP定理: C:Consistency,一致性,指数据在多个副本之间,能够保持一致性(强一致性,一旦更新,用户不会再读到旧的数据),(最终一致性,更新以后,一段时间内,用户还是会读到旧的数据,但是最终一定会更新到新数据) A:Available,可用性,系统提供的服务必须一直处于可用状态,在有限的时间内给用户返回结果 P:Partition Tolerance,分区容错...
2018-04-03 01:38:14 199
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人