![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 88
每天都要加油呀!
这些博客是笔者在学习过程中的笔记和心得,如有谬误,望君斧正
展开
-
设计模式学习(汇总版)
设计模式学习,不只是书本上的知识,还有笔者平时工作中的应用原创 2022-10-05 18:49:38 · 1164 阅读 · 0 评论 -
指令重排序测试&volatile原理学习
文章目录1. 从CPU层面理解指令重排序1.1 鱼罐头加工的故事1.2 指令重排序优化1.3 支持流水线的处理器1.4 指令重排序导致的异常2. volatile原理2.1 保证可见性2.2 保证有序性2.3 指令交错2.4 double-checked locking 问题2.5 double-checked locking 解决2.6 happens-before3. final3.1 设置 final 变量的原理3.2 获取 final 变量的原理附录:流水线期末考试计算大题流水线技术(必考流水线的相原创 2022-05-14 10:26:20 · 539 阅读 · 1 评论 -
Java中的各种锁&显示锁ReentrantLock和AQS学习(深入源码)
文章目录1. 锁的类型&锁的分类1.1 乐观锁1.2 悲观锁1.3 自旋锁1.4 可重入锁(递归锁)1.5 读写锁1.6 公平锁1.7 非公平锁1.8 共享锁1.9 独占锁1.10 重量级锁1.11 轻量级锁1.12 偏向锁1.13 分段锁1.14 互斥锁1.15 同步锁1.16 死锁、活锁、饥饿1.17 锁粗化1.18 锁消除1.19 synchronized1.20 Lock和synchronized的区别1.21 ReentrantLock 和synchronized的区别2. 显示锁Reen原创 2022-05-14 10:20:47 · 479 阅读 · 0 评论 -
单例模式面试题
单例模式面试题单例模式有很多实现方法,饿汉、懒汉、静态内部类、枚举类,试分析每种实现下获取单例对象(即调用 getInstance)时的线程安全,并思考注释中的问题饿汉式:类加载就会导致该单实例对象被创建懒汉式:类加载不会导致该单实例对象被创建,而是首次使用该对象时才会创建1. 懒汉式// 问题1:为什么加 final// 问题2:如果实现了序列化接口, 还要做什么来防止反序列化破坏单例public final class Singleton implements Serializab原创 2022-05-13 20:42:04 · 1993 阅读 · 2 评论 -
多线程学习六、Java并发编程三大特征:原子性、可见性、有序性以及volatile保证操作可见性的进一步分析
多线程学习六、Java并发编程三大特征:原子性、可见性、有序性以及volatile保证可见性分析进一步分析????Java并发编程三大特征:操作的原子性操作结果的可见性指令的有序性1. 操作的原子性定义:原子性:是指一个操作或多个操作要么全部执行,且执行的过程不会被任何因素打断,要么就都不执行。解释:这个很好理解,类比数据库里面的原子性。举个例子,你给别人付钱,那么你的账户减少钱,别人的账户增加钱,这就是一个原子操作,要么都成功要么都不成功,不能你的账户金额减少但是别人原创 2022-01-30 00:43:52 · 254 阅读 · 0 评论 -
多线程学习五、volatile可见性与缓存不一致问题、指令重排序问题
多线程学习五、volatile可见性与现代计算机的内存模型文章目录多线程学习五、volatile可见性与现代计算机的内存模型1. volatile2. 现代计算机的内存模型2.1 缓存不一致问题2.2 指令重排序问题3 JMM(Java内存模型)1. volatile思维导图:先通过一个小栗子来演示一下volatile的作用public class _18_volatile { public static void main(String[] args) { Task原创 2022-01-28 18:29:29 · 601 阅读 · 0 评论 -
多线程学习四,sleep、wait、yield、join()、ThreadGroup控制线程的运行
多线程学习四,控制线程的运行文章目录多线程学习四,控制线程的运行1. synchronized与sleep关系2. synchronized与wait关系3. yield()4. join()5. ThreadGroup 线程组6. 问题引入与synchronized和wait使用思维导图:1. synchronized与sleep关系思维导图:????注意:synchronized遇到sleep不会释放锁,只有等到sleep执行完后再释放锁,举个栗子:public class _11_s原创 2022-01-28 18:28:54 · 361 阅读 · 0 评论 -
多线程学习三,线程的分类
多线程学习三,线程的分类:主线程、守护线程、子线程文章目录多线程学习三,线程的分类:主线程、守护线程、子线程总结1. 主线程2. 精灵线程3. 线程优先级总结提示:这里对文章进行总结:例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。思维导图:1. 主线程由main线程启动的就是主线程那么在Java中一个类里只有一个线程吗?不是的,Java天生就是多线程的,即使在一个简单的Hello World程序中也会有很原创 2022-01-28 18:28:26 · 2538 阅读 · 0 评论 -
注解学习二、使用注解仿写junit测试框架
Java注解学习二、使用注解仿写Junit测试框架1. 原生junit测试框架注解解析junit是一个非常优秀的测试框架,里面给我们提供了大量的注解常用的有:@BeforeClass //针对所有测试,只执行一次,且必须为static void@Before //初始化方法@Test //测试方法,在这里可以测试期望异常和超时时间@Ignore //忽略的测试方法@After //释放资源@AfterClass //针对所有测试,只执行一次,且必须为static void执行顺序(原创 2022-01-22 20:13:47 · 375 阅读 · 0 评论 -
注解学习一、Java内置注解及注解书写
注解学习一、Java内置注解及简单注解书写1. Java中的内置注解Java 定义了一套注解,共有 7 个,3 个在 java.lang 中,剩下 4 个在 java.lang.annotation 中。@Override - 检查该方法是否是重写方法。如果发现其父类,或者是引用的接口中并没有该方法时,会报编译错误。@Deprecated - 标记过时方法。如果使用该方法,会报编译警告。@SuppressWarnings - 指示编译器去忽略注解中声明的警告。作用在其他注解的注解(或者说元注原创 2022-01-21 22:10:03 · 791 阅读 · 0 评论 -
多线程学习二,线程生命周期和线程中断
多线程学习二,线程生命周期和线程中断1. Java线程生命周期思维导图:示意图:2. 线程中断思维导图:在java的世界里,Thread类是对线程概念的抽象。想要中断一个线程有两种方式:(1)调用Thread类的stop方法(2)组合调用Thread类的interrupt、interrupted和isInterrupted方法 通过源码的注释我们可以知道,调用stop()可能会产生线程异常,抛出SecurityException异常。其原因为使用stop方法进行中断线程本质上原创 2022-01-21 13:15:33 · 238 阅读 · 0 评论 -
多线程学习一,Java线程的处理方式
多线程学习一,Java线程的处理方式Java天生就支持多线程,多线程也是Java里面的核心知识思维导图:1. 继承Thread方法,实现Runnable接口public class _1_Runnable { public static void main(String[] args) { Thread thread = new myThread(); thread.start(); }}class myThread extends Thre原创 2022-01-21 11:03:01 · 417 阅读 · 0 评论 -
SpringBoot学习笔记
系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结SpringBoot学习一1. 学习目标&思维导图2. Spring框架发展史2.1.Spring1.x时代2.2.Spring2.x时代2.3.Spring3.x到Spring4.x再到Spring5.x3原创 2021-10-20 20:11:31 · 282 阅读 · 0 评论 -
SSM学习笔记(Spring5+SpringMVC)
系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结Spring1. Spring简介1.1 Spring主要知识点1.2 Spring的作用2. Spring IOC2.1 思维导图2.2 Spring IOC核心技术2.3 Spring框架环境搭建2.3.1 环境原创 2021-10-20 20:05:28 · 414 阅读 · 0 评论 -
MyBatis学习
MyBatis学习(基础篇)1. 简介2. Mybatis快速入门2.1 环境搭建2.2 编写代码2.3 测试3. CRUD操作3.1 namespace3.2 select3.3 Insert3.4 update原创 2021-10-20 20:02:33 · 343 阅读 · 0 评论 -
Java8新特性
系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结Java8新特性1. lambda表达式1.1 Lambda表达式内置四大核心函数1.2 Lambda方法引用2. StreamAPI2.1 StreamAPI操作一:创建Stream2.3 StreamAPI操作三原创 2021-10-20 19:54:05 · 122 阅读 · 0 评论 -
java+SWT+Oracle做的一款类似于QQ的实时通讯软件
1.产品展示1.1这是我们的登录界面2.细节!!!talk is cheap,show me the code• UI设计• Socket网络编程• 多线程与线程通讯2.1主页面2.1.1注册表记住密码/** * 注册表实现记住密码,注册表在我们的电脑里面,用键值对的方式存取*/ Preferences pre = Preferences.userNodeForPackage(getClass()); // 注册表实现记住密码 pre = Preferences.userNode原创 2021-07-06 21:11:01 · 605 阅读 · 0 评论