- 博客(574)
- 收藏
- 关注

原创 总结——》【Linux】
版权声明:本文为博主原创文章,无需授权即可转载,甚至无需保留以上版权声明,转载时请务必注明作者。https://blog.youkuaiyun.com/weixin_43453386/article/details/89241912序号日期标题12018-10-31 Linux——》/etc/profile22018-11-06 解决——》413Request Enti...
2019-04-12 15:36:14
509

原创 总结——》【读书有益】
版权声明:本文为博主原创文章,无需授权即可转载,甚至无需保留以上版权声明,转载时请务必注明作者。https://blog.youkuaiyun.com/weixin_43453386/article/details/84788317序号日期标题12018-08-25 note1——》商业营销中的色彩22018-08-26 note2——》今日简史32018-08...
2018-12-27 09:57:22
438
3

原创 总结——》【养生之道】
版权声明:本文为博主原创文章,无需授权即可转载,甚至无需保留以上版权声明,转载时请务必注明作者。https://blog.youkuaiyun.com/weixin_43453386/article/details/84788053序号日期标题12018-11-30 养生之道——》每天8杯水22018-12-07 生活小窍门——》辣椒辣手32018-12-07...
2018-12-10 09:53:10
286

原创 总结——》【MongoDB】
版权声明:本文为博主原创文章,无需授权即可转载,甚至无需保留以上版权声明,转载时请务必注明作者。https://blog.youkuaiyun.com/weixin_43453386/article/details/84788053序号日期标题12018-10-23 MongoDB——》mongoexport导出和mongoimport导入22018-10-24 Mon...
2018-12-04 14:48:21
485
原创 Java——》常用的线程池
推荐链接: 总结——》【Java】 总结——》【Mysql】 总结——》【Redis】 总结——》【Kafka】 总结——》【Spring】 总结——》【SpringBoot】 &nbs
2024-11-11 15:38:17
336
原创 Java——》线程常用的方法
● start :启动线程● run :运行线程● currentThread :获取当前线程对象● getName :获取线程名称● sleep :将当前线程暂定指定的时间● isAlive :获取线程的状态● join :将当前线程和该线程合并,即等待该线程结束,在恢复当前线程的运行● yield :让出CPU,当前线程进入就绪状态● wait :阻塞,是Object中的方法● notify :唤醒,是Object中的方法● notifyAll :唤醒
2024-11-11 15:29:26
1226
原创 Java——》创建线程的方式
Java中的线程本质上就是一个Thread对象。创建线程常用方式:1. 继承Thread类,重写run方法2. 实现Runnable接口3. 实现Callable接口4. 线程池
2024-11-08 15:35:53
1146
原创 Java——》进程 VS 线程
进程:在操作系统中,正在运行的一个应用程序(操作系统给这个程序分配内存资源)线程:一个进程的最基本的执行单位(执行路径),也是CPU调度的基本单位
2024-11-08 13:44:29
597
原创 Java——》try-with-resource
try-with-resources 是 JDK 7 中一个新的异常处理机制,它能够很容易地关闭在 try-catch 语句块中使用的资源。try-with-resources 语句确保了每个资源在语句结束时关闭。所谓的资源(resource)是指在程序完成后必须关闭的对象。所有实现了 java.lang.AutoCloseable 接口(包括实现了 java.io.Closeable 的所有对象),可以使用作为资源。
2024-11-08 11:14:30
527
原创 Java——》Collections. unmodifiableCollection创建只读集合
场景:如果你有个集合不想被修改怎么办?解决:创建一个只读集合
2024-11-08 09:51:25
352
原创 Java——》集合的快速失败机制fail-fast
机制是 Java 集合(Collection)中的一种错误机制。(元素个数发生变化:add、remove、clear)时,就可能会产生 fail-fast 事件。
2024-11-08 09:18:43
477
原创 Java——》JSONObjet 数据顺序
JSONObject 内部是用 Map 来存储的:● HashMap 元素是无序的● LinkedHashMap 元素是有序的
2023-12-01 14:03:27
1722
原创 算法——》排序&&查找
一、排序算法用于将一组数据`按照特定的规则进行排序`。排序算法可以分为`内部`排序和`外部`排序两种。不同的排序算法在时间复杂度、空间复杂度和稳定性等方面有所差异,选择合适的排序算法取决于具体的应用场景和数据规模。二、查找算法查找算法 = 搜索算法,是一种用于在数据集中`查找特定元素`的算法。查找算法可以应用于各种数据结构,如数组、链表、树等。
2023-11-29 14:12:27
276
原创 Mysql——》int(1)和 int(10)区别
1.int后面的数字,不影响int本身支持的大小,int(1)、int(2)…int(10)没什么区别。2.int后面的数字,配合zerofill一起使用才有效。3.int(3) + zerofill实现了不足3位补0的现象,对于001,底层存储的还是1,只是在展示的会补0。
2023-11-27 15:12:55
1145
原创 SpringBoot——》关联映射
以员工、地址、部门、角色四者之间的关联关系为例:在员工表中会有一个指向地址表主键的字段address_id实现二:@PrimaryKeyJoinColumn如果员工表和地址表是以主键关联的:实现三:不使用@JoinColumn和@PrimaryKeyJoinColumnHibernate会自动在员工表生成关联字段,字段默认的命名规则:被控方类名_被控方主键,如:address_id2、@OneToMany(一对多)实现一:@JoinColumn实现二:@JoinTable实现三:不使用
2023-11-24 16:53:30
1172
原创 Java——》可见性
可见性是指线程间的,对变量的变化是否可见。通常被解释为将线程本地状态反映到主内存上,volatile就是负责保证可见性的。可见性问题是指一个线程修改了一个共享变量的值,但是另一个线程无法立即看到这个修改后的值。因为每个线程都有自己的工作内存(CPU三级缓存),线程之间无法直接访问对方的工作内存,只改自己的工作内存,没有及时的同步到主内存,导致一个线程对共享变量的修改对其他线程不可见,从而出现数据不一致。CPU在处理时,需要将主内存数据刷新到寄存器中再执行指令,执行完指令后,再将寄存器数据刷新到主内存中。
2023-11-06 18:00:35
327
原创 Java——》4种引用:强软弱虚
一、NormalReference = 强 = 普通 = 默认强引用是平常中使用最多的引用,强引用在程序内存不足(OOM)的时候也不会被回收二、SoftReference = 软软引用在程序内存不足时,会被回收三、WeakReference = 弱弱引用就是只要JVM垃圾回收器发现了它,就会将之回收四、PhantomReference = 虚虚引用的回收机制跟弱引用差不多,但是它被回收之前,会被放入 ReferenceQueue 中。
2023-11-06 16:35:09
283
原创 Java——》CAS
CAS = Compare And Swap = 比较并交换● 先比较一下值是否与预期值一致,如果一致,交换,返回true● 先比较一下值是否与预期值一致,如果不一致,不交换,返回false
2023-11-06 15:04:15
193
3
原创 Java——》如何保证线程的安全性
Q:如果存在临界(共享)资源,如何保证线程的安全性?A:加锁,怎么做?不加锁,怎么做?一、加锁1、悲观锁synchronized、Lock(ReentrantLock,ReadWriteLock) 2、乐观锁CAS二、不加锁1. ThreadLocal:让多个线程将共享资源copy到本地,没有多线程操作共享资源的问题 2. volatile:只要不包含并发对共享数据进行运
2023-11-06 13:59:21
170
原创 SpringBoot——》引入Redis
org.springframework.boot spring-boot-starter-data-redis
2023-10-08 17:29:36
389
原创 SpringBoot——》更改Redis序列化方式
序列化方式1. GenericJackson2JsonRedisSerializer2. GenericToStringSerializer3. Jackson2JsonRedisSerializer4. JdkSerializationRedisSerializer(默认使用)5. StringRedisSerializer6. 自定义 Serializer
2023-10-08 17:27:49
797
原创 Java——》IO
Java IO(Input/Output)是Java编程语言中用于处理输入和输出的一组类和接口。输入:数据输入到计算机内存的过程。输出:计算机输出到外部(数据库、文件)的过程。数据传输过程类似水流,因此称为IO流。Java IO 分为输入流和输出流 ,而根据数据的处理方式又分为字节流 和字符流。● 字节流:以字节为单位进行操作,适用于处理二进制数据● 字符流:以字符为单位进行操作,适用于处理文本数据
2023-09-27 15:01:48
396
原创 Java——》线程的打断(停止正在运行的线程)
Java——》线程的打断(停止正在运行的线程)一、设置boolean标志位二、利用中断标志位三、利用InterruptedException异常
2023-09-21 17:07:40
409
原创 Java——》乐观锁、悲观锁
悲观锁 获取不到锁资源时,会将当前线程挂起(进入BLOCKED、WAITING) 线程挂起会涉及到用户态和内核态的切换,而这种切换是比较消耗资源的。用户态:JVM可以自行执行的指令,不需要借助操作系统执行。内核态:JVM不可以自行执行,需要操作系统才可以执行。乐观锁 获取不到锁资源时,可以再次让CPU调度,重新尝试获取锁资源 基于Java中的CAS操作
2023-09-11 16:15:33
251
原创 Java——》synchronized锁粗化&锁消除
一、锁粗化(锁膨胀)场景:在一个循环中,频繁的获取和释放锁资源操作:synchronized在编译时,可能会优化到循环外部,将锁的范围扩大优点:避免频繁的竞争和获取锁资源带来不必要的消耗二、锁消除场景:在synchronized修饰的代码中,没有任何共享(临界)资源,也不存在锁竞争操作:synchronized在编译时,就直接将锁的指令优化掉(自动把synchronized去掉)
2023-09-11 16:02:04
450
原创 Java——》公平锁、非公平锁
公平锁 排队竞争锁 线程A获取到了锁资源,线程B没有拿到,线程B去排队,线程C来了,直接排到线程B的后面,等待B拿到锁资源或者是B取消后,才可以尝试去竞争锁资源。非公平锁 先插队竞争锁,如果不成功再排队竞争锁 线程A获取到了锁资源,线程B没有拿到,线程B去排队,线程C来了,先尝试竞争锁资源成功拿到锁资源:开心,插队成功。没有拿到锁资源:依然要排到线程B的后面,等待B拿到锁资源或者是B取消后,才可以尝试去竞争锁资源。
2023-09-11 15:50:19
400
原创 Java——》JVM对原生的锁做了哪些优化
在线程进行阻塞操作之前先让线程自旋等待一段时间,可能在等待期间其他线程已经解锁,这时就无需再让线程执行阻塞操作,避免了用户态到内核态的切换。当JVM检测到不同的竞争状况时,会自动切换到适合的锁实现,这就是锁的升级、降级(Java——》synchronized锁升级)。
2023-09-11 15:13:25
477
原创 Java——》synchronized锁升级
无锁 :没有开启偏向锁(偏向锁延迟开启时间内),没有线程拿锁匿名偏向 :开启偏向锁,没有线程拿锁,没有偏向任何线程
2023-09-11 15:11:33
367
原创 Java——》synchronized的使用
synchronized是互斥锁,锁是基于对象实现的,每个线程基于synchronized绑定的对象去获取锁!有明确指定锁对象:● synchronized(变量名):当前变量做为锁● synchroinzed(this):this做为锁无明确指定锁对象:同步方法和同步代码块● 有static修饰:当前类.class做为锁(类锁)● 无static修饰:当前对象做为锁(对象锁)
2023-09-11 10:19:12
299
原创 Java——》synchronized的原理
1. 在虚拟机执行到monitorenter 指令时,首先要尝试获取对象的锁。如果这个对象没有锁定,或者当前线程已经拥有了这个对象的锁,把锁的计数器+1。2. 当虚拟机执行到monitorexit 指令时,将锁的计数器-1。 当计数器为0时,锁就被释放了。
2023-09-11 10:01:08
313
原创 Java——》synchronized互斥性
synchronized是互斥锁,每个线程获取synchronized时,基于synchronized绑定的对象去获取锁!
2023-09-11 09:52:11
334
原创 Java——》Synchronized和Lock区别
Synchronized是Java中的关键字,只能用于同步代码块或方法 Lock是一个接口,Java提供了多种实现该接口的锁,如ReentrantLock、ReadWriteLock等。Lock是一个接口,Java提供了多种实现该接口的锁,如ReentrantLock、ReadWriteLock等。
2023-09-08 17:25:29
532
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人