Java零基础学习-----JAVA核心类库(上)(一)

API使用和常用包的概述

常用类的概述和使用

常用的包(熟悉)

包的名称和功能

1.java.lang包,该包是java语言的和辛堡,并且该包中所有内容由java虚拟机自动导入。

如System类,String类,…..

2.java.util包,该包是java语言的工具包,里面提供了大量工具类以及集合类等。

如:Scanner类,Random类,List集合….

3.java.io包,该包是java语言中的输入输出包,里面提供了大量读写文件相关的类等。

如:FileInputStream类,FileOutputStream类,…….

4.java.net包,该包是java语言中的网络包,里面提供了大量网络编程相关的类等。

如:ServletSocket类,Socket类….

5.java.sql包,该包是java语言中的数据包,里面提供了大量操作数据库的接口等。

如:DriverManager类,Connect接口,…..

 

java程序员在编写时可以使用大量的类库,因此java编程时需要记得很多,对象编程编程能力本身不是特别的高。

 

Object类的概念和构造方法

 

1.Java.lang.Object类是java语言中类层次结构的根类,也就是说任何一个类都是该类的直接或者间接子类

2.如果定义一个java类时没有使用extends关键字声明其父类,则其父类为java.lang.Object类。Object定义了“对象”的基本行为,被子类默认继承。

 

常用方法:

 

 

 

 

多态:当父类类型的引用指向子类类型的对象时

 

equals方法默认功能的使用:

 

源码:

Object类:

public boolean equals(Object obj){

return (this==obj);

}

 

因为所有没有父类的类都是默认继承Object类,所以我们可以在子类中重写Object中的方法。

重写

@Override

 

public boolean equals(Object obj){

//判断obj指向的对象是否为Student类型的对象,若是则条件成立,否则条件不成立

If(obj instanceof Student){

Student ts=(Studeng) obj;

Return this.getId()=ts.getId();

}

return false;

}

优化:

public boolean equals(Object obj){

//当调用对象和参数对象指向同一个对象时,则一定相同;

If(this==obj){return true;}

//当调用对象不为空而参数对象为空时,则内容一定不相同。

If(null==object){ return false; }

//判断obj指向的对象是否为Student类型的对象,若是则条件成立,否则条件不成立

If(obj instanceof Student){

Student ts=(Studeng) obj;

Return this.getId()=ts.getId();

}

return false;

}

 

 

 

 

请注意,通常需要在重写此方法时覆盖hashCode方法,以便维护hashCode方法的常规协定,该方法声明相等对象必须具有相等的哈希代码。

 

 

hashCode方法的重写实现:

为了使hashCode方法的结果和equals方法的结果保持一致,从而满足官方的常规协定,需要重写该方法。

@Override

public int hashCode(){

final int type=12;

return type*31+getId();

}

 

toString()方法的重写:

 

为了返回更有意义的字符串数据,则需要重写该方法

@Override

Public String toString(){

return "Student[id="+getId()+",name="+getName()+"]";

}
 

 

 

以姓名为基准来判断:

public boolean equals(Object obj){

//当调用对象和参数对象指向同一个对象时,则一定相同;

If(this==obj){return true;}

//当调用对象不为空而参数对象为空时,则内容一定不相同。

If(null==object){ return false; }

//判断obj指向的对象是否为Student类型的对象,若是则条件成立,否则条件不成立

If(obj instanceof Student){

Student ts=(Studeng) obj;

//判断两个字符串的地址是否相同的地址

//Return this.getName()=ts.getName();

//只是比较两个字符串内容是否相同,看String类中的源码,String类继承了Object类,并重写了equals方法。

Return this.getName().equals(ts.getName());

}

return false;

}

 

 

 

 

 

equals方法和hashCode

Idea中可以自动生成equals和hashCode方法。

 

 

 

 

包装类的概念和分类:

 

  通常情况下基本数据类型的变量不是对象,为了满足万物皆对象的理念就需要对基本数据类型的变

量进行打包封装处理变成对象,而负责将这些变量声明为成员变量进行对象化处理的相关类,叫做包装

类。

如:

Person p = new Person();

int num = 10;

 

 

包装类的分类

 

 

Integer类的概念和构造方式

 

1.基本概念:

Java.lang.Integer类内部包装了一个int类型的变量作为成员变量,主要用于实现对int类型的包装并提供int类型到String类之间的转换等方法。

2.常用的常量:

3.常用方法:

 

 

Integer类的装箱和拆箱机制

//valueOf方法相当于从int类型到Integer类型的转换,叫做装箱

Integer it=Integer.valueOf(123);

//获取调用对象中的证书数值,相当于Integer类型到int类型的对象的转换,这个过程叫拆箱

Int ia=it.intValue();

 

//从java5开始增加了自动装箱和拆箱机制

Integer it=100;//直接通过赋值运算符实现自动装箱

Int ib=5;//直接通过赋值运算实现自动拆箱

 

 

装箱和拆箱的笔试题:

 

Integer it6=128;

Integer it7=128;

Integer it8=new integer(value:128);

Integer it9=new integer(value:128);

System.out.println(it6==it7); //比较地址 false

System.out.println(it6.equals(it7));  //比较内容 true;

System.out.println(it8==it9);  //比较地址 false

System.out.println(it8.equals(it9));  //比较内容 true;

 

 

 

Integer it6=127;

Integer it7=127;

Integer it8=new integer(value:127);

Integer it9=new integer(value:127);

System.out.println(it6==it7); //比较地址 true   (自动装箱池)

System.out.println(it6.equals(it7));  //比较内容 true;

System.out.println(it8==it9);  //比较地址 false

System.out.println(it8.equals(it9));  //比较内容 true;

 

4.装箱和拆箱的概念

在Java5发布之前使用包装类对象进行运算时,需要较为繁琐的“拆箱”和“装箱”操作;即运算前先将

包装类对象拆分为基本类型数据,运算后再将结果封装成包装类对象。

从Java5开始增加了自动拆箱和自动装箱的功能。

 

 

5.自动装箱池

在Integer类的内部提供了自动装箱池技术,将-128到127之间的整数已经装箱完毕,当程序中使用

该范围之间的整数时,无需装箱直接取用自动装箱池中的对象即可,从而提高效率

 

 

Double类的概念:

1.基本概念

  java.lang.Double类型内部包装了一个double类型的变量作为成员变量,主要用于实现对double

类型的包装并提供double类型到String类之间的转换等方法。

 

2.常用的常量

 

3.常用的方法:

 

扩展:

java.lang.Number类是个抽象类,是上述类的父类来描述所有类共有的成员。

 

//实现了从double到Double类型的转换,装箱

Double db1=Double.valueOf(3.14);

//实现了Double到double类型的转换,拆箱

double db1=doubleValue();

 

//从java5开始实现自动装箱和自动拆箱

Double db2=3.14;

Double d2=db2;

 

 

 

Boolean类的概念和使用

 

基本概念:

java.lang.Boolean类型内部包装了一个boolean类型的变量作为成员变量,主要用于实现对

boolean类型的包装并提供boolean类型到String类之间的转换等方法。

 

常用的常量

 

常用的方法:

 

Character·类的概念和使用

1.基本概念:

java.lang.Character类型内部包装了一个char类型的变量作为成员变量,主要用于实现对char类型

的包装并提供字符类别的判断和转换等方法。

2.常用的常量:

3.常用的方法:

 

包装类的总结:

1.基本数据类型转换为对应包装类的方式

调用包装类的构造方法或静态方法即可

2.获取包装类对象中基本数据类型变量数值的方式

调用包装类中的xxxValue方法即可

3.字符串转换为基本数据类型的方式

调用包装类中的parseXxx方法即可

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章