![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
学习笔记
文章平均质量分 77
hcd321
这个作者很懒,什么都没留下…
展开
-
java多线程基础知识
在大学的java课本上,或者是一些java理论知识里,都是这样子写着Java多线程的实现的:1、继承java.lang.Thread,并重写它的run()方法。[code="java"]publicclass Thread implements Runnable {...@Override public void run() { if (...原创 2016-04-30 16:01:07 · 120 阅读 · 0 评论 -
网络协议学习笔记
网络学习的学习笔记,记录一些学习要点。1.网络的五层模型:从下到上 :物理层,链路层,网络层,传输层,应用层。 2.物理层:物理层面把电脑连接起来:可以是光纤电缆无线信号之类的,传输0和1。3.链路层:主要是以太网协议,定义了帧,即一组电信号。协议头记录通讯双方MAC地址(硬件网卡的唯一标识,前六位是厂商id,后六位是厂商内部的流水id)以及其他协议信息。MAC地...原创 2018-04-16 16:54:39 · 201 阅读 · 0 评论 -
dubbo协议报文格式
dubbo默认采用netty进行TCP通讯。TCP是传输层协议,在应用层,往往会拓展自定义的协议,一是可以处理TCP本身的粘包拆包问题,二是约定通讯过程的其他细节。 所以dubbo默认采用自定义的dubbo协议。文档描述:Dubbo缺省协议采用单一长连接和NIO异步通讯,适合于小数据量大并发的服务调用,以及服务消费者机器数远大于服务提供者机器数的情况。缺省...原创 2017-09-19 10:15:04 · 3008 阅读 · 1 评论 -
配合线程池定义可继承的线程变量InheritableThreadLocal
说到可继承的线程变量,大家可能会想到jdk里的实现java.lang.InheritableThreadLocal。它拥有和线程变量ThreadLocal一样的功能,并且,在当前线程上创建一个新的线程实例Thread时,会把这些线程变量从当前线程传递给新的线程实例。(此时线程变量不再线程安全,需要考虑线程安全问题)InheritableThreadLocal: pu...原创 2017-08-29 17:09:10 · 1717 阅读 · 0 评论 -
java线程池增强实现
前两天在开涛的公众号里,开涛聊到一次请求生成唯一的traceId在各个业务系统中传递,然后通过日志收集各个业务服务中的日志,形成一次请求的完整日志。开涛简单的提到了是使用自己实现的线程池增强技术来传递traceId。 我这边系统也有类似的需求。所以我就尝试性地实现了下线程池增强。本来想着既然是增强,第一反应是用代理技术去实现,后来发现不需要代理就可以简单地实现。...原创 2017-01-19 17:01:26 · 303 阅读 · 0 评论 -
从二进制指令看包装类Integer在编译期处理优化及二进制指令代码解析
先看一段demo:package com.onlyou;/** * Created by cd_huang on 2017/5/25. */public class Test { public static void main(String args[]) { intTest(); } public static String intTes...原创 2017-05-25 17:23:55 · 166 阅读 · 0 评论 -
用dubbo直接调用webservice
场景:他人的服务端暴露的webservice接口,我这边客户端集成了dubbo,所以想用dubbo直接去调用webservice。因为dubbo的官方文档上说dubbo有提供这些功能。 dubbo版本2.3.0以上版本支持。需要在pom里添加依赖,它是基于CXF的frontend-simple和transports-http实现。maven依赖:<depe...原创 2017-04-24 12:39:34 · 2476 阅读 · 0 评论 -
java增强for循环的原理验证
在java里,我们是怎么写for循环的代码呢。一般都是用这两种写法:第一种:最传统的for循环写法,for(代码段a;代码段b;代码段c),其中代码段a是初次进入for循环时执行的代码,代码段b是一个boolean的表达式,true则继续执行for循环内容,false则停止for循环,代码段c则是在for循环内部执行完后执行。第二种:针对集合的遍历,for(类型 单个对象:集...原创 2017-04-14 10:35:12 · 436 阅读 · 0 评论 -
junit 4只是简单的加了一个@Test,程序是怎么跑起来的
在写测试用例的时候,突然很疑惑,为什么我只是加了一个@Test的注解,就能运行一个程序。我们知道,main方法才是一个java程序的起点。那junit4的测试用例是怎么跑起来的呢。为了解决这个疑惑,我就自己写测试用例debug调试了下。 测试用例如下:package com.onlyou.olyfinance.remote.base;import org.ju...原创 2017-04-13 23:53:09 · 1180 阅读 · 0 评论 -
java字符串拼接在编译时优化测试
为了验证编译器对于String相关代码的字节码优化,我简单的做了个测试:jdk版本:1.7.0_51 java 用例代码:package com.rsp.shiro;/** * Created by cd_huang on 2017/4/1. */public class StringTest { public static String StaticStrin...原创 2017-04-01 16:11:40 · 414 阅读 · 0 评论 -
用spring目标对象处理Transaction rolled back because it has been marked as rollback-only
在使用spring做事务管理时,很多人都会遇到这样一段异常:org.springframework.transaction.UnexpectedRollbackException: Transaction rolled back because it has been marked as rollback-only at org.springframework.transa...原创 2016-11-07 10:18:40 · 280 阅读 · 0 评论 -
postgresql数据库使用AES加解密和java使用AES加解密不一致的问题
公司内部的P2P平台由于监管,进行了一系列不合规项的整改。其中有一条就是要对数据库中一些比较敏感的信息进行加密,比如:手机,邮箱,身份证,银行卡之类的。解决方案是,在整个过程,查询的时候在java服务端进行解密,插入和更新的时候在java服务端进行加密。数据库端则存放加密后的信息。本来只需要考虑java服务端加解密后能保持一致即可,但是为了方便某些在数据库端进行运维的人能使用sq...原创 2018-05-14 11:20:44 · 3821 阅读 · 1 评论