首页
首页
沸点
课程
直播
活动
竞赛
商城
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
Java 后台开发
已注销
创建于2021-05-12
订阅专栏
Java 后台开发学习
等 1 人订阅
共11篇文章
创建于2021-05-12
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
Mybatis缓存原理分析
SqlSession提交或关闭之后二级缓存才会生效。 标签是在Mapper.xml文件中,所以在解析Mapper.xml中会处理标签。 只会解析一次Mapper.xml,也就是会只创建一次Cache对象,并放进Configuration中。 OK,代码执行到这里我们知道了Cac…
Mybatis架构设计
API接口层:提供给外部使用的接口API, 开发人员通过这些本地API来操纵数据库。接口层一接收到调用请求就会调用数据处理层来完成具体的数据处理。 mybatis和数据库的交互方式有两种:使用传统的mybatis提供的API以及使用Mapper代理的方式。 数据处理层:负责具体…
持久层框架设计思路
而持久层框架设计就是为了解决上述的问题,将程序中的对象自动持久化到关系数据库中。 问题1:数据库的配置信息存在硬编码问题 -> 将数据库相关的配置信息放到配置文件中。 加载配置文件:Resource类,定义InputSteam getResourceAsSteam(path)方…
JVM | 4 底层细节实现
在上一篇中讲到了CMS、G1都用到了并发标记,那么并发标记的具体是如何实现的呢?主流的垃圾回收器并发标记是核心的实现,我们有必要进行深入的研究。 在前几篇的文章中,介绍的垃圾回收算法有个标记清除算法,通过1和0进行标记对象是不是被使用,工作原理是这样的:最开始所有的标记位都是0…
JVM | 3 分代垃圾回收机制及垃圾回收算法
垃圾回收器主要回收堆内存,堆内存分为:新生代和老年代。 对于回收新生代GC:Minor GC或者叫Young GC。回收老年代的GC叫:Major GC 或者 Old GC. 如下图所示:一半的空间用作预留的空间它在GC之前是不会分配对象的,而另一半会进行分配对象,我们加入下图…
JVM | 2 对象及引用
检查加载:首先要检查ObjectCreate 类对应的符号引用,检查这个类是否被加载过。 分配内存:在堆空间划分内存,解决并发安全问题。 CAS 加失败重试:当线程1在分配内存时,会先读取当前值的old,然后经过预处理,CSA会通过实时值与old进行比较,如果相等则分配内存,如…
JVM | 1 深入理解内存区域
下面我们来演示一下执行一段Java代码,JVM内存的处理流程。 当程序启动的时候,由操作系统处理分配内存。 然后把内存段的起始地址和终止地址分配给JVM,接下来JVM进行内存分配。 创建对象:创建Teacher对象,放在堆中,Teacher对象放入到堆中。main方法的t1和t…
线程核心基础2
| 编号(ID) | 每个线程有自己的ID,用于标识不同的线程.被后续创建的线程使用,唯一性不能保证,不允许被修改. | | 名称(Name) | 作用让用户或程序员在开发、调试或运行过程中,更容易区分每个不同的线程、定位问题等. | | 是否是守护线程(isDaemon) |…
线程核心基础1
掌握Java并发编程的开篇,必须要掌握的线程核心基础知识. 系统体系的学习并发的知识,下面会通过如下脑图来讲解,深度掌握的线程核心基础. 主要围绕如下的脑图进行讲解多线程的实现方法有几种和正确是实现多线程以及错误的方式. 其实在实现Runnable接口和实现Thread类重写r…
多线程 | 1 聊一聊Java 线程的本质
首先,我们先看一下Linux是如何开启一个线程的,这里涉及的知识是很复杂的,我只说一下大概的流程。 如下面的代码,是Linux的底层的源码,主要通过pthread_create() 方法是glibc库提供的,该方法的作用就是去创建一个线程。 进入Thread的源码,可以找到真正…
JVM | 0 基础知识&内存区域
java文件通过javac编译成class文件,通过JVM中ClassLoader类加载器执行class文件,一般会字节码解析器执行也可能会通过JIT编译器执行,通过执行引擎编译成机器码,由硬件处理。 JVM:JVM只是一个翻译,把class文件翻译成机器码,JVM不会自己生成…