美文网首页java学习笔记
java学习笔记(七)常用API第一部分

java学习笔记(七)常用API第一部分

作者: Broken故城 | 来源:发表于2020-03-08 13:13 被阅读0次

    个人笔记,仅供参考

    API

    API即jdk中提供,可以直接使用的类。

    使用方法:

    1. 打开帮助文档
    2. 学习对应的使用方法
    3. 看包,java.lang下的不需要导包
    4. 看类的解释和说明
    5. 学习构造方法
    6. 使用成员方法

    1、Scanner类

    该类作用是获取键盘输入

    使用:

    1. 导包(IDEA会自动导入)import 包路径.类名称
    2. 创建
    3. 使用
    public static void main(String[] args) {
            //创建scanner类
            //System.in代表从键盘获取输入
            Scanner scanner = new Scanner(System.in);
            //获取键盘输入的int数字
            int a = scanner.nextInt();
            //获取键盘输入的字符串
            String str = scanner.next();
            //注意上面的语句只能获取不带空格的字符串,如有空格,要用下方的代码
            String str2 = scanner.nextLine();
        }
    

    2、匿名对象

    有些情况下,创建对象时可以不写对象名字,这样的对象叫匿名对象

    public class Person {//下文举例使用
        String name;
        public void showname(){
            System.out.println(name);
        }
    }
    
    /**
             * 匿名对象就是只有右边的对象,
             * 没有左边的名字和赋值运算符
             */
            new Person().name = "bob";
            new Person().showname();
            /**
             * 匿名对象只能用一次
             * 下次要重新创建
             * 在某个对象只要用一次是可以使用匿名对象
             */
    

    第六行调用的方法输出为null值,即第六行重新创建了对象

    匿名对象也可以作为方法的参数和返回值

    3、Random类

    用于生成随机数

    使用步骤大致同Scanner类。

    import java.util.Random;
    public class Random_demo {
        public static void main(String[] args) {
            Random r = new Random();
            int num = r.nextInt();
            System.out.println(num);
        }
    }
    

    生成的随机数是int范围内随机一个值

    指定生成范围:

     int num1 = r.nextInt(3);
            //上面这行生成随机数的范围是[0,3),即有0,1,2三种可能
    

    另一种指定生成范围的方式

    //根据int变量n的值,来获取随机数字,范围[1,n],两个都能取到
            int n = 5;
            int num2 = r.nextInt(n) + 1; //本来是[0,n),整体加一就变成了[1,n+1)
            System.out.println(num2);
    

    4、ArrayList集合

    对象数组

    把对象的地址值存在数组里,可以通过数组来调用对象

     public static void main(String[] args) {
            //先创建一个长度为3的数组,里面用来放Person类型的数组
            Person[] array = new Person[3];
            Person one = new Person("wang",18);
            Person two = new Person("li",28);
            Person three = new Person("gu",31);
            array[0] = one;//将one当中的地址值存到array里
            array[1] = two;
            array[2] = three;
    
            System.out.println(array[0]);//打印出来为一个地址值
            System.out.println(array[1].getName());
        }
    

    这种方法有一个弊端,即数组的长度在程序运行期间不可更改,即一开始需要考虑好数组的长度。

    为了解决这个问题,应该把数组换成集合。

    数组和集合的最大区别就是长度可不可变

    ArrayList集合

    import java.util.ArrayList;
    //对于ArratList来说,有一个尖括号<E>表示泛型,也就是在集合中的所有元素全部是什么类型
            //泛型只能是引用类型,不能是基本类型
            ArrayList<String> list = new ArrayList<>();
            System.out.println(list);
            //对于ArrayList集合来说,直接打印得到的是内容,而不是地址
    

    使用add方法添加元素

    list.add("wang");
    

    注意集合的泛型,只能写泛型指定的数据类型

    ArrayList常用方法

    1、添加,

    public boolean add(E e);
    public E get(int index);
    public E remove(int index);
    public int size();
    

    第一行向集合中添加元素,参数的类型和泛型一致

    第二行从集合当中获取元素,参数是索引编号,返回值是对应位置的元素

    第三行从集合中删除元素,参数是索引编号,返回值是被删除的元素

    第四行获取集合的尺寸长度,返回值是集合中包含的元素个数

    public static void main(String[] args) {
            ArrayList<String> list = new ArrayList<>();
            System.out.println(list);
            //添加元素,对于ArrayList集合来说,议案家必定成功,但对其他集合就不一定,所以需要返回值
            boolean success = list.add("A");
            System.out.println(list);
            System.out.println("添加的动作是否成功" + success);
    
            //从集合中获取,索引从0开始
            String a = list.get(0);
            System.out.println(a);
    
            //从集合中删除元素
            list.remove(0);
            System.out.println(list);
    
            //得到集合长度
            int size = list.size();
            System.out.println(size);
        }
    

    遍历集合

    public static void main(String[] args) {
            ArrayList<String> list = new ArrayList<>();
            list.add("A");
            list.add("B");
            list.add("C");
            
            //遍历集合
            for (int i = 0; i < list.size(); i++) {
                System.out.println(list.get(i));
            }
        }
    

    集合存基本类型

    要在集合中使用基本类型,要使用对应的包装类

             /**基本类型   包装类(引用类型,位于java.lang包)
             * byte       Byte
             * short      Short
             * int        Integer
             * long       Long
             * float      Float
             * double     Double
             * char       Character
             * boolean    Boolean
             */
    

    使用示范

    ArrayList<Integer> list = new ArrayList<>();
    list.add(100);
    list.add(200);
    int a = list.get(1);
    System.out.println(a);
    

    5、String类

    字符串创建后不可改变(常量)

    因为字符串内容不可改变,多以字符串可以共享使用

    字符串效果上相当于char类型的数组

    创建字符串常见的3+1种方法

    1、public String() 创建一个空白字符串,不含内容

    2、public String (char[] array);根据字符串数组的内容,来创建对应的字符串

    3、public String(byte[] array);根据字节数组的内容,来创建对应的字符串

    4、直接创建

    字符串的常量池

    程序中直接写上的双引号字符串,就在池中

    对于基本类型== 是进行数值的比较,对于引用对象,时进行地址值的比较

    常用方法

    内容比较:

    public boolean equals(Object obj);
    //参数可以是任何对象,大小写敏感
    

    只有参数是字符串,并且内容相同才为true

    str1.equals(str2)
    "abc".equals(str)
    str.equals("abc")//不推荐,str为null时会报错
    

    另一种比较方法

    public boolean equalsIgnoreCase(String str)
    //忽略大小写
    

    获取相关方法

    public int length();//长度
    public String concat(String str);//将当前字符串和参数拼接,并返回
    public char charAt(int index);//获取指定索引位置的单个字符
    public int indexOf(String str);//查找参数字符串在本字符串中首次出现的索引值,如果没有,返回-1
    

    截取相关方法

    public String substring(int indes);
    //从参数位置到末尾,返回型字符串
    public String substring(int begin,int end);
    //截取一个范围,左闭右开区间(结尾取不到)
    

    转换相关方法

    public char[] toCharArray()
    //将字符串转换成字符数组
    public byte[] getBytes();
    //获得当前字符串底层的字节数据
    public String replace(CharSequence oldString,Charsequence newString);
    //将所有出现的老字符串替换为新字符串,返回替换的结果
    

    分隔相关方法

    public String[] split(String regex);
    //按照参数的规则,将字符串切分为若干部分
    //参数其实是正则表达式,如果用英文句点,必须用双引号和反斜杠"\\. "
    

    使用:

    String str1 = "aaa,bbb,ccc";
    String[] array1 = str1.split(",")
    //每个逗号切分一下
    

    6、static关键字

    用了static关键字,那么这样的内容就不再属于对象,而是属于类,也就是说该类的所有对象中的该内容都是一样的,且在对象中不可更改

    对于成员变量

    ​ 如过一个成员变量使用了static关键字,那么这个成员变量不再属于对象自己,而是属于所在的类。

    public class Student {
        private String name;
        private int age;
        static String room;
        }
    
    Student one = new Student("alan",19);
    Student two = new Student("bob",16);
    one.room = "101教室";
    //两个对象打印都为101教室
    

    可以用作计数器,在默认的构造方法里让每次创建对象计数器都加1,实现生成序号

    对于成员方法

    public class Myclass {
        public void method(){
            System.out.println("这是一个普通的成员方法");
        }
        public static void methodStatic(){
            System.out.println("这是一个静态方法");
        }
    }
    

    如果是成员方法,必须创建对象才能用,而静态方法可以通过类名调用

    public static void main(String[] args) {
            Myclass obj = new Myclass();
            obj.method();
            //对于静态方法,可以通过对象调用,也可以通过类名调用
            obj.methodStatic();//不推荐
            Myclass.methodStatic();//推荐
        }
    

    注意

    ​ 静态只能直接访问静态,不能直接访问非静态

    ​ 静态方法不能用this

    静态代码块

    用大括号括起来的就是代码块,作用:当第一次用到本类,静态代码块执行唯一一次

    public class Person{
        ststic{
            System.out.println("静态代码块执行");
        }
    }
    

    用途:用来一次性的对静态成员变量赋值

    7、数组工具类Arrays

    public static String toString(数组)//将参数数组变成字符串
    public static void sort(数组)//升序排列,字符串按字母升序,如果是自定义的类,需要有comparable或comparator接口的支持
    

    8、Math类

    有大量的静态方法,完成与数学相关的操作

    public static double obs(double num);//过去绝对值
    public static double ceil(double num);//向上取整
    public static double floor(double num);//向下取整
    public static Long round(double num);//四舍五入
    

    Math.PI为近似圆周率

    相关文章

      网友评论

        本文标题:java学习笔记(七)常用API第一部分

        本文链接:https://www.haomeiwen.com/subject/olyddhtx.html