Java基础第五天

一。类
1.接触过的类:
System: java.lang.System
Scanner: java.util.Scanner
Math: java.lang.Math
String: java.lang.String
Arrays: java.util.Arrays
程序中,默认import的软件包就是 java.lang

软件包package:
java.lang: 常用类
java.util: 工具类
java.io: 输入输出相关类
java.sql: 数据库相关
java.net: 网络相关
java.text: 格式化相关
2。常用类
①Random: 构造方法 new Random()
int nextInt(): 产生一个随机整数
int nextInt(int n): 产生一个0~n的随机数
比较Math.random() 和 Random 的使用
1.Math.random() -> 不需要对象,直接调用
Random -> 需要对象
2.Math.random() -> 返回double, 范围固定0~1
Random中的nextInt() -> 返回int, 范围可指定

Random uu=new Random();//创建Random对象
     int h=uu.nextInt();//使用方法
     int m=uu.nextInt(20);// 0~20之间随机数
     boolean a=uu.nextBoolean();// 产生一个随机boolean值

②String - 字符串 -
字符数组直接打印, 就是字符串 -> JVM转换的
字符串特点:
1.直接赋值的字符串, 都存在字符串常量池中, 优化
2.字符串本身不可变
3.字符串不能用 == 来比较
1.构造方法
String s = “hello”;
String()
String(String)
String(char[])
String(char[], int offset, int count)
String(byte[])
String(byte[], int offset, int length)

      String s="hello";
      String m="hello";
      char c=s.charAt(0);//获得字符串s中下标为0的字符
      String ff=m.trim();//去除字符串m两边的空白字符
      boolean q=m.equals(s);//比较字符串s和m是否相等
     
      char[] pp=s.toCharArray();//将字符串转换为字符数组
      System.out.println(Arrays.toString(pp));//字符数组的打印
      int i=s.length();//获得字符串的长度
      boolean l=s.startsWith("he");//判断字符是否以啥啥啥开头
     
      boolean u=s.endsWith("lo");//判断是否以啥啥啥结尾;
   
      int index=s.indexOf("h");//获得字符串中首次出现此字母的下标位置

      String z=m.substring(0,4);//截取字符串0到3的字符
      String z1=s.substring(3);//从指定位置截取到结尾
      boolean k=s.equalsIgnoreCase("heLLo");//忽略大小写比较

    String s="helolo";
      String m="helolo";
      char c=s.charAt(0);//获得字符串s中下标为0的字符

      boolean q=m.equals(s);//比较字符串s和m是否相等
      boolean q1=s.equalsIgnoreCase("heLoLo");//忽略大小写比较字符串是否相等

      char[] pp=s.toCharArray();//将字符串转换为字符数组
      System.out.println(Arrays.toString(pp));//字符数组的打印

      int i=s.length();//获得字符串的长度

      boolean l=s.startsWith("he");//判断字符是否以啥啥啥开头
      boolean t=s.startsWith("lo",3);//判断是否以lo开头,开始位置是下标3

      boolean u=s.endsWith("lo");//判断是否以啥啥啥结尾;

      int index=s.indexOf("h");//获得字符串中首次出现此字母的下标位置
      int index1=s.indexOf("h",2);//获得字符串中从2下标志位置开始的h的下标

      String z=m.substring(0,4);//截取字符串0到3的字符
      String z1=m.substring(4);//截取字符串下标4开始的字符
③.Scanner
Scanner console = new Scanner(System.in);

④System
//用time=System.currentTimeMillis();来计算程序运行效率
        long time=System.currentTimeMillis();//获得系统当前时间单位毫秒
        for(int i=0;i<=10000000;i++){

        }
        long time1=System.currentTimeMillis();
        System.out.println(time1-time);

        /*
        给数组a扩容并且将原来的内容复制进去
         */
        int [] a={10,2,3,5,9};
        int[] b=new int[a.length+1];
        b[b.length-1]=13;
        System.arraycopy(a,0,b,0,a.length);
        /*
        arrycopy(原数组,开始复制的下标,扩容后的数组,
        开始复制的下标,要复制的长度)
        */
          a=b;
        System.out.println(Arrays.toString(a));
⑤Arrays
int [] a={1,5,2,9,3};
        int[] b=new int[a.length+1];
        //给数组a扩容到length+1,并且将a里的值重新赋值给扩容后的a
        a=Arrays.copyOf(a,a.length+1);
        a[a.length-1]=9;//给扩容后的a扩容的那个下标赋值内容
        System.out.println(Arrays.toString(a));

        Arrays.sort(a);//将数组a里的值排序并且重新覆盖a;
        System.out.println(Arrays.toString(a));

三。二维数组

 int [] [] a=new int[4][];//长度为4的数组
        a[0]=new int[5];//给数组初始化
        a[1]=new int[3];
        a[2]=new int[6];
        a[2][5]=3;//给数组第三行第6个元素赋值


        int[][]b=new int[3][4];  //3行4列
        b[1][3]=5;
        for(int i=0;i<b.length;i++){
            for(int j=0;j<b[i].length;j++){
                b[i][j]=5;
                System.out.print(b[i][j]+"\t");
            }
            System.out.println();

四。Static
1.静态代码块,静态成员方法,静态成员变量

public class Child {
    String name;
    int age;
    static int money=100;//定义静态成员变量通常声明同时初始化;

    static {//静态代码块是给类初始化,在类加载时执行
        money=1000;
        System.out.println("静态代码块执行");
    }

    {   /*
         * 此处为代码块,放在构造方法之前,也是给对象初始化,
         * 提取所有构造器中重复代码,但通常用不到
         */
    }

    Child(String name,int age){
        this.name=name;
        this.age=age;
    }

    static void Cry(){ //定义静态方法
        System.out.println("拽着"+money+"使劲哭"); //静态方法中不可以调用成员变量和成员方法
    }
    void Sleep(String name){
        Cry();
        System.out.println(name+"睡着了");
    }

}
public class FoolChilden {
    static {
        //此处为静态代码块,用于先执行消耗较大的代码
        System.out.println("加载一些图片");
    }
    public static void  main(String[] ags){
        Child c1=new Child("方思迪",22);
        Child c2=new Child("胡",22);
        System.out.println(c1.name+Child.money+"零花钱被没收然后");
        c1.Sleep(c1.name);
    }
}

2.类加载
第一次使用类会加载, 并且只加载一次
使用类的情况:
创建对象
调用类的静态成员变量
调用类的静态方法
类加载 会执行的代码:
1.静态代码块
2.静态成员变量

你可能感兴趣的:(Java基础第五天)