
java核心技术
文章平均质量分 95
刘彦青-Yannis
这个作者很懒,什么都没留下…
展开
-
使用 ThreadPoolExecutor 管理线程池
ThreadPoolExecutor 是 Java 多线程编程中非常重要的工具,能够高效地管理线程的生命周期,提高程序性能和资源利用率。合理配置线程池参数,选择适当的拒绝策略,是保证系统稳定性和性能的关键。原创 2023-10-10 15:46:16 · 194 阅读 · 0 评论 -
java8新特性——stream笔记
streamStreamIntStreamLongStreamDoubleStream创建常用的三种方式:使用list对象:list.stream() − 为集合创建串行流。list.parallelStream() − 为集合创建并行流。Arrays: Arrays.stream( T[] array) − 为数组创建流(可以创建IntStr...原创 2019-12-06 16:08:01 · 1131 阅读 · 0 评论 -
java实现分布式事务的三种方案
问题描述:用户支付完成会将支付状态及订单状态保存在订单数据库中,由订单服务去维护订单数据库。由库存服务去维护库存数据库的信息。下图是系统结构图:如何实现两个分布式服务(订单服务、库存服务)共同完成一件事即订单支付成功自动自动减库存,这里的关键是如何保证两个分布式服务的事务的一致性。尝试解决上边的需求,在订单服务中远程调用减库存接口,伪代码如下:订单支付结果通知方法{ 更新支付表中...原创 2019-10-20 23:51:20 · 32662 阅读 · 1 评论 -
java虚拟机优化JVM优化 —— jvm运行参数
三种参数类型jvm的参数类型分为三类,分别是: 标准参数 -help -version -X参数 (非标准参数) -Xint -Xcomp -XX参数(使用率较高) -XX:newSize -XX:+UseSerialGC 标准参数jvm的标准参数,一般都是很...原创 2019-06-21 11:04:49 · 1757 阅读 · 0 评论 -
java核心技术学习笔记——synchronized底层如何实现?什么是锁的升级、降级?
在Java 6之前, Monitor的实现完全是依靠操作系统内部的互斥锁,因为需要进行用户态到内核态的切换,所以同步操作是一个无差别的重量级操作。现代的(Oracle) JDK中, VM对此进行了大刀阔斧地改进,提供了三种不同的Monitol实现,也就是常说的三种不同的锁:偏斜锁(Biased Locking) 、轻量级锁和重量级锁,大大改进了其性能.所谓锁的升级、降级,就是JVM优化sy...原创 2019-02-19 16:15:26 · 310 阅读 · 0 评论 -
java核心技术学习笔记——理解 String,StringBuffer,StringBuilder
StringString的创建机理由于String在Java世界中使用过于频, Java为了避免在一个系统中产生大量的String对象, 引入了字符串常量池。其运行机制是:创建一个字符串时,首先检查池中是否有值相同的字符串对象,如果有则不需要创建直接从池中刚查找到的对象引用;如果没有则新建字符串对象,返回对象引用,并且将新创建的对象放入池中。但是,通过new方法创建的String对象是...原创 2019-01-22 17:53:20 · 180 阅读 · 0 评论 -
java核心技术学习笔记——强引用、软引用、弱引用、幻象引用
强引用我们平常典型编码Object obj = new Object()中的obji就是强引用。通过关键字new创建的对象所关联的引用就是强引用。当JVM内存空间不足, JVM宁愿抛出OutOfMemoryEror运行时错误(OOM) ,使程序异常终止,也不会靠随意回收具有强引用的"存活"对象来解决内存不足的问题。对于一个普通的对象,如果没有其他的引用关系,只要超过了引用的作用域或者显式地将相...原创 2019-01-22 10:03:05 · 302 阅读 · 0 评论 -
Java核心技术学习笔记——final, finally,finalize
final可以用来修饰类、方法、变量,分别有不同的意义, final修饰的class代表不可以继承扩展, final的变量是不可以修改的,而final的方法也是不可以重写的(override)finally则是Java保证重点代码一定要被执行的一种机制。我们可以使用try-finally或者try catch-finally来进行类似关闭JDBC连接、保证unlock锁等动作。finali...原创 2019-01-21 16:56:23 · 220 阅读 · 0 评论 -
java核心技术学习笔记——Exception与error的区别
Exception和Error都是继承了Throwable类,在Java中只有Throwable类型的实例才可以被抛出(throw)或者捕获(catch) ,它是异常处理机制的基本组成类型。Exception和Error体现了Java平台设计者对不同异常情况的分类。Exception是程序正常运行中,可以预料的意外情况,可能并且应该被捕获,进行相应处理。Error是指在正常情况下,不大可能出现的情...原创 2019-01-21 14:57:43 · 220 阅读 · 0 评论 -
全面理解String
字符串设计和实现考量 我在前面介绍过,String 是lmmutable类的典型实现,原生的保证了基础线程安全,因为你无法对它内部数据进行任何修改,这种便利甚至体现在拷贝构造函数中,由于不可变,Immutable 对象在拷贝时不需要额外复制数据。我们再来看看StringBuffer实现的一些细节,它的线程安全是通过把各种修改数据的方法都加上synchronized关键字实现的,非...原创 2018-06-29 11:35:19 · 1178 阅读 · 3 评论