线程池
摘要:使用线程池的好处 1、减少反复创建和销毁线程的资源开销,线程池中的线程可反复使用; 2、通过设置合适的线程数,可以避免资源使用不当,线程池可通过设置线程数和任务队列灵活控制线程的数量,请求大时自动创建线程,请求少时只保留核心线程,避免系统资源浪费和过多的线程导致的内存溢出; 3、线程池可以统一管理资
阅读全文
posted @
2021-08-31 16:29
Flower2021
阅读(65)
推荐(0)
JVM学习--ClassLoader加载过程
摘要:JVM中的方法区(Java8开始叫元空间)中存储了JVM加载的类的信息和运行时常量池信息,class文件加载到jvm称之为DNA元数据模板 类加载器只负责加载class文件,至于是否可以运行,由执行引擎决定是否可以运行 类的加载过程分为 加载 loading -- 链接 linking -- 初始化
阅读全文
posted @
2020-05-28 23:32
Flower2021
阅读(170)
推荐(0)
JVM学习-String的内存分配
摘要:String 的String pool (字符串常量池)是一个固定大小的HashTable,jdk6 中是默认的数组长度是1009如果放入String pool 中的String太多,会造成hash冲突严重,导致链表很长,链表长了对于数据的更新和读取都是有性能的下降 可以通过-XX:StringTa
阅读全文
posted @
2020-05-26 22:44
Flower2021
阅读(395)
推荐(0)
Arrays.asList使用注意事项
摘要:项目中经常使用Arrays.asList方法方便的得到的list,发现有很多细节的知识点可以总结一下,总结的注意事项有以下几点: 1)通过Arrays.asList方法得到的list是固定大小的,不可以add或remove方法去改变list的元素 2)不支持基础数据类型的转换 3)改变原始数组的内容
阅读全文
posted @
2020-03-09 22:56
Flower2021
阅读(1038)
推荐(1)
es查询in的语句
摘要:{ "_source": { "include": [ "delivery_id", "sender_mobile" ] }, "query": { "bool": { "must": [ { "terms": { "sender_mobile": [ "12122222222", "1311111
阅读全文
posted @
2020-03-07 20:44
Flower2021
阅读(11977)
推荐(0)
Mybatis学习
摘要:Mybatis是什么? 一个ORM框架, Object Relational Mapping,用于实现面向对象语言里不同类型系统的数据之间的转换 官方文档:https://mybatis.org/mybatis-3/ 在官方文档中 getting started介绍的示例,快速入门 1.获取一个Sq
阅读全文
posted @
2020-03-06 00:04
Flower2021
阅读(163)
推荐(0)
JVM学习--内存区域
摘要:运行时数据区域: Java虚拟机在执行Java程序的过程中把它管理的内存划分为若干个不同的数据区域 方法区 堆 虚拟机栈 本地方法栈 程序计数器 程序计数器 程序计数器是一块较小的内存空间,是当前线程所执行的字节码的行号指示器,字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码
阅读全文
posted @
2020-02-29 21:39
Flower2021
阅读(109)
推荐(0)
如何判断一个new出来的空对象
摘要:项目中经常会遇到,一个对象中有另外一个属性DTO,当我们判断这个DTO不为null的时候,我们会去做一些其他的操作,比如落入扩展属性表,但是上游的调用方经常会new 一个新对象出来,这样判断出来不为null就是true,那么就会插入很多实际上不需要插入的数据库记录 怎么能判断出来这个对象知识new出
阅读全文
posted @
2020-02-04 12:34
Flower2021
阅读(5217)
推荐(0)
ClassLoader是怎么工作的
摘要:ClassLoader是为Java的底层技术,它是为了来加载class文件的,负责将字节码形式的Class文件转换为内存形式的Class对象,这个加载的字节码可以是磁盘文件的class文件, 也可以是jar包中的class,也可以是服务调用中来自远程服务提供的字节流,字节码的本质是一个字节数组[]b
阅读全文
posted @
2020-01-28 18:32
Flower2021
阅读(372)
推荐(0)
HashMap的resize自动扩容
摘要:在之前学习的HashMap触发红黑树条件的知识点中,有一个步骤是resize(), 再来了解一下这块的知识 HashMap是JAVA最常用的集合之一,用来存储Key-Value这种键值对形式的数据,内部通过哈希表,让存取的效率最好的时候可以达到O(1),实际使用中可能存在hash冲突,引入了链表和红
阅读全文
posted @
2020-01-27 17:59
Flower2021
阅读(592)
推荐(0)
HashMap、HashTable、LinkedHashMap、TreeMap使用和区别
摘要:1.HashMap继承AbstractMap 实现Map接口,Map在java.util包中是独立的接口,不是继承Collection接口,继承Collection接口的有: /** * @see Set * @see List * @see Map * @see SortedSet * @see
阅读全文
posted @
2020-01-27 12:51
Flower2021
阅读(308)
推荐(0)
HashMap什么时候会触发链表转红黑树
摘要:日常工作中,被同事突然问到的一个问题,hashmap是我们JAVA程序中使用频率非常高的key-value键值对形式的数据类型 结论是目前能触发转化的两个条件是:一个是链表的长度达到8个,一个是数组的长度达到64个 为什么要触发这个转换,目前官方的解释: Because TreeNodes are
阅读全文
posted @
2020-01-27 11:33
Flower2021
阅读(9252)
推荐(0)
Java静态分派和动态分派
摘要:文章参考:https://blog.csdn.net/ns_code/article/details/17965867 public class StaticDispatch { static abstract class Humnan {} static class Man extends Hum
阅读全文
posted @
2020-01-26 11:53
Flower2021
阅读(583)
推荐(0)