Java进阶总结

来源:互联网 发布:免费申请淘宝账号注册 编辑:程序博客网 时间:2024/05/21 17:39

一、多线程:

1.多线程

基本方法:同步,死锁
实现手段:Runnable接口,Thread类
其中:1.Thread类定义于java.lang

          2.一个类extends Thread后覆盖本类中run()方法,就可实现多线程



二、JNDI(Java Naming and Directory Interface,Java命名和目录接口)是一组在Java应用中访问命名和目录服务的API。命名服务将名称和对象联系起来,使得我们可以用名称访问对象。目录服务是一种命名服务,在这种服务里,对象不但有名称,还有属性。

常用的JNDI操作

void bind(String sName,Object object);――绑定:把名称同对象关联的过程  

void rebind(String sName,Object object);――重新绑定:用来把对象同一个已经存在的名称重新绑定  

void unbind(String sName);――释放:用来把对象从目录中释放出来  

Object lookup(String sName);――查找:返回目录中的一个对象  

void rename(String sOldName,String sNewName);――重命名:用来修改对象名称绑定的名称  

NamingEnumeration listBinding(String sName);――清单:返回绑定在特定上下文中对象的清单列表  

NamingEnumeration list(String sName);  

代码示例:重新得到了名称、类名和绑定对象。  

NamingEnumeration namEnumList = ctxt.listBinding("cntxtName");


三、常用函数

Calendar.add(Calendar.DAY_OF_MONTH, 1);  //当前所在天数+1,即是次日



四、inputstreamreader 和 fileinputstream区别:

inputstreamreader的特点:

构造函数带两个参数,一是关联到的文件,二是字符解码方式. 所以实际上通过inputstreamreader实例读出来的东西已经不是磁盘上原始的字节数据了,而是根据你指定的解码方式(如果你没有指定,则使用系统缺省的,win2000下是gbk/gb2312)把字节流转换成了字符流,注意字节流和字符流的区别,一个字节就是8比特位(32位机器上),而一个字符含多少字节则与不同的编码/解码方式有关了,如gbk是一字节,utf-8是1-3的变长字节,utf-16是2个定长字节。

fileinputstream的特点:

它的构造函数就一个,即关联到的文件,既然没有指定解码方式,那它所做的就是只以字节流的方式读出文件而不做任何处理, 你应该用一个字节数组来接受它,对该数组你以后还可以做任何想做的操作.


五、异常就是方法非正常情况下的返回值

六、建立Junit单元测试框架(具体查看个人收藏夹,可以参考:http://www.ibm.com/developerworks/cn/java/j-lo-test-multithread/index.html)

1.添加junit的jar 包

2.创建JUnit Test Case

3.选择需要单元测试的类方法

4.在新生成的xxxTest类中编写测试用例

5.测试:运行run as a Junit Test

(已完成初级,中级篇,高级为完成)



六、内存泄露总结

1、尽早释放无用对象的引用。特别是大对象和集合对象,通过置为NULL,暗示垃圾收集器来收集该对象,防止发生内存泄露。

2、程序中如果出现大量使用字符串处理,避免使用 String ,应使用 StringBuffer。

  1. for(Int i=0;i<100;i++)  
  2.    {  
  3.  String s1="";  
  4.  s1=s1+"abc";//不要这样写  
  5.    }

3、尽量少用静态变量,因为静态变量是全局的, GC 不会回收的;

4、检查List、MAP等集合对象是否有使用完后,未清除的问题。List、MAP等集合对象会始终存有对对象的引用,使得这些对象不能被GC回收。



















总结:

1.敢于重构代码,创新学习

2.设计模式真的很简单,比如好多都是继承+多态(或着说一个接口/抽象类加上几个实现类)就成为模式了(比如模版方法、策略模式等)

3.几行优雅的代码是靠几万行白话一般的代码积累出来的

4.拿自己做过的项目多总结,多重构,要是再结合设计模式的概念一起思想一下,自然而然的就会设计模式了,这也是恶心过去恶心过来所得到的

5.写的代码比较多了,可以自己抽象出来很多可复用的类。有意识的运用一些模式,注重对代码的重构,对程序的可扩展性有很实在的好处

原创粉丝点击