- 博客(222)
- 资源 (1)
- 收藏
- 关注
原创 synchronized修饰静态方法和非静态方法的区别
区别: 非静态方法是获取对象锁(如this) 静态方法是获取类锁 (如:Demo.class) public class StaticSynDemo {private static String a="test";//等同于方法print2public synchronized void print1(String b){ //调用前要取得StaticSynD...
2017-04-16 16:27:48 434
原创 Mybatis SqlSessionTemplate 源码解析
Mybatis SqlSessionTemplate 源码解析在使用Mybatis与Spring集成的时候我们用到了SqlSessionTemplate 这个类。 <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate"> <constructor-ar...
2017-02-22 17:22:25 215
原创 Java集合类详解
Collection├List│├LinkedList│├ArrayList│└Vector│ └Stack└SetMap├Hashtable├HashMap└WeakHashMapCollection接口 Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements)。Java SDK不提供直接继承自Colle...
2017-01-16 14:31:22 236
原创 公钥,私钥和数字签名的理解
一、公钥加密 假设一下,我找了两个数字,一个是1,一个是2。我喜欢2这个数字,就保留起来,不告诉你们(私钥),然后我告诉大家,1是我的公钥。我有一个文件,不能让别人看,我就用1加密了。别人找到了这个文件,但是他不知道2就是解密的私钥啊,所以他解不开,只有我可以用数字2,就是我的私钥,来解密。这样我就可以保护数据了。我的好朋友x用我的公钥1加密了字符a,加密后成了b,放在网上。别人偷到了...
2016-08-04 17:56:26 174
原创 JAVA自定义注解1
要深入学习注解,我们就必须能定义自己的注解,并使用注解,在定义自己的注解之前,我们就必须要了解Java为我们提供的元注解和相关定义注解的语法。元注解: 元注解的作用就是负责注解其他注解。Java5.0定义了4个标准的meta-annotation类型,它们被用来提供对其它 annotation类型作说明。Java5.0定义的元注解: 1.@Target, 2.@Rete...
2016-08-01 16:51:21 133
原创 JAVA自定义注解2
如果没有用来读取注解的方法和工作,那么注解也就不会比注释更有用处了。使用注解的过程中,很重要的一部分就是创建于使用注解处理器。Java SE5扩展了反射机制的API,以帮助程序员快速的构造自定义注解处理器。注解处理器类库(java.lang.reflect.AnnotatedElement): Java使用Annotation接口来代表程序元素前面的注解,该接口是所有Annotati...
2016-08-01 16:51:02 122
原创 git同时配置gitlab和github
本人一字一句写的,转载备注来源,谢谢 一、设置gitlab秘钥:1、$ssh-keygen -t rsa -C "cjh@xxx.com"2、回车使用默认 id_rsa取名,最后会生成id_rsa 与id_rsa.pub两个文件3、输入密码4、cd ~/.ssh5、vim id_rsa.pub 拷贝到gitlab设置ssh keys 二、设置github秘钥...
2016-06-16 16:27:05 575
原创 tomcat结合nginx使用小结
相信很多人都听过nginx,这个小巧的东西慢慢地在吞食apache和IIS的份额。那究竟它有什么作用呢?可能很多人未必了解。说到反向代理,可能很多人都听说,但具体什么是反向代理,很多人估计就不清楚了。摘一段百度百科上的描述:Html代码 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器...
2016-06-06 10:45:56 124
原创 maven settings.xml配置解释
http://www.cnblogs.com/skyme/archive/2011/08/19/2146105.html http://www.cnblogs.com/yakov/archive/2011/11/26/maven2_settings.html
2016-05-12 10:39:18 133
原创 Java程序员应该知道的10个调试技巧
Java程序员应该知道的10个调试技巧2016-04-25 15:42在本文中,将使用大家常用的的开发工具Eclipse来调试Java应用程序。但这里介绍的调试方法基本都是通用的,也适用于NetBeans IDE,我们会把重点放在运行时上面。在本文中使用的是Eclipse Juno版(Eclipse 4.2)。在开始前给大家提3点建议!不要使用System.ou...
2016-04-25 20:17:20 115
原创 事务操作报错问题
“Transaction rolled back because it has been marked as rollback-only”参考http://narcissusoyf.iteye.com/blog/710261
2016-04-01 17:44:13 180
原创 Java异常:选择Checked Exception还是Unchecked Exception?
Java包含两种异常:checked异常和unchecked异常。C#只有unchecked异常。checked和unchecked异常之间的区别是: Checked异常(非运行时异常)必须被显式地捕获或者传递,强制捕获或抛出,如Basic try-catch-finally Exception Handling一文中所说。而unchecked异常(运行时异常)则可以不必捕获或抛出。...
2016-04-01 17:18:16 133
原创 spring@Transactional注解解决事务处理问题
自己开始使用注解的时候,不知道为什么总是有错误,好像参考了一本书的方法,一直有错,然后参考了下面的方法成功了,好像是在设置hibernate事务管理器代理类的bean时,应该是ref="sessionFactory",自己写成了ref local="sessionFactory"如 步骤一、在spring配置文件中引入命名空间 xmlns:xsi="http://www.w3.org/...
2016-04-01 16:57:11 207
原创 UML类图几种关系的总结
在UML类图中,常见的有以下几种关系:泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency) 1.泛化(Generalization)【泛化关系】:是一种继承关系,它指定了子类如何特化父类的所有特征和行为例如:老虎是动物的一种.【箭头...
2016-03-29 19:44:09 105
原创 PowerDesigner15.1创建模型及生成带注释sql操作手册
一.创建模型操作:file-->new Model…快捷键:ctrl+n常用的以下两种:1.概念模型(conceptual Data Model) 选择categories-->information-->conceptual Data-->ok创建概念模型2.物理模型(Physical DataModel) 选择ca...
2016-01-22 18:09:33 134
安装cygwin情况下,使用intellj Idea的svn路径问题
原创,亲自遇到的问题 转载请注明出处:http://cjhz.iteye.com/blog/2264611 场景:1、window环境安装了cygwin,2、使用intellij idea15 的svn 比对功能,查看历史记录等报错:Error:svn: E155010: The node '/cygdrive/d/workspace/workspace_2/wms...
2015-12-16 19:45:23 551
原创 cygwin安装
参考:http://blog.csdn.net/jianping_shen/article/details/6300292补充: 1、建议先完全下载好,再运行setup.exe进行安装(网上下载setup-x86.exe/ setup-x86_64.exe,然后运行把安装包下载到本地,备份,下次随时用) 2、源使用 http://mirrors.163.com/c...
2015-12-15 18:11:26 113
原创 Java NIO 系列教程
Java NIO(New IO)是从Java 1.4版本开始引入的一个新的IO API,可以替代标准的Java IO API。本系列教程将有助于你学习和理解Java NIO。感谢并发编程网的翻译和投递。 (关注ITeye官微,随时随地查看最新开发资讯、技术文章。) Java NIO提供了与标准IO不同的IO工作方式: Channels and Buffers(通道和缓冲区):标准的IO基于...
2015-12-08 23:18:04 95
原创 HTTP协议详解
引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generation of H...
2015-12-08 23:03:52 124
原创 Java 多线程同步的五种方法
1、synchronized 2、volatile 3、ReentrantLock() 4、wait() 与 notify() 5、ThreadLocal6、semaphore 一、引言前几天面试,被大师虐残了,好多基础知识必须得重新拿起来啊。闲话不多说,进入正题。二、为什么要线程同步因为当我们有多个线程要同时访问一个变量或对象时,如果这些线程中既有读又...
2015-12-08 00:14:40 81
原创 【Java线程】锁机制:synchronized、Lock、Condition
http://www.infoq.com/cn/articles/java-memory-model-5 深入理解Java内存模型(五)——锁 http://www.ibm.com/developerworks/cn/java/j-jtp10264/ Java 理论与实践: JDK 5.0 中更灵活、更具可伸缩性的锁定机制http://blog.csdn.net...
2015-12-07 23:59:04 82
原创 java自带线程池和队列详细讲解
Java线程池使用说明一简介线程的使用在java中占有极其重要的地位,在jdk1.4极其之前的jdk版本中,关于线程池的使用是极其简陋的。在jdk1.5之后这一情况有了很大的改观。Jdk1.5之后加入了java.util.concurrent包,这个包中主要介绍java中线程以及线程池的使用。为我们在开发中处理线程的问题提供了非常大的帮助。二:线程池线程池的作用:线程...
2015-12-07 23:31:43 84
原创 Memcache,Redis,MongoDB(数据缓存系统)方案对比与分析
一、问题: 数据库表数据量极大(千万条),要求让服务器更加快速地响应用户的需求。 二、解决方案: 1.通过高速服务器Cache缓存数据库数据 2.内存数据库 (这里仅从数据缓存方面考虑,当然,后期可以采用Hadoop+HBase+Hive等分布式存储分析平台)三、主流解Cache和数据库对比: ...
2015-12-07 00:04:56 106
原创 request.getRequestURI()、getRequestURL()、getContextPath()、getServletPath()区别
假定你的web application 名称为news,你在浏览器中输入请求路径: http://localhost:8080/news/main/list.jsp?n=1 则执行下面向行代码后打印出如下结果: 1、 System.out.println(request.getContextPath()); //可返回站点的根路径。也就是项目的名字 打印结果:/news 2、Syst...
2015-11-25 14:26:43 128
原创 Java Volatile/transient关键字
Volatile修饰的成员变量在每次被线程访问时,都强迫从主内存中重读该成员变量的值。而且,当成员变量发生变化时,强迫线程将变化值回写到主内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。 Java语言规范中指出:为了获得最佳速度,允许线程保存共享成员变量的私有拷贝,而且只当线程进入或者离开同步代码块时才与共享成员变量的原始值对比。 这样当多个线程同时与某个对...
2015-11-13 14:45:39 79
原创 MySQL Proxy使用
转自: http://koda.iteye.com/blog/788862http://koda.iteye.com/blog/682547 使用MySQL将读写请求转接到主从Server。 一 安装MySQL Proxy MySQL Proxy的二进制版非常方便,下载解压缩后即用。 解压缩的目录为: $mysql-proxy_installed_dir (这里为/...
2015-10-21 23:13:01 106
原创 MySQL主从复制(Master-Slave)与读写分离(MySQL-Proxy)实践
转载自: http://heylinux.com/archives/1004.htmlMysql作为目前世界上使用最广泛的免费数据库,相信所有从事系统运维的工程师都一定接触过。但在实际的生产环境中,由单台Mysql作为独立的数据库是完全不能满足实际需求的,无论是在安全性,高可用性以及高并发等各个方面。因此,一般来说都是通过 主从复制(Master-Slave)的方式来同步数据,再通过读写...
2015-10-21 23:09:35 98
原创 mysql集群master和salve配置mysql的master和salve详解事件
mysql 集群 master和salve 配置mysql的master和salve 详解事件:由于公司的服务器配置较低,大量的请求用户进来托的很慢将系统,于是想到了mysqd集群配置,具体配置参数就不贴出来了,请看下面 的 原理篇Mysql的 Replication 是一个异步的复制过程,从一个 Mysql instace(我们称之为 Master)复制到另一个 Mysql instance(我...
2015-10-21 21:58:47 188
原创 剖析淘宝TDDL(TAOBAO DISTRIBUTE DATA LAYER)
剖析淘宝 TDDL ( TAOBAO DISTRIBUTE DATA LAYER )注:本文内容引用http://www.tuicool.com/articles/nmeuu2 前言在开始讲解淘宝的 TDDL(Taobao Distribute Data Layer) 技术之前,请允许笔者先吐槽一番。首先要开喷的是淘宝的社区支持做的无比的烂, TaoCode 开源社区上面,几乎从...
2015-10-21 21:32:52 131
原创 分布式集群系统下的高可用session解决方案
目前,为了使web能适应大规模的访问,需要实现应用的集群部署. 而实现集群部署首先要解决session的统一,即需要实现session的共享机制。 目前,在集群系统下实现session统一的有如下几种方案:(1) 应用服务器间的session复制共享(如tomcat session共享)(2) 基于cache DB缓存的session共享应用服务器间的sess...
2015-10-20 23:04:58 101
原创 回调函数透彻理解Java
回调函数,第一次见是在Java编程思想中,以及后来的观察者模式也应用了回调函数的思想。但是一直都没有重视,终于在一次面试的时候吃亏了,越来越理解为什么很多人说Java编程思想这本书要一遍遍的看,吃透! 首先在网络上搜索很多文章介绍什么是回调函数,看的云里雾里的。后来自己一步步分解终于理解了,记录如下。 从维基百科上面摘抄定义:(看完本篇文章再来理解这个定义)...
2015-10-10 20:44:43 85
原创 spring嵌套事务解惑
解惑 spring 嵌套事务 /** * @author 王政 * @date 2006-11-24 * @note 转载请注明出处 */ 在所有使用 spring 的应用中, 声明式事务管理可能是使用率最高的功能了, 但是, 从我观察到的情况看, 绝大多数人并不能深刻理解事务声明中不同事务传播属性配置的的含义, 让我们来看一下 TransactionDefinition...
2015-09-24 22:45:45 116
原创 ibatis中 $ 于 # 的 区别?
一个项目中在写ibatis中的sql语句时,where user_id in (#user_id_list# ), 运行时总是不行,后来上网查了查,才知道这里不该用#,而应该用$,随即查了下#与$的区别. 总结如下: 1.#是把传入的数据当作字符串,如#user_id_list#传入的是1,2,则sql语句生成是这样,in ('1,2') ,当然不可以 2.$传入的数据直...
2015-09-24 22:13:16 80
原创 Spring AOP 实现机制2
(1)AOP的各种实现在编译器修改源代码、在运行期字节码加载前修改字节码或字节码加载后动态创建代理类的字节码。以下是各种实现机制的比较: 类别分为静态AOP(包括静态织入)和动态AOP(包括动态代理、动态字节码生成、自定义类加载器、字节码转换)。静态织入:a、原理:在编译期,切面直接以字节码形式编译到目标字节码文件中 ;b、优点:对系统性能无影响; c、缺点:不够...
2015-09-22 00:23:01 122
原创 Spring AOP 实现机制1
反射实现 AOP 动态代理模式(Spring AOP 的实现 原理) 其实AOP的意思就是面向切面编程.OO注重的是我们解决问题的方法(封装成Method),而AOP注重的是许多解决解决问题的方法中的共同点,是对OO思想的一种补充!还是拿人家经常举的一个例子讲解一下吧:比如说,我们现在要开发的一个应用里面有很多的业务方法,但是,我们现在要对这个方法的执行做全面监控,或部分监控...
2015-09-22 00:16:17 85
原创 JVM内存模型3
java 内存划分:在Java内存分配中,java将内存分为:方法区,堆,虚拟机栈,本地方法栈,程序计数器。其中方法区和堆对于所有线程共享,而虚拟机栈和本地方法栈还有程序计数器对于线程隔离的。每个区域都有各自的创建和销毁时间。程序计数器:作用是当前线程所执行的字节吗的行号指示器。Java的多线程是通过线程轮流切换并分配处理器执行时间方式来实现的。因此,每个线程为...
2015-09-21 23:53:42 83
原创 JVM内存模型2
深入理解JVM—JVM内存模型 我们知道,计算机CPU和内存的交互是最频繁的,内存是我们的高速缓存区,用户磁盘和CPU的交互,而CPU运转速度越来越快,磁盘远远跟不上CPU的读写速度,才设计了内存,用户缓冲用户IO等待导致CPU的等待成本,但是随着CPU的发展,内存的读写速度也远远跟不上CPU的读写速度,因此,为了解决这一纠纷,CPU厂商在每颗CPU上加入了高速缓存,...
2015-09-21 23:51:38 133
原创 JVM内存模型1
JVM学习之-JVM内存结构1.1 JVM运行ClassLoader->RUNNTIME DATA AREA->EXECUTION ENGINE->NATIVE INTERFACE->NATIVE LIBRARIESClass Loader:负责加载类到内存RUNNTIME DATA AREA:负责EXECUTION ENGINE: ...
2015-09-21 23:49:55 82
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人