2013-08-28
Jre会优先读取环境变量classpath目录下的class文件,用命令行执行Java程序时,设置classpath可以提供很多方便。
读取规则如下
classpath=;c: | 优先读取当前目录,再读取环境变量目录 |
classpath=c: | 只读取环境变量目录 |
classpath=c:; | 优先读取环境变量目录,再读取当前目录 |
2013-08-31
Java的单例设计模式
单例模式可以让类不论多少次实例化都只产生同一个对象。
饿汉式在类被加载时就会产生对象
单例模式编程的理解:利用了static的生存周期可以很方便的实现单例模式,让一个类的对象编程这个类的唯一对象,
public class Example{ public static void main(String args[]) { Single ss=Single.getSingleton(); Single ss2=Single.getSingleton(); ss.addsi(); ss.addsi(); System.out.println(ss2.si); } } class Single{ public int si=0; public void addsi(){ si++; } private static Single sobj=new Single(); private Single(){} public static Single getSingleton(){ return sobj; } }
懒汉式只有在函数被调用时才会产生对象
class Single{ public int si=0; public void addsi(){ si++; } //上面是普通的功能了函数,下面实现单例模式的函数 private static Single sobj=null;//创建Single类型的变量,没有指向任何对象 private Single(){}//不允许外部初始化类 public static Single getSingleton(){ if(sobj==null)//仅在第一次调用getSingleton时创建Single对象 sobj=new Single;//sobj这是会指向一个Single对象 return sobj;返回sobj的引用地址 } }
2013-09-01
继承关系的初始化顺序
父类的静态代码块执行>>子类的静态代码块执行>>父类的构造代码块执行>>父类构造函数执行>>子类的构造代码块执行>>子类构造函数执行
2013-09-01
- 接口是对外暴露的规则
- 接口是程序的功能扩展
- 接口可以用来多实现
- 类与接口是实现关系,而且类可以继承一个类的同时实现多个接口
- 接口与接口之间可以有继承关系
2013-09-06
Java的字符串无疑是个对象。
起初用Java时我毫无悬念的用了这种方法
String s="asd";if(s=="asd");
在其他语言中这样做比较是没有问题,为什么Java却返回false。Java的String在实例化s时创建了s并指向String所开辟的内存空间
可以写成String s = new String("asd");
if(s=="asd");可以写成if(s==new String("asd"))
正所谓在Java里每个对象都是引用类型,双等号只是判断左右两边数组的引用是否一样。而非判断引用的内容。
如果要准确的比较Java字符串请用String的equals方法。
如if(s=="asd");应该写成if("asd".equals(s));才能得到准确的结果。