
软件包是java.lang 所以使用它不需要导包public final class Math 说明Math是最终类,不能被继承任何类都直接或间接继承于Object类Math类包含执行基本数字运算的方法Math类中没有构造方法,且成员变量和成员方法都是用static修饰的(也就是静态的),可以直接使用类名进行访问。
常用方法(8)
方法名 说明
案例:
public class MathDemo {
public static void main(String[] args) {
System.out.println(Math.abs(88));//88
System.out.println(Math.abs(-88));//88
System.out.println("-------------");
System.out.println(Math.ceil(12.33));//13.0
System.out.println(Math.ceil(12.55));//13.0
System.out.println("--------------");
System.out.println(Math.floor(12.33));//12.0
System.out.println(Math.floor(12.55));//12.0
System.out.println("--------------");
System.out.println(Math.min(5, 10));//5
System.out.println(Math.max(5, 10));//10
System.out.println("---------------");
System.out.println(Math.round(12.55));//13
System.out.println(Math.round(12.33));//12
System.out.println("----------------");
System.out.println(Math.pow(2.0, 3.0));//8.0
System.out.println(Math.random());
}
}
System
概念
软件包是java.lang,说明不用导包显示是public final class System 说明System是最终类,不能被实例化System类包含几个有用的类字段和方法,并且不能被实例化,也就是不能通过System类创建对象System类中的所有成员都被static修饰,可以直接通过System类名.成员访问
常用方法
方法名 说明
案例:
System.out.println("开始");
// 调用exit方法,不会输出结束两个字,因为运行exit之后,java虚拟机就关了
System.exit(0);
System.out.println("结束");
// 不调用exit方法,则输出 开始、结束字样。
//System.currentTimeMillis() 的应用 System.out.println(System.currentTimeMillis()); // 看现在时间距离1970年有多少 System.out.println(System.currentTimeMillis()*1.0 / 1000/60/60/24/365);
//计算一段程序耗时多长时间
long start = System.currentTimeMillis();
for(int i = 0; i<10000;i++){
System.out.println(i);
}
long end = System.currentTimeMillis();
System.out.println("耗时: " + (end-start) + "毫秒");//386 视频中是87
Object
概述
软件包 java.lang,所以使用不用导包public class Object 可以被继承类Object 是类层次 结构的根,每个类都有Objcet作为父类(超类),所有对象(包括数组)都实现了这个类的方法。有无参构造方法Object()。子类访问父类的构造方法,默认第一行是super(),是一个空参的,默认访问父类的无参构造方法。原因是:它们的顶级父类Object类只有无参构造方法。
常用方法
方法名 说明
建议所有子类重写该方法,自动生成,快捷键是alt + insert
默认比较地址,重写可以比较内容,自动生成alt + insert
①看方法的源码,选中方法,按下ctrl + B ②System.out.println(对象名) ;对象名.toString 这种方式输出的内容不是能看的懂的内容,建议在创建类的时候,直接重写toString方法 toString方法的重写 快捷键 = alt + insert
public class Student {
private String name;
private int age;
public Student(){}
public Student(String name,int age){
this.name = name;
this.age = age;
}
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
public void setAge(int age){
this.age = age;
}
public int getAge(){
return age;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + ''' +
", age=" + age +
'}';
}
}
public class StudentDemo {
public static void main(String[] args) {
Student s = new Student();
s.setName("汪苏泷");
s.setAge(33);
System.out.println(s);//com.itheima130.test2.Student@1b6d3586
//说明println方法底层调用的还是toString方法。
System.out.println(s.toString());//com.itheima130.test2.Student@1b6d3586
//上述两者输出内容一致
// 此时输出s的内容是看不懂的内容。一般的方式是重写toString方法,在Student类中
//在Student类中重写toString方法后,输出内容为Student{name='汪苏泷', age=33}
//输出内容是这个 具体的原因是:
}
}
equals方法
案例:
public class StudentDemo {
public static void main(String[] args) {
Student s1 = new Student();
s1.setName("汪苏泷");
s1.setAge(33);
Student s2 = new Student();
s2.setName("汪苏泷");
s2.setAge(33);
//比较两个对象内容是否相同
System.out.println(s1 == s2);//false
//原因:类创建对象,对象名在栈内存中表示是堆内存中对象存储区域的地址,对象不同,则对应的地址就不同,所以s1和s2不一样
System.out.println(s1.equals(s2));//false
//原因:
//要想实现比较对象的内容是否相等 重写equals方法即可
//自动生成即可 alt + insert
//修改之后 可以实现对象内容是否相等的比较
}
}
public class Student {
private String name;
private int age;
public Student(String name, int age) {
this.name = name;
this.age = age;
}
public Student() {
}
public 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;
}
@Override
public boolean equals(Object o) {
// 执行s1.equals(s2)
// 那么方法中的this==》s1;o ==》 s2
// 判断this 和 o 的地址是否相同,相同则返回true
if (this == o) return true;
// 逻辑或 (前)判断o是否为null
// (后)getClass拿的是对象的字节码文件,简单来说就是判断这两个对象是否来自同一个类
if (o == null || getClass() != o.getClass()) return false;
//向下转型,将对象o强制转换为Student类型
Student student = (Student) o;
// 比较年龄是否相同,age表示的this.age ==》 s1.age 而student.age ==》 s2.age 不相等则返回false
if (age != student.age) return false;
//比较名字是否相同,name表示是this.name 先判断是否为null,不为null再使用【字符串1.equals(字符串2)】比较name字符串是否相等
return name != null ? name.equals(student.name) : student.name == null;
}
}
Arrays
冒泡排序
排序: 将一组数据按照固定的规则进行排序
冒泡排序: 一种排序的方式,对要进行排序的数据中相邻的数据进行两两比较,将较大的数据放在后面,依次对所有数据进行 *** 作,直至所有数据按要求完成排序。
原理:
①如果有n个数据进行排序,总共需要比较n-1次
②每一次比较完毕,下一次的比较就会少一个数据参与
案例:
public class ArrayDemo {
public static void main(String[] args) {
// 定义一个数组
int[] arr = {24,69,80,57,13};
System.out.println("排序前:" + arrayToString(arr));
arrayToReversear(arr);
System.out.println("排序后:" + arrayToString(arr));
}
//把数组中的元素按照指定的规则组成一个字符串:[元素1,元素2,...,元素n]
public static String arrayToString(int[] arr){
StringBuilder sb = new StringBuilder();
sb.append("[");
for (int i = 0 ; i arr[j + 1]) {
tep = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tep;
}
}
}
}
}
Arrays类
概述
软件包是 java.util 使用的时候需要导包该类包含用于 *** 作数组的各种方法(如排序和搜索)Arrays该类也有无参构造方法,但其中的成员都是用static修饰的,可以直接使用(Arrays.成员)对Arrays中的成员进行访问。为防止使用者通过创建对象的方式对成员进行访问,所以Arrays的无参构造方法采用修饰符private修饰。工具类的设计思想:构造方法用private修饰,防止外部通过类创建对象对成员进行访问;成员用public static 修饰,方便通过类名.成员调用成员。
常用方法
方法名 说明
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)