- 博客(78)
- 收藏
- 关注
原创 微服务-Eureka
使用完成远程调用需要手动的生命的ip和端口,从而能够发起http请求,但是如果有很多个实例也更加不能有效的处理,而且我们又该如何知道这些实例是否健康呢。所以就有了很多的注册中心比如Eureka、Nacos等等。
2025-01-02 21:09:29
761
原创 guava-Immutable(不可变集合)
说了这么多,我的目的就是介绍guava工具库,它里边有许多能够增加我们开发效率的工具,这个不可变集合只是其中的一个,还有好多就比如Java8中的Optional就是从guava工具库借鉴过去的,但是guava的更加全面,使用起来更加方便。
2024-09-09 19:20:27
1118
1
原创 Java8新特性-Optional的使用
最开始学java的时候,总能听到别人说java8的新特性,比如lambda表达式,stream流等等。但是第一次接触Optional是在公司前辈的代码中看到的。最开始我还以为是公司自己的工具类,也没太注意。后来才知道他也是java8最重要的一个特性。
2024-09-06 14:52:07
764
原创 JUC-synchorized与锁原理、锁的升级与膨胀
当某一个线程对一个对象进行加锁时,会在栈帧中创建一个锁记录(Lock Record),并使用==CAS将对象的Mark Word中的信息保存到该锁记录中,而Mark Word中就记录该锁记录的地址,以及锁标志位(00)。,每一个java对象都可以关联一个Monitor对象,使用synchronized给一个对象加锁(重量级锁),该对象的对象中的Mark Word就被设置指向一个Monitor对象的指针,这其实也就是重量级锁的加锁过程。,也就是说在一个对象创建的时候,其Mark Word的。
2024-07-19 22:38:42
1266
原创 JVM-垃圾回收机制
垃圾收集器在一个Java程序中的执行是自动的,不能强制执行清楚那个对象,即使程序员能明确地判断出有一块内存已经无用了,是应该回收的,程序员也不能强制垃圾收集器回收该内存块。标记-整理算法,其中的标记过程仍然与“标记-清除”算法一样,但后续步骤不是直接对可回收对象进行清理,而是让所有存活的对象都向内存空间一端移动,然后直接清理掉边界以外的内存。标记-清除算法很简单,就跟它的名字一样,先标记再清除。我们可以标记要回收的对象,标记完成之后统一回收,当然也可以标记存活的对象,然后统一回收没有标记的对象。
2024-07-16 17:30:27
783
原创 JUC-并发的概念
⭐什么是并发,什么是并行:单核CPU也存在并发问题吗?单核cpu也是存在并发问题的。至于什么是上下文切换,简单来说就是任务从保存到再加载执行的过程就是一次上下文的切换。CPU通过时间片分配算法来循环执行任务,当前任务执行一个时间片后会切换到下一个任务。但是,在切换前会保存上一个任务的状态,以便下次切换回这个任务时,可以再加载这个任务的状态。并发一定比串行快吗?多线程就一定快吗?测试上下文切换的工具:减少上下文切换的方法:当一个线程竞争资源失败,他会进入阻塞队列并让出CPU,并且不会释放它当前已经持有的任何
2024-07-16 16:43:19
320
原创 JUC-常见方法与线程的状态
主线程直接调用某个线程t1的run()方法,run方法也会执行,但是并不会启动新的线程,而是有主线程调用的run方法,必须使用start才能启动新线程,但是start只能调用一次。守护线程,只要其它非守护线程运行结束了,即使守护线程代码没有执行完,也会强制结束。在操作系统中,有5种状态:新建、就绪、运行、阻塞、死亡。:如果是 true ,将此线程标记为守护线程;join实现线程同步,因为会阻塞等待另一个线程的结束,才能继续向下运行。join本质上是一个对象锁,是被synchronized修饰的。
2024-07-12 11:15:53
594
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人