
Java那点事儿
文章平均质量分 94
Java知识点总结
啤酒就辣条
但行好事,莫问前程。
公众号:啤酒就辣条
展开
-
一篇线程池,肝了它!
何为线程池?顾名思义,线程池就是管理线程的池子。可以利用线程的复用,降低资源消耗,提高响应速度。这里解释一下,一个线程从类加载到到被垃圾收回是十分消耗资源的,也是需要一定响应时间的,我们从线程池中拿一条线程复用,省去了创建到销毁的过程,降低资源消耗,响应时间也会短很多。Executor是Java并发的一个框架,它可分为两部分:任务,即业务的逻辑编写,需要代码实现Runnable接口或者Callable接口;执行任务:把任务分派给多个线程的执行机制,即线程池的工作,需要实现Executor接口或者Execu原创 2021-09-28 18:17:26 · 453 阅读 · 2 评论 -
搞明白synchronized和ReetrantLock
上一篇文章,我们熟悉了Java锁的分类。今天,来学习下Java中常用的悲观锁synchronized和ReetrantLock吧。学习使我快乐,哦耶!目录synchronizedsynchronized是什么?synchronized锁的级别synchronized的基本使用synchronized对象级别的锁synchronized类级别的锁synchronized是重入锁ReetrantLockReetrantLock基本使用ReetrantLock重入性公平锁和非公平锁ReetrantLock可.原创 2020-10-31 18:11:04 · 595 阅读 · 3 评论 -
Java锁分类原来是这个样子
学了几天python,辣条君始终不忘自己其实是个Javaer。来,跟着辣条君一起看看Java锁是如何分类的吧。Java锁是为了保证并发过程中,数据维护的准确性。乐观锁与悲观锁乐观锁:认为当前读取数据的时候,不会有线程去修改数据,所以不需要加锁。当更新数据的时候,首先查看数据和自己曾经记录的数据是否一致,如果一致,则更新之;如果不一致,采取一些手段,比如报错或者自旋(自旋后面会讲)。举个例子,一个线程A读取账户余额时,不会加锁,读到20元,线程A账户记录更新为20元。然后线程A为账户余额增加5元,.原创 2020-10-29 17:03:32 · 222 阅读 · 2 评论 -
再来看看Java的新特性——Stream流
半年前开始试着使用Java的新特性,给我印象最深的就是Stream流和Optional。其中Stream提高了看法效率,让代码看起来十分清爽。为什么要使用流?摘要中已经说明了,为了提高开发效率。流可以帮助我们高效操作集合,流帮助我们通过流水线的方式对集合进行删减、合并、排序、修改,并最终返回我们想要的元素数据或统计数据。流水线的意思是说,一批元素不需要等待全部元素都完成某步操作,才进行下步...原创 2019-11-16 21:54:54 · 349 阅读 · 0 评论 -
【并发】强大的CompletableFuture
引子为了让程序更加高效,让CPU最大效率的工作,我们会采用异步编程。首先想到的是开启一个新的线程去做某项工作。再进一步,为了让新线程可以返回一个值,告诉主线程事情做完了,于是乎Future粉墨登场。然而Future提供的方式是主线程主动问询新线程,要是有个回调函数就爽了。所以,为了满足Future的某些遗憾,强大的CompletableFuture随着Java8一起来了。Future传统多...原创 2020-03-02 17:00:58 · 228 阅读 · 0 评论 -
Java设计模式【建议收藏版】
引子设计模式是很多程序员总结出来的最佳实践。曾经在刚开始写项目的时候学习过设计模式,在开发过程中,也主动或者被动的使用过。现在写代码虽说不会特意明确在用哪种设计模式,但潜移默化的写出来公认的最佳实践代码,毕竟看的比较清爽。为什么再看一遍设计模式,主要有几个原因:第一,很多优秀的源码基本都使用了设计模式,明确设计模式能够更好的看源码。第二,很多中间件设计理念也是基于设计模式的,还有其他的语言,都...原创 2020-03-02 16:54:54 · 226 阅读 · 0 评论 -
SpringBoot+SpringSecurity+jwt整合及初体验
原来一直使用shiro做安全框架,配置起来相当方便,正好有机会接触下SpringSecurity,学习下这个。顺道结合下jwt,把安全信息管理的问题扔给客户端,准备首先用的是SpringBoot,省去写各种xml的时间。然后把依赖加入一下<!--安全--><dependency> <groupId>org.springframework.b...原创 2019-06-01 19:31:58 · 12276 阅读 · 16 评论 -
@Transactional回滚问题(try catch、嵌套)
Spring 事务注解 @Transactional 本来可以保证原子性,如果事务内有报错的话,整个事务可以保证回滚,但是加上try catch或者事务嵌套,可能会导致事务回滚失败。测试一波。准备建两张表,模拟两个数据操作CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(20) D...原创 2019-05-26 16:14:17 · 6980 阅读 · 4 评论