摘要: 工程采用GBK编码,web应用中的配置文件打包后,war包里的配置文件里的中文成乱码。用notepad++打开后,可以看到是用utf-8格式的(可以通过菜单中的【格式】查看),也就是说,在经过maven的war打包插件后,由gbk变成了utf-8。自然乱码了。插件配置: org.apache.ma... 阅读全文
posted @ 2014-08-19 17:09 gshine 阅读(23881) 评论(1) 推荐(1) 编辑
摘要: 新建了个web应用,用maven配置的。Java源代码采用了utf-8编码格式。本地编译打包,报错误。由于系统默认编码是GBK,因此需要采用utf-8来编译。采用如下方式:在pom中添加如下: org.apache.maven.plugins maven-compiler-plugin ... 阅读全文
posted @ 2014-08-19 17:07 gshine 阅读(19262) 评论(0) 推荐(0) 编辑
摘要: 无效的方法:select * from table1 where name like '%#name#%'两种有效的方法: 1) 使用$代替#。此种方法就是去掉了类型检查,使用字符串连接,不过可能会有sql注入风险。select * from table1 where name like '%$name$%'2) 使用连接符。不过不同的数据库中方式不同。mysql:select * from table1 where name like concat('%', #name#, '%')oracle:select * from ta 阅读全文
posted @ 2012-11-22 17:28 gshine 阅读(43020) 评论(0) 推荐(5) 编辑
摘要: 本文主要目的是推荐两个比较热门的支持Java的云主机空间,当然,这两个产品支持的语言并不只是Java。大部分都支持php,python,ruby,node等。这两个各有各的特点,一个专业性强点,灵活,另一个简单易用。openshift:openshift.redhat.comappfog:www.appfog.com下面是详细情况。一直想找个支持Java的主机空间,用于自己日常试验一些小点子。但是主机空间大部分倾向于php,支持java的大多比较贵。云计算的出现貌似让这一现状出现了转机。尤其是在google的app engine出来之后。支持Java的云引擎,国内的情况不太乐观,光想着赚钱了。 阅读全文
posted @ 2012-11-03 21:45 gshine 阅读(8876) 评论(0) 推荐(0) 编辑
摘要: 最近查找了很多关于OOM,甚至于Java内存管理以及JVM的相关资料,发现这方面的东西太多了,竟有一种眼花缭乱的感觉,要想了解全面的话,恐非一篇文章能说清的,因此按照自己的理解整理了一篇,剩下的还需要继续学习。1)什么是OOM? OOM,全称“Out Of Memory”,翻译成中文就是“内存用完了”,来源于java.lang.OutOfMemoryError。看下关于的官方说明: Thrown when the Java Virtual Machine cannot allocate an object because it is out of memory, and no more mem 阅读全文
posted @ 2012-10-30 20:02 gshine 阅读(20301) 评论(4) 推荐(5) 编辑
摘要: 类似的问题:ArrayList继承了AbstractList为何还要实现List接口?HashMap继承了AbstractMap为何还要实现Map接口?HashSet继承了AbstractSet为何还要实现Set接口?今天无意中看到Vector的源码,发现Vector继承了AbstractList(抽象类,implement了List接口),同时Vector实现了List接口。代码如下public class Vectorextends AbstractListimplements List, RandomAccess, Cloneable, java.io.Serializable想了好久都 阅读全文
posted @ 2012-09-06 10:09 gshine 阅读(2555) 评论(1) 推荐(5) 编辑
摘要: 本文主要记录了我在升级到ubuntu12.04之后安装和配置的一些软件,不保证在12.04之前的版本中这些命令也是有效的,不定期更新。1)安装KDE Desktopubuntu12.04默认的桌面是unity,如果你不喜欢unity这个桌面或者在安装了ubuntu12.04之后想尝试下KDE,那么,可以采用如下方法安装KDE桌面:sudo apt-get install kde-standard上面的命令,安装KDE桌面和标准的软件集。如果你想安装完整版本的KDE和软件集,可以使用下面命令:sudo apt-get install kde-full这个会下载大量的软件,如果网络不好,建议采用上 阅读全文
posted @ 2012-06-25 22:38 gshine 阅读(569) 评论(1) 推荐(0) 编辑
摘要: 64位ubuntu系统,版本为12.04搭建android开发环境,装完eclipse的android插件之后,导入了一个之前的project。控制台报错:[2012-06-21 23:30:57 - *****] /***/android-sdk-linux/platform-tools/aapt:error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory并且eclipse的problem视图,提示:R cannot be resolved 阅读全文
posted @ 2012-06-22 00:04 gshine 阅读(1012) 评论(0) 推荐(0) 编辑
摘要: java.util.List中有一个subList方法,用来返回一个list的一部分的视图。List<E> subList(int fromIndex, int toIndex);它返回原来list的从[fromIndex, toIndex)之间这一部分的视图,之所以说是视图,是因为实际上,返回的list是靠原来的list支持的。所以,你对原来的list和返回的list做的“非结构性修改”(non-structural changes),都会影响到彼此对方。所谓的“非结构性修改”,是指不涉及到list的大小改变的修改。相反,结构性修改,指改变了list大小的修改。那么,如果涉及到结 阅读全文
posted @ 2012-06-17 13:56 gshine 阅读(136227) 评论(5) 推荐(9) 编辑
摘要: 《程序员修炼之道》读书笔记需求之坑1 don't gather requirements - dig for them. 不要“搜集“需求,而应该是去“挖掘”他们。因为需求很少存在于表面,通常他们深埋在层层的假定误解和政治手段下面。用户口中描述的东西可能并非他们真心想要的功能。在确定需求时,要找出用户需要做特定事情的原因,而不是他所说的做这件事的方式。你的开发的功能应该是帮他们解决商业问题,而不是仅仅实现了他所陈述的需求。2 work with a user to think like a user. 要想深入的了解用户需求,一种方式是成为用户,从用户的角度去思考需要哪些功能。3 建立 阅读全文
posted @ 2012-06-06 18:59 gshine 阅读(873) 评论(0) 推荐(0) 编辑
摘要: 编写“羞怯”的代码:包含两层意思,一个是不向别人暴露你自己,不会没必要的向其他模块暴露任何事情;另一个是不与太多人打交道,不依赖于其他模块实现的模块。不与太多人打交道,说的就是要降低与别人的耦合,比如你的模块A依赖于一个模块B的功能,那么你就仅仅调用这个模块B的功能,而不要调用这个模块的实现中出现的模块C的功能,因为,一旦B的模块实现方式改变,那么C可能不存在,或者C出现了变动,那么它的影响就不仅仅是B,还有A也受到了影响。而如果A只调用B,则即使B的实现去掉了C模块,那么只要B的接口不变,那么A是不受影响的,或者如果C变了,那么由于A只调用B,则C的变动影响的只会是B,而不会影响A。因此,耦 阅读全文
posted @ 2012-06-06 18:56 gshine 阅读(2351) 评论(0) 推荐(0) 编辑
摘要: 《effective java》第二版第43条是:Return empty arrays or collections, not nulls。意思是在需要返回数组或者集合的方法中,如果需要返回空数据,不要返回null,而是要返回大小为0的数组或者集合。本文是对这条内容的总结和反思。 阅读全文
posted @ 2012-03-29 18:53 gshine 阅读(1217) 评论(1) 推荐(0) 编辑
摘要: 传统的使用jdbc来访问数据库的流程为: Class.forName(“com.mysql.jdbc.Driver”); String url = “jdbc:mysql://localhost:3306/test?user=root&password=123456″; Connection con = DriverManager.getConnection(url); Statement statement = con.createStatement();最开始使用的时候,不明白为什么首先要加载一个驱动类,之后就可以取得了Connection了,很好奇DriverManager是怎么 阅读全文
posted @ 2012-03-15 16:16 gshine 阅读(48072) 评论(3) 推荐(5) 编辑
摘要: 这两天在写代码的时候,由于涉及到资源的位置,因此,需要在Java Bean中定义一些字段,用来表示资源的位置,比如:imgUrl,logoUri等等。但是,每次定义的时候,心里都很纠结,是该用imgUrl还是imgUri呢?同样的,另外一个问题:String HttpServletRequest.getRequestURI();和StringBuffer HttpServletRequest.getRequestURL();返回的内容有何不同?为什么会如此?带着这些问题到网上去搜了下,没发现让自己看了明白的解释,于是,想到了Java类库里有两个对应的类java.net.URI和java.net 阅读全文
posted @ 2012-02-04 22:02 gshine 阅读(384313) 评论(24) 推荐(95) 编辑
摘要: 打开任意一个文件夹,按一下“Alt”键,显示菜单栏,选择【工具】-【文件夹选项】,弹出对话框,选择【查看】选项卡,在高级设置里面,找到“隐藏受保护的操作系统文件”,取消前面的复选框的选中状态,并且,在下面的“隐藏文件和文件夹”中,选择“显示隐藏的文件,文件夹和驱动器”。然后按“Shift+Del”组合键删除报错的那个盘符下面的“$Recycle.bin”或者“回收站”这个文件夹。ok,搞定。如果不想显示隐藏的文件和文件夹,搞定后可以按照前面讲的,恢复原来设置,选中那个文件夹选项中的隐藏选项。 阅读全文
posted @ 2012-01-14 23:58 gshine 阅读(4315) 评论(0) 推荐(0) 编辑
摘要: 之前用的好好的,后来突然发现xml layout文件不能自动提示了,但是打开java源代码是可以自动提示的。google之,原来是因为是默认以xml文件打开的,而android的layout格式打开。解决办法:右击main.xml, 选择“Open With...” -->"Android Layout Editor",然后切换到xml视图即可。原因:前几天把项目上传到google code的SVN上面去了,结果下来之后,貌似格式信息丢了,变成了单纯的xml文件了,无法默认自动用Android Layout Editor打开了。终极解决方案:暂无,望高手回复告知。 阅读全文
posted @ 2011-12-19 10:13 gshine 阅读(4492) 评论(0) 推荐(0) 编辑
摘要: 源地址:${android-sdk-windows}/docs/guide/practices/design/responsiveness.html你写的代码也许能够通过世界上所有的性能测试,但是当用户使用你的这个应用的时候却可能会发狂。因为,你的应用程序的用户响应性太差了,比如用起来不够流畅,在关键的时刻挂起或者失去响应,或者花费了太多的时间用来处理用户的输入。在android系统中,当应用程序在一段时间内没有响应的时候,系统会检测到此种情况,并且向用户显示一个对话框,这个对话框被称为“ANR”对话框(Application Not Responding)。这个时候用户可以选择继续等待程序运 阅读全文
posted @ 2011-11-21 20:30 gshine 阅读(1168) 评论(0) 推荐(0) 编辑
摘要: spring和apache commons-beanutils中分别存在一个BeanUtils,提供了对java bean的常用操作。之前在写程序时,用到了两个不同类型但属性基本相同的对象的拷贝,结果在拷贝java.util.Date类型的对象属性时,由于其值为null,而抛异常。由于时间紧急,所以临时改成了get/set方式,幸亏对象的属性不算多。后来一直耿耿于怀这个问题,今天抽空看了一下spring和apache commons-beanutils包中BeanUtils.copyProperties的实现。spring中实现的方式很简单,就是对两个对象中相同名字的属性进行简单get/set 阅读全文
posted @ 2011-08-23 22:17 gshine 阅读(33329) 评论(2) 推荐(0) 编辑
摘要: 以前刚开始学Java的时候,就听说了Java Annotations了,是在Java5中引入的,可是一直也没用到,所以也就没怎么研究了,最近在看Webx 3 (what is Webx ?) 的源代码,看到里面用到了这个东东,就准备把这个Annotation研究下。先看一下Java官网上怎么说的。这是个Java Annotation的介绍:http://download.oracle.com/javase/1.5.0/docs/guide/language/annotations.html,全英文,但是原汁原味,硬着头皮看吧,顺便用自己的理解把它汉化。=====begin========许多A 阅读全文
posted @ 2011-04-14 01:02 gshine 阅读(1900) 评论(0) 推荐(0) 编辑
摘要: 快速修改论文的参考文献 阅读全文
posted @ 2010-11-06 21:22 gshine 阅读(4841) 评论(0) 推荐(0) 编辑