自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 线程池中常见的阻塞队列

‌与ArrayBlockingQueue不同的是,‌LinkedBlockingQueue的容量可以是无限的(‌通过设置为Integer.MAX_VALUE)‌,‌它采用了懒惰机制,‌只有在入队操作时才创建新的数据结构。‌LinkedBlockingQueue内部使用两把锁,‌一把用于入队操作,‌另一把用于出队操作,‌这种设计允许这两个操作并行进行,‌提高了并发环境下的吞吐量。1.ArrayBlockingQueue:‌基于数组结构的有界(‌容量固定)‌阻塞队列,‌采用FIFO(‌先进先出)‌原则。

2024-08-02 20:51:20 238

原创 GC 垃圾回收四种算法

复制算法将内存分为两个区域,通常是新生代的Eden区和两个Survivor区。对象首先被分配到Eden区,当Eden区满时,存活的对象会被复制到一个空的Survivorq区。一般将内存分为新生代和老年代,根据不同代的特点采用不同的回收对策。新生代通常是用复制算法,老年代通常是用标记-清除和标记-压缩算法。它通过自动监测和不再使用的对象,释放内存空间,以避免内存空间,以避免内存泄漏和提高应用程序的性能。标记-压缩算法首先标记出不可达对象,然后将存活对象压缩到另一端,清理掉未被标记的对象。

2024-08-01 21:20:26 209

原创 java多线程

5.线程状态:线程在其生命周期中可以处于不同的状态,如新建(New)、就绪(Runnable)、运行(Running)、阻塞(Blocked)、等待(Waiting)、定时等待(Timed Waiting)、终止(Terminated)等状态。4.并行(Parallelism):并行是指同时执行多个线程或任务,真正的同时处理多个任务。线程调度:线程调度是指操作系统决定哪个线程应该运行的过程。Java 的线程调度可以由操作系统来决定,也可以通过线程优先级和调度算法进行干预。在 Java 中,线程被封装为。

2024-07-26 20:08:24 127

原创 协程的主要特点和优势

多个协程可以在一个或少数几个线程中并发执行,因此在资源消耗上比线程更加轻量级。总体来说,协程通过提供一种更加灵活和高效的并发编程模型,使得开发人员能够更好地利用现代多核处理器的性能优势,同时降低了并发编程中的复杂性和潜在的错误。2.协作式并发: 协程的调度完全由程序员控制,因此可以精确地控制代码的执行顺序和时机,避免了传统多线程中的锁和同步问题,简化了并发编程的复杂性。5.简化复杂度: 相对于传统的多线程编程模型,协程可以使代码更加简洁、易读,减少了线程间通信和同步所带来的复杂性和潜在的 bug。

2024-07-25 21:01:33 268

原创 Activity的生命周期及四种启动方式

4.singleInstance :单实例模式,与singleTask类似,但是这个Activity会运行在一个单独的任务中,并且这个任务只有这个Activity。4.暂停:当另一个Activity部分覆盖或者一个对话框弹出时,当前Activity会暂停,系统会调用onPause()。6.重新启动:当Activity从停止状态恢复时,系统会调用onRestart()方法,然后继续调用onStart().1.standard:标准模式,每次启动一个Activity都会创建一个新的实例,并放置在任务的栈顶。

2024-07-24 20:35:06 207

原创 Flow流

kotlin协程中使用刮起函数可以实现非阻塞的执行任务并将结果返回,但是只能返回单个计算结果,多个计算结果返回的话可以使用Flow。热数据流迫切,尽可能快的产生元素独立于消费者,可以是集合和channel通道 冷数据惰性,在终端操作的上按需处理元素。4.flow{...}可以通过flowOn切换成子线程后和channerFlow花的时间差不多。flatmap:转换流中的每个并将其转换为另外一个flow。1.通过flow{...}返回的就是冷流同是同步的。2.通过channeFlow返回的就是热流是异步的。

2024-07-23 21:31:49 198

原创 http和https的区别

1.安全性:HTTP是明文传输协议,数据在传输过程中不进行加密,容易被窃听和篡改。而HTTPS使用SSL/TLS协议对数据进行加密,通过证书验证实现数据的机密性和完整性,更安全.4.连接建立过程:HTTP在连接建立前不需要进行握手过程,而HTTPS在连接建立时需要进行握手过程,包括客户端服务器之间的安全协商和安全证书.3.证书:HTTPS需要使用数字证书来加密通信过程。数字证书由权威机构颁发,用于验证网站身份。2.默认端口号:HTTP使用默认端口号是80,而HTTPS使用默认端口号是443.

2024-07-21 21:16:39 158

原创 java中4种引用关系

软应用是一种相对强引用了一些的引用,需要用java.lang.ref.SoftReference类来实现,可以让对象豁免一些垃圾收集。对于只有弱引用的对象来说,只要垃圾回收机制一运行,不管JVM的内存空间是否足够,都会回收该对象占用的内存。强引用是我们最常见的普通对象引用,只要还有强引用指向一个对象,就能表明对象还“活着”,进行垃圾收集器不会碰这种对象。当内存不足,JVM开始垃圾回收,对于强引用的对象,就算是出现了OOM也不会对该对象进行回收,死都不收。java四种引用包括强引用,软引用,弱引用,虚引用;

2024-07-19 16:20:10 219

原创 DevEco Studio 按钮组件

Button组件也是基础组件之一,和其它基础组件不同的是Button组件允许添加一个子组件来实现不同的展示。

2024-07-18 19:49:35 258

原创 线程的状态有哪些

2、运行(RUNNABLE):java线程中就绪(ready)和运行中(running)统称为运行(RUNNABLE)。线程创建后调用该对象的start方法,此时处于就绪状态,当获得CPU时间片后变为运行中状态。5、超时等待(TIMED_WAITING):该状态不同于WAITING,它可以在指定时间后自行返回。4.等待(WAITING):进入该状态的线程需要等待其他线程做出一些特定动作(通知或中断)1、初始(NEW):新创建了一个线程对象,还没调用start方法。

2024-07-17 19:53:12 180

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除