自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 Spring框架入门

快速了解Spring

2022-09-30 10:27:30 156 1

原创 Linux文件管理及命令

Linux 系统下的文件类型与文件权限文件类型Linux 下所有的东西(包括内存、网卡、外部设备等等)都可以看做文件,Linux 将文件 分为以下五种类型:a. 普通文件 ‘-’b. 目录文件 ‘d’c. 管道文件 ‘p’d. 链接文件 ‘l’e. 设备文件(块设备 ’b’ 、字符设备 ‘c’ 、套接字设备 ‘s’ ).mp4 .avi .txtlinux只有通过命令才能查看出一个文件的类型:ls -l 、ll :能查出隐藏文件文件权限用

2020-10-21 12:35:48 148

原创 初识Linux以及目录结构

初识LinuxLinux是一种操作系统软件常见的操作系统软件:unix(最早的),Windows,Mac,LinuxLinux和Windows的区别1.Linux主要使用命令行操作系统,Windows则是图形化界面2.Linux主要应用于服务器,Windows则是个人操作系统3.Linux属于开源项目,Windows则不开源4.Linux是多用户系统,Windows则是单用户系统注意:多用户系统是指多个人可以同时操作计算机,单用户系统是只能有一个用户进行操作Linux的内核.

2020-10-07 22:00:29 81

原创 ConcurrentHashMap底层分析

ConcurrentHashMap底层分析ConcurrentHashMap数据结构ConcurrentHashMap相比HashMap而言,是多线程安全的,其底层数据与HashMap的数据结构相同,数据结构如下:ConcurrentHashMap的数据结构是数组+链表+红黑树类的继承关系public class ConcurrentHashMap<K,V> extends AbstractMap<K,V> implements ConcurrentMap&l

2020-08-13 10:12:59 117

原创 线程间通信

线程间通信什么是线程通信多个线程在处理同一个资源,并且任务不同时,需要线程通信来帮助解决线程之间对同一个变量的使用或操作。就是多个线程在操作同一份数据时, 避免对同一共享变量的争夺。于是我们引出了等待唤醒机制:wait()、notify()就是在一个线程进行了规定操作后,就进入等待状态wait,等待其他线程执行完他们的指定代码过后,再将其唤醒notify。wait/notify/notifyAll机制的使用与分析1.Synchrnoized加锁的线程的Object类的wait/notify/

2020-08-13 09:53:09 88

原创 ReentrantLock实现机制

ReentrantLock实现机制公平锁和非公平锁1.公平锁的实现就是谁等待的时间长谁就先获取锁2.非公平锁就是随机获取锁,谁运气好,cpu时间片轮询到哪个线程,哪个线程就能获取资源3.公平锁在市里化对象时要写入参数"true"4.非公平锁在实例化对象时不用写入参数,因为默认为非公平锁可重入锁和不可重入锁所谓不可重入锁就是当前线程执行某个方法已知获取了该锁,那么在方法中尝试再次获取锁时,就会获取不到被阻塞,可重入锁恰好与之相反,不会被阻塞。Reentrant Lock时可重入锁Synch

2020-08-04 00:43:42 127

原创 死锁问题

死锁什么是死锁死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。死锁的4个必要条件1.互斥条件:某个资源某一时刻只能由一个线程占用2.不可抢占条件:资源申请者,不能从资源占有者手中抢夺资源3.占有且申请:线程至少已经占有一个资源,但又去申请新的资源,新资源被占用,该线程就会阻塞4.循环等待:在发生死锁时,存在一个进程,即资源的环形链产

2020-08-03 23:48:53 149

原创 Synchronized底层实现

Synchronized底层实现synchronized关键字锁的都是对象,不是代码。synchronized可以修饰静态方法、成员函数,同时还可以直接定义代码块,但是它上锁的资源只有两类:一个是对象,一个是类。对象锁和类锁对象锁:只作用于同一个对象,如果调用两个同一类的对象上的同步代码块,就不会同步。类锁:作用于当前整个类,如果两个线程调用同一个类的不同对象上的同步语句,实惠同步的。等待池和锁池等待池:某一现场调用了某一对象的wait()方法之后,档期啊线程就会释放该对象的锁,进入到

2020-08-02 02:24:26 140

原创 Voltatile关键字

Voltatile关键字1.Voltatile是一个轻量级锁,相比重量级锁synchronized,只保证可见性,不保证原子性。2.Voltatile时修饰共享变量的,synchronized时用来修饰变量的调用者。内存模型的相关概念共享变量:所有实例域、静态域和数组元素存储在堆内存中,堆内存在线程之间共享,说简单点,就是全局变量,静态变量,以及数组,对象等,在多线程中可以称之为共享变量。缓存不一致:一个变量在多个CPU中缓存时,当各CPU从高速缓存中更新数据到主存时。缓存不一致的解决方案:

2020-08-02 00:39:16 460

原创 Java集合—WeakHashMap

Java集合—WeakHashMapWeakHashMap的使用WeakHashMap的使用和HashMap类似,区别是WeakHashMap除了自身有对key的引用,没有其他引用,也就是弱引用,所以WeakHashMap中的key可能就会被GC(垃圾回收器)回收,value值也会被回收WeakHashMap的特点允许key和value值为null(和HashMap一样)WeakHash...

2020-04-12 17:43:04 149

原创 Java集合—HashMap

Java集合—HashMap哈希表:是一种通过关键码去寻找值得数据映射映射 的结构哈希函数的构造方法:直接定址法、除留余数法处理哈希冲突的方法:处理冲突是指对于一个待插入哈希表的数据元素,若按给定的哈希函数求得的哈希地址已被占用,则按一定规则求下一哈希地址,如此重复,直至找到一个可用的地址以保存该元素HashMap介绍public interface Map<K,V>参...

2020-04-05 17:50:46 95

原创 Java集合—PriorityQueue

Java集合—PriorityQueuePriorityQueue基本特点是数组实现来存放数据的优先级队列大小不受限制,可以再创建时指定大小,队列也能自动扩容(小 2倍,队列大(大于64)按照1.5倍 扩容)此队列是不能存储null值,也不支持不可比较的对象优先级的队列是基于自然排序或者Compartor自定义排序规则来进行数据优先级处理PriorityQueue底层源码实现...

2020-04-05 16:41:13 107

原创 Java集合—ArrayList

ArrayListArrayList使用ArrayList是List接口的实现类集合框架库Collection常用方法 add addAll remove contain toArrayList-定义允许重复的一个有序集合ArrayList - “动态”的数组ArrayList基本特点数据插入有序可以存储null值数据可以重复底层基于数组实现,数组在内存中是连续分布的...

2020-04-05 14:02:24 76

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除