
JavaSE进阶
文章平均质量分 94
JavaSE进阶
、枉然
这个作者很懒,什么都没留下…
展开
-
网络原理-HTTP/HTTPS
HTTP。原创 2025-02-19 15:25:40 · 640 阅读 · 0 评论 -
文件系统总结
文件路径(Path)原创 2025-02-17 14:29:59 · 465 阅读 · 0 评论 -
Java 中操作文件
修饰符及类型属性说明依赖于系统的路径分隔符,String类型的表示staticchar依赖于系统的路径分隔符,char类型的表示是 Java 标准库中的一个抽象类,位于java.io包中。它是所有字节输入流的超类,用于从输入源(如文件、网络连接、内存等)读取字节数据。它定义了基本的输入流操作方法,具体的实现类(如等)提供了实际的功能。是 Java 中java.io包的一个类,它是的一个子类,专门用于从文件中读取字节数据。通过,可以逐字节。原创 2025-02-17 14:34:37 · 948 阅读 · 0 评论 -
线程安全的集合类
是线程不安全的(多线程环境下可能会存在问题)。为了保证数据的安全性,我们可以使用。进行读写操作(尤其是写操作),可能会导致数据不一致或抛出异常(如。在单线程环境下不涉及线程安全问题,但是,在多线程环境中直接使用。做出了⼀系列的改进和优化,既能保证线程安全,又能提升效率。是线程安全的,但不建议⽤,其他的集合类不是线程安全的。,但是Hashtable的效率低下。”的机制保证线程安全**。是比较常用的集合对象,但是。只是简单的把关键⽅法加上了。包装为线程安全的集合。包中提供的线程安全的。原创 2025-02-15 10:41:04 · 1046 阅读 · 0 评论 -
JUC的常⻅类
如果某个线程不再使⽤了,并不是真正把线程释放,⽽是放到⼀个“池⼦”中,下次如果需要⽤到线程就直接从池⼦中取,不必通过系统来创建了。Callable 接口是⼀个泛型接口,相当于把线程封装了⼀个“返回值”,并且可以抛出异常,⽅便程序猿借助多线程的⽅式计算结果。可以看到,上述代码需要⼀个辅助类 Result,还需要使⽤⼀系列的加锁和 wait、notify 操作,代码复杂,容易出错。可以看到,使⽤ Callable 和 FutureTask 之后,代码简化了很多,也不必⼿动写线程同步代码了。原创 2025-02-15 10:40:32 · 931 阅读 · 0 评论 -
Synchronized 原理
偏向锁(Biased Locking):偏向于第一个获取锁的线程。原创 2025-02-15 10:37:51 · 436 阅读 · 0 评论 -
CAS比较并交换
再执⾏ CAS 操作,第⼀次 CAS 的时候发现 oldValue 和 value 不相等,不能进⾏赋值,因此需要进⼊循环,在循环⾥重新读取 value 的值赋给 oldValue。ABA问题是指在多线程环境下,一个变量的值可能在CAS操作期间被其他线程修改多次,导致CAS操作误认为变量的值没有发生变化,从而引发错误。这里的代码不是原⼦的,真实的 CAS 是⼀个原⼦的硬件指令完成的,这个伪代码只是辅助理解 CAS 的⼯作流程。CAS 可以视为是⼀种乐观锁,或者可以理解成 CAS 是乐观锁的⼀种实现⽅式。原创 2025-02-15 10:14:28 · 1205 阅读 · 0 评论 -
常见的锁策略
当线程尝试获取锁时,如果锁被其他线程占用,它不会进入阻塞状态,而是通过循环不断尝试获取锁。如果不做任何额外的限制,锁就是⾮公平锁,如果要想实现公平锁,就需要依赖额外的数据结构,来记录线程们的先后顺序。如果锁当前可用,线程可以直接获取锁,即使队列中已经有其他线程在等待。它通过维护一个计数器来记录锁被获取的次数,每次获取锁时计数器加1,每次释放锁时计数器减1,当计数器为0时,锁才真正释放。当一个线程请求获取重量级锁时,如果该锁已经被其他线程持有,则请求线程会被挂起并放入等待队列,直到锁被释放。原创 2025-02-15 10:11:20 · 1036 阅读 · 0 评论 -
计算机的一些基础知识
进程是操作系统进行资源分配的最小单位,这意味着各个进程互相之间是无法感受到对方存在的,这就是操作系统抽象出进程这一概念的初衷,这样便带来了进程之间互相具备**“隔离性(Isolation)”**。但现代的应用,要完成一个复杂的业务需求,往往无法通过一个进程独立完成,总是需要进程和进程进行配合地达到应用的目的,如此,进程之间就需要有进行“信息交换”的需求。一个逻辑处理器,并不是一次就把一个进程执行完,而是一个进程执行一会儿就休息一会儿,再去执行另一个进程,不停的轮换执行。原创 2024-11-03 23:59:52 · 1100 阅读 · 0 评论