- 博客(54)
- 资源 (8)
- 收藏
- 关注
原创 Docker安装Redis集群
Docker的出现,降低了很多中间件的搭建的成本,而且Docker镜像可以把整个搭建过程记忆起来,在新的环境中,只要安装了Docker环境,那么只要把镜像移植,就可以创建一个新的Redis环境,而且搭建成本很低,这就是Docker技术的一大价值。和Java的Maven管理一样,一个好的Java框架,只要引入pom依赖,并且进行简单的配置或者引入注解,即可进行运行,不用管内部细节。那么对于RedisDocker项目也是一样,如果对于使用者来说,只要进行:配置文件修改 -> 修改properties
2021-09-24 15:28:39
1044
原创 动态代理模式(Cglib实现)
使用过SpringAOP的人都知道, AOP的底层实现原理是使用了动态代理模式来实现面向切面编程。而SpringAOP使用的动态代理方式有JDK的动态代理,另一个则是Cglib的动态代理。本文先不讲AOP,主要讲Cglib的动态代理实现过程。Cglib底层实现是使用了ASM操作字节码生成代理对象,由于这种技术十分底层,因此本文不打算研究,而且这些知识对于应用开发来说投入产出比不高,因此对于Cglib,个人主张只需要知道其大概实现过程,在日常开发中一旦遇到和Cglib相关的问题,可以能比较快速的解决方案。
2021-07-14 17:14:04
645
原创 RPC原理
微服务时代,RPC远程调用成为了一个重要的角色。因此本篇文章将会讨论一下RPC的实现原理以及模拟一个RPC实现。RPC原理我们还是按常规归纳为三要素:动态代理、网络传输、序列化下面是RPC原理图:下面我们模仿下RPC的实现过程,其中动态代理使用JDK自带的动态代理。网络传输使用最原始的Socket的BIO模式。序列化也采用JDK的ObjectInputStream和ObjectOutputStream.。先上用例再上原理服务端用例(包括主函数和rpc接口实现):public class Serv
2021-07-06 17:55:12
360
原创 线程池剖析(一)
线程池技术讲解线程池思想,我们借用Jdk自带的线程池ThreadPoolExecutor来解释1、corePoolSize、maximumPoolSize与workQueue一个互动过程、为了方便测试的时候,了解线程的调用情况,因此改写了ThreadFactory,线程名称前缀为THREAD-POOL-,按序号递增,这样我们就能清楚看到线程调用的是核心线程还是拓展线程public class AsyncThreadFactory implements ThreadFactory { pr
2021-06-29 20:01:37
312
6
原创 Hessian Hello World
1.用例图:2.时序图:3.梗概: a.动态代理:被调用者带有接口的定义,接口的实现在调用者处,被调用者通过动态代理触发网络IO,请求调用者查找对应的接口并调用 b.网络IO:远程调用的本质是分离思想,把计算的服务分离,那么分离则需要一个媒介沟通,那么这个媒介可以看出是网络IO(本地的两个进程也可以看成是网络IO传送)。 c.序列化方式和协议:不同的远程调用可能会使用到不同序列化方法和传送协议
2017-12-05 16:59:27
268
原创 React JS环境搭建
使用webpack搭建React JS简单的demowebpack:http://webpack.github.io/1.安装react和react-dom:npm install react react-dom2.安装babel,babel-loadernpm install babel-core@5 babel-loader3.安装webpacknpm insta
2017-06-01 16:33:57
485
原创 LinkedList源码阅读(JDK 8)
LinkedList源码阅读,归纳了下面三个点: 1.内部静态类:private static class Node { E item; Node next; Node prev; Node(Node prev, E element, Node next) { this.item = element
2017-03-30 16:52:27
392
原创 对"yyyyMM"与"yyyyMMdd"类日期的校验
最近在工作中需要用到对"yyyyMM"类的日期校验,比如"201501"就表示2015年1月,然后如果是"201513",“2015qew”等这些这是非法的输入。 之前使用了一直方式校验,使用SimpleDateFormat类的parse()方法,该方法会抛出ParseException异常,如果parse不符合format,就会抛出该异常。但后来发现了一个问题...
2015-07-11 20:09:39
1896
原创 Oracle命名规范归纳
表:t_tableName索引:index_indexName序列:s_sequenceName视图:v_viewName存储过程:p_procedureName函数:f_functionName触发器:tr_triggerName
2015-01-30 21:42:51
1221
原创 一个关于借款时间的问题
问题:如果我在2015年1月31日向A借款1000元,一个月之后准时还。这时,问题就出来了,我是在2月28日还,还是在3月2日还?这时我们就必须弄清楚我们是按30天一个月算得,还是直接按一个月算。最近做一个p2p网贷的二次开发,遇到了这个问题,假如用户在31日发标,但如果下个月没有31日,这样就会产生一些误会。那么假如我们把一个月定义成单纯的一个月,比如1月1日,一个月
2014-12-28 16:17:56
1076
原创 Linux 解压,压缩
设:在压缩时,压缩文件夹为fileDir,目标压缩文件为file.xxx(zip,tar.gz) 在解压时,压缩文件为file.xxx(zip,tar.gz),解压文件夹为fileDir1,zip(这个对于一些Linux版本可能需要额外安装)压缩:zip file.zip fileDir(把fileDir文件夹压缩为zip)解压:unzip file.zip(
2014-11-29 15:54:54
628
原创 Mysql GROUP BY NULL
CREATE TABLE IF NOT EXISTS A(id INT PRIMARY KEY AUTO_INCREMENT ,NAME VARCHAR(10)) ;CREATE TABLE IF NOT EXISTS B(id INT PRIMARY KEY AUTO_INCREMENT ,NAME VARCHAR(10) ,aid INT NOT NULL) ;INSERT INTO A
2014-11-19 16:39:19
11405
转载 (精)字符集GBK和UTF8的区别说明
原GBK就是在保存你的帖子的时候,一个汉字占用两个字节。。外国人看会出现乱码,此为我中华为自己汉字编码而形成之解决方案。UTF8就是在保存你的帖子的时候,一个汉字占用3个字节。。但是外国人看的话不会乱码,此为西人为了解决多字节字符而形成之解决方案。ASCII(ISO-8859-1)是鼻祖,最简单的方式,字节高位为0GB2312、GBK、GB18030,这几个是中
2014-11-11 10:39:13
876
原创 JDBC事务
create table bank( id int primary key auto_increment , name varchar(20) not null , money double not null default 0.00) ;insert into bank (name ,money) values("Martin" , 1000) ;insert into
2014-09-10 21:33:36
715
原创 Hibernate单向多对一级联删除引发的问题
Hibernate单向多对一在级联删除时,会出现一些问题。下面模拟我遇到的问题:这次模拟与之前的一次模拟方法一直,博客:http://blog.youkuaiyun.com/openjdk8/article/details/38424403模拟场景:有一个部门表t_dept,职位表t_position。需求:当删除部门表时,不管职位表有没数据,照样删除。删除职位表就直接删除。1,建
2014-08-11 21:41:09
6939
1
原创 Hibernate单向多对多
最近做一个OA系统,用到了Hibernate框架,我发现,权限和角色的关系是一种多对多的关系,一个权限可以分配给多个角色,一个角色拥有多个权限。多对多关系有两种,一种是单向的,一种是多向的。对于这个问题,曾经让我很犯难。单纯在语言上理解,会比较复杂,而从代码上理解,可能就会明白了。下面模拟为角色授权的过程:1,Hibernate使用Annotation2,使用Junit进行测试。
2014-08-07 21:52:46
2535
原创 MVC原理
*********************************写于2014年8月6日************************************************************************* 最近一直在开发一个OA系统,用到了Struts2框架,逐渐对MVC原理有了一丁点理解。下面在今天写下我的那一丁点的理解。 回
2014-08-06 22:35:31
1067
原创 Eclipse错误积累
1,启动 Eclipse 时弹出Failed to load the JNI shared library jvm.dll
2014-07-19 20:53:24
635
转载 子查询中不能包含order by
今天做开发遇到一个问题:写sql语句:select top 20 * from (select top 200 * from ump_user order by id)ttnn sql查不出来 因为子查询中不能包含order by 子句具体原因:在8i以前,子查询中不能包含Order By子句。从8i开始,子查询可以有Order By,但必须是有top-n的这
2014-07-14 14:18:03
1782
原创 Hibernate Error积累
1,Could not find a getter for id in class org.jian.domin.User:2,
2014-07-04 13:02:08
774
转载 配置hibernate根据实体类自动建表功能
文章转载至:http://blog.youkuaiyun.com/lixuyuan/article/details/8057119Hibernate支持自动建表,在开发阶段很方便,可以保证hbm与数据库表结构的自动同步。如何使用呢?很简单,只要在hibernate.cfg.xml里加上如下代码Xml代码update update:表示自动根据model对象来更新表结构,启动
2014-07-04 11:13:44
534
转载 oracle-ora 各种sql异常描述
java.sql.SQLException错误!ORA-00904: --invalid column name 无效列名ORA-00942: --table or view does not exist 表或者视图不存在ORA-01400: --cannot insert NULL into () 不能将空值插入ORA-00936: --缺少表达式
2014-06-25 16:57:30
5642
原创 Android开发常见Error积累
Error 1:[2014-05-03 11:51:43 - Dex Loader] Unable to execute dex: java.nio.BufferOverflowException. Check the Eclipse log for stack trace.[2014-05-03 11:51:43 - FaceData] Conversion to Dalvik fo
2014-06-10 15:01:36
739
原创 Tomcat错误积累
1,Error:(环境 JDK 8 , Tomcat 7)org.apache.jasper.JasperException: Unable to compile class for JSP: An error occurred at line: 1 in the generated java fileThe type java.util.Map$Entry cannot be reso
2014-06-10 14:59:41
3866
原创 PriorityQueue
package org.jian.test;import java.util.LinkedList;import java.util.PriorityQueue;import java.util.Queue;public class PriorityQueueTest { public static void main(String[] args) { Queue priorit
2014-06-06 17:07:56
563
json-lib-2.2.2-jdk15.jar
2014-08-05
Debian 163软件源
2014-05-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人