![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
JAVA基础
文章平均质量分 87
java语言方面的知识和个人感悟
栗子叶
这个作者很懒,什么都没留下…
展开
-
并发编程2:Java 加锁的原理和JVM对锁的优化
这篇博客介绍了Java中的同步机制和对象锁,以及如何使用synchronized关键字来实现对共享资源的互斥访问。文章详细解释了ObjectMonitor监视器的工作原理和加锁过程,并探讨了Java对同步机制的优化措施,包括偏向锁、轻量级锁和重量级锁等。此外,文章还介绍了锁粗化、锁消除和分段锁的概念。原创 2023-12-03 23:38:10 · 333 阅读 · 0 评论 -
并发编程1:多线程的基本概念
介绍了进程、线程和守护线程的概念,以及Java中的用户线程和原生线程。文章还讨论了线程的优先级和上下文切换,并详细解释了Java中线程的状态和终止方式。此外,文章还介绍了如何创建线程,包括使用Runnable接口和Thread类,并比较了Callable接口和Runnable接口的不同之处。最后,文章提供了一个使用Callable和Future的例子来实现异步执行和结果获取。原创 2023-12-03 23:29:46 · 96 阅读 · 0 评论 -
Tomcat的类加载机制和JVM的类加载机制
介绍了JVM的各个类加载器和JVM的双亲委派机制,同时说明SPI机制为何不遵守双亲委派机制。同时对比Tomcat的类加载机制原创 2023-02-03 00:31:21 · 625 阅读 · 0 评论 -
JAVA8 最完整的全新的日期和时间API介绍
介绍java的日期处理1. 从Java 1.0 开始,就引入了Date类,但是API不好用,并且无法处理**闰秒**1. Java1.1 引入Calendar类1. 第三次引入的API 最成功,就是 java8的 Java.time API,它纠正了过去的缺陷java.time的要点1. java.time对象都是不可变的2. 一个瞬间(Instant) 是时间线上的一个点3. java时间中,每天都是86400秒 没有闰秒4. 持续时间 Duration 是两个瞬间之间的时间原创 2021-11-28 04:38:51 · 1457 阅读 · 0 评论 -
java8中的lambda表达式,看这篇就够了
Lambda表达式Lambda是简洁的标识可传递匿名函数的一种方式。“互动”事件驱动下,最终面向对象编程和函数式编程结合才是趋势。 java中,一段代码的传递并不容易。因为JAVA是面向对象的语言,如果要传递一段代码,必须先构建类,再生成对应的对象来传递所要的代码。在之前,JAVA的设计者都抗拒加入这一特性,虽然JAVA现有的特性也能通过类和对象实现类似的API但是这样复杂且不易于使用。在后期,问题早已不是JAVA是不是要变成一门使用函数式编程的语言,而是如何实现这种改变。在java8之前已经有了多年的实原创 2021-07-07 14:43:53 · 16202 阅读 · 4 评论 -
java中的行为参数化,函数式编程
行为参数化:代码块可以当作参数被使用,传递给另一个方法,或者稍后执行它。为什么要参数化传递代码应对不断变化的需求,如果没有行为参数化,需要参数里做出对应改变,无限增加参数。示例://2.11 筛选绿苹果 public static List<Apple> filterGreenApples(List<Apple> inverntory){ List<Apple> result=new ArrayList<>();原创 2021-07-07 14:40:52 · 440 阅读 · 0 评论 -
java8的optional
Option类型Optional是一个T对象的封装,比直接指向对象的引用更安全,正确的使用情况下不会返回Null使用optional值optional的值存在Optional的关键,在于 接受正确值或者返回替代值的方法- ifPresent() 方法如果需要返回值,可以使用 optionalObject.map( function对象 ) ,类似于Stream的map方法,此处可以将Optional 可选值类,当做一个大小为 0 或者1 的流,返回的结果也是同样的 0 或者1 的流。原创 2021-07-07 14:38:49 · 276 阅读 · 0 评论