1、java.lang包及该包中的类:
java.lang包是java最基本的包,这个包中的所有类都由系统自动引入,所以不用import语句就可以访问该包中的类。
1.1、Object类:
Object类是所有类的父类,包括自定义的类(无需用extends显式声明继承自Object)。
Object类的方法:
(1)、public boolean equals(Object obj)
Object类的equals方法比较的是两个对象的地址,相当于两个对象做如下运算obj1==obj2,即比较两个对象的地址是否相等。若要按自己的意愿比较两个对象,需要对该方法进行覆盖,同时覆盖了该方法的类最好也覆盖Object类的hashCode()方法,同时equals比较的两个对象返回为true时,hashCode()对这两个对象返回的hash值最好一样。
(2)、public int hashCode()
返回一个哈希值,不同对象有不同的哈希值。
(3)、public String toString()
返回一个反映当前对象信息的字符串。
有一个Employee类如下:
public class Employee{
privateint id;
privateString name;
privateint age;
publicEmployee(int id, String name, int age){
this.id= id;
this.name= name;
this.age= age;
}
publicEmployee(){
}
publicString getName(){
returnthis.name;
}
publicvoid setName(String name){
this.name= name;
}
publicint getId(){
returnthis.id;
}
publicvoid setId(int id){
this.id= id;
}
publicint getAge(){
returnthis.age;
}
publicvoid setAge(int age){
this.age= age;
}
publicboolean equals(Object obj){
if(this== obj){
returntrue;
}
if(this.getClass()== obj.getClass()){//getClass方法获得对象原来的对象类型
Employeeemp = (Employee)obj;
returnthis.getId() == emp.getId() && this.getAge() == emp.getAge()
&&this.getName().equals(emp.getName());
}
returnfalse;
}
publicString toString(){
returnthis.getId() + " "+this.getName() + " " + this.getAge();
}
public int hashCode(){
returnthis.getId()*5+this.getAge()*2+this.getName().length()+100;
}
}
用test类调用如上的employee类:
public class test{
public static void main(String args[]){
Employee e1=new Employee(1,"张三",21);
Employee e2=new Employee(1,"张三",21);
System.out.println(e1.toString());//打印e1对象的一些信息
System.out.println(e1==e2);//打印结果为false
System.out.println(e1.equals(e2));//打印结果为true
}
}
1.2、Class类:
Class类非常特殊,当一个类X被编译后,都会有一个特殊的Class对象产生,它隐藏在X.class文件中,Class对象由编译系统自动生成。
Class类的方法:
(1)、public static Class forName(String className) throwsClassNotFoundException
这个方法是静态方法,可以用Class直接调用,如:Class.forName(“Gum”);方法的返回值是形参指示的类的Class对象。该方法的调用forName(“X”)会导致类X的初始化。
(2)、public String getName()
该方法返回Class对象代表的实体名(实体可以是类、接口、数组、基本数据类型等)。例如,(newObject()).getClass().getName的值是java.lang.Object,其中getClass()获得当前对象的Class对象,同一个类的对象有相同的Class对象。
1.3、Math类:
Math类是一个最终类,类头定义是:public final class Math extends Object,该类的方法都是静态方法,可以用类名直接调用。
1.4、String与StringBuffer类:
String类用于处理那些不会发生改变的字符串,而StringBuffer类用于处理那些可能发生变化的字符串。String可以通过String s1=”hello”或String s1=new String(“hello”)创建,而StringBuffer只能用构造函数创建,即:StringBuffer s1=newStringbuffer(“hello”)。
String s1=”hello”和String s1=new String(“hello”)的区别:
public class test{
public static void main(String args[]){
String s1="hello";
String s2="hello";//s1和s2指向相同的地址
System.out.println(s1==s2);//打印的是true
s1+="ss";//对s1作字符串的连接操作,s1将会重新生成
System.out.println(s1+" "+s2);//s1和s2不一样了
String s3=new String("hello");
String s4=new String("hello");//s3和s4指向不同的地址
System.out.println(s3==s4);//打印的是false
}
}
☆String类的方法:
(1)、public int length()
该方法返回字符串的长度。
(2)、public char charAt(int index)
返回index位置的字符,index从0到length()-1。
(3)、public Boolean equals(Object obj)
对Object类的方法的覆盖,可以用来比较两个String类中的字符串是否一样。
(4)、public int indexOf(int ch)
返回字符串中第一次出现形参所指示的字符的位置,若没该字符,则返回-1。形参是字符的Unicode值。
(5)、public boolean equals(Object anObject)
对Object类的equals方法的重载,若当前String对象的字符串和形参anObject指向的String对象的字符串匹配时才返回为true。
(6)、public static String format(String format, Object args)
将形参format字符串格式化后返回格式化的字符串。例如:
public class ExceptionTest{
public static void main(String[] args)throws Exception{
String s1="aaa %s bbb";
String s2=s1.format(s1,"ccc");//s2为”aaa ccc bbb”
System.out.println(s2);
}
}
(7)、public String[] split(String regex)
通过String regex正则表达式的匹配,将调用该方法的字符串拆分成各个字符串。例如:
public class test{
public static void main(String[] args){
String s1="aaa:bbb:ccc";
String[] strarr=s1.split(":");
//s1字符串按分号(:)拆分成aaa、bbb、ccc,分别保存于strarr字符串数组中
for(int i=0;i<strarr.length;i++)
System.out.println(strarr[i]);//打印拆分的字符串
}
}
☆StringBuffer类的方法:
(1)、public StringBuffer append(String str)
把形参字符串加到当前字符串之后,形成一个新的可变的字符串。例如:
public class test{
public static void main(String[] args){
StringBuffer sb=newStringBuffer("hello");
sb.append("World");
System.out.println(sb);//sb字符串变为helloWorld
}
}
(2)、public StringBuffer insert(int offset, String str)
在当前字符串中插入形参字符串str,形成一个新的可变字符串,形参offset是偏移量,它指示在何处插入,0<=offset<=length()。
(3)、public String toString()
把当前可变字符串变成String类对象,事实上在println打印StringBuffer时,自动调用了该方法。
1.5、System类:
System类是一个final类,它的方法都是静态方法,没有人可以实例化一个System类。
System类的属性:
public static final InputStream in//标准输入,这个属性是InputStream的一个对象。
public static final PrintStream out//标准输出
public static final PrintStream err//标准错误输出
System类的方法:
(1)、public static Properties getProperties(argument);
返回系统环境信息。
(2)、public static String setProperty(String key, String value)
设置系统变量的值,key为键名,value为键值。
(3)、public static long currentTimeMillis()
返回系统时间于1970年1月1日午夜间的时间差,单位是毫秒。
import java.util.*;
public class test{
public static void main(String[] args){
Date date=newDate(System.currentTimeMillis());
System.out.println(date);//显示当前系统日期和时间
System.out.println(date.getTime());//输出的就是System.currentTimeMillis()
}
}
(4)、public static void exit(int status)
强制关闭Java虚拟机,并把状态信息status传递给操作系统,status非零时,表示非正常退出。
1.6、Integer类:
Integer类的属性:
MAX_VALUE和MIN_VALUE规定了int型的最大和最小值。
Integer的构造函数:
public Integer(int value)和public Integer(String s)分别把数字和数字字符串转变成Integer类。
Integer类的方法:
(1)、public int intValue()、public long longValue()、public double doubleValue()
这些方法将当前的Integer类转化成相应的简单数据类型。
(2)、public static int parseInt(String s)
把形参s代表的字符串转化成int型。
(3)、public static Integer valueOf(String s)
把字符串s转化成Integer类的对象。
2、 java.util包及包中的类:
Java的集合类是java.util包的主要内容,集合类只容纳Object类的实例,即指向Object类对象的指针,而数组可以容纳对象和简单数据类型。在集合类中对象必须是同类型的,否则运行时会抛出例外。
2.1、calendar类:
calendar类是一个抽象类。
calendar类的方法:
(1)、public static Calendar getInstance()
返回基于当前时间,使用了默认时区和默认语言环境的Calendar对象。
(2)、public int get(int field)
返回日历某字段的值。
calendar类的例子:
import java.util.*;
public class test{
public static void main(String[] args){
Calendar cd=Calendar.getInstance();
System.out.println(cd.get(Calendar.YEAR));
System.out.println(cd.get(Calendar.MONTH));
System.out.println(cd.get(Calendar.DAY_OF_MONTH));
}
}
2.2、Properties类:
Properties 类表示了一个持久的属性集。Properties 可保存在流中或从流中加载。属性列表中每个键及其对应值都是一个字符串。
Properties类的方法:
(1)、public void load(InputStream inStream) throws IOException
从输入流中读取属性列表(键和元素对)。
(2)、public String getProperty(String key, String defaultValue)
返回key键的值。
import java.util.*;
import java.io.*;
public class test{
public static void main(String[] args){
Properties pro=new Properties();//定义一个Properties的对象
try{
pro.load(newFileInputStream("123.properties"));//文件123.properties为输入流
}catch(FileNotFoundException e){
System.out.println("找不到文件");
}catch(IOException e){
System.out.println("文件加载异常");
}
Stringname=pro.getProperty("name");//多个name,将返回最后一个
Stringage=pro.getProperty("age");//多个age,将返回最后一个
System.out.println(name);
System.out.println(age);
}
}
(3)、public Object setProperty(String key, String value)
设置Property对象的键和对应的键值。
(4)、public void store(OutputStream out, String comments) throwsIOException
将Properties对象的键和值输出到输出流。
例子:
import java.util.*;
import java.io.*;
public class test{
public static void main(String[] args){
Properties pro=new Properties();
pro.setProperty("name","zhang");//为Properties对象pro设置键和值
pro.setProperty("age","21");
try{
pro.store(newFileOutputStream("123.properties",true),null);
//向文件123.properties末尾加入pro的键和值。
}catch(FileNotFoundException e){
System.out.println("找不到文件");
}catch(IOException e){
System.out.println("文件加载异常");
}
}
}
3、java.text包及包中的类:
3.1、SimpleDateFormat类:
SimpleDateFormat 是一个以与语言环境相关的方式来格式化和分析日期的具体类。它允许进行格式化(日期 -> 文本)、分析(文本 -> 日期)和规范化。
SimpleDateFormat类的方法:
(1)、public StringBuffer format(Date date, StringBuffer toAppendTo,FieldPosition pos)
将形参中的date格式化为日期/时间字符串。
(2)、public Date parse(String text, ParsePostion pos)
分析从pos给定的索引处开始的字符串text,将字符串转化成日期。
例子:
import java.util.*;
import java.text.*;
public class test{
public static void main(String[] args){
SimpleDateFormat sdf=newSimpleDateFormat("yyyy-MM-dd");//注意大小写
System.out.println(sdf.format(new Date()));//将当前日期格式化为yyyy-MM-dd
try{
Date date=sdf.parse("2001-1-12");//将字符串转化为日期
System.out.println(sdf.format(date));//格式化日期并打印
}catch(ParseException e){
System.out.println("字符串解析错误!");
}
}
}