Javase—lang包和一些基本类

来源:互联网 发布:网络兼职教师招聘信息 编辑:程序博客网 时间:2024/05/21 10:39

1.java.lang包:

1.java最基础的包,提供每个程序都需要使用的类:包装类,Object,Math,String等

2.特殊的包,无需手动导入,系统会自动导入


2.System类

1.代理系统的类,final类

2.提供了很多属性和方法:

System.out.println();//输出并换行

System.err.println();//输出错误信息(高亮显示)

System.in //通往控制台的输入流

System.arraycopy();//复制出一个完全相同的数组

System.exit(0);//退出虚拟机



3.包装类
1.定义:java中为每个基本数据类型定义了一个与之对应的类,称为包装类
2.自动拆装包:在JDK5.0以后包装类可以直接与基本类型相互转换
3.类型与对应关系:
Byte  -> byte
Short -> short
Integer -> int;
Long    ->long
Boolean ->boolean
Character -> char
Float   ->float
Double ->double
4.存在原因:
1.包装类中提供了很多用于处理当前数据类型的常用方法
2.java是面向对象的,很多类中的参数类型都是对象,而基本数据类型不是对象,所以提供了与之对应的包装类


4.Math类
1.关于数学操作的类,含有大量的静态常量和静态方法,不允许实例化
2.含有很多数学方法,如三角,指对,常用的数学算法等

3.例如:max;min;ceil;floor;round;random;log;exp;sqrt等

4.常用方法测试源代码:

package com.Oracle._Pratice;/** * 对Math常用类的测试 * @author cyz * */public class TestMath {public static void main(String[] args) {//两者中较大的值System.out.println(Math.max(8, 4));//两者中较小的值System.out.println(Math.min(8, 4));System.out.println();//取一个0-1之间的随机数System.out.println(Math.random());System.out.println();//取整System.out.println(Math.floor(1.23));//向下取整System.out.println(Math.floor(4.87));System.out.println(Math.ceil(1.23));//向上取整System.out.println(Math.ceil(4.87));System.out.println(Math.round(1.23));//四舍五入System.out.println(Math.round(4.87));System.out.println();//绝对值System.out.println(Math.abs(3));System.out.println(Math.abs(-3));System.out.println();//e的3次幂System.out.println(Math.exp(3));System.out.println();//2的5次幂System.out.println(Math.pow(2, 5));System.out.println();//100的根方值System.out.println(Math.sqrt(100));}}

运行结果:



5.Object类
1.定义:所有类的父类,没有自定义父类的类相当于继承了Object
2.定义了所有类都需要使用的方法
3.11个方法(1、2、3可以利用右键—>Source—>Generate自动生成)

1.protected Object clone()

1、创建一个完全相同的对象

2、throws CloneNotSupportedException

2.public boolean equals(Object obj)

1、判断两对象内容是否相等

2、性质:自反性,对称性,传递性,一致性

3、任意非空引用值与null判断结果为false

3.public int hashCode()

1、返回对象的哈希码值

2、用处举例:

4.protected void finalize()

1、当一个对象被标记为垃圾时,JVM可能会调用此方法

2、throws Throwable

5.public String toString();

1、将对象转换为字符串,SYstem中会自动调用此方法

4.常用方法测试源代码:

package com.Oracle._Pratice;public class TestObject_Person {//属性String name;int age;//构造方法public TestObject_Person(String name, int age) {super();this.name = name;this.age = age;}public TestObject_Person() {super();}//getter和setterpublic String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}//hashCode和equals:必须同时存equals才能正确使用@Overridepublic int hashCode() {final int prime = 31;int result = 1;result = prime * result + age;result = prime * result + ((name == null) ? 0 : name.hashCode());return result;}@Overridepublic boolean equals(Object obj) {if (this == obj)return true;if (obj == null)return false;if (getClass() != obj.getClass())return false;TestObject_Person other = (TestObject_Person) obj;if (age != other.age)return false;if (name == null) {if (other.name != null)return false;} else if (!name.equals(other.name))return false;return true;}}
package com.Oracle._Pratice;public class TestObject_Student extends TestObject_Person {public TestObject_Student(String name, int age) {super(name, age);}public TestObject_Student() {super();}//仅存在equals,不能正确进行比较@Overridepublic boolean equals(Object obj) {if(obj==this) {return true;}if(obj==null) {return false;}if(obj instanceof TestObject_Student) {TestObject_Student s=(TestObject_Student)obj;if(!s.name.equals(getName())) {return false;}if(s.age!=getAge()) {return true;}return false;}return false;}//将对象输出显示@Overridepublic String toString() {return "TestObject_Student [name=" + name + ", age=" + age + "]";}}
package com.Oracle._Pratice;public class TestObject_Pratice1 {public static void main(String[] args) {//能正确进行比较:同时存在hashCode和equalsTestObject_Person p1=new TestObject_Person("wang",18);TestObject_Person p2=new TestObject_Person("wang",18);TestObject_Person p3=new TestObject_Person("zhang",30);//不能正确进行比较:仅存在equalsTestObject_Student s1=new TestObject_Student("yang",20);TestObject_Student s2=new TestObject_Student("yang",20);TestObject_Student s3=new TestObject_Student("zhang",30);System.out.println(p1.equals(p2));System.out.println(p1.equals(p3));System.out.println(s1.equals(s2));System.out.println(s1.equals(s3));System.out.println();//将对象输出显示System.out.println(p1);//存在toString方法System.out.println(s1);//不存在toString方法}}
运行结果:





阅读全文
0 0