摘要: Java函数式编程(2):流式计算 您好,我是湘王,这是我的博客园,欢迎您来,欢迎您再来~ Lambda表达式虽然将接口作为代码块赋值给了变量,但如果仅仅只是Lambda表达式,还无法让Java由量变引起质变。真正让Lambda能够发挥出巨大威力的,就是流式计算。 所谓流式计算,就是让数据像在流水线上一样,从一道工序流转到下一道工序。 阅读全文
posted @ 2022-11-07 06:47 湘王 阅读(309) 评论(0) 推荐(0)
摘要: Java函数式编程(1):Lambda表达式(2) 您好,我是湘王,这是我的博客园,欢迎您来,欢迎您再来~ 从之前的Lambda表达式的演变过程可以知道,Lambda表达式其实是一个对匿名内部类的简化过程:去掉了多余的语法修饰,只保留最最核心的部分。在Java中类似这种使用匿名内部类写代码的场景非常多,比如Runnable接口,就是典型的最好使用La 阅读全文
posted @ 2022-11-04 06:45 湘王 阅读(129) 评论(0) 推荐(1)
摘要: Java函数式编程(1):Lambda表达式(1) 您好,我是湘王,这是我的博客园,欢迎您来,欢迎您再来~ Java在其技术发展周期中经历过几次比较重要的变化,如果不是这几次比较重要的变化,恐怕不会有现在这样的江湖地位。个人看来,至少有两次,一是2010~2011年兴起的移动应用开发,Android的出现,让Java狠狠地出了次风头。再就是2014年 阅读全文
posted @ 2022-11-03 06:50 湘王 阅读(71) 评论(0) 推荐(0)
摘要: Java多线程(7):JUC(下) 您好,我是湘王,这是我的博客园,欢迎您来,欢迎您再来~ 除了四种常见的同步器(发令枪、摇号器、栅栏和交换机),JUC还有所谓线程安全的容器、阻塞队列和一些特殊的类。其中常出现的就是线程安全的容器和阻塞队列。与其说这是两个大的分类,还不如说它就是两个用得最多的类:ConcurrentHashMap和A 阅读全文
posted @ 2022-11-02 06:48 湘王 阅读(122) 评论(0) 推荐(1)
摘要: Java多线程(7):JUC(上) 您好,我是湘王,这是我的博客园,欢迎您来,欢迎您再来~ 前面把线程相关的生命周期、关键字、线程池(ThreadPool)、ThreadLocal、CAS、锁和AQS都讲完了,现在就剩下怎么来用多线程了。而要想用好多线程,其实是可以取一些巧的,比如JUC(好多面试官喜欢问的JUC,就是现在要讲的JUC 阅读全文
posted @ 2022-11-01 06:40 湘王 阅读(389) 评论(2) 推荐(1)
摘要: Java多线程(6):锁与AQS(下) 您好,我是湘王,这是我的博客园,欢迎您来,欢迎您再来~ 之前说过,AQS(抽象队列同步器)是Java锁机制的底层实现。既然它这么优秀,是骡子是马,就拉出来溜溜吧。 首先用重入锁来实现简单的累加,就像这样: /** * 用重入锁实现累加 * * @author 湘王 */ public class M 阅读全文
posted @ 2022-10-31 06:47 湘王 阅读(353) 评论(0) 推荐(1)
摘要: Java多线程(6):锁与AQS(中) 您好,我是湘王,这是我的博客园,欢迎您来,欢迎您再来~ Java中的AQS(AbstractQueuedSynchronizer,抽象队列同步器)是用来实现锁及其他同步功能组件的Java底层技术基础,java.util.concurrent包下大部分类的实现都离不开它。 通过继承AQS: 1、Ree 阅读全文
posted @ 2022-10-30 08:36 湘王 阅读(169) 评论(0) 推荐(0)
摘要: Java多线程(6):锁与AQS(上) 您好,我是湘王,这是我的博客园,欢迎您来,欢迎您再来~ 在Java面试中,有一类高频问题会经常问到(火箭式问题):Java有几种锁?都是干嘛的?我想对于面试经验较为丰富的人,这个问题极有可能遇到过。不过我估计除了「死锁」大部分人都听过以外,其他的什么锁可能就不是那么清楚了。实际上,Java总共有6大 阅读全文
posted @ 2022-10-29 09:39 湘王 阅读(117) 评论(0) 推荐(0)
摘要: Java多线程(5):CAS 您好,我是湘王,这是我的博客园,欢迎您来,欢迎您再来~ 在JDK1.5之前,Java的多线程都是靠synchronized来保证同步的,这会引起很多性能问题,例如死锁。但随着Java的不断完善,JNI(Java Native Interface)使得Java能越过JVM直接调用本地方法,例如CAS。 阅读全文
posted @ 2022-10-28 06:47 湘王 阅读(470) 评论(0) 推荐(2)
摘要: Java多线程(4):ThreadLocal 您好,我是湘王,这是我的博客园,欢迎您来,欢迎您再来~ 为了提高CPU的利用率,工程师们创造了多线程。但是线程们说:要有光!(为了减少线程创建(T1启动)和销毁(T3切换)的时间),于是工程师们又接着创造了线程池ThreadPool。就这样就可以了吗?——不,工程师们并不满足于此,他们不把自己创造出 阅读全文
posted @ 2022-10-27 06:44 湘王 阅读(494) 评论(0) 推荐(1)