随笔分类 -  Java

分布式事务
摘要:分布式事务是分布式服务中十分重要的概念;提到分布式事务,当然首先要明白ACID,原子性,一致性,隔离性和持久性;隔离性和持久性,分布式数据已经天然满足(数据分布存储满足隔离性,每个节点的数据引擎已经实现了持久性);分布式服务主要是想的是原子性和一致性。 那么下面就是关于原子性和一致性都是由分布式服务 阅读全文

posted @ 2019-05-20 18:56 张叫兽的技术研究院 阅读(139) 评论(0) 推荐(0) 编辑

关于CAS
摘要:CAS是乐观锁的一种实现。CAS是Compare And Swap的缩写,是一种高效的处理并发的机制,说他高效是因为CAS是cpu的一个指令,可以在指令层面上来进行操作(非CPU指令操作需要多个CPU指令组合才能够完成功能,所以效率有影响);至于并发处理,是因为CAS操作首先是一个原子操作(CPU指 阅读全文

posted @ 2019-05-17 17:45 张叫兽的技术研究院 阅读(243) 评论(0) 推荐(0) 编辑

dd/MMM/yyyy:hh:mm:ss +0800日期格式的转化
摘要:private static void myHandler() throws ParseException { String dtime1 = "23/Apr/2019:04:08:00 +0800"; SimpleDateFormat sdf1 = new SimpleDateFormat("dd 阅读全文

posted @ 2019-04-27 07:56 张叫兽的技术研究院 阅读(1929) 评论(0) 推荐(0) 编辑

Springboot配置文件映射
摘要:添加类和配置文件的映射: 1.定义映射类 @Component @PropertySource("classpath:config/XX.properties") public class ConfigClass{ @Value("$name") public String userName; .. 阅读全文

posted @ 2018-10-19 20:03 张叫兽的技术研究院 阅读(554) 评论(0) 推荐(0) 编辑

多线程优雅关闭
摘要:之前写过类似的专题,但是最近发现了一个新问题,就是如果你父级线程创建了一个定时线程(通过ScheduleAtFixedRate),如果父级线程因为异常退出,切机要在catch快中把你创建的所有的线程(不限于定时线程)给关闭,否则将会出现线程孤岛的情况,这些线程可能永远都无法消失。 阅读全文

posted @ 2018-10-14 20:03 张叫兽的技术研究院 阅读(735) 评论(0) 推荐(0) 编辑

JVM内存模型(二)
摘要:JVM为什么要区分为栈和堆? 栈代表的操作逻辑存储,堆代表的是数据逻辑存储,这样来划分更加清晰; JVM的内存在宏观上面来讲分为私有内存和共享内存;所谓共享内存(堆)寓意就是各个私有的栈(每个线程私有)可以通过引用来共享堆中的对象。这样的设计可以让各个线程共享一个对象;节省空间,另外可以实现逻辑语义 阅读全文

posted @ 2018-06-19 23:31 张叫兽的技术研究院 阅读(132) 评论(0) 推荐(0) 编辑

JVM内存模型(一)
摘要:主要澄清之前对JVM内存模型的一些误区: JMV内存主要分为5块:方法区(Method Area),堆区(Heap),虚拟机栈(VM stack),本地方法栈(Native Method stack),程序计数器; 可以看到内存整体可以划分为共享区和私有区;共享区其实就是堆(年轻带,老年代)和方法区 阅读全文

posted @ 2018-06-19 22:56 张叫兽的技术研究院 阅读(218) 评论(0) 推荐(0) 编辑

Builder模式
摘要:Builder模式有什么好处? 构造函数构造一个函数的好处就是直接,但是缺点就是如果参数比较多,需要重载构造函数或者一个构造函数里面定义多个构造参数,对于调用方来讲十分不友好; 另外一种方式就是java bean模式,定义一个简洁的构造函数,然后通过set属性的方式来构造;这种方式避免了构造函数模式 阅读全文

posted @ 2018-06-04 09:10 张叫兽的技术研究院 阅读(208) 评论(0) 推荐(0) 编辑

jdk版本对应数字
摘要:org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.web.servlet.mvc.annotation.DefaultAnnotati 阅读全文

posted @ 2018-04-22 22:29 张叫兽的技术研究院 阅读(662) 评论(0) 推荐(0) 编辑

String的不变性到final在java中用法
摘要:final在Java语言里面啥意思 final修饰一个类,那么这个类就是不可继承。string就是一个非常有名的被final修饰的类,不过他的更加有名的是“不可被修改”。 究竟什么是不可改变?string,大家可能都知道string是不可变,那么如果我们改变string呢,他确实变了,这个“他”已经 阅读全文

posted @ 2018-04-15 16:56 张叫兽的技术研究院 阅读(183) 评论(0) 推荐(0) 编辑

SPI: Service Provider Interface
摘要:Service Provider Interface; JDK提供的一种服务发现的机制;主要是用于厂商实现JDK的只用。 比如说打印机,JDK提供了一个驱动接口com.printl.printerDriver;爱普生公司将会提供 com.epson.EpsonPrinterDriver,惠普会提供c 阅读全文

posted @ 2018-04-05 16:45 张叫兽的技术研究院 阅读(157) 评论(0) 推荐(0) 编辑

java的try-with-resource机制
摘要:在java7之后可以使用try(resource1, resource2){...}这样声明之后,在try{}执行完成之后或者抛异常跳出,都会调用reouce1.close(),resource2.close()。和之前的finally块很像 但是有两点区别:1. try-with-resource 阅读全文

posted @ 2018-04-05 16:44 张叫兽的技术研究院 阅读(502) 评论(0) 推荐(0) 编辑

servlet运作机制
摘要:最近研究zipkin,在研究客户端brave的时候,才算开始理解servlet了。 servlet只是tomcat被实例化一次; 之后每次访问其实都是对同一个servlet示例操作;所以,不要在servlet的实现中创建什么全局变量(实例变量),并发可能会有问题。 通过下面的示例可以测试出只是被实例 阅读全文

posted @ 2018-04-05 16:32 张叫兽的技术研究院 阅读(146) 评论(0) 推荐(0) 编辑

关于bonecp和QuerRunner
摘要:之前一直以为boneCP和QueryRunner是绑定的,但是其实不是,后者来自于commons-dbUtils,BoneCP就是负责连接池。 while preparing SQL: UPSERT INTO.... Parameters[] 如果采用QuerRunner的exuecute,不可避免 阅读全文

posted @ 2018-03-04 15:19 张叫兽的技术研究院 阅读(165) 评论(0) 推荐(0) 编辑

迭代删除的处理机制
摘要:直接在for下面remove/delete都会引发异常:ConcurrentModificationException下面是解决方案:利用迭代器进行删除; 收集删除项,最后一并删除 阅读全文

posted @ 2018-03-04 12:34 张叫兽的技术研究院 阅读(144) 评论(0) 推荐(0) 编辑

RESTful处理JSON
摘要:@ResponseBody,代表着该函数返回的值将会放到response中,如果是复杂形式,将会被解析为JSON;如果返回的是Map,那么前台直接可以通过类似于对象的方式来获取(因为后台返回的json字符串被前台直接解析为就是JSON对象): 早期的时候,返回的是List<Map<String, S 阅读全文

posted @ 2018-02-25 21:26 张叫兽的技术研究院 阅读(1185) 评论(0) 推荐(0) 编辑

JUnit测试,获取Spring MVC环境
摘要:其他的测试类继承此类即可;在JUnit运行的时候将会加载spring的context,可以用于测试controller以及Service 阅读全文

posted @ 2018-02-05 19:19 张叫兽的技术研究院 阅读(253) 评论(0) 推荐(0) 编辑

Jeesite开垦
摘要:1. userIndex里面,$ctx是在哪里定义的? 就是request.context 2. 增加新的包后,扫描配置修改1) spring-context.xml文件中,扫描非@controller注解,需要添加路径 2)spring-context.xml文件中,MyBatis的类entity 阅读全文

posted @ 2017-12-03 21:01 张叫兽的技术研究院 阅读(514) 评论(0) 推荐(0) 编辑

Guava手记
摘要:Cache Guava的Cache封装的功能比较全面,但是很多地方和设想的不太一样,最明显的就是RemovalListener,它并不是invalid之后就会被调用,因为在调用Cache的invalid的时候,其实并没有真正从内存中删除,只是标记为删除而已,需要通过调用clear或者手工获取的时候, 阅读全文

posted @ 2017-06-11 14:00 张叫兽的技术研究院 阅读(177) 评论(0) 推荐(0) 编辑

深表浅表拷贝
摘要:深表拷贝意指堆中的内容也会拷贝,浅表拷贝是指栈中内容拷贝(共享拷贝源的堆指针)。 JDK里面只是提供了浅拷贝,比如System.array.copy就是一例。如果想要实现深度拷贝需要将对象进行序列化,然后再进行反序列化获取对象,此时是深度拷贝。 但是既然JDK里面没有提供深度拷贝,那也意味着其实深度 阅读全文

posted @ 2017-06-11 13:50 张叫兽的技术研究院 阅读(215) 评论(0) 推荐(0) 编辑

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示