java
闭门车
这个作者很懒,什么都没留下…
展开
-
【无标题】
一,创建ServerBootstrap实例:ServerBootstrap是Netty服务端的启动辅助类,它提供了一系列的方法用于设置服务端启动相关参数,这里用到了Faced设计模式(降低和过多底层API打交道);另外ServerBootstrap在创建时,是无参的,只需要后边设置对应的参数即可,这边其实是用到了Builder设计模式(只需要关心多个简单的对象构建,不需要关心对象创建的内部细节)。类名:ServerBootstrap二,设置并绑定Reactor线程池:b.group(bossGroup,原创 2022-05-19 16:39:19 · 170 阅读 · 0 评论 -
netty client步骤
1.启动类2.添加EventLoop3.选择客户端channel实现4.添加处理器5.连接到服务器6.向服务器发送数据原创 2022-05-19 16:21:09 · 245 阅读 · 0 评论 -
深入理解 动态代理+反射
上动态代理的代码首先接口类public interface Moveable { void move();}实现类public class Tank implements Moveable { public void move() { // TODO Auto-generated method stub System.out.println("Tank begin Mov原创 2017-08-03 17:34:51 · 272 阅读 · 0 评论 -
红黑树之 原理和算法详细介绍
http://www.cnblogs.com/skywang12345/p/3245399.html转载 2017-05-12 12:06:16 · 267 阅读 · 0 评论 -
拦截器 过滤器 监听器
拦截器 过滤器 监听器过滤器Servlet中的过滤器Filter是实现了javax.servlet.Filter接口的服务器端程序,主要的用途是过滤字符编码、做一些业务逻辑判断等。其工作原理是,只要你在web.xml文件配置好要拦截的客户端请求,它都会帮你拦截到请求,此时你就可以对请求或响应(Request、Response)统一设置编码,简化操作;同时还可进行逻辑判断,如用户是否已经转载 2017-05-30 23:25:52 · 220 阅读 · 0 评论 -
volatile的适用场景
http://blog.csdn.net/vking_wang/article/details/9982709转载 2017-05-10 01:26:42 · 273 阅读 · 0 评论 -
synchronied原理
synchronied原理: Mark Word(标记字段)所有的Java对象是天生的Monitor,每一个Java对象都有成为Monitor的潜质,因为在Java的设计中 ,每一个Java对象自打娘胎里出来就带了一把看不见的锁,它叫做内部锁或者Monitor锁无锁状态(hashcode+对象分代年龄),偏向锁状态(线程id),轻量级锁状态(指向锁记录的指针)和重量级锁状态(指向重量级锁的指针)转载 2018-01-18 09:45:03 · 392 阅读 · 0 评论 -
流行的rpc框架benchmark
http://colobu.com/2018/01/31/benchmark-2018-spring-of-popular-rpc-frameworks/转载 2018-02-03 15:44:56 · 690 阅读 · 0 评论 -
吃饭前看面试题:ScheduledThreadPoolExecutor 线程池浅析
https://mp.weixin.qq.com/s/7O6vftzkIT_xANYmUuFJcA转载 2019-03-04 14:07:50 · 598 阅读 · 0 评论 -
Java深入理解IO NIO在文件复制过程中的应用
第一种,传统的IO模式 private static void copyByIO(String srcPath, String dstPath) { byte[] buffer = new byte[bufferSize]; FileInputStream fis = null; FileOutputStream fos = null;...原创 2018-06-04 23:28:51 · 9066 阅读 · 0 评论 -
JVM知识
判断对象存活的算法1.引用计数法 缺点:很难解决对象之间相互循环引用的问题。2.根搜索算法(可达性分析算法)以下几种可以判定为GC roots的对象1.虚拟机栈中的引用的对象2.方法区中的类静态属性引用的对象。3.方法区中的常量引用对象。4.本地方法栈中JNI(即一般说的Native方法)的引用的对象。注意:根搜索算法中不可达的对象,不是非死不可,它现在处于缓刑阶...原创 2018-07-22 19:05:06 · 239 阅读 · 0 评论 -
序列化与自定义序列化
https://www.cnblogs.com/yoohot/p/6019767.htmlhttps://www.cnblogs.com/chenfei0801/archive/2013/04/06/3002146.htmlhttp://www.cnblogs.com/dukc/p/4817822.html原创 2018-07-09 19:03:54 · 1030 阅读 · 0 评论 -
RedisTemplate的key默认序列化器问题
redis的客户端换成了spring-boot-starter-data-redis,碰到了一个奇怪的问题,在同一个方法中1.先hset,再hget,正常获得数据。在不同的方法中 先hset,再hget获取不到数据,通过redis的monitor监控发现了命令的问题:实际我的key为JK_HASH:csrk,hashkey为user,但是根据上图所示,实际执行的命令多了好多其他字符,这是什么原因呢...原创 2018-06-19 18:01:57 · 37034 阅读 · 1 评论 -
InputStream与OutputStream 的基本方法说明
InputStream ◇ 从流中读取数据: int read( ); //读取一个字节,返回值为所读的字节 int read( byte b[ ] ); //读取多个字节,放置到字节数组b中,通常读取的字节数量为b的长度,返回值为实际读取的字节的数量 int read( byte b[ ], int off, int len ); //读取len个字节,放置到以下标off开始字节数组b中,返回值...原创 2018-06-02 09:55:10 · 6429 阅读 · 0 评论 -
一次webservice查错
先大概说下情况,使用的oracle service bus做的webservice,应用程序2套部署在不同的weblogic上,各省向国家传数据OK,国家向各省传数据原来也OK,突然某一天,其中3个省反映收不到数据,网络组坚称没有调过网络配置,怎么办,只能自己找原因了,首先通过ping检查网络是正常的。然后自己写了个简单的例子部署到服务器端,直接调3个问题省的webservice发送数据,OK,正...原创 2018-03-28 15:09:16 · 161 阅读 · 0 评论 -
Unsafe源码解析
Unsafe源码解析 mark原创 2018-03-21 13:36:42 · 237 阅读 · 0 评论 -
Spring 事务相关知识
Propagation (事务的传播属性)Propagation :key属性确定代理应该给哪个方法增加事务行为。这样的属性最重要的部份是传播行为。有以下选项可供使用:PROPAGATION_REQUIRED--支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择。PROPAGATION_SUPPORTS--支持当前事务,如果当前没有事务,就以非事务方式执行。PROPA原创 2017-04-26 15:18:00 · 214 阅读 · 0 评论 -
CENTOS6.5添加JAVA环境变量
配置环境变量我的机器安装完jdk-7-linux-i586.rpm后不用配置环境变量也可以正常执行javac、java –version操作,因此我没有进行JDK环境变量的配置。但是为了以后的不适之需,这里还是记录一下怎么进行配置,操作如下:修改系统环境变量文件vi + /etc/profile向文件里面追加以下内容:JAVA_HOME=/usr/java/转载 2016-01-14 18:52:31 · 2587 阅读 · 0 评论 -
Java使用Fork/Join框架来并行执行任务
http://blog.csdn.net/ouyang_peng/article/details/46491217现代的计算机已经向多CPU方向发展,即使是普通的PC,甚至现在的智能手机、多核处理器已被广泛应用。在未来,处理器的核心数将会发展的越来越多。虽然硬件上的多核CPU已经十分成熟,但是很多应用程序并未这种多核CPU做好准备,因此并不能很好地利用多核CPU的性能优转载 2015-06-16 23:56:31 · 489 阅读 · 0 评论 -
volatile内存模型
http://www.infoq.com/cn/articles/ftf-java-volatile转载 2015-03-17 16:29:59 · 382 阅读 · 0 评论 -
父类与子类的构造顺序
今天有人问我父类跟子类的构造顺序问题,写了个例子,姑且记一下直接上代码吧先是父类:package cn.extend;public class Parent { String name; int age; static String sex; public Parent() { System.out.println("Praent constructor is原创 2015-03-02 12:47:13 · 1043 阅读 · 0 评论 -
HashMap与LinkedHashMap知识
1.HashMap创建的时候默认大小是16,加载因子是0.75,同时还有一个大小为10的Entry数组。2.put(key,value)方法是有返回值的,如果key对应的hash不重复返回值为null;如果key对应的hash重复,而且key于原来hash相同的key值或者对象相同,那么替换换来的key对应的value,并返回原value;还有一种情况,key对应的hash重复了,但是相同ha原创 2015-01-07 17:03:49 · 410 阅读 · 0 评论 -
SPRING面试知识点
1.ApplicationContext提供了BeanFactory所能提供的功能管理,包括bean的加载,实例化,维护bean之间的依赖关系,负责bean的声明周期之外,还提供了更完整的框架功能:a. 国际化支持通过配置org.springframework.context.support.ResourceBundleMessageSourceb. 资源访问:Resource rs = c转载 2014-09-09 00:16:56 · 1038 阅读 · 0 评论 -
JAX-WS webservice报超时错误的解决
我的项目是webservice的客户端,今天在接一个大的订单时报错,算了下,不到300K,报错如下java.net.SocketTimeoutException: Read timed out在stackoverflow上查了下,发现可以通过设置超时时间解决,代码如下: IEAMDtNegotiationRecordService service = new IEAMDtNegot原创 2017-03-01 18:06:16 · 4195 阅读 · 0 评论 -
Java开发岗位面试题归类汇总
java面试知识汇总转载 2016-03-10 14:10:15 · 1365 阅读 · 0 评论 -
JAVA CAS原理分析
http://blog.csdn.net/hsuxu/article/details/9467651CAS是Compare and Swap的简写,比较然后交换。以类AtomicInteger中的compareAndSet方法为例,可以看到调用的是unsafe中的compareAndSwapInt来实现的,并没有使用锁。 public final boolean compareAndSet(...转载 2017-05-02 23:35:47 · 308 阅读 · 0 评论 -
java 线程池详解
线程池原理待补充1.6之前主要的线程池都是由ThreadPoolExecutor来实现的首先来看下ThreadPoolExecutor的构造函数 public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, ...原创 2017-05-12 12:36:56 · 219 阅读 · 0 评论 -
详解LinkedBlockingQueue
LinkedBlockingQueue,许多书中称之为无界队列,那么他真的是无界队列吗?从数据结构看,它是链表型的队列,链表的一个特性就是长度无限制,那LinkedBlockingQueue是不是跟链表一样长度无限制呢,答案是否定的,有长度限制。 BlockingQueue<Object> bq1=new LinkedBlockingQueue<Object>(1...原创 2017-05-15 15:59:58 · 986 阅读 · 0 评论 -
Java 强引用 软引用 弱引用的使用
Java 强引用 软引用 弱引用的使用转载 2017-05-10 23:26:47 · 200 阅读 · 0 评论 -
如何防止SQL注入
http://www.cnblogs.com/janeaiai/p/5732123.html看完了总结下,就两点内容:1.用PreparedStatement预编译语句2.是采用正则表达式将包含有 单引号('),分号(;) 和 注释符号(--)的语句给替换掉来防止SQL注入。转载 2017-04-12 14:35:58 · 171 阅读 · 0 评论 -
读JAVA并发包之AbstractQueuedSynchronizer,有更新
java.util.concurrent.ThreadPoolExecutor内部类Worker继承了AbstractQueuedSynchronizer,这个不说了,说说ReentrantLock吧。从创建锁对象开始,有的同学之前已经注意到了,创建对象的时候是可以加参数的。 ReentrantLock rl1=new ReentrantLock(false);ReentrantL...原创 2017-04-11 17:14:19 · 238 阅读 · 0 评论 -
手写阻塞队列
class BoundedBuffer { final Lock lock = new ReentrantLock(); final Condition notFull = lock.newCondition(); final Condition notEmpty = lock.newCondition(); final Object[] items = new O转载 2015-03-25 18:00:52 · 1570 阅读 · 0 评论 -
Thread的状态
Thread的状态原创 2017-04-11 17:16:12 · 418 阅读 · 0 评论 -
CMS收集器
http://ifeve.com/useful-jvm-flags-part-7-cms-collector/关键点如下优缺点:CMS收集器为老年代垃圾回收提供了几乎完全并发的解决方案,然而年轻代仍然通过“stop-the-world”方法来进行收集。对于交互式应用,停顿也是可接受的,背后的原理是年轻带的垃圾回收时间通常是相当短的。转载 2017-04-10 12:54:57 · 254 阅读 · 0 评论