加载中...
MyBatis相关 MyBatis相关
缓存一级缓存是默认开启的,它在一个sqlSession会话里面的所有查询操作都会保存到缓存中,一般来说一个请求中的所有增删改查操作都是在同一个sqlSession里面的,所以我们可以认为每个请求都有自己的一级缓存,如果同一个sqlSessi
Java类加载 Java类加载
类文件结构详解回顾一下字节码 在Java中,JVM可以理解的代码就叫做字节码(即扩展名为.class的文件),它不面向任何特定的处理器,只面向虚拟机。Java语言通过字节码的方式,在一定程度上解决了传统解释型语言执行效率低的问题,同时又保留
Java中的Unsafe类 Java中的Unsafe类
本文整理完善自下面这两篇优秀的文章: Java魔法类:Unsafe应用解析-美团技术团队-2019 Java双刃剑之Unsafe类详解-码农参上-2021 阅读过JUC源码的同学,一定会发现很多并发工具类都调用了一个叫做Unsafe
代理 代理
代理模式代理模式是一种比较好理解的设计模式。简单来说就是我们使用代理对象来代替对真实对象(real object)的访问,这样就可以在不修改原目标对象的前提下,提供额外的功能操作,扩展目标对象的功能。代理模式的主要作用是扩展目标对象的功能,
序列化和反序列化 序列化和反序列化
什么是序列化、反序列化?如果我们需要持久化Java对象比如将Java对象保存在文件中,或者在网络传输Java对象,这些场景都需要用到序列化。简单来说: 序列化:将数据结构或对象转换成二进制字节流的过程 反序列化:将在序列化过程中所生成的二
阿里巴巴Java开发手册(泰山版) 阿里巴巴Java开发手册(泰山版)
一、编程规约(一) 命名风格 【强制】 代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束。反例:_name/__name/$name/name_/name$/name_
IO&NIO IO&NIO
IOIO基础知识总结IO流简介IO即Input/Output,输入和输出。数据输入到计算机内存的过程即输入,反之输出到外部存储(比如数据库,文件,远程主机)的过程即输出。数据传输过程类似于水流,因此称为IO流。IO流在Java中分
锁
悲观锁悲观锁总是假设最坏的情况,认为共享资源每次被访问的时候就会出现问题(比如共享数据被修改),所以每次在获取资源操作的时候都会上锁,这样其他线程想拿到这个资源就会阻塞直到锁被上一个持有者释放。也就是说,共享资源每次只给一个线程使用,其它线
Java中的volatile关键字 Java中的volatile关键字
VolatileTest.java 如何保证变量的可见性?在Java中,volatile关键字可以保证变量的可见性,如果我们将变量声明为volatile,这就指示JVM,这个变量是共享且不稳定的,每次使用它都到主存中进行读取。 vo
ThreadLocal ThreadLocal
ThreadLocalTest.java ThreadLocal有什么用?通常情况下,我们创建的变量是可以被任何一个线程访问并修改的。如果想实现每一个线程都有自己的专属本地变量该如何解决呢?JDK中自带的ThreadLocal类正是为了
Java中的线程 Java中的线程
线程+线程池+虚拟线程
ArrayList&CopyOnWriteArrayList ArrayList&CopyOnWriteArrayList
ArrayListArrayList的底层实现是一个Object数组,ArrayList的无参构造函数为底层的Object数组也就是elementData赋值了一个默认的空数组DEFAULTCAPACITY_EMPTY_ELEMENTDAT
HashMap&ConcurrentHashMap HashMap&ConcurrentHashMap
HashMapHashMap简介HashMap主要用来存放键值对,它基于哈希表的Map接口实现,是常用的Java集合之一,是非线程安全的。HashMap可以存储null的key和value,但null作为键只能有一个,null作为值可以有多
JVM知识点 JVM知识点
JVM内存区域、垃圾回收、调优、JVM工具、参数等相关命令
Java各类技术栈架构图汇总 Java各类技术栈架构图汇总
Java各类技术栈架构图汇总java类加载器架构 JVM架构 Java技术体系 线程运行架构 Java体系(编译与运行)结构 JMS技术架构 JMX技术架构 J2EE 框架Spring架构 Hibernate架构 ibati