![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
iteye_9461
这个作者很懒,什么都没留下…
展开
-
Java Mybatis
ORM这个词对于很多做J2EE开发的人来讲,并不陌生,如Hibernate,但是在使用Hibernate时,你会有一个很大的感受是什么呢?那就是关联映射这个东东不太好弄,还有级联的设置,导致在公司中,其实很用Hibernate并不是太多,所以才有Mybatis这个半ORM框架,何为半ORM框架,就是它一半是使用sql来写的,但是最终的结果是对象,这个神奇吧。而且不像网上一大堆例子,Mybatis中...原创 2015-10-30 14:22:37 · 71 阅读 · 0 评论 -
Java SAX 解析xml
在上一篇中[url]http://gaofulai1988.iteye.com/blog/2262673[/url],主要讲解了DOM解析xml,它最大的不足之处是要在解析之前要载入这个XML文件,如果这个文件很大,它的效率就不高了。后来有人提出了基于标签事件触发的方式来解析XML文件。什么意思呢?如果遇到一个那么它是一个标签的结束。这些特殊标志出现的时候,就会触发一个事件来处理。...原创 2015-12-08 18:13:42 · 93 阅读 · 0 评论 -
Java JDom 解析xml
JDOM在解析XML在代码量之上比之前的方法(DOM和SAX要少很多了)。XML文件如下:[code="xml"] 123456 abc 456789 def [/code]代码如下:[code="java"]public static void ...原创 2015-12-09 08:22:52 · 98 阅读 · 0 评论 -
Java Dom4j 解析XML
Dom4j和JDom是很相似的,用起来十分方便。XML文件如下:[code="xml"] 123456 abc 456789 def [/code]代码如下:[code="java"]public static void main(String a...原创 2015-12-09 08:23:13 · 93 阅读 · 0 评论 -
XPATH 解析XML
[b]1. 表达式描述[/b]nodename 选取此节点的所有子节点 / 从根节点选取 // 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置 . 选取当前节点 .. 选取当前节点的父节点 @ 选取属性 [b]2. 路径组合表达式[/b] 组合多个路径表达式,扩大选择范围;例如: //book/title | ...原创 2015-12-09 08:28:24 · 91 阅读 · 0 评论 -
Java Xstream xml 与bean之间的转换
xml文件如下:[code="xml"] /WEB-INF/view/index.jsp /index.jsp /WEB-INF/view/index.jsp /index.jsp [/code]代码如下:[code...原创 2015-12-09 08:31:08 · 81 阅读 · 0 评论 -
Java RSA 加密 解密 签名 验签
[b]1. 加密的作用[/b]1)明文变密文(你不知道密钥是很难解密的);2)数据的一致性(hash值一样);3)数据的可信任性(验签)。[b]2. 两种不同的加密与解密[/b][b]1)对称加密[/b]:加密与解密使用相同的密钥,处理速度快;[b]2)非对称加密[/b]:加密与解密使用不同的密钥(生对生成),处理速度不及对称加密。[b]3.在非对称加密...原创 2015-12-09 10:01:31 · 506 阅读 · 0 评论 -
ThreadPoolExecutor参数讲解
[b]1. 线程池可以节省创建多个线程带来的开销问题。[/b][b]2. 线程池的参数如下:[/b] [code="java"]public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, l...原创 2015-12-10 08:14:49 · 247 阅读 · 0 评论 -
java Hessian 版本冲突问题解决方法
今天在实际的项目发现了一个问题就是hessian的版本不兼容的问题。原始的项目用的是3.0.20版本,后面与另一个项目中用的是4.0.37版本,结果一直出错。解决的方法:[b]1. 下载Hessian 4.0.37的源码下来;2. 修改源码的package 名字,加一个数字就好;3. 导出jar包。[/b]这样在后面调用时就注意了,3版本就调用3版本的包,4...原创 2015-12-11 19:44:34 · 911 阅读 · 0 评论 -
request.getInputStream() 只能读一次的解决方法
我们知道request.getInputStream()只能读一次,如果下一次读,就会报告Stream closed的错误。下面是解决方法。[code="java"]InputStream input = request.getInputStream(); ByteArrayOutputStream bytebuffer= new Byt...原创 2015-12-17 12:17:22 · 787 阅读 · 0 评论 -
Java Restful
对于两个系统之间交互信息,有两种常见的方式:webservice和restful。webservice简单理解就是一个系统开放出一个接口供别人调用,它注重的是方法的调用。restful简单理解是通过抽象出网络资源,通过http来调用,它注重的是网络资源的抽象。今天看一下个restful的实现框架,以一个例子来看看。[b]1. 下载jersey jar包;[/b]...原创 2015-12-19 14:01:00 · 368 阅读 · 0 评论 -
动态代理的应用
代理模式作为开发人员来讲,应该不会很陌生,它要做的事情很简单:屏蔽被调用方的实现过程。它在一类远程过程调用中,使用得非常广泛。具体的过程呢?调用方 A 被调用方BmethodA(){ getResult(){ call B.getResult(...原创 2015-12-22 17:30:43 · 194 阅读 · 0 评论 -
Java XML解析系列
Java解析XML有多种方式,因此需要分为几个不同的系列来讲。具体安排如下:1. DOM最基本解析XML;2. SAX基于事件解析XML;[url]http://gaofulai1988.iteye.com/blog/2262677[/url]3. JDOM不错的解析XML;[url]http://gaofulai1988.iteye.com/blog/2262680[/url]...原创 2015-12-08 18:00:52 · 107 阅读 · 0 评论 -
Java 背包算法计算从数组中找若干个数使其最接近某个数
背包的算法的动态方式如下:[code="java"]f(i,w) = max{ f(i-1,w), f(i-1,v-weight[i])+value[i] }[/code]状态转移方程理解如下:f(i,w)表示前i个物体面对容量为w时背包的最大价值,weight[i]代表物体i的重量(即重量),value[i]代表物体i的价值;如果第i个物体不放入背包,则背包的最大价值等于前i...原创 2015-12-08 17:38:29 · 1551 阅读 · 0 评论 -
C3P0 连接分析
最近在看C3P0的原理,还是将C3P0的源码导入到Ecplise中debug看得清楚多了。下面记录我debug的经历。1. 下载c3p0的jar和源码,这个百度吧。2. 导入jar和源码到java工程中,导入后,会发现有些错误的,把junit的类去掉,有的提示没有实现一些方法,就加进去,还有的提示要删除多余的实现方法,就删除掉吧,这样下来,基本上不报错了。3. debug的过程中,...原创 2015-12-01 19:05:12 · 118 阅读 · 0 评论 -
缓存研究
[b]1. 缓存分类[/b][b]1)Client Cache[/b]在大型网站中,往往会考虑使用Client Cache,如京东网站,通过抓包可以看出它就设置了Cache: Cache-Control:max-age=120,其它的大型网站,如淘宝也都设置了Cache的值。它们都是通过Http 协议头中的字段来控制完成:Cache-Control,Expires,Last-Modif...原创 2015-11-10 16:33:54 · 83 阅读 · 0 评论 -
java 生成短链接
有时候,我们给用户发送一些短信中,涉及到url问题,如果一个url太长,那么很可能就是两条短信的内容。解决这个问题的方法就是缩短url的长度,如何来缩短呢,我想有两种方法来完成。1. 生成一定长度字符串与url的映射 如:http://xxx/xxx/?code=123abc25 其中123abc25就是一个与url对应的编码,这样在后台接收后,根据映射取出url,再做重定...原创 2015-11-12 14:31:55 · 730 阅读 · 0 评论 -
java 定时任务
[b]1. 需要导入的包[/b] quartz-2.2.1.jar quartz-jobs-2.2.1.jar slf4j-api-1.6.6.jar slf4j-log4j12-1.6.6.jar log4j-1.2.8.jar [b]2. 写两个类(一定要写两个,没有public,它是访问不了的)[/b][code="java"] p...原创 2015-11-12 14:38:19 · 59 阅读 · 0 评论 -
java 线程池
在分析java线程池源码之前,先对线程池作一个简单的介绍和铺垫。在开发中,经常有两个与"池"相关的东西出现在我们的视野中:一个是连接池;另一个是线程池。为什么要使用它们呢?我想原因有两个:1)不管创建一个连接池还是线程池,它们的性能开销还是十分大的;2)连接的数量有一个边界,不可能来一个就创建一个,启到以有限的资源去处理未知的请求。总言之,"池"是为了提升系统的性能而设...原创 2015-11-16 14:09:48 · 64 阅读 · 0 评论 -
ThreadPoolExecutor源码分析
1. 构造函数 [code="java"] public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, ...原创 2015-11-17 10:30:54 · 64 阅读 · 0 评论 -
加密与解密
我本身不是学密码出身的,但在工作中经常要使用加密与解密的东东,因为从事金融领域,没有办法,对安全性比较高,所以必需要接触到加密与解密的知识。在这一篇中,不具体讨论任何加密和解密的实现代码,只是从现实的角度去理解加密和解密。数据的安全性体现在以下几点上:1.数据加密;2.数据的完整性;3.数据的信任性。对于加密而言,就是明文加密成密文,你拿去了也没有用。现在有两种加密方式...原创 2015-11-18 18:12:33 · 120 阅读 · 0 评论 -
Java WeakHashMap 分析
昨天在我们的系统中看到了这样的一行代码:[code="java"]private final Map CACHE = new WeakHashMap();[/code]对于[code="java"]WeakHashMap[/code]而言,之前还真的没有听过, :cry: 惭愧啊!晚上就好好的研究了下,这个不对不说说强引用、软引用、弱引用、虚引用以及垃圾回收了。[b]1. 强引...原创 2015-11-26 08:17:45 · 82 阅读 · 0 评论 -
Java JDBC executeBatch 批量操作
对JDBC 的 CRUD操作,我相信对于每个开发人员来讲,是十分熟悉的,尤其是在小型公司的开发人员来讲,大部分的工作也就是这些了。但是对于一个大型系统而言,简单的CRUD是无法存活下来的,因为它的数据量极大,不是简单的几千条,几万条,有时基本在几十万条,甚至几百万条数据量。之前我们的业务也没有太多,简单的生成订单就是普通的insert操作,有一次发现,操作一个2w条的订单数量,前后花费的时...原创 2015-11-27 08:05:59 · 1296 阅读 · 0 评论 -
java try catch finally return 继续
之前在博客中有一篇文章讨论过异常中return值的情况,有兴趣可以参见[url]http://gaofulai1988.iteye.com/admin/blogs/2259371[/url],当时的例子比较简单,今天来了特殊点的例子。在上例子之前,还是回顾以下之前的几个要点:[b]1. throw 后面的代码是不会执行的。 2. 不管是否有异常,都会执行finally。 3...原创 2015-11-27 13:45:12 · 115 阅读 · 0 评论 -
JAVA Timestamp 与Data的转化以及BigDecimal 保留两位小数
[b]1. BigDecimal 保留两位小数[/b]今天在项目中遇到这样的一个需求,计算的结果保留两位小数点,不要求进行四舍五入。直接上代码了,没有什么好说的。[code="java"]BigDecimal decimal = new BigDecimal("0.002");// 保留两位小数String str = new DecimalFormat("0....原创 2015-11-27 14:47:26 · 666 阅读 · 0 评论 -
微信开发的原理
微信在现在的生活中,扮演着举足轻重的角色,现在怎么东西都在微信上运转得风生水起,如微信支付,微信购物,微信红包等等。那么微信开发的原理又是怎样的呢?这里要区分两个概念:[b]微信服务器[/b]和[b]应用服务器[/b][b]微信服务器是腾讯的服务器,它做的工作是转发的作用。应用服务器的使用是接收微信服务器的请求,处理逻辑,向微信服务器响应请求。[/b]所以整个示意图如下...原创 2015-11-30 10:10:45 · 468 阅读 · 0 评论 -
Java IO 读文件的各种方法总结
IO分为字节流和字符流,字符就是简单的字符串存储,从理伦上讲,在内存中所有的数据都是二进制,是一个字节一个字节的序列,所以字节流可以存储像图片、图像等文件。现在有一个文件,分别用字节流和字符流来实现。[b]1. 字符读取(一次读若干个数据)[/b][code="java"]FileReader reader = new FileReader(file);char buf[] =...原创 2016-01-01 15:00:14 · 135 阅读 · 0 评论