摘要: 在计算机中,一个字节对应8位,每位可以用0或1表示,因此一个字节可以表示256种情况。 ascii 美国人用了一个字节中的后7位来表达他们常用的字符,最高位一直是0,这便是ascii码。 因此ascii码是英语中字符与计算机二进制相互转换对照的一个字典。每个ascii码占一个字节。 对于英语来说,1 阅读全文
posted @ 2019-08-01 17:22 zohy 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 先来说说什么是内存模型吧 在硬件中,由于CPU的速度高于内存,所以对于数据读写来说会出现瓶颈,无法充分利用CPU的速度,因此在二者之间加入了一个缓冲设备,高速缓冲寄存器,通过它来实现内存与CPU的数据交互。我们现在的计算机都是多CPU多核的,而每个CPU都需要配备一个寄存器,那么问题来了,如果一个C 阅读全文
posted @ 2019-07-30 16:21 zohy 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 这几天在忙着投提前批内推,前面看的好多东西没有总结,正好这两天补上顺带复习一下 synchronized:Java之重型锁 阅读全文
posted @ 2019-07-29 21:16 zohy 阅读(232) 评论(0) 推荐(0) 编辑
摘要: 记住两点即可: 1、父类先于子类 2、静态内容加载 先于 非静态加载 先于 构造函数 将以上两点结合即可彻底记住该顺序 阅读全文
posted @ 2019-07-26 08:38 zohy 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 动态加载与静态加载:通过new指令生成的对象属于静态加载,因为这个类必须在编译期提供,如果找不到会报错ClassNotFound;由forName加载的类属于动态加载,类的来源可以是本地文件也可以是网络二进制流; 装载:JVM通过类的全限定名将二进制流转化为方法区的数据结构并在内存中生成java.l 阅读全文
posted @ 2019-07-23 20:54 zohy 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 前面介绍了GC和几种主流的GC算法,这节准备说一下垃圾收集器。垃圾收集器可以分为三类,Yong GC, Old GC, Mixed GC Yong GC 1、Serial 单线程处理,采用复制算法,通常运行在Client模式下,触发STW 2、ParNew 多线程处理,采用多个线程来执行复制算法,通 阅读全文
posted @ 2019-07-22 18:52 zohy 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 昨天总结了GC之前要做的事情,今天介绍一下主流的GC算法。 先介绍一下几个名词: Stop The World(STW):JVM进行GC的时候总不能一边清理垃圾一边制造垃圾把,那么垃圾鉴定的准确性根本无法得到保证,所以需要将服务全部停掉那么一瞬间; Yong GC、Minor GC:年轻代区域的GC 阅读全文
posted @ 2019-07-22 15:50 zohy 阅读(211) 评论(0) 推荐(0) 编辑
摘要: Java较C而言,最大的区别在于内存管理。JVM设有无用内存空间自动回收复用机制,也就是我们所说的GC。 之前说过,栈是为线程、为函数的执行分配内存的地方,用完即“销毁”,这里留待以后做深入探讨;堆是为对象和数组分配内存的地方,有些对象可能会伴随着程序运行的完整生命周期,但大部分对象都是朝生夕死的, 阅读全文
posted @ 2019-07-20 21:33 zohy 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 几乎所有对象都是在堆中分配内存的,这次来讲讲java的对象。 对象的创建主要分为以下几步: 首先,查看类是否装载。当JVM读取到new指令的时候,会拿着符号描述去方法区寻找它所属的类,如果未查找到,则需要先对类进行加载解析初始化; 然后,为对象分配空间。主要涉及两种方式,第一种是指针碰撞法,顾名思义 阅读全文
posted @ 2019-07-14 00:40 zohy 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 月初的时候个人网站到期了,不想再折腾重新建站了,以后还是来第三方博客写文章吧,可以省去很多问题。之前写的文章也不是很多,备份懒得做了,从头开始吧。博文仅仅是用来记录和学习总结,如有错误之处请帮忙指正! 今天想说说JVM内存结构的问题,说到JVM大家肯定首先想到的是栈和堆。的确,这两块说是JVM内存结 阅读全文
posted @ 2019-07-12 23:29 zohy 阅读(391) 评论(0) 推荐(0) 编辑