java
文章平均质量分 67
linの架构梦
这个作者很懒,什么都没留下…
展开
-
关于前篇内存分配的补充
对象动态年龄判断当前放对象的Survivor区域里(其中一块区域,放对象的那块s区),一批对象的总大小大于这块Survivor区域内存大小的50%(-XX:TargetSurvivorRatio可以指定),那么此时大于等于这批对象年龄最大值的对象,就可以直接进入老年代了,例如Survivor区域里现在有一批对象,年龄1+年龄2+年龄n的多个年龄对象总和超过了Survivor区域的50%,此时就会把年龄n(含)以上的对象都放入老年代。这个规则其实是希望那些可能是长期存活的对象,尽早进入老年代。对象动态原创 2021-03-14 15:58:16 · 90 阅读 · 0 评论 -
JVM 垃圾回收前置知识
什么是垃圾?严格来说对于JVM而言什么算垃圾?了解过类加载之后,应该知道,JVM的运行时数据区中分配一块堆内存,里面存放了我们的实例对象。那么什么样的对象才算垃圾呢?我们通常创建一个对象时一般是这样色儿的:User user = new User();可以这样简单理解,new去帮我们在堆当中创建了User对象实例,并且把这个实例的引用返回赋值给了user变量。那么我们可以这样去理解一个“合格”的对象,首先它得存在(堆中有实例),其次它被引用着(这里就包含上面那样被一个变量引用,还包含着如果这个原创 2021-03-14 15:45:37 · 148 阅读 · 0 评论 -
JVM内存结构
整体结构内容解释JVM包含有:堆,方法区,程序计数器,线程栈,本地方法栈前两者是线程共享的,后三者是线程私有堆被所有线程共享的一块内存区域,在虚拟机启动的时候创建,用于存放对象实例。对可以按照可扩展来实现(通过-Xmx 和-Xms 来控制)当队中没有内存可分配给实例,也无法再扩展时,则抛出OutOfMemoryError异常。老年代:2/3的堆空间年轻代:1/3的堆空间eden区:8/10 的年轻代survivor0: 1/10 的年轻代survivor1:1/10的年轻代原创 2021-03-12 13:26:11 · 176 阅读 · 4 评论 -
整合Mabatis-plus
一、导入依赖<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.0.5</version></dependency><dependency> <groupId>org.freemarker&l原创 2021-03-11 20:39:45 · 166 阅读 · 0 评论 -
spring 拦截器
拦截器的船新版本实现方式:自定义拦截器:public class LoginInterceptor implements HandlerInterceptor{ //preHandle是在请求执行前执行的 @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {原创 2021-03-11 20:37:04 · 108 阅读 · 2 评论 -
HashMap
核心问题HashMap中的位运算,为什么采用位运算,为什么是2的n次幂?HashMap中的扩容HashMap中的主要成员变量get方法put方法寻找索引HashMap的结构主体还是一个存放Node节点的数组产生hash冲突之后,进行链化,在对应索引位置形成链表寻找索引/** 1.7 */final int hash(Object k) { int h = hashSeed; if (0 != h && k instance原创 2021-02-03 15:50:40 · 88 阅读 · 0 评论 -
深拷贝和浅拷贝
什么是拷贝引用拷贝Employee e=new Employee("zhangsa", "232", 23);Employee e2=e;sout(e);sout(e2);//结果hashcode相同上述操作叫做引用拷贝,对象创建在栈中,e保存着对象的引用地址,而e2=e则是将引用地址赋值给e2,即e2同e一起指向栈中的同一个对象对象拷贝Employee e=new Employee("zhangsa", "232", 23); Employee clone=null; clo原创 2021-02-03 15:49:15 · 83 阅读 · 0 评论