Moonike Blogs
  • 首页
  • 归档
  • 分类
  • 关于

乐观锁和悲观锁

乐观锁乐观锁认为共享资源每次被访问的时候不会出现问题,线程可以不停地执行,无需加锁也无需等待,只是在提交修改的时候去验证对应的资源是否被其它线程修改了。乐观锁可以通过版本号机制和 CAS 算法实现。 CAS V:要更新的变量值(Var) E:预期值(Expected) N:拟写入的新值(New) 当且仅当 V 的值等于 E 时,CAS 通过原子方式用新值 N 来更新 V 的值。如果不等,说明已经
2025-04-15
Java > Java并发编程

分布式事务解决方案

分布式一致性的级别 强一致性:系统写入了什么,读出来的就是什么。 弱一致性:不一定可以读取到最新写入的值,也不保证多少时间之后读取到的数据是最新的,只是会尽量保证某个时刻达到数据一致的状态。 最终一致性:弱一致性的升级版,系统会保证在一定时间内达到数据一致的状态。 CAP 一致性(Consistency) : 所有节点访问同一份最新的数据副本 可用性(Availability): 非故障的节点在
2025-04-08
分布式

Java 线程间的通信方式

线程间通信指的是多个线程之间相互传递信息或共享资源的机制,通信是多线程编程中的重要概念,用于实现线程之间的协作和数据共享。在谈到线程间通信时,我们主要关注的是 线程间的同步和互斥。 共享变量多个线程可以通过共享变量来进行通信。共享变量可以是全局变量或类的静态变量,多个线程可以同时读取和写入这些变量,通过变量的值来进行信息传递和共享数据。共享变量一般需要搭配 volatile 关键字进行使用。 1
2025-04-07
Java > Java并发编程

Java8 Optional 类的使用

传统的防止出现 NullpointerException异常的方法是使用 if-else语句来进行判断,而 Optional 类的出现是为了简化对 null的判断。 什么是 Optional 类java.util.Optional<T>类是一个封装了Optional值的容器对象。如果值存在,调用get()方法可以获取值,并且调用isPresent()方法会返回true;如果值不存在,那
2025-03-18
Java > Java基础

向上转型与向下转型

向上转型与向下转型是 Java 中关于父子对象转换的两个概念。 假如我们有如下代码: 12345678910111213141516171819202122232425262728293031323334// 父类public class Animals { public int age = 0; public void eat(){ System.o
2025-03-12
Java > Java基础

如何创建一个线程

Thread类实现了Runnable接口,Runnable接口中有一个未实现的方法run()。 严格来说,只有一种方式能够创建 Java 线程:new Thread().start(),因为无论哪种方式,最终还是依赖于new Thread().start()。 继承Thread类,重写run()方法,调用start()方法开启线程; 1234567class MyThread extends
2025-03-11
Java > Java并发编程

线程池 ThreadPoolExecutor

什么是线程池池化技术已经屡见不鲜了,线程池、数据库连接池、HTTP 连接池等等都是对这个思想的应用。池化技术的思想主要是为了减少每次获取资源的消耗,提高对资源的利用率。线程池就是管理一系列线程的资源池,其提供了一种限制和管理线程资源的方式。每个线程池还维护一些基本统计信息,例如已完成任务的数量。 线程池一般用于执行多个不相关联的耗时任务,没有多线程的情况下,任务顺序执行,使用了线程池的话可让多个
2025-03-11
Java > Java并发编程

String

String类常用方法 length() 返回字符串长度 charAt(int index) 返回指定位置字符 indexOf(String str) 返回指定子字符串第一次出现的位置 trim() 去除前后空格 split(String regex) 根据正则表达式分割 valueOf(Object obj) 返回指定对象的字符串形式 format(String format, Object..
2025-02-27
Java > Java基础

异常

概括Exception 和 Error 都继承于 Throwable 接口。 Exception 又分为 Runtime Exception (Unchecked Exception) 和 Checked Exception 对于 Checked Exception,如果没有被 catch 关键字捕获或被 throws 关键字抛出的话,程序是无法正常通过编译的。 对于 Runtime Exce
2025-02-19
Java > Java基础

注释

单行注释(Single-line Comment) 以 // 开头,注释内容从 // 到行尾。单行注释通常用于简短的说明或注释一行代码。 示例: 12// 这是一个单行注释int x = 10; // 这也是单行注释 多行注释(Multi-line Comment) 以 /* 开始,以 / 结束,可以跨越多行。通常用于注释较长的内容或对代码块进行详细的解释。 示例: 123
2025-02-17
Java > Java基础
1234

搜索

Copyright 2025 Moonike. All rights reserved.
Powed by Hexo Fluid
载入天数... 载入时分秒...
总访问量 次 总访客数 人