01、java07-String static Array Math四个类

--在java中不要想着数据,而是要把对象或者变量看作指向数据的地址,数据可能没变,但是指向地址发生变化了

1、String类

--java.lang.String 不需要导入

--String 特点
    --字符串不变:字符串的值在创建后不能被更改,但可以改变指向地址
        String s1 = "abc";
        s1 += "d";
        System.out.println(s1); // "abcd"
        // 内存中有"abc","abcd"两个对象,s1从指向"abc",改变指向,指向了"abcd"。

    --因为String对象是不可变的,所以它们可以被共享。
        String s1 = "abc";
        String s2 = "abc";
        // 内存中只有一个"abc"对象被创建,同时被s1和s2共享。
        
    --"abc"等效于 char[] data={'a' ,'b' ,'c'} 。
        例如:
        String str = "abc";
        相当于:
        char data[] = {'a', 'b', 'c'};
        String str = new String(data);
        // String底层是靠字符数组实现的。

--String类的构造方法:说白一点就是能怎么初始化
    --public String() :初始化新创建的 String对象,以使其表示空字符序列。
    // 无参构造
    String str = new String();

    --public String(char[] value) :通过当前参数中的字符数组来构造新的String。
    // 通过字符数组构造
    char chars[] = {'a', 'b', 'c'};
    String str2 = new String(chars);

    --public String(byte[] bytes) :通过使用平台的默认字符集解码当前参数中的字节数组来构造新的
String。
    // 通过字节数组构造
    byte bytes[] = { 97, 98, 99 };
    String str3 = new String(bytes);

--获取String地址
    --

    
   

2、String方法

3、static 静态 关键字

--static关键字:static关键字可以用来修饰类的成员变量和成员方法,修饰以后分别变成类变量和类方法。

--类变量:static 修饰成员变量时,该变量称为类变量。该类的每个对象都共享同一个类变量的值。任何对象都可以更改该类变量的值,但也可以在不创建该类的对象的情况下对类变量进行操作。
--定义格式
    --static 数据类型 变量名;

--类变量使用案例:
    --对于一个新班级需要为每一个同学编号,编号需要独一无二和逐渐递增,类似的场景中就可以使用到这种

--类变量代码:
    public class Student {
        //成员变量
        String student;
        String student_name;
        int age;
        int num_stu = 0;

        // 定义一个类变量
        public static int stu_id = 0;

        // 构造方法
        public Student(){}  //无参数构造方法
        public Student(String student_name, int age){ //含参数的构造方法
            this.student_name = student_name;
            this.age = age;
            this.num_stu = ++stu_id;
        }

        //成员方法
        public void study(){
            System.out.println("好好学习,天天向上");
        }

        public void eat(){
            System.out.println("学习饿了要吃饭");
        }

        public void show(){
            System.out.println("学生姓名:" + this.student_name + " 学生年纪:" + String.valueOf(this.age) + " 学生编号:" + String.valueOf(this.num_stu));
        }
    }

    public static void main(String[] args){ 
        Student s1 = new Student("张扬", 20);
        Student s2 = new Student("带头", 22);
        Student s3 = new Student("vehri", 24);
        Student s4 = new Student("veruv", 25);

        s1.show();
        s2.show();
        s3.show();
        s4.show();
    }
--类方法:static 修饰成员方法时,该方法称为类方法,习惯称为静态方法。静态方法在声明中有 static ,建议使用类名来调用,而不需要创建类的对象。调用方式非常简单。

--格式:
    修饰符 static 返回值类型 方法名 (参数列表){
        // 执行语句
    }

4、Array类

--需要导入java.util.Arrays
--Arrays类:此类包含用来操作数组的各种方法,比如排序和搜索等。其所有方法均为静态方法,调用起来
非常简单。

--public static String toString(int[] a) :返回指定数组内容的字符串表示形式。
    

--public static void sort(int[] a) :对指定的 int 型数组按数字升序进行排序。
    public static void main(String[] args) {
        // 定义int 数组
        int[] arr = {24, 7, 5, 48, 4, 46, 35, 11, 6, 2};
        System.out.println("排序前:"+ Arrays.toString(arr)); // 排序前:[24, 7, 5, 48, 4, 46, 35, 11, 6,2]
        // 升序排序
        Arrays.sort(arr);
        System.out.println("排序后:"+ Arrays.toString(arr));// 排序后:[2, 4, 5, 6, 7, 11, 24, 35, 46,48]
}


--字符串中字符的升序打印
    public static void main(String[] args) {
        // 定义随机的字符串
        String line = "ysKUreaytWTRHsgFdSAoidq";
        // 转换为字符数组
        char[] chars = line.toCharArray();
        // 升序排序
        Arrays.sort(chars);
        // 反向遍历打印
        for (int i = chars.length‐1; i >= 0 ; i‐‐) {
            System.out.print(chars[i]+" "); // y y t s s r q o i g e d d a W U T S R K H F A
        }
    }

5Math类

--java.lang.Math  不需要导入
--java.lang.Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。类似这样的工具类,其所有方法均为静态方法,并且不会创建对象,调用起来非常简单。

--也就是说这次学习的Arrays和Math类两个都是类方法,直接类调用即可

--public static double abs(double a) :返回 double 值的绝对值。
    double d1 = Math.abs(‐5); //d1的值为5
    double d2 = Math.abs(5); //d2的值为5

--public static double ceil(double a) :返回大于等于参数的最小的整数。
    double d1 = Math.ceil(3.3); //d1的值为 4.0
    double d2 = Math.ceil(‐3.3); //d2的值为 ‐3.0
    double d3 = Math.ceil(5.1); //d3的值为 6.0

--public static double floor(double a) :返回小于等于参数最大的整数。
    double d1 = Math.floor(3.3); //d1的值为3.0
    double d2 = Math.floor(‐3.3); //d2的值为‐4.0
    double d3 = Math.floor(5.1); //d3的值为 5.0

--public static long round(double a) :返回最接近参数的 long。(相当于四舍五入方法)
    long d1 = Math.round(5.5); //d1的值为6.0
    long d2 = Math.round(5.4); //d2的值为5.0

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值