讲个故事
面试官:IPv4地址可以转为Long类型的数字知道吧?你写一下这个转换的代码!
对计算机基础逐渐模糊的小徐一脸懵逼,毕竟工作中很少会用到,只记得IP地址和整数是可以相互转换的,但是从来没有自己实现过。于是在大脑中飞速计算。过了一会,思路出现了:IP地址分为四段,每段都...
徐 承恩
1年前 (2019-12-25) 660℃
1喜欢
传播行为
事务的第一个方面是传播行为。传播行为定义关于客户端和被调用方法的事务边界。Spring定义了7中传播行为。如下表所示:
传播行为
意义
PROPAGATION_MANDATORY
表示该方法必须运行在一个事务中。如果当前没有事务正在发生,将抛出一个异常
...
徐 承恩
1年前 (2019-12-24) 437℃
1喜欢
脏读
脏读就是指当一个事务正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库中,这时,另外一个事务也访问这个数据,然后使用了这个数据。
不可重复读
不可重复读是指在一个事务内,多次读同一数据。在这个事务还没有结束时,另外一个事务也访问该同一数据。那么,在第一个事务...
徐 承恩
1年前 (2019-12-23) 526℃
1喜欢
回顾前面做一些实验,你会发现,实现一的并发性能高于实现二、三。暂且不关心BlockingQueue的具体实现,来分析看如何优化实现三(与实现二的思路相同,性能相当)的性能。
分析实现三的瓶颈
最好的查证方法是记录方法执行时间,这样可以直接定位到真正的瓶颈。但此问题较简单,我们直接...
徐 承恩
1年前 (2019-12-12) 440℃
1喜欢
我们要保证理解wait && notify机制。实现时可以使用Object类提供的wait()方法与notifyAll()方法,但更推荐的方式是使用java.util.concurrent包提供的Lock && Condition。
...
徐 承恩
1年前 (2019-12-12) 424℃
1喜欢
如果不能将并发与容量控制都封装在缓冲区中,就只能由消费者与生产者完成。最简单的方案是使用朴素的wait && notify机制。
package com.github.xuchengen.concurrent.impl;
impo...
徐 承恩
1年前 (2019-12-12) 437℃
0喜欢
BlockingQueue的写法最简单。核心思想是,把并发和容量控制封装在缓冲区中。而BlockingQueue的性质天生满足这个要求。
package com.github.xuchengen.concurrent.impl;
import c...
徐 承恩
1年前 (2019-12-12) 429℃
1喜欢
考查Java的并发编程时,手写“生产者-消费者模型”是一个经典问题。有如下几个考点:
对Java并发模型的理解
对Java并发编程接口的熟练程度
bug free
coding style
JDK版本:oracle java 1.8.0_102
本文主要归纳了4种写法,阅读后...
徐 承恩
1年前 (2019-12-12) 553℃
0喜欢
创建型模式
创建型模式,就是创建对象的模式,抽象了实例化的过程。它帮助一个系统独立于如何创建、组合和表示它的那些对象。关注的是对象的创建,创建型模式将创建对象的过程进行了抽象,也可以理解为将创建对象的过程进行了封装,作为客户程序仅仅需要去使用对象,而不再关系创建对象过程中的逻辑。...
徐 承恩
1年前 (2019-12-09) 518℃
0喜欢