• 【Java基础】Math类、System类、toString方法、equals方法及冒泡排序实现


    目录

    一、Math类的应用

    二、System类的应用

    三、Object类的toString方法

    四、Object类的equals方法

    五、冒泡排序原理


    一、Math类的应用

    1、Math类的概述

    Math包含执行基本数字运算的方法

    2、Math中方法的调用方式

    Math类中无法构造方法,但内部的方法都是静态的,则可以通过  类名.进行调用

    3、Math类的常用方法

    方法名说明
    public static int abs(int a)返回参数的绝对值
    public static double ceil(double a)返回大于或等于参数的最小double值,等于一个整数
    public static double floor(double a)返回小于或等于参数的最大double值,等于一个整数
    public static int round(float a)按照四舍五入返回最接近参数的int
    public static int max(int a,int b)返回两个int值中的较大值
    public static int min(int a,int b)返回两个int值中的较小值
    public static double pow(doublie a,double b)返回a的b次幂的值
    public static double random()返回值为double的正值,[0.0,1.0)

    二、System类的应用

    System类的常用方法

    方法名说明
    public static void exit(int status)终止当前运行的Java虚拟机,非零表示异常终止
    public static long currentTimeMillis()返回当前时间(以毫秒为单位)

    示例代码:

    需求:在控制台输出1-10000,计算这段代码执行了多少毫秒

    1. public class SystemDemo {
    2. public static void main(String[] args) {
    3. // 获取开始的时间节点
    4. long start = System.currentTimeMillis();
    5. for (int i = 1; i <= 10000; i++) {
    6. System.out.println(i);
    7. }
    8. // 获取代码运行结束后的时间节点
    9. long end = System.currentTimeMillis();
    10. System.out.println("共耗时:" + (end ­ start) + "毫秒"
    11. }
    12. }

    三、Object类的toString方法

    Object类概述:

    Object是类层次结构的根,每个类都可以将Object作为超类。所有类都直接或者间接继承自该类,换句话说,该类所具备的方法,所有类都会有一份。

    IDEA查看源码的方式:

    选中方法,按下Ctrl+B

    重写toString方法的方式:

    1、Alt+Insert选择toString

    2、在类的空白区域,右键 -> Generate ->选择toString

    toString方法的作用:

    以良好的格式,更方便的展示对象中的属性值

     示例代码:

    1. class Student extends Object {
    2. private String name;
    3. private int age;
    4. public Student() {
    5. }
    6. public Student(String name, int age) {
    7. this.name = name;
    8. this.age = age;
    9. }
    10. public String getName() {
    11. return name;
    12. }
    13. public void setName(String name) {
    14. this.name = name;
    15. }
    16. public int getAge() {
    17. return age;
    18. }
    19. public void setAge(int age) {
    20. this.age = age;
    21. }
    22. @Override
    23. public String toString() {
    24. return "Student{" +
    25. "name='" + name + '\'' +
    26. ", age=" + age +
    27. '}';
    28. }
    29. }
    30. public class ObjectDemo {
    31. public static void main(String[] args) {
    32. Student s = new Student();
    33. s.setName("小明"
    34. s.setAge(18
    35. System.out.println(s);
    36. System.out.println(s.toString());
    37. }
    38. }

    四、Object类的equals方法

    equals方法的作用:

    用于对象之间的比较,返回true和false的结果

    举例:s1.equals(s2); s1和s2是两个对象

    重写equals方法的场景:

    不希望比较对象的地址值,想要结合对象属性进行比较的时候

    重写equals方法的方式:

    1、alt+insert选择equals() and hashCode(),Intellij Default,一路next,finish即可

    2、在类的空白区域,右键 -> Generate -> 选择equals() and hashCode(),后面的同上

    示例代码:

    1. class Student {
    2. private String name;
    3. private int age;
    4. public Student() {
    5. }
    6. public Student(String name, int age) {
    7. this.name = name;
    8. this.age = age;
    9. }
    10. public String getName() {
    11. return name;
    12. }
    13. public void setName(String name) {
    14. this.name = name;
    15. }
    16. public int getAge() {
    17. return age;
    18. }
    19. public void setAge(int age) {
    20. this.age = age;
    21. }
    22. @Override
    23. public boolean equals(Object o) {
    24. //this ­­ s1
    25. //o ­­ s2
    26. if (this == o) return true;
    27. if (o == null || getClass() != o.getClass()) return false;
    28. Student student = (Student) o; //student ­­ s2
    29. if (age != student.age) return false;
    30. return name != null ? name.equals(student.name) : student.name == null;
    31. }
    32. }
    33. public class ObjectDemo {
    34. public static void main(String[] args) {
    35. Student s1 = new Student();
    36. s1.setName("c小明"
    37. s1.setAge(18
    38. Student s2 = new Student();
    39. s2.setName("小明"
    40. s2.setAge(18
    41. //需求:比较两个对象的内容是否相同
    42. System.out.println(s1.equals(s2));
    43. }
    44. }

    五、冒泡排序原理

    ● 冒泡排序概述:

            一种排序的方式,对要进行排序的数据中相邻的数据进行两两比较,将较大的数据放在 后面,依次对所有的数据进行操作,直至所有数据按要求完成排序

    ● 如果有n个数据进行排序,总共需要比较n-1次

    ● 每一个比较完毕,下一次的比较就会少一个数据参与

    代码实现:

    1. /*
    2. 冒泡排序:
    3. 一种排序的方式,对要进行排序的数据中相邻的数据进行两两比较,将较大的数据放在后面,
    4. 依次对所有的数据进行操作,直至所有数据按要求完成排序
    5. */
    6. public class ArrayDemo {
    7. public static void main(String[] args) {
    8. //定义一个数组
    9. int[] arr = {24, 69, 80, 57, 13
    10. System.out.println("排序前:" + arrayToString(arr));
    11. // 这里减1,是控制每轮比较的次数
    12. for (int x = 0; x < arr.length ­ 1; x++) {
    13. // ­1是为了避免索引越界,­x是为了调高比较效率
    14. for (int i = 0; i < arr.length ­ 1 ­ x; i++) {
    15. if (arr[i] > arr[i + 1]) {
    16. int temp = arr[i];
    17. arr[i] = arr[i + 1
    18. arr[i + 1] = temp;
    19. }
    20. }
    21. }
    22. System.out.println("排序后:" + arrayToString(arr));
    23. }
    24. //把数组中的元素按照指定的规则组成一个字符串:[元素1, 元素2, ...]
    25. public static String arrayToString(int[] arr) {
    26. StringBuilder sb = new StringBuilder();
    27. sb.append("["
    28. for (int i = 0; i < arr.length; i++) {
    29. if (i == arr.length ­ 1) {
    30. sb.append(arr[i]);
    31. } else {
    32. sb.append(arr[i]).append(", "
    33. }
    34. }
    35. sb.append("]"
    36. String s = sb.toString();
    37. return
    38. }
    39. }

     

  • 相关阅读:
    Gradle Sync Error : ANDROID_HOME 与 ANDROID_SDK_ROOT 指向不一致
    Karpor - 让 AI 全面赋能 Kubernetes!
    Day 47 MySQL Navcat、PyMYsql
    搭建数字藏品系统开发详细功能
    笔记本无线网卡天线接线柱掉了(AUX和MAIN两个接口)
    Django的runserver部署和uwsgi部署对比
    Kubernetes使用OkHttp客户端进行网络负载均衡
    注册的业务、登录业务、个人中心、nginx配置【VUE项目】
    4WRBA6EB15-2X/G24N9Z4/M比例换向阀控制器
    狂神springcloud速补笔记4
  • 原文地址:https://blog.csdn.net/m0_61961937/article/details/126673645