JAVA
swordinhand
这个作者很懒,什么都没留下…
展开
-
PKCS5Padding
最近跟一个同事搞数据加密传输,加密算法用的是des,他用delphi做客户端,我用java做服务器。java做这个很简单,几句话就写好了,delphi没有现成的类库可以做这个,他从网上下载了一段代码。一开始很顺利,我的密文他能解,后来发现他的密文我解不了,这下抓瞎了。后来看des算法的介绍,水平有限,也看不出名堂来 :oops: 不过反复看了几遍,看到一句“加密的数据不足64位,要补足64...2006-11-08 19:48:52 · 2345 阅读 · 0 评论 -
Effective Java 读书笔记(3)
13,最小化类和成员的可访问性。这也没什么好说的,高内聚,低耦合,暴露出去的东西越少越好。类只有两种访问级别:public和package private。成员有四种访问级别, public, private, protected, package private。以前还没学Java的时候,就在《程序员》杂志上看过一个C++的文章说protected是鸡肋,成员应该要么private要么p...原创 2011-11-11 16:08:43 · 69 阅读 · 0 评论 -
Effective Java 读书笔记(4)
23,在新代码里不用使用raw type。用了泛型之后,可以提供编译时类型检查,便于及早发现错误,从集合里读取数据的时候也不用手动的cast。如果真的想向集合里插入多种类型的数据,可以使用Object作为参数类型,比如List这样的。有点要注意的是class literal不能是泛型,只能有List.class,不能有List.class这样的。由于泛型信息在编译时会被擦除,因此,inst...原创 2011-11-15 11:17:40 · 67 阅读 · 0 评论 -
Effective Java 读书笔记(5)
枚举和注解这一章看完了没什么想法,可能是平时用的不多吧。但是也不好直接跳过去,就稍微记一下吧,如果以后有用到的时候,再回来翻翻。 30,使用enum来取代int常量。以前没有enum的时候好多人就这么定义常量,现在也还有很多人这么写。这么定义常量的一大坏处就是编译之后,常量就变成数字了,出错了找起来没那么方便,尤其是名字不同的常量还可以有同样的值。 31,使用实例域而不...原创 2011-11-16 16:27:27 · 86 阅读 · 0 评论 -
Effective Java 读书笔记(6)
38,检查参数的正确性。如果方法对传进来的参数有限制,那就对参数进行检查,如果参数不符合要求,那就尽早的抛出异常。如果不这样的话,那造成的错误可能会在很奇怪的地方出现,很难排查。但是如果这个检查比较耗资源,可以考虑不检查,还有种情况,是方法内部有隐含的检查,比如Collections.sort(List list),这个方法并没有在签名里限制参数一定要实现Comparable接口,但是它内...原创 2011-11-17 15:15:55 · 77 阅读 · 0 评论 -
Effective Java 读书笔记(7)
45,最小化局部变量的作用范围。 46,使用for-each循环代替传统的循环方式。当然for-each只能是单向只读的,不能完全代替for循环。记得上次在水木看的有人说这两种循环的语义也是不一样的,生成的虚拟机代码有区别,有机会研究一下。 47,使用标准库。不要自己造轮子。 48,如果需要精确的值,不要使用float和double。嗯,用BigDecimal。...原创 2011-11-17 18:00:27 · 60 阅读 · 0 评论 -
Effective Java 读书笔记(8)
这一章都是讲异常的,里面很多原则还是要在实践中用到了才有体会啊。有些条目讲的也很简单,除了记一下标题,都不知道还要记什么。异常是有用的东西,但是也给代码带来了相当大的复杂度。用的好,可以让你的程序更健壮,用的不好,代码里到处都是try catch,你都不知道该从哪里看起。 57,只针对异常的情况才使用异常。不要用异常来控制流程。在这个话题上,不得不说我遇到的一个项目,本来数据库查询...原创 2011-11-18 11:32:25 · 66 阅读 · 0 评论 -
Effective Java 读书笔记(9)
66,同步对共享可变数据的访问。synchronized关键字不仅能保证对对象的互斥访问,还能保证方法对对象的修改可以被其他方法观察到。这第二点挺难理解的,可能是跟JAVA的内存模型有关系,还需要深入了解。感觉就像数据库操作的commit一样,你写了值,但是没commit的时候,你看到的跟别人看到的就是不一样的。另外,书上那个直接利用变量的原子性来控制线程,不加synchronized的例...原创 2011-11-21 16:49:20 · 67 阅读 · 0 评论 -
Effective Java 读书笔记(10)
74,谨慎的实现Serializable接口。实现这个接口要付出若干代价:1,类发布以后,内部实现就不好修改了;2,增加了出bug和安全漏洞的可能性;3,发布新版本的时候增加了测试负担,因为要增加对二进制兼容性和语义兼容性的测试。这一条里还提到为了继承而设计的类应该尽可能少的去实现Serializable接口。Struts1的ActionForm就实现了这个接口,你还必须得继承它,到了St...原创 2011-11-22 11:19:57 · 81 阅读 · 0 评论 -
HttpClient 4如何设置代理和超时
最近在用httpclient 4,确实简单了很多,但是使用方法跟3.x也有了很多变化,比如设置代理和超时的方式,后来上网搜了一下,学会了如何设置,把设置的方法记在这里做个备忘。 设置代理[code="java"]DefaultHttpClient client = new DefaultHttpClient();HttpHost proxy = new HttpHos...原创 2012-02-15 11:18:48 · 246 阅读 · 0 评论 -
JAVA操作注册表的神器
前一阵子做个程序,想用java操作注册表,上网一搜,JDK是自带操作注册表的类的,在java.util.prefs这个包下面,Preferences类就可以在windows下操作注册表了,但是这个类只能操作HKEY_LOCAL_MACHINE/SOFTWARE/JavaSoft/prefs这个路径下的注册表,可以说功能极其有限,后来在stackoverflow上看到一篇帖子,提供了一个基于...原创 2013-04-26 15:02:30 · 181 阅读 · 0 评论 -
Effective Java 读书笔记(2)
8,在重写equals方法时要遵守一些约定。并不是每个类都需要重写equals方法,但是如果你需要,记得要遵守自反性,对称性,一致性,传递性。如果父类可以被实例化,而子类又增加了值域,那么equals方法肯定会有问题,所以,多用组合,少用继承。Java类库里就有这样的例子,java.sql.Timestamp继承了java.util.Date并增加了一个值域nanos,破坏了对称性。 ...原创 2011-11-07 11:09:46 · 80 阅读 · 0 评论 -
用Ant实现自动化部署
前几天研究了一下,用Ant实现拷贝文件到远程服务器,并控制tomcat重启,其实很简单,只要建几个ant的任务即可,把builder.xml拷贝在下面做个备忘 [code="xml"] [/cod...原创 2011-11-04 10:57:34 · 257 阅读 · 0 评论 -
Effective Java 读书笔记(1)
最近比较闲,就打算找点时间把一直没看的Effective Java第二版给看了,为了督促自己看完,同时为了加深记忆,决定写篇读书笔记,其实也就是记一下里面提到的各项建议,将来回顾时比较方便。 1,用静态工厂方法代替构造函数。静态工厂方法的好处是 1.1 静态工厂方法有名字,你可以很容易的决定选择哪个方法,而不是像用构造函数一样需要根据参数列表来选择 ...原创 2011-11-03 12:16:51 · 73 阅读 · 0 评论 -
apache httpclient与close_wait
最近做httpclient做转发服务,发现服务器上总是有很多close_wait状态的连接,而且这些连接都不会关闭,最后导致服务器没法建立新的网络连接,从而停止响应。 后来在网上搜索了一下,发现解决的方法也很简单,如果想重用连接,那就使用连接管理器,从连接管理器里获取连接,然后定时的用连接管理器来释放空闲连接。httpclient自带了SimpleHttpConn...2007-12-19 14:27:07 · 443 阅读 · 0 评论 -
64位系统带来的访问数据库的问题
公司有个应用是用oci方式访问数据库的,最近硬件升级,换了个机器,结果不能用oci方式访问数据库了,总是提示[code="java"]Exception in thread "main" java.lang.UnsatisfiedLinkError: /oracle/OracleHome/lib/libocijdbc10.so: /oracle/OracleHome/lib/libocijdbc1...2008-01-02 18:34:03 · 115 阅读 · 0 评论 -
JBuilder2006创建Web Service找不到Web module的问题
最近用Jbuilder 2006尝试做Web Service,发现了一个奇怪的问题,在旧的项目里面直接通过File|new|Web Services(J2EE 1.3)|Axis Web Services Server Configuration 这个流程,可以很顺利的生成Web Service,可是如果在新建的项目里做同样的操作,在选择Web Module的时候,就会找不到Web Mod...2008-04-23 12:24:16 · 135 阅读 · 0 评论 -
增大Openfire所能使用的内存
根据http://www.igniterealtime.org/community/thread/27552这个帖子的内容整理的以让openfire最大使用1g内存为例在linux下修改/etc/sysconfig/openfire,增加一行OPENFIRE_OPTS="-Xms256m -Xmx1024m"在windows下如果你是通过openfired.ex...2009-12-01 14:58:01 · 152 阅读 · 0 评论 -
通过axis2发起WS请求时添加SOAP header
首先要获得一个ServiceClient对象,因为这个对象是org.apache.axis2.client.Stub里面定义的,所以你生成的stub里面应该直接就可以使用这个对象,或者调用stub的_getServiceClient()方法来获取这个对象。得到这个对象之后,添加soap header的方法有如下几种1,使用addStringHeader方法[code="java"]...2009-12-02 16:29:50 · 1284 阅读 · 0 评论 -
为什么throw null会抛出NullPointerException?
看招聘区的联创面试题想到的这个问题,一开始还以为是因为异常链无法获取到null的信息导致的,后来上网搜了一下,有篇帖子[url]http://www.adarshr.com/papers/npe[/url]解释了这个问题,这其实是Java语言规范里指定的内容,在Java Language Specification第三版$14.18 The throw Statement里面提到了“A thr...原创 2009-02-18 11:31:40 · 1631 阅读 · 0 评论 -
JDBC4.0插入blob真方便
今天试用了一下oracle的支持JDBC4.0标准的客户端ojdbc6.jar,发现用了这个之后,插入blob字段变得简单多了。以前如果想向oracle数据库里插入一个blob的字段,需要先执行一条insert语句,插入个empty_blob,然后再select for update,取出来之后把Blob字段cast成oracle自己的BLOB类型,然后调用BLOB的setBinarySt...2009-08-25 17:12:36 · 159 阅读 · 0 评论 -
C3PO的连接验证对获取连接速度的影响
最近用c3po来跨网段连接远程的oracle数据库,为了防止连接断开,在连接池里配置了testConnectionOnCheckout,因为c3po的文档里说这个对性能影响很严重,所以用程序测试了一下。程序很简单,就是获取一个ComboPooledDataSource,然后执行10000次循环,每次循环内获取一个连接,执行一次查询。c3po的初始设置是minPoolSize 5, maxPoolS...原创 2010-09-20 17:39:08 · 174 阅读 · 0 评论 -
在windows server 2003上部署sap应用遇到的问题
昨天在一台windows server 2003 R2的机器上部署一个使用jco连接sap的程序,使用的jco版本是 3.0.5, 把sapjco3.dll放在了c:\windows\system32目录下面,结果启动的时候报错,java.lang.ExceptionInInitializerError: Error getting the version of the native la...原创 2011-03-09 20:23:32 · 157 阅读 · 0 评论 -
Hibernate配置c3p0连接池
网上有很多Hibernate+c3p0配置方面的文章,不过大部分都是从Hibernate的文档里抄的,大概都是这样 hibernate.connection.driver_class = org.postgresql.Driverhibernate.connection.url = jdbc:postgresql://localhost/mydatabasehibern...原创 2010-12-07 14:34:59 · 205 阅读 · 0 评论 -
关闭htmlunit的日志输出
HtmlUnit是个好东西,不过运行时的日志输出太烦了,各种各样的error, runtimeExcepiton什么的,在网上搜了一下,发现可以在调用htmlunit之前加一句设置commons-logging的代码,这样就不会产生那些烦人的日志了。[code="java"]LogFactory.getFactory().setAttribute("org.apache.commons...原创 2012-08-29 14:38:50 · 2823 阅读 · 2 评论