自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

转载 Full GC

(1)调用System.gc时,系统建议执行Full GC,但是不必然执行(2)老年代空间不足——————比如连续大对象直接进入老年代(3)方法区空间不足 (4)CMSGC时出现promotionfailed和concurrentmodefailure(5)在执行minor gc的时候进行的一系列检查执行Minor GC的时候,JVM会检查老年代中...

2019-09-09 10:52:00 91

转载 MySQL之事务

什么是事务?事务是一个或一组数据库操作的集合。事务的ACID原子性:事务要么都做,要么都不做。如果有一个操作执行失败,其余操作必须取消执行。一致性:事务必须从一个一致性状态变到另一个一致性状态,它和原子性是密不可分的。如果一个事务是将A的值转移到B,那么B增加的同时A必须得减少一致的数量隔离性:即使是在并发条件下,事务也不可以被其他事务所干扰持久性:...

2019-08-13 21:32:00 119

转载 Connection: Keep-Alive

上午在实验室看书,师弟让我帮忙解决个项目上的问题,问题不难,于是我教他抓包解决,让他电脑下了fiddler不过却显示不出来请求,我尝试了一下也是如此,过滤器也没开,突然意识到可能是360的问题,因为fiddler是通过http代理的方式,360很可能阻止第三方软件对浏览器代理,于是关掉360,重启浏览器终于能愉快的抓包了。调试过程中我让他F12勾上disablecache,然后眼睛...

2019-08-10 11:55:00 1766

转载 最小栈问题

题目:如何实现一个栈,既存在基本的pushpop操作,又可以有getMin操作,注:元素均是int型原始方法:维持一个变量,使之保存入栈的最小值,当第一个最小值出去后,遍历剩下的栈元素并更新最小值变量,这种算法pop的时间复杂度是O(n),其他操作的时间复杂度都是O(1),空间复杂度是O(1);改进1:如果可以申请一个连续内存来存放不同阶段的最小值,那么就不需要每次遍历了,典型...

2019-08-09 08:50:00 229

转载 Java对象头与锁

对象由多部分构成的,对象头,属性字段、补齐区域等。所谓补齐区域是指如果对象总大小不是4字节的整数倍,会填充上一段内存地址使之成为整数倍。后面两个很好理解,今天我主要想总结一下对象头:对象头这部分在对象的最前端,包含两部分或者三部分:Mark Words、Klass Words,如果对象是一个数组,那么还可能包含第三部分:数组的长度。Klass Word里面存的是...

2019-08-07 09:21:00 774

转载 联合索引还是多个单一索引?

一、联合索引测试注:Mysql版本为 5.7.20创建测试表t_mobilesms_11(表记录数为6万条):我们为userId,mobile,billMonth三个字段添加上联合索引!然后使用explain查看执行计划来观察索引利用情况:1.查询条件为useridEXPLAIN SELECT * FROM `t_mobilesms_11` WHER...

2019-08-06 22:04:00 410

转载 InnoDB与MyISAM的区别(高性能MySQL笔记)

1、InnoDB支持事务,MyISAM不支持,也就是说MyISAM不支持事务回滚操作,这个功能可能是致命的2、InnoDB支持行锁,MyISAM只支持表锁,不过InnoDB的行锁是建立在索引之上的,也就是说如果索引未命中,那么此次操作还是会降级到表锁。如uid为索引 update t_user set age=10 where uid=1; 命中索引...

2019-08-05 20:09:00 91

转载 AQS原理及应用

To use this class as the basis of a synchronizer, redefine the * following methods, as applicable, by inspecting and/or modifying * the synchronization state using {@link #getState}, {@lin...

2019-08-04 23:02:00 99

转载 CAS的实现原理

CAS的全称是CompareAndSwap,比较并交换,是Java保证原子性的一种重要方法,也是一种乐观锁的实现方式。它需要先提前一步获取旧值,然后进入此方法比较当下的值是否与旧值相同,如果相同,则更新数据,否则退出方法,重复一遍刚才的动作。由此可见,CAS方法是非堵塞的。CAS方法需要三个参数,变量内存值、旧的预期值、数据更新值CAS的伪代码可以表示为:do{  获取备...

2019-08-04 10:15:00 247

转载 线程状态辨析

一个线程有多种状态,1、新建(new):创建后尚未启动的线程处于这种状态;2、运行(runnable):包括running和ready,正在运行或者等待cpu分配时间片。运行中通过执行yield进入就绪态:让出时间片(并非锁)给优先级更高的线程,没有的话就继续执行3、无限期等待(waitiing):不会被分配时间片,要等待其他线程显式的唤醒并释放锁或中断才可返回,涉及到以下方...

2019-08-02 16:48:00 76

转载 ASCII、UNICODE、UTF

在计算机中,一个字节对应8位,每位可以用0或1表示,因此一个字节可以表示256种情况。ascii美国人用了一个字节中的后7位来表达他们常用的字符,最高位一直是0,这便是ascii码。因此ascii码是英语中字符与计算机二进制相互转换对照的一个字典。每个ascii码占一个字节。对于英语来说,128个字符已经足够用了,但是对于其他语言来说256个字符位可能也不一定够用。因此美...

2019-08-01 17:22:00 193

转载 Java并发-Java内存模型(JMM)

先来说说什么是内存模型吧在硬件中,由于CPU的速度高于内存,所以对于数据读写来说会出现瓶颈,无法充分利用CPU的速度,因此在二者之间加入了一个缓冲设备,高速缓冲寄存器,通过它来实现内存与CPU的数据交互。我们现在的计算机都是多CPU多核的,而每个CPU都需要配备一个寄存器,那么问题来了,如果一个CPU对数据进行修改写入了寄存器但没及时更新到主存,另一个CPU也对其进行了修改,便会发生...

2019-07-30 16:21:00 68

转载 Java并发-几种常见的锁

这几天在忙着投提前批内推,前面看的好多东西没有总结,正好这两天补上顺带复习一下synchronized:Java之重型锁转载于:https://www.cnblogs.com/ZoHy/p/11266533.html...

2019-07-29 21:16:00 158

转载 类初始化顺序

记住两点即可:1、父类先于子类2、静态内容加载 先于 非静态加载 先于 构造函数将以上两点结合即可彻底记住该顺序转载于:https://www.cnblogs.com/ZoHy/p/11248122.html...

2019-07-26 08:38:00 56

转载 类加载机制

动态加载与静态加载:通过new指令生成的对象属于静态加载,因为这个类必须在编译期提供,如果找不到会报错ClassNotFound;由forName加载的类属于动态加载,类的来源可以是本地文件也可以是网络二进制流;装载:JVM通过类的全限定名将二进制流转化为方法区的数据结构并在内存中生成java.lang.Class对象,整个过程叫装载绑定:一个方法的调用和方法所在的类关...

2019-07-23 20:54:00 79

转载 JVM之GC(三)

前面介绍了GC和几种主流的GC算法,这节准备说一下垃圾收集器。垃圾收集器可以分为三类,Yong GC, Old GC, Mixed GCYong GC1、Serial单线程处理,采用复制算法,通常运行在Client模式下,触发STW2、ParNew多线程处理,采用多个线程来执行复制算法,通常运行在Server模式下,触发STW,一般与CMS搭配3、Parallel...

2019-07-22 18:52:00 62

转载 JVM之GC(二)

昨天总结了GC之前要做的事情,今天介绍一下主流的GC算法。先介绍一下几个名词:StopTheWorld(STW):JVM进行GC的时候总不能一边清理垃圾一边制造垃圾把,那么垃圾鉴定的准确性根本无法得到保证,所以需要将服务全部停掉那么一瞬间;Yong GC、Minor GC:年轻代区域的GC,所有的年轻代GC都会触发STW;Old GC、MajorGC:老年代区域的G...

2019-07-22 15:50:00 92

转载 JVM之GC(一)

Java较C而言,最大的区别在于内存管理。JVM设有无用内存空间自动回收复用机制,也就是我们所说的GC。之前说过,栈是为线程、为函数的执行分配内存的地方,用完即“销毁”,这里留待以后做深入探讨;堆是为对象和数组分配内存的地方,有些对象可能会伴随着程序运行的完整生命周期,但大部分对象都是朝生夕死的,如何判断对象是否有必要“占坑”呢?首先我们要来说一下判别方法:Java中对象的活性判别主...

2019-07-20 21:33:00 74

转载 JVM之对象

几乎所有对象都是在堆中分配内存的,这次来讲讲java的对象。对象的创建主要分为以下几步:首先,查看类是否装载。当JVM读取到new指令的时候,会拿着符号描述去方法区寻找它所属的类,如果未查找到,则需要先对类进行加载解析初始化;然后,为对象分配空间。主要涉及两种方式,第一种是指针碰撞法,顾名思义,两个指针挪动,为新来的对象“挪”空间,前提是配合相应的GC算法使堆空间时刻保持连续...

2019-07-14 00:40:00 73

转载 JVM内存结构解析

月初的时候个人网站到期了,不想再折腾重新建站了,以后还是来第三方博客写文章吧,可以省去很多问题。之前写的文章也不是很多,备份懒得做了,从头开始吧。博文仅仅是用来记录和学习总结,如有错误之处请帮忙指正!今天想说说JVM内存结构的问题,说到JVM大家肯定首先想到的是栈和堆。的确,这两块说是JVM内存结构最重要的部分也不为过。先来简单介绍一下吧,内存结构按照私有和共享划分方式如下:...

2019-07-12 23:29:00 97

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除