Java的一些注意--随意整理(一)

(一):Java中所有的private方法均可以被反射调用,调用方法为:

Class cl = obj.getClass();
Method method = cl.getDeclaredMethod("readResolve", null);
method.setAccessible(true);
method.invoke(obj, null);

包括诸如虚拟机自动调用的方法,如writeObject, readObject, writeReplace, readResolve等方法,他们均是私有的,同样可以通过上述方法被反射调用!

(二):equals方法和hashcode方法的关系

我们自己的类去重写Object的euqals和hashcode方法时,需要保证到这点:这个类的两个对象,如果equals相等,则其hashcode应该要相等!如果其equals不相等,也要尽量保证hashcode不相等,这样让散列的程度更大!

(三):迭代器(Iterator)

Java的数据结构有两大种,Collection 和 Map!Collection接口实现了接口Iterable,Iterable接口只有一个方法iterator,返回Iterator对象。在获取Collection对象的Iterator对象后,不能再对Collection对象本身进行增删操作,如果这么操作了,再使用Iterator会报 java.util.ConcurrentModificationException!

(四):一些设计上的事

面向元数据编程;数据库访问将query和command操作分开,query部分不涉及事务控制;一个设计如果有add操作就要有remove操作,保持系统功能的闭环;xml配置文件支持继承。

(五):OSGi

OSGi模块要运行在OSGi容器中,目前OSGi容器有:Equinox,Felix,Spring DM 这3个比较有名的。OSGi可确保一个应用是基于模块的!

(六):重新开启一个CMD窗口

在CMD窗口中,运行start命令,可以重新启动一个同一路径的CMD窗口。

(七):Eclipse中SVN CleanUp操作

Eclipse SVN插件,对于文件夹可以执行clean up操作,对于单个文件没法执行clean up 操作

(八):CDN

CDN的全称是Content Delivery Network,即内容分发网络。其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。其目的是使用户可就近取得所需内容,解决Internet网络拥堵的状况,提高用户访问网站的响应速度。

(九):Java中src目录最后会直接转化为bin目录。Java读取文件的方法getClassLoader().getResourceAsStream,只可以直接访问到bin目录中的文件,不能访问到其他目录中的文件。Java中文件操作,目录不会自动创建,如果写文件时,文件不存在会自动创建!

(十):Java中,io包的操作不会控制并发的情况,即多个线程可以毫无阻拦地操作同一个文件,即使同时执行写操作,而不会有锁的存在。

(十一):通过bat文件讲一个java类设置为可双击来执行的程序,bat文件的写法如下:

                   set classpath=.;lib\c3p0-0.9.1.jar;lib\ojdbc14.jar;lib\rt.jar;bin
                   java meam.BizData
                   pause


 

你可能感兴趣的:(Java的一些注意--随意整理(一))