![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java基础
文章平均质量分 71
倔强的加瓦
这个作者很懒,什么都没留下…
展开
-
利用条件变量和lock锁实现顺序输出ABC
package com.njupt.charapter07;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;/** * Creat with IntelliJ IDEA * * @Auther:倔强的加瓦 * @Date:2022/04/05/15:25 * @Descrip原创 2022-04-05 16:20:04 · 190 阅读 · 0 评论 -
反射机制之发生什么事了?
反射机制反射机制的使用使用流程1先获取目标类的Class,有三种方法2对Class类进行实例化对象,两种方法3获取类中的属性需要先获取到属性的修饰符,类型,名称等信息4获取到属性后可以修改属性的值5获取类中的方法需要先获取到方法的修饰符,返回值,名称,参数等信息6执行方法反射机制的使用一句话描述反射机制的作用就是:在当前类或者其他类再运行状态中,可以动态的获取自身或者其他类的信息,包括属性,方法,修饰符,参数,参数类型等,并且能够进行直接修改一些属性和运行方法。使用流程1先获取目标类的Class,有原创 2022-04-03 13:01:23 · 180 阅读 · 0 评论 -
设计模式的学习笔记
23种设计模式的介绍类与类之间的6种关系泛化关系实现关系依赖关系关联关系聚合关系组合关系设计模式的原则单一职责原则接口隔离了原则依赖倒转原则开闭原则里氏替换原则迪米特原则23种设计模式单例模式饿汉模式懒汉模式类与类之间的6种关系在学习设计模式之前需要类与类之间的6种关系,分别是泛化,实现,依赖,关联,聚合,组合泛化关系泛化关系是依赖关系的一种特例,就是两类之间的继承,就是泛化关系实现关系实现关系是指实现接口,一个类实现一个接口,就叫做实现依赖关系只要两个类之间用到了对方,就叫做依赖关系,具体原创 2022-03-01 17:28:58 · 163 阅读 · 0 评论 -
操作系统学习笔记
操作系统1概念操作系统是指控制和管理整个计算机系统的硬件和软件资源,并合理的组织调度计算机工作和资源分配,以便给用户和其他软件方面的接口和环境,是计算机系统中最基本的系统软件。2.操作系统的功能1资源的管理1处理器管理 2存储管理 3设备管理 4文件管理2向用户提供服务a命令接口联机命令接口:一个命令输入,一个命令输出脱机命令接口:将命令写在文件中,批量执行b程序接口:由系统调用组成3操作系统的特征1并发性2共享性3虚拟性4随机性4操作系统的发展历史5操作系统的两种原创 2022-03-01 17:27:27 · 857 阅读 · 0 评论 -
Idea中springboot的pom文件加入其他依赖时报红/加入不成功的解决办法
1.先将你加入不了的依赖注释掉(ctrl+shift+/)2.在pom文件中之间加入以下代码<repositories><!-- 阿里云代码库 --> <repository> <id>maven-ali</id> <url>http://maven.aliyun.com/nexus/content/repositories/central</url> <releases> &l原创 2021-11-17 18:41:37 · 1052 阅读 · 1 评论 -
JVM知识笔记
JVM知识第二种虚拟机:原创 2021-08-09 13:22:07 · 106 阅读 · 0 评论 -
JUC学习笔记
JUC学习笔记针对数字的类型的原子类AtomicReference针对引用类型JUC包下的原子引用类AtomicStampedReference用原子引用来解决ABA问题AtomicMarkableReference针对有某些引用类型,不需要根据更改了多少次来判断,只需要布尔标记判断是否变化就可以原子数组工具,来保护数组中的数据原子更新器,可以针对对象的某个域/属性Field进行原子的操作,只能配合volatile修饰的字段使用,并且修饰的属性不能是private否则会出现异常。原子累加器Unsafe类针对原创 2021-11-03 22:22:58 · 151 阅读 · 0 评论 -
缓存行伪共享
缓存行伪共享的介绍在此之前,需要知道CPU的缓存模型,在每一级的缓存中最基础的单位是缓存行,当不同的线程对缓存中的数据都是读取的操作时,直接从缓存里读取即可,但是当线程有修改操作时,会使数据修改的那一行的缓存行中的数据作废,重新到主存中加载数据,来保证数据的正确性和实时性因为当缓存行中的数据需要修改时要到主存中走一遭,会造成时间的延长,因此针对此改进,可以将数据存放到不同的缓存行中去,当不同线程针对数据修改时,只需要重新更新一个缓存行(产生了数据修改的那个)即可。LongAdder就是根据这个原理原创 2021-11-01 22:47:50 · 154 阅读 · 0 评论 -
Java内存模型
JAVA内存模型CUP的缓存模型JMMCUP的缓存模型可以看出,如果没有加入缓存机制,从寄存器指令的执行时间和内存操作的时间相差几个数量级,因此需要引入缓存机制来平衡这种差异JMM每一个线程都有一个独立的工作空间,操作时都是从独立的栈中缓存取数据,因此在并发环境下容易造成错误,引入volatile关键词可以从主存中取数据。lock(锁定):作用于主内存的变量,把一个变量标识为一条线程独占状态。unlock(解锁):作用于主内存变量,把一个处于锁定状态的变量释放出来,释放后的变量才可以被其原创 2021-11-01 22:15:58 · 81 阅读 · 0 评论 -
Java中IO重温笔记
java中IO知识点梳理IO流流的分类File类文件的操作目录的操作以字节为单位的输入输出流InputStream和OutputStreamFileInputStream的演示:FileOutputStream的演示:利用输入和输出流实现文件的copy以字符为单位的输入输出流Reader和WriterFileReaderFileWriter用文件的输入输出流实现文件的copy处理流(包装流)利用处理流实现图片的copy利用处理流实现文本文件的copy序列化和反序列化IO流流的分类按照流的方向分,分为原创 2021-08-22 12:47:20 · 102 阅读 · 0 评论