Java
文章平均质量分 95
Java SE语法、IO流、多线程等相关文章
new Random()
一名正在学习Java后端开发的在校生,记录学习过程,分享学习心得和资源推荐。
展开
-
【JVM】垃圾回收机制(Garbage Collection)
垃圾回收指的是自动管理和释放不再被程序使用的内存资源的过程。在程序运行过程中,动态分配的内存会被使用,但也需要在不再需要时释放,以免占用过多的内存空间,导致内存泄漏或内存溢出等问题。原创 2024-05-07 19:00:00 · 1308 阅读 · 0 评论 -
【JVM】类加载机制及双亲委派模型
JVM的类加载机制是JVM在运行时,将 .class 文件加载到内存中并转换为Java类的过程。它是Java语言实现跨平台特性的核心之一。提到类加载机制,就不得不提“双亲委派模型”。它是 Java 类加载机制中的一种设计思想,JVM的类加载机制采用的就是双亲委派模型。原创 2024-05-07 14:45:23 · 1092 阅读 · 0 评论 -
【Java】Scanner类处理大量输入数据时,效率低下的解决方案
在线评测系统(OJ)在进行 ACM模式的题目测试时(牛客、蓝桥杯等),都需要自己进行数据的输入输出。在这种模式下,通常都是使用Scanner类读取标准输入和System.out来进行结果的输出。但是当输入数据量非常大时,即使你的算法完全正确且已经是最优解法了,由于Scanner类的效率问题,仍然会导致程序超时而通过不了(题目卡测试用例)。原创 2024-04-18 08:31:47 · 837 阅读 · 0 评论 -
【Java多线程】线程安全的集合类
在我们之前使用的集合类中,大部分都是线程不安全的。Vector,Stack,HashTable是线程安全的,之前单线程环境就几乎不使用,即使在多线程环境在也不建议使用。因为这些集合类只是在内部自带了 synchronized,但不能保证有锁就一定线程安全原创 2024-04-14 20:35:12 · 1162 阅读 · 0 评论 -
【Java多线程】理解锁策略;synchronized原理;CAS原子操作
synchronized 既是悲观锁,也是乐观锁,既是轻量级锁,也是重量级锁,轻量级锁是由自旋锁实现,重量级锁是由挂起等待锁实现,synchronized 是可重入锁,不是读写锁,是非公平锁。原创 2024-04-14 14:35:48 · 852 阅读 · 1 评论 -
【Java多线程】案例(4):定时器
定时器是一种用于在指定时间间隔或特定时间点执行特定任务的工具或设备。在计算机科学中,定时器。定时器是软件开发中的一个重要组件。类似于一个"闹钟"。达到一个设定的时间之后,就执行某个指定好的代码。:日历应用程序或提醒应用程序可以使用定时器来触发提醒事件,例如在预定的时间点提醒用户参加会议或生日。:定时关闭电视或空调等家用电器,以减少不必要的能源消耗。:在游戏开发中,定时器可以用于实现游戏中的动画效果、计时器功能或限时任务等。原创 2024-04-14 10:01:20 · 1219 阅读 · 0 评论 -
【Java多线程】案例(3):线程池
在Java中,池(Pool)的概念被广泛应用于各种场景,如:常量池、数据库连接池、对象池等,这些池的设计都是为了提高资源的重用性和系统的性能,降低资源创建和销毁的开销。线程池达成的也是类似的效果。原创 2024-04-11 17:49:39 · 967 阅读 · 0 评论 -
【Java多线程】案例(2):阻塞队列
阻塞队列(Blocking Queue)是一种特殊的队列数据结构,具有阻塞的特性。它主要用于多线程编程中,提供了线程安全的数据交换的方法。具有的特性:当队列满的时候,继续入队列就会阻塞,直到有其他线程从队列中取走元素.当队列空的时候,继续出队列也会阻塞,直到有其他线程往队列中插入元素.阻塞队列的一个典型应用场景就是“生产者消费者模型”。这是一种非常典型的开发模型。原创 2024-04-09 16:56:06 · 833 阅读 · 0 评论 -
【Java多线程】案例(1):设计模式
单例模式是校招中最常考的设计模式之⼀。单例模式能保证某个类在程序中只存在唯一一份实例,而不会创建出多个实例。单例模式具体的实现方式有很多,最常见的是"饿汉"和"懒汉"两种。原创 2024-04-03 19:31:39 · 1385 阅读 · 0 评论 -
【Java多线程(3)】线程安全问题和解决方案
死锁的四个必要条件(重点)1.锁具有互斥特性。(基本特点)2. 锁不可抢占:一个线程拿到锁之后,除非它自己主动释放锁,否则别人抢不走。(基本特点)3. 请求和保持:一个线程拿到一把锁之后,不释放这个锁的前提下,再尝试获取其他锁。(代码结构)4. 循环等待:多个线程获取多个锁的过程中,出现了循环等待。如前面的场景2。(代码结构)原创 2024-03-30 14:10:47 · 705 阅读 · 1 评论 -
【Java多线程(2)】Thread常见方法和线程状态
当在一个线程中调用另一个线程的 join() 方法时,当前线程会被阻塞,直到被调用的线程执行完成或超时。例如在上述代码中,调用 t.join() 表示 main 线程会等待 t 线程执行完成或超时,再执行 main线程。原创 2024-03-26 18:22:46 · 1036 阅读 · 0 评论 -
【Java多线程(1)】创建线程的几种方式和Thread类及其常见方法
在 Java 中的线程(Thread)是由 Java 虚拟机(JVM)来管理和调度的,它们并不直接映射到操作系统的原生线程(OS Thread)。Java 线程是由 JVM 在后台使用一种称为“轻量级进程(Lightweight Process)”的概念来实现的。原创 2024-03-24 16:47:54 · 1026 阅读 · 0 评论 -
【Java IO流】缓冲流和对象流的解析和应用实例
Java 中的高级流指的是建立在基本字节流或字符流之上的流,它们提供了更高级别的功能以简化 I/O 操作。除缓冲流和对象流外,常见的高级流还有:数据流、打印流、压缩流、转换流等。原创 2024-03-17 22:29:15 · 1246 阅读 · 0 评论 -
【Java IO流】File文件管理及IO流(基本流)
在电子设备的日常使用中,我们无时不刻在对各个应用的数据进行存储和读取,正因为有了这个技术,对我们的信息存储带来了极大便利。在Java中,IO流就是用于读写文件中的数据(读写文件,或网络中的数据)。而IO流的使用,离不开文件操作,它们间存在密切的联系,通常一起用来实现文件的读取、写入和处理。总之,文件管理提供了对文件系统的操作能力,而I/O流则提供了对文件内容的读取和写入能力,二者结合使用可以实现对文件的全面管理和处理。在Java中,java.io和包提供了丰富的类和方法,支持文件管理和I/O流的操作。原创 2024-02-06 20:33:53 · 736 阅读 · 1 评论 -
一文让你轻松理解Java中的变量捕获机制
在Java中,变量捕获(Variable Capturing)通常指的是在匿名内部类或Lambda表达式中,引用外部作用域的局部变量。当在一个匿名内部类或Lambda表达式中引用外部作用域的局部变量时,该局部变量会被捕获并保存下来,以便在内部类或Lambda表达式中访问和使用。原创 2024-03-24 16:31:34 · 1121 阅读 · 0 评论