java
文章平均质量分 92
一个上进的螺丝钉
这个作者很懒,什么都没留下…
展开
-
Java线程之synchronized关键字
1.为什么要使用synchronized关键字在并发场景下,如果多个线程并发修改同一个对象,那么就极有可能会出现线程安全问题。换句话说,判断一段代码是否会存在线程安全问题,主要判断标准就是,有没有线程共享的变量被并发修改。话不多说,看几个例子,来加深对上面这句话的理解。public class SynchronizedTest { private static int i = 0; public static void main(String[] args) throws In原创 2021-03-30 23:09:12 · 2493 阅读 · 8 评论 -
Java线程之interrupt方法
1.背景2.Java线程中interrupt方法2.1 interrupt2.2 isinterrupted2.3interrupted3.两阶段终止模式4.总结原创 2021-03-23 00:01:24 · 5937 阅读 · 3 评论 -
JVM垃圾回收之垃圾回收算法
1.背景上一篇博客介绍了在垃圾回收时哪些对象可以被回收,这一篇主要来介绍怎么回收,即垃圾回收的算法和思想。在JVM中主要有三种回收算法:标记清除算法、标记整理算法和复制算法。如果说这三种算法属于战术层面上的算法,那么分代回收算法就是战略层面的算法。换句话说,上述三种垃圾回收算法都要在分代回收算法的前提下进行。可能听起来还是有点懵,看完下面的介绍应该就会比较清楚了。2.垃圾回收算法2.1 标记清除算法标记清除算法就如同其名字一样,主要分为标记和清除两个阶段。标记阶段,采用可达性分析算法标记出所原创 2021-03-21 00:33:43 · 181 阅读 · 0 评论 -
JVM垃圾回收之哪些对象可以被回收
1.背景Java语言相比于C和C++,一个最大的特点就是不需要程序员自己手动去申请和释放内存,这一切交由JVM来完成。在Java中,运行时的数据区域分为程序计数器、Java虚拟机栈、本地方法栈、方法区和堆。其中,程序计数器、虚拟机栈和本地方法栈是线程私有的,线程销毁后自动释放。垃圾回收的行为发生在堆和方法区,主要是堆,而堆中存储的主要是对象。那么自然而然地就会有这么几个问题,哪些对象可以被回收?通过什么方式回收?本文主要探讨第一个问题,以及JVM对Java中几种引用的回收策略。2.如何判断一个对象是原创 2021-03-17 22:10:09 · 3478 阅读 · 9 评论 -
JVM之StringTable
题目 public static void main(String[] args) { String str1 = "a"; String str2 = "b"; String str3 = "ab"; String str4 = "a" + "b"; String str5 = new String("ab"); String str6 = str5.intern(); String原创 2021-03-07 01:43:26 · 336 阅读 · 2 评论 -
详解Spring Session
请求访问tomcat-->tomact检查请求的sessionId -->根据sessionId可以找到session对象 --> 使用该session对象创建HttpServetRequest对象 -->根据sessionId找不到session对象或者请求没有带sessionId --> 创建一个session对象放进Http...原创 2020-11-08 23:04:40 · 4131 阅读 · 1 评论 -
Spring系列3--JdbcTemplate&事务
4. JdbcTemplate4.1 概念JdbcTemplate是Spring框架对JDBC进行了封装,便于数据库操作。4.2 使用1. 引入依赖spring的依赖:spring-jdbc、spring-tx、spring-orm数据库的依赖:mysql-connector-java druid2. 在spring配置文件中配置数据库连接池3. 配置JdbcTemplate对象,设置dataSource,并注入spring容器4.创建service类,dao类,在d原创 2020-10-21 23:13:27 · 278 阅读 · 0 评论 -
Spring系列2--AOP
3.AOP3.1 AOP的基本概念3.1.1 什么是AOPAOP即面向切面编程,将操作日志记录,鉴权等公共逻辑抽取出来作为切面,通过动态代理将这些切面与业务代码组装在一起,实现完整的功能,达到降低代码的耦合度和减少重复代码的目的。(不通过修改源代码的方式,在主干代码中增加新功能)3.1.2 AOP的原理AOP底层使用动态代理实现。分为两种情况,即被代理的对象实现了某个接口,这种情况使用JDK自带的动态代理,创建接口实现类的代理对象,实现对原始对象的增强;被代理的对象未实现某个接口,这种情原创 2020-10-17 00:01:29 · 252 阅读 · 0 评论 -
Spring系列1--IOC
一、spring简介二、IOC什么是IOC:控制反转。把对象创建和对象之间的调用过程都交给spring管理,主要目的是减低代码的耦合度。IOC底层原理:(1)xml解析 + 工厂模式 + 反射(得到类的字节码文件)(2)IOC过程: 创建xml配置文件,配置要创建的对象,以及对象中间的引用关系 创建工厂类 解析xml文件 通过反射创建对象IOC接口 IOC的思想基于IOC容器,底层基于工厂模式实现。Spring中提供了IOC容...原创 2020-10-14 00:21:49 · 669 阅读 · 0 评论