1-2.对象初始化与清理和字符串

来源:互联网 发布:天谕头发颜色数据 编辑:程序博客网 时间:2024/05/20 04:29

1.Java类的构造方法

1.1 构造方法的定义

构造方法的名字必须与定义他的类名完全相同,没有返回类型,甚至连void也没有;每个类可以有零个或多个构造方法,不能被static、final、synchronized、abstract和native修饰;构造方法不能被子类继承,构造方法可以被重载。

1.2 构造方法的作用

初始化对象,初始化对象的属性。

1.3 缺省构造方法

没有参数的构造方法。

1.4 构造方法重载

默认的构造方法是无参数的,构造方法重载是参数列表不同。

1.5 this关键字

this调用本类中的属性,也就是类中的成员变量;this调用本类中的其他方法;this调用本类中的其他构造方法,调用时要放在构造方法的首行。

2.static关键字

2.1 static关键字

使用static关键字把成员声明为静态成员。

2.2 静态成员的初始化过程

类的每个静态成员在内存中只有一份拷贝为该类的所有对象共享,所以静态成员只被初始化一次,在该类第一次被调用的时候初始化。

2.2 非静态成员的初始化过程

该类每一次被调用的时候都初始化一次。

3.垃圾回收机制

垃圾回收机制:垃圾回收机制的标准是对于已经丢弃的对象,垃圾回收有可能马上发现将回收,也有可能内存足够大的情况,并不会回收。程序员可以调用System.gc() 来显式的进行垃圾回收,Java 语言规范并不保证垃圾回收一定会执行或立即执行。

4.finalize方法

finalize方法:每一个对象都有一个finalize( )方法,这个方法是从Object类继承来的,finalize( )方法用来回收内存以外的系统资源,就像是文件处理器和网络连接器。该方法的调用顺序和用来调用该方法的对象的创建顺序是无关的。换句话说,书写程序时该方法的顺序和方法的实际调用顺序是不相干的。每个对象只能调用finalize( )方法一次。如果在finalize( )方法执行时产生异常(exception),则该对象仍可以被垃圾收集器收集。

5.字符串

String不是原始的数据类型,而是一个类,而且是一个final类,不能被继承。

5.1 String类关键方法

public char charAt(int index)返回字符串中第index个字符;


public int length()返回字符串的长度;


public int indexOf(String str)返回字符串中第一次出现str的位置;


public int indexOf(String str,int fromIndex)返回字符串从fromIndex开始第一次出现str的位置;


public boolean equalsIgnoreCase(String another)比较字符串与another是否一样(忽略大小写);


public String replace(char oldchar,char newChar)在字符串中用newChar字符替换oldChar字符


public boolean startsWith(String prefix)判断字符串是否以prefix字符串开头;


public boolean endsWith(String suffix)判断一个字符串是否以suffix字符串结尾;


public String toUpperCase()返回一个字符串为该字符串的大写形式;


public String toLowerCase()返回一个字符串为该字符串的小写形式;


public String substring(int beginIndex)返回该字符串从beginIndex开始到结尾的子字符串;


public String substring(int beginIndex,int endIndex)返回该字符串从beginIndex开始到endsIndex结尾的子字符串;


public String trim()返回该字符串去掉开头和结尾空格后的字符串;


public String[] split(String regex)将一个字符串按照指定的分隔符分隔,返回分隔后的字符串数组;

5.2 String类的不可变特性

String类对象被初始化赋值后,值将不再改变。

5.3 StringBuffer与StringBuilder类的特征,与String的区别

5.3.1 StringBuffer与StringBuilder的特征

StringBuilder是线程非安全的,但是执行速度快;StringBuffer是线程安全的,但是执行速度稍慢。

5.3.2 三者之间的区别

  • 声明方式:StringBuilder和StringBuffer声明对象必须用new关键字,而String可不用。
  • 可变性:StringBuilder和StringBuffer对象的长度是可变的,可以动态扩展的,而String对象的长度不可变。
  • 执行速度:StringBuilder >  StringBuffer  >  String  

 

交流探讨到我的新浪微博:http://weibo.com/tianrui1990

欢迎关注技术分享微信公众号:JavaQ

     


原创粉丝点击