java
尹忠政
奋斗的年纪
展开
-
Java反射机制的运用-Json解析
大家好啊,好几天没写了,今天项目中json解析很是烦恼(Gson不可以用,原因后台爸爸们不规范),所以我就想要让原生json解析更快点,so,问题来了./** * 这个方法用于调用对象的方法更新字段 * */ public <T> void invoke(T t,String key,Object value,Class valueClass){ try原创 2017-03-08 23:05:16 · 569 阅读 · 0 评论 -
[Proxy] 深入理解jdk动态代理
[Proxy] 深入理解jdk动态代理分析jdk的proxy主要有三个类,Proxy,Proxy.ProxyClassFactory和ProxyGenerator。Proxy是一个面向用户的Client,主要是管理proxy class cache,jdk的proxy必须是interface,且必须传入一个InvocationHandler接口的实例,规约比较强。Proxy.ProxyClas...原创 2018-12-02 17:14:10 · 382 阅读 · 0 评论 -
JVM之回收
我们都知道jVM的垃圾回收主要在我们的heap区,那么java堆又分为青年代(Eden,S0,S1)和老年代(方法区的我们暂时不做考虑),为什么要分块呢?首先,我们的对象产生的时候是存放在Eden中,然后JVM会在适当的时机进行GC,GC的回收算法的根据是“可达性分析算法”而不是“引用计数算法”,那么回收也有常用的两种算法“复制算法”和“标记治理算法”。复制算法,首先将内存分为两块儿,每次只使...原创 2018-11-05 00:13:48 · 117 阅读 · 0 评论 -
SpringBoot配置多数据源(druid)
分析spring本身是支持多数据源动态切换的,AbstractRoutingDataSource这个抽象类就是spring提供的一个数据源路由的一个入口,该抽象类暴露了一个determineCurrentLookupKey()的方法,该方法返回值是Object,该返回值作为key去取Map中的DataSource。AbstractRoutingDataSource getConnect...原创 2018-09-13 17:10:37 · 6083 阅读 · 2 评论 -
springBoot上elasticsearch连接池设计(Jest)
开篇本篇文章是使用Jest的Api来接入elasticsearch,网上说的Jest不需要连接池,查看源码会发现,JestClient确实是有一个异步方法(executeAsync()),但是该方法会额外创建一个线程去执行搜索任务,有些类似OkHttp,在高并发高负载的系统上,就会额外的增加系统开销,上述仅个人想法。在这里,我讲述一种通过定义连接池的方式去优化我们的elasticsearch...原创 2018-09-15 23:31:10 · 7155 阅读 · 2 评论 -
MysqlCluster的ndb节点设置固定端口以及keealived的主/备机在防火墙开启情况下通信失败解决的问题
问题描述1.在非生产环境下安装MysqlCluster关闭防火墙是个较好的选择,但是在生产环境下显然不是太好,通过netstat -tunlp命令来查看ndb节点的机器占用的端口号。然后你就会发现多台ndb节点所占用的端口号不一致,有没有办法让所有的ndb节点占用端口都是固定的呢? 2.由于防火墙打开,导致两台keepalived主/备机不能正常的切换状态,不能知道该局域网中的keepal...原创 2018-04-12 13:37:27 · 1294 阅读 · 0 评论 -
ActiveMQ基础篇
ActiveMQ基础篇前言:本篇介绍两种方式实现activemq的queue模式和topic模式。queue模式是连接在一个目标队列的消费者共享消息,即n消费者平分消息队列中的消息。topic模式是每个消费者在订阅该distation后,都可以获取topic中所有的消息。1.linux环境下安装ActiveMQ到官网下载linux环境下的压缩包,在linux任意目录下解压。...原创 2018-03-18 21:40:47 · 356 阅读 · 0 评论 -
多线程初探之使用Lock实现生产-消费模式
前言在上篇文章中使用的是wait和notify以及synchronized关键字配合实现了线程间的通知,实现了生产-消费模型。本篇文章将使用Lock技术来实现上述模型。Lock介绍Lock是jdk1.5的产物,在此之前我们只能使用synchronized关键字来进行同步,但是synchronized是一个悲观锁机制,不能响应中断。Lock是一个接口,用户需要手动申请锁,手动释放锁,通过Conditi原创 2017-11-21 19:48:58 · 373 阅读 · 0 评论 -
java多线程-生产者消费者
前言对于java开者而言,多线程开发是不可避免的,多线程程序相对于单线程程序稳定性更强,一个线程挂了不会影响整个程序的正常运行。在多cup的机器上,多线程更加具有效率上的优势。但是多线程也会导致一些问题,集中出现在数据方面。当多个线程操作同一个数据源的时候就会出现读脏的问题,如何在多线程下保证数据的原子性和可见性,就显得格外的重要。下面就为大家来解析生产者消费者模式。创建管理类Manager 类负责原创 2017-11-09 22:49:38 · 3012 阅读 · 0 评论 -
Socket通信
开篇为什么要研究Socket?网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。socket本质是编程接口(API),对TCP/IP的封装,TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口;HTTP是轿车,提供了封装或者显示数据的具体形式;Socket是发动机,提供了网络通信的能力[百度百科]。实现服务端package com.y原创 2017-10-13 23:59:51 · 294 阅读 · 0 评论 -
优雅实现request请求IOC
前言上篇我们谈到了如何通过过滤器去分发请求,实现了请求servlet的特定方法的问题,那么携带的参数如何转化为我们想要的javaBean呢?今天就探讨一下该问题该如何解决。原创 2017-09-17 13:54:25 · 593 阅读 · 0 评论 -
优雅自定义请求&servlet方法调用一体化
开篇新入手java开发,在学习servlet的过程中,大家都知道sevlet是请求响应模式,那么一个httpservlet之定义了service(),doget(),dopost()方法,极大的限制开发效率,如何做到网络请求就像调用java中的函数一样轻松?,接下来就该问题简单聊一聊个人想法。原创 2017-09-07 01:17:46 · 1685 阅读 · 0 评论 -
JDBC-连接池之装饰者和动态代理
前言前言通过装饰者模式来定义连接池定义Connection实现定义DataSource实现的实现通过动态代理来定义连接池定义Connection实现动态代理动态的去选择执行对象总结JDBC连接池的存在,解决了数据库连接和释放资源的性能问题,通过在程序初始化的时候创建一定数量的连接,通过集合保存,每当需要进行数据库操作的时候,在连接池中拿,使用完毕后,不是释放资源而是在将拿出的连接对原创 2017-08-27 17:53:53 · 862 阅读 · 0 评论 -
Filter xml配置
Filter xml配置原创 2017-09-04 21:46:04 · 1438 阅读 · 0 评论 -
Java实现二叉树和常见的排序
前言这里总结对二叉树和排序做一下笔记,记不清的时候可以翻来看看。二叉树二叉树分为根节点,双亲节点,叶子节点,节点的度不能超多2,左孩子小于双亲节点,右孩子大于双亲节点。public class Tree { public int data; public Tree father,leftSon,rightSon; public boolean isLeftSon = true; p原创 2017-07-06 14:21:40 · 3959 阅读 · 1 评论 -
反射+注解完美解决Android繁琐的byId和click
Android小白,你还在使用findViewById吗?还在setOnClickListener等等。如果你用过butterknife的话,是不是觉得非常方便,有木有?那么问题来了,为啥别人可以写,我们就不能写?so,今天给大家带来自己实现butterknife的功能。 1.首先定义注解/** * Created by yzz on 2017/3/22 0022. *///作用域@Tar原创 2017-03-23 00:28:37 · 629 阅读 · 0 评论 -
License制作校验工具
Licensekey tool 生成私钥和公钥库生成密钥库和密钥keytool -genkey -alias privatekey -keysize 1024 -keystore D:\privateKey.store -validity 365导出密钥库内密钥的证书keytool -export -alias privatekey -keystore D:\privateKey.st...原创 2018-12-15 16:04:00 · 4292 阅读 · 2 评论