
java学习
文章平均质量分 64
大大大大肉包
一个喜欢计算机的帅小伙
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
布隆过滤器的原理及使用
布隆过滤器是一种空间效率极高的概率型数据结构,用于快速判断一个元素是否可能存在于一个集合中。它的核心特点是以极小的存储空间换取高效的查询性能,但存在一定的误判率(False Positive)。原创 2025-08-16 22:17:48 · 242 阅读 · 0 评论 -
八股文系列Java锁
假设存在三个线程,一个数据线程一读取了数据A线程二读取了数据A线程二通过CAS比较,发现数据A是没错的,修改数据A为B线程三读取数据B线程三通过CAS比较,发现数据B是没错的,修改数据B为A线程一通过CAS比较,发现数据A是没错的,修改数据A为B这个过程中任何线程都没有做错什么,但是值被改变了,线程一却没有办法发现,其实这样得情况出现对结果是没有任何影响的,但是我们要做到规范,所以如何防止ABA问题呢?加标志位:搞一个自增的字段,操作一次就自增一次。原创 2025-02-12 10:44:30 · 509 阅读 · 0 评论 -
Java中线程池使用样例
【代码】Java中线程池使用样例。原创 2025-02-11 14:57:17 · 194 阅读 · 0 评论 -
java里的进程和线程
线程具有许多传统进程所具有的特征,故又称为轻型进程(Light—Weight Process)或进程元;而把传统的进程称为重型进程(Heavy—Weight Process),它相当于只有一个线程的任务。在引入了线程的操作系统中,通常一个进程都有若干个线程,至少包含一个线程。根本区别:进程是操作系统资源分配的基本单位,而线程是处理器任务调度和执行的基本单位资源开销:每个进程都有独立的代码和数据空间(程序上下文),程序之间的切换会有较大的开销;原创 2022-11-21 15:10:13 · 240 阅读 · 0 评论 -
常用的正则表达式
匹配国内电话号码:d{3}-d{8}|d{4}-d{7} 注:匹配形式如 0511-4405222 或 021-87888822。匹配Email地址的正则表达式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*匹配网址URL的正则表达式:[a-zA-z]+://[^s]*匹配中文字符的正则表达式: [^u4e00-u9fa5]匹配三个数字后加下划线:'[0-9]{3}+_'匹配ip地址:d+.d+.d+.d+原创 2022-09-08 18:01:25 · 175 阅读 · 0 评论 -
java中的反射
反射的定义:将类的各个部分组成一个新的对象(Class 对象) 就是反射机制。如类中的成员变量组成java.lang.reflect.Field对象类中的构造方法组成java.lang.reflect.Constructor对象类中的方法组成java.lang.reflect.Method对象反射的优点:反射是所有框架的灵魂 所有的框架都使用了反射技术。在程序运行过程中,可以操作这些对象。可以解耦,提高程序的可拓展性。获取反射对象: public stat原创 2022-05-12 21:39:46 · 138 阅读 · 0 评论 -
java中的守护线程
守护线程是什么:Java提供了两种线程,守护线程和用户线程。守护线程是指在程序运行时在后台提供一种通用服务的线程,这种线程并不属于程序中不可或缺的部分。通俗点讲,任何一个守护线程都是整个JVM中所有非守护线程的"保姆"。用户线程和守护线程几乎一样,唯一的不同之处在于如果用户线程已经全部退出运行,只剩下守护线程存在了,JVM也就退出了。因为当所有非守护线程结束时,没有了被守护者,守护线程也就没有工作可做,当然也就没有继续执行的必要了,程序就会终止,同时会杀死所有的"守护线程",也就是说只要有任何非守护线程原创 2022-05-12 19:37:02 · 255 阅读 · 0 评论 -
java虚拟机基础(JVM)
java的跨平台原理:所谓java能实现跨平台,是因为在不同平台上运行不同的虚拟机所决定的,因为java文件的执行不直接在操作系统上执行,而是通过jvm来执行,jvm没有直接与硬件打交道,而是与操作系统交互用以执行java程序。这就是Java的能够“一次编译,到处运行”的原因。Java运行流程如上图所示,首先Java源文件经过前端编译器(javac或ECJ)将.java文件编译为Java字节码文件,然后JRE加载Java字节码文件,载入系统分配给JVM的内存区,然后执行引擎解释或编译类文件,原创 2021-07-31 10:53:27 · 195 阅读 · 0 评论 -
java线程池相关解析
1、什么是线程池2、线程上下文切换对于单核CPU来说,CPU在一个时刻只能运行一个线程,当在运行一个线程的过程中转去运行另外一个线程,这个叫做线程上下文切换。由于可能当前线程的任务并没有执行完毕,所以在切换时需要保存线程的运行状态,以便下次重新切换回来时能够继续切换之前的状态运行。线程切换时需要知道在这之前当前线程已经执行到哪条指令了,所以需要记录程序计数器的值,另外比如说线程正在进行某个计算的时候被挂起了,那么下次继续执行的时候需要知道之前挂起时变量的值时多少,因此需要记录CPU寄存器的状态。所以原创 2021-07-25 18:11:16 · 243 阅读 · 0 评论