- 博客(46)
- 资源 (5)
- 收藏
- 关注
原创 Java字符串拼接效率分析
关于字符串处理在Java中通常有三个类进行处理:StringStringBuilderStringBuffer这三个类进行字符串拼接,StringBuilder和StringBuffer都有同样的方式,都拥有append()方法.而StringBuilder和StringBuffer不同之处在于,在做一次append操作的时候,StringBuffer是线程安全的(仅仅是在一次操作)。...
2015-01-07 19:31:01
171
原创 JVM内存模型及垃圾回收机制
JVM内存模型1、栈Java栈是与每一个线程关联的,JVM在创建每一个线程的时候,会分配一定的栈空间给线程。存储局部变量、引用、方法、返回值等。StackOverflowError:如果在线程执行的过程中,栈空间不够用,那么JVM就会抛出此异常,这种情况一般是死递归造成的。2、堆Java中堆是由所有的线程共享的一块内存区域,堆用来保存各种JAVA对象,比如数组,线程对象等。 2.1堆...
2014-11-19 11:36:17
132
原创 Ibatis代码自动生成器
根据sql语句生成对应的dao,以及ibatis文件。 代码地址https://github.com/qq54903099/ibatis-dalgen
2014-11-12 13:43:43
247
原创 关于Integer比较的小问题
关于Integer比较的小问题 Integer a = 1;Integer b = 1; Integer c = 127;Integer d = 127; Integer e = 128;Integer f = 128; System.out.println(a==b);System.out.println(c==d);System.ou...
2014-11-06 09:35:24
126
原创 Solr集群配置(Master-slave)
现在使用Master-Slave的放方式配置Solr的集群,Master用来创建索引,Slave从Master复制索引。 Mater-solrConfig.xml 写道<requestHandler name="/replication" class="solr.ReplicationHandler" > <lst name="master"> <s...
2014-09-22 15:58:34
177
原创 页面下载
主要通过_response将byte[]输出到前端。_response.setHeader("Content-disposition","attachment; filename="+dateFrom+"_"+type+(StringUtil.isEmpty(subType)?"":"_"+subType)+".xls");//filename是下载的xls的名,建议最好用英文
2014-09-16 14:08:37
103
原创 Tomcat请求流程讲解
这周部门同事要求我来进行分享一下Tomcat,我也在空余的时间对Tomcat的源码进行了阅读。 最初拿到这样一个事情,我也是比较头疼的,找不到着手点进行讲解。后来在网上查询了一些资料,对Tomcat的整体架构也有了一点了解。于是我开始着手于对Tomcat源码跟踪。 Tomcat整体是由多个组件组成,最顶层的组件是Server,一个Server代表着一个JVM实例,由Server...
2014-08-22 17:46:00
116
原创 Quartz+Spring集群配置(转)
概述 虽然单个Quartz实例能给予你很好的Job调度能力,但它不能满足典型的企业需求,如可伸缩性、高可靠性满足。假如你需要故障转移的能力并能运行日益增多的 Job,Quartz集群势必成为你应用的一部分了。使用 Quartz 的集群能力可以更好的支持你的业务需求,并且即使是其中一台机器在最糟的时间崩溃了也能确保所有的 Job 得到执行。 Quartz 中集群如何工作 一个 Quartz 集群...
2014-08-16 10:02:51
96
原创 Java中几个容易忽略的问题
1.数组转换成list 将数组转成成List一般使用Arrays.asList()这个方法。List<String> staticList = Arrays.asList(strArray);查看源代码可以看到,这里生成的List是Arrays的内部静态类,这个List继承了了AbstractList,但有一些方法没有实现。比如add,delete方法。所以这里直接生...
2014-08-14 09:24:09
170
原创 怎样对带有不可序列化属性的Java对象进行序列化 (转载)
出于很多原因我们想使用自定义的序列化方法取代Java默认的机制。一个最常见的原因是提高性能,而另一个原因是有时候我们无法使用默认的序列化方法。在这篇文章中,我们具体来讨论怎样通过定制的序列化方法,对一个较大的、带有不可序列化属性的对象进行序列化。下面这段代码定义了一个简单的类。它可以把一个给定的对象序列化到一个指定的文件,或者从相同的文件中把对象反序列化出来。在这片文章中,我将使用这个类进行...
2014-04-29 11:41:37
832
1
原创 关于判断两个对象是否相等的问题
起源面试中面试官问我的一个问题:long l1 = 10Llong l2 = 10L问: l1==l2 是true还是false我毫不犹豫回答true他接着问,为什么?我卡住了,回答不上来。紧接着,Object o1 = new Object() ;Object o2 = new Object() ;问:o1==o2 是true还是false我回答是...
2014-04-03 11:16:35
105
原创 vim E303错误信息解决记录
用VIM打开一个文件时,出现一下错误信息提示:E303: Unable to open swap file for "[No Name]", recovery impossible在命令行模式下执行::help E303输出相关信息如下:Unable to open swap file for "{filename}", recovery impossible Vim was not able t...
2014-03-25 10:02:44
522
原创 计算Java有效代码行数
最近在学习Python,之前也练习过,但时间一长有些东西还是有一点生疏,如果仅仅停留在看的级别上,那么对一门语言的学习也仅仅停留在了解的基础上。今天闲着无聊,便动手写了一个计算Java代码有效行数的这样一个DEMO,里面用到了正则表达式,这个东西w 我现在用起来还是比较吃力的,纵观整个代码不过100行,但确实用了我今天一天的时间。 这个DEMO,不计算空行、单行注释、多行注释,只计算...
2014-03-18 16:18:13
829
原创 java并发编程实践笔记
1, 保证线程安全的三种方法 :a, 不要跨线程访问共享变量b, 使共享变量是 final类型的c, 将共享变量的操作加上同步2, 一开始就将类设计成线程安全的 , 比在后期重新修复它 ,更容易 .3, 编写多线程程序 , 首先保证它是正确的 , 其次再考虑性能 .4, 无状态或只读对象永远是线程安全的 .5, 不要将一个共享变量裸露在多线程环境下 (无同步或不可变性保护 )...
2014-01-10 15:57:34
100
原创 Java NIO系列教程之 Buffer(转)
原文链接 作者:Jakob Jenkov 译者:airu 校对:丁一Java NIO中的Buffer用于和NIO通道进行交互。如你所知,数据是从通道读入缓冲区,从缓冲区写入到通道中的。缓冲区本质上是一块可以写入数据,然后可以从中读取数据的内存。这块内存被包装成NIO Buffer对象,并提供了一组方法,用来方便的访问该块内存。下面是NIO Buffer相关的...
2014-01-02 15:28:19
106
原创 使用python批量转换文件编码方式
在工作中遇到了问题,有一些文件跟现有工程的文件编码方式不同,于是就想到编写代码批量进行转换,刚好,最近再学习python语言,我觉得学好一门语言最好的方式就是实践,所以,决定使用python批量转换文件的编码。 思路就是从一种编码格式转换成另外一种编码。但实际中还是有一种情况,就是在目录中,有些文件是不需要转换的,如果这种时候也统一转换的话,同样会出现乱码,所以这个地方要处理。 ...
2013-12-25 10:48:51
259
原创 使用haproxy做TCP协议负载均衡
之前有使用过Nginx进行tcp负载均衡,但后来发现nginx总是会跟服务端进行断开连接、断开连接的操作,所以选择一下别的代理进行处理。 写这个的时候,我也只是把haproxy运行成功,而且简单测试了一下,具体适不适合自己的系统还有待测试。 1.下载haproxy:http://haproxy.1wt.eu/从主页下载,我使用的是最新版本,haproxy-1.4.24....
2013-11-14 18:41:34
664
原创 Apache+Tomcat+JK集群部署
闲来无事,就把公司的项目拿来进行集群的学习,虽然都是网上找的方法,但是仍然浪费我不少精力,不过当最后看到结果出来的时候,还是有一些欣喜。 所使用软件包括:Apache-http-2.2.5mod_jk.sotomcat 7 1.首先对tomcat进行配置配置内容主要是对tomcat下面conf/server.xml进行修改。如果是在同一个机器进行部署,需要将t...
2013-10-15 10:21:26
147
原创 三种方式生成对象效率对比
对比不同方式生成对象的效率三种方式生成对象:1.通过反射2.通过Cglib里的FastClass3.直接new在每个循环100000000生成对象后,得到的1结果: 15784 ms2结果: 1574 ms3结果: 717ms多次测试之后,结果没有很大差别,由此可见new的速度是FastClass的两倍,FastClass是反射速度的十倍。 ...
2013-10-09 10:07:08
370
原创 事件驱动模型
下面简单说下观察者模式是个什么。所谓“观察者”,就是观众,围观群众。但只有围观群众还构不成观察者模式,还需要有“被观察者”。观察者模式由“被观察者”和“观察者”共同构成。一个“被观察者”可能会有0到n个“观察者”。 在我们社区中“被观察者”可以是“博客”、“用户”、“组件设计”、“讨论”、“留言”等等。“观察者”则是“积分”、“动态”、“邮件”、“站内信”、“短信”等等。举个例子:当用...
2013-09-26 19:35:57
70
原创 阻塞与非阻塞,同步与异步
socket阻塞与非阻塞,同步与异步作者:huangguisu 1. 概念理解 在进行网络编程时,我们常常见到同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)四种调用方式:同步: 所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。也就是必须一件一件事做,等前一件做完了才能做下一件事。 例如...
2013-09-26 09:40:46
118
原创 Maven 环境快速搭建二(eclipse+maven2+jetty)(转)
本文更新一个命令。第一节中提示创建一个项目用archetype:create create是个被废弃或不被推荐使用的插件,在以后创建项目中请尽量使用archetype:generate创建一个项目,如下:mvn archetype:generate -DgroupId=com.chongshi.test -DartifactId=hello -DpackageName=com....
2013-09-18 14:06:15
80
原创 maven环境快速搭建(转)
最近,开发中要用到maven,所以对maven进行了简单的学习。因为有个maven高手在身边,所以,很快就上手了,我这里算是自我总结吧。关于maven是什么东东,请参考其它文章。----------------准备工作-------------Jdk 1.5以上java开发环境。Eclipse IDE 一个。Maven 3.0.3下载地址: http://maven.apach...
2013-09-18 14:05:10
74
原创 使用Miglayout布局实例
上个星期使用java swing做一个客户端界面。 对于我来说,做swing界面最难的就是布局了,很多时候不知道使用哪种布局方式。本来想要使用NetBeans的图形化进行布局,但还是觉得不是特别靠谱。在网上搜索了之后,发现有一个开源的布局方式miglayout,在学习了几天之后,觉得感觉很好。下面我把我做的界面和源码贴给大家。共同学习,共同进步。 ...
2013-09-16 13:29:56
1441
原创 Java Swing 滚动条自动到底端
一句话就搞定。(垂直滑动条)ta_frameArea.setCaretPosition(ta_frameArea.getText().length());
2013-09-14 17:09:42
297
原创 java swing MigLayout 布局管理
1. MigLayout 初始化的两种方法:MigLayout l = new MigLayout();MigLayout l = new MigLayout("","",""); 主要使用的是以上两种构造函数,第一种无参的就不用介绍了,主要是第二种。 第一个参数可以使用以下语句:wrap + 数字:指定默认在第几个组件后进行换行,如: wrap 2 表示在第二个组件后进行分...
2013-09-09 19:42:09
280
原创 VIM学习笔记
前面一段时间,用了几天的时间,又深入使用了VIM(不仅仅停留在h,j,k,l),下面是一些常用的操作。 2013年8月21日------------------------------------------------------------<Ctrl-v> <Ctrl-d> 在可视化模式下选择到尾部;<Ctrl-a> 将光标放在一个数...
2013-09-03 15:38:29
122
原创 Eclipse里使用javassist实例
这两天比较无聊,随便找点东西进行学习。目标就瞄准了javassist。关于javassist的介绍google一下,这里也不介绍了。 对于某一个类,直接在编译好的.class文件插入一些内容。 比如:package test.param;public class Screen { public void draw(int i , int j){ ...
2013-08-30 15:25:07
216
原创 It is indirectly referenced from required .class file 错误解决方法
今天在导入一个项目时出现It is indirectly referenced from required .class file 的错误,查了一下网,都说是 错误提示: It is indirectly referenced from required .class file 错误的解决原因:你正要使用的类调用了另一个类,而这个类又调用了其他类,这种关系可能会有好多层。而在这个调用...
2013-08-30 14:21:31
115
原创 Linux脚本循环输出传入参数
问题如下:根据脚本参数的个数$#进行一个循环,在依次输出每个参数$1 $2 $3......我有一个循环变量i$i 取到这时的i为1,我想使用这个1再去调用$1,也是就是打印出第一个参数就是$($i)的意思来取到第几个参数,当然$($i)是不好用的。第一种方法:#!/bin/shNUMBER=$#echo $NUMBERi=1while [ $i -...
2013-08-09 08:37:55
817
1
原创 关于HashMap在多线程下的使用
最近在做项目的压力测试,测试的过程中,问题多多呀,基本上都是多线程共享数据引发的问题。 在测试的过程中发现程序运行一段时间,就会出现CPU使用100%的情况,每次程序重启之后,又会恢复原貌。通过程序中的一个超时机制得知,程序会停在某一处代码中,这块代码是从map里获得数据,由于map里有数据放入,也有数据移除,导致从map的get方法会死循环。通过网上了解,HashMap不是线程安全的,...
2013-08-02 18:46:41
196
原创 程序员,你会问问题吗?
在工作和生活中,总是会有很多人问题我很多技术方面的问题。有一些时候,问问题的和答问题的总是会有一些不爽的事情发生。如下面的几种情况:比如:“我的电脑老是蓝屏,怎么办?”,通常这样的问题90%以上的回答是:“重装吧”。这让问问题的人感到很沮丧,但你不能不承认那不是答案。而且有时候让人无法解答,比如:“我的makefiel出错了,你帮我看看我的makfile”,我通常会非反问,报了什么错吗?...
2013-07-18 18:55:43
68
原创 最近学习有感
最近一段时间,由于空闲时间比较多,所以有很多时间供自己分配,利用这些时间,我学习了一些东西,例如hadoop,lucene,memcached. 每学一个新东西,先去了解这个是技术的作用,然后搭建环境,然后运行实例。 在搭建hadoop的时候,用时最多。最开始的时候,我以为最新的都是最好的,所以下载的是最新的hadoop,由于hadoop2.x的资料网上很少,大部分都是hadoo...
2013-07-18 10:34:46
114
原创 Lucene初体验
很不错的一个文章,对于了解lucene很有帮助[url]http://www.cnblogs.com/luxh/archive/2012/06/17/2552792.html[/url]
2013-07-16 14:13:00
87
原创 Lucene第一个实例
闲来无事,学习一下lucene,下面运行一下示例代码。在demo里找到两个java文件,一个是IndexFiles.java,一个是SearchFiles.java.在apache的网站内,是可以看到这两个demo的讲解,我也是看过之后才运行成功。这两个类要先运行IndexFiles.java,然后才运行SearchFiles.java. IndexFiles需要将多份文档建立...
2013-07-16 10:01:25
64
原创 如何确保某一个文件只允许一个线程打开解决办法
最近在做一个数据存储优化。我们之前的模式是插入一定量的数据通过批处理进行存储,两个条件进行批处理,一个是超过批处理设定的最大个数,一个是超过批处理延迟时间,否则有新的数据就放入缓存中。 为了保证数据的完整性,现在要改成,不将数据加入缓存里,而改为存放在本地的.data文件中。 在优化的过程中,遇到了一个问题就是:如何确保一个文件只能由一个线程或程序打开? 在网上查找了一些解
2013-07-09 11:10:57
1844
原创 如何确保某一个文件只允许一个线程打开解决办法
最近在做一个数据存储优化。我们之前的模式是插入一定量的数据通过批处理进行存储,两个条件进行批处理,一个是超过批处理设定的最大个数,一个是超过批处理延迟时间,否则有新的数据就放入缓存中。为了保证数据的完整性,现在要改成,不将数据加入缓存里,而改为存放在本地的.data文件中。在优化的过程中,遇到了一个问题就是:如何确保一个文件只能由一个线程或程序打开?在网上查找了一些解决办法...
2013-07-09 11:09:44
282
原创 在问别人问题前,要知道的东西
仅仅个人观点。问别人问题之前:1.要了解你做什么操作才出现的问题(什么样的情景)。2.你想要什么样的结果(什么样的目的)。3.你为了解决这些问题,都尝试过什么样的解决方法。...
2013-06-09 14:44:33
164
原创 使用netbeans写swing程序真不错
一直都想使用Java做一些界面的小程序,可每次都拜倒在那复杂的界面布局上。现在使用netbeans,只需要拖拽,就可以把界面布局完成,极大添加了工作效率。...
2013-04-24 19:11:42
396
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人