Java语言学习笔记-常用的API

常用的API

第一节:API概述

1.1 概述

**API:**应用程序编程接口。Java API是一本程序员的字典,是JDK中提供给我们使用的类的说明文档。这些类将底层的代码实现封装了起来,我们不需要关心这些类是如何实现的,只需要学习这些类如何使用即可。所以我们可以通过查阅API的方式,来学习Java提供的类,并得知如何使用它们

1.2 API使用步骤

1、打开帮助文档

2、点击显示,找到索引,看到输入框

3、你要找谁,就在输入框里输入,然后回车

4、看包,java.lang下的类不需要导包,其他需要

5、看类的解释和说明

6、学习构造方法

7、使用成员方法

第二节:Scanner类

2.1 什么是Scanner类

**Scanner类的功能:**可以实现键盘输入数据到程序中

引用类型的一般使用步骤:

1、导包

import 包路径.类名称;

在package之后写,但在public之前写

如果需要使用的目标类和当前类位于同一个包下,则可以省略导包语句不写

只有java.lang包下的内容不需要导包,其他的包都需要import语句

2、创建

类名称 对象名=new 类名称();

3、使用

对象名.成员方法名()

package cn....;
import java.util.Scanner;
public class Demo01Scanner{
    public static void main(String[] args){
    	Scanner sc=new Scanner(System.in);//现阶段一成不变
    	//System.in代表从键盘进行输入
        int num=sc.nextInt();//获取键盘输入的一个int数字:
        String str=sc.next();//获取键盘输入的一个字符串;
    }
}

第三节:匿名对象

3.1 匿名对象的说明

创建对象的标准格式:

类名称	对象名=new	类名称();

匿名对象就是只有右边的对象,没有左边的名字和赋值运算符

new 对象名().成员变量;//定义

注意:匿名对象只能使用唯一的依次,下次使用不得不再创建一个新对象

使用建议:如果确定有一个对象只需要使用唯一的一次,就可以用匿名对象

3.2 匿名对象作为返回值的参数
public static void main(String[] args){
    //普通使用Scanner方式:
    Scanner sc=new Scanner(System.in);
    int num=sc.nextInt();
    //匿名对象的方式:
    int num=new Scanner(System.in).nextInt();
    System.out.println("输入的是:"+num);
    //使用一般写法传入参数:
    Scanner sc=new Scanner(System.in);
    methodparam(sc);
    //使用匿名对象来进行传参:
    methodparam(new Scanner(System.in));
}

第四节:ArrayList 集合

4.1 对象数组

数组有一个缺点:一旦创建,程序运行期间长度不可以发生改变

public class Demo01Array{
    public static void main(String[] args){
        //首先创建一个长度为3的数组,里面用来存放Person类型的对象
        Person[] array=new Person[3];
        Person one =new Person("迪丽热巴",18);
        Person two =new Person("古力娜扎",28);
        Person three=new Person("玛尔扎哈",38);
        //将one当中的地址值赋值到数组0号元素位置
        array[0]=one;
        array[1]=two;
        array[2]=three;
        System.out.println(attay[0]);//地址值
        System.out.println(attay[1]);//地址值
        System.out.println(attay[2]);//地址值
        
        System.out.println(attay[1].getName);//古力娜扎
    }
}
4.2 ArrayList 集合概述和基本使用

**与数组的区别:**数组的长度不可以发生改变,但是ArrayList的长度可以发生改变

对于ArrayList来说,有一个代表泛型。

泛型:也就是装在集合当中的所有元素,全部都是统一的什么类型。

注意:1、泛型只能是引用类型,不能是基本类型

2、对于ArrayList集合来说,直接打印得到的不是地址值,而是内容,如果内容是空,得到的是空 的中括号,[]

3、创建的时候尖括号泛型说的是什么类型,添加进去的元素就必须是什么类型

package cn.Test2;
import java.util.ArrayList;
public class Arraytest {
    public static void main(String[] args) {
        //创建了一个ArrayList集合,集合的名称是list,里面装的全都是String字符串类型的数据
        //备注:从JDK 1.7+开始,右侧的尖括号内部可以不写内容,但是<>本身还是要写的
        ArrayList<String> list=new ArrayList<>();
        System.out.println(list);
        //向集合中添加一些数据,需要用到add方法
        list.add("赵丽颖");
        System.out.println(list);
        list.add("da");
        list.add("as");
        System.out.println(list);
    }
}

常用方法:(重点)

1、向集合中添加元素,参数的类型和泛型一致,返回值是对应的boolean值 list.add(“想加的元素”);

public boolean add(E e);

2、从集合中获取元素,参数是索引编号,返回值就是对应位置的元素 list.get(索引值);

public E get(int index);

3、从集合中删除元素,参数是索引编号,返回值就是被删除的元素 list.remove(3);

public E remove(int index);

4、获取集合的尺寸长度,返回值是集合中包含的元素个数 list.size();

public int size();
4.3 ArrayList集合存储基本数据

如果希望向集合ArrayList中存储基本类型,必须使用基本类型对应的“包装类”

基本类型包装类(引用类型,包装类都位于java.lang包下)
byteByte
shortShort
intInteger【特殊】
longLong
floatFloat
doubleDouble
charCharacter【特殊】
booleanBoolean

在这八个类名中,除了Integer和Character类以后,其它六个类的类名和基本数据类型一致,只是类名的第一个字母大写即可。

ArrayList<Integer> list=new ArrayList<>();
list.add(100);

从JDK 1.5+开始,支持自动装箱,自动拆箱

**自动装箱:**基本类型----->包装类型

**自动拆箱:**包装类型------>基本类型

第五节: String类

5.1 字符串概括和特点

String类代表字符串,JAVA程序中的所有字符串字面值(如"abc")都作为此类的实例实现

其实就是说:程序中所有双引号字符串,都是String类的对象(就算没有new,也照样是)

字符串的特点:

1、字符串的内容永不可变【重点】

2、正是因为字符串不可改变,所以字符串是可以共享使用的

3、字符串效果上相当于是char[]字符数组,但是底层原理是byte[]字节数组

5.2 字符串的构造方法和创建方法

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

三种构造方法:

public String();//创建一个空白字符串,不含有任何内容
String str1=new String();//小括号留空,说明字符串什么内容都没有
public String(char[] array);//根据字符数组的内容,来创建对应的字符串
char[] charArray={'a','b','c'};
String str2=new String(charArray);//abc
public String(byte[] array);//根据字节数组的内容,来创建对应的字符串
byte[] byteArray={97,98,99};
String str3=new String(byteArray);//abc

一种直接创建:

String str="Hello";//右边直接用双引号

注意:直接写上双引号,就是字符串对象

5.3 字符串的常量池

字符串的常量池:程序当中直接写上的双引号字符串,就在字符串常量中,从JDK1.7开始,常量池在堆中

对于基本类型来说,==是进行数值的比较

对于引用类型来说,==是进行【地址值】的比较

常量池的工作内存图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DpxpA5jv-1611640039012)(D:/学习/Java/图片/16.png)]

注意:

1、对于引用类型来说,==进行的是地址值的比较

2、双引号直接写的字符串在常量池中,new的不在池当中

5.4 字符串的比较相关方法

==是进行对象的地址值比较,如果确实需要字符串的内容比较,可以使用两个方法:

一、严格区分大小写

public boolean equals(Object obj);//参数可以是任何对象,只有参数是一个字符串并且内容相同的才会给true,否则返回flase,任何对象都能用Object进行接收
System.out.println(str1.equals(str2));
System.out.println(str1.equals("Hello"));
System.out.println("Hello".equals(str1));

注意:

1、任何对象都能用Object进行接收

2、equals方法具有对称性,也就是a.equals(b)和b.equals(a)效果一样

3、如果比较双方一个常量一个变量,推荐把常量字符串写在前面

推荐:“abc”.equals(str); 不推荐:str.equals(“abc”);

 **当str=null时,不推荐的写法会报错:空指针异常(NullPorinterException)**

二、不区分大小写

public boolean equalsIgnoreCase(String str);//忽略大小写,进行内容比较
System.out.println(str1.equalsIgnoreCase(str2));
System.out.println(str1.equalsIgnoreCase("Hello"));
System.out.println("Hello".equalsIgnoreCase(str2));

注意:只有英文字母区分大小写,其他都不区分大小写

5.4 字符串的获取相关方法

String中与获取相关的常用方法:

public int length();//获取字符串中含有的字符个数,拿到字符串长度
int length="asfahfhlafhla".length();
public String concat(String str);//将当前字符串和参数字符串拼接,返回新的字符串
String str3=str1.concat(str2);
public char charAt(int index);//获取指定索引位置的单个字符(索引从0开始)
char ch="Hello".charAt(1);//e
public int indexOf(String str);//查找参数字符串在本字符串中首次出现的索引位置,如果没有,返回-1
int index=str1.indexOf(str2);
5.5 字符串的截取方法

截取方法:

public String substring(int index);//截取从参数位置一直到字符串末尾,返回新字符串
String str2=str1.substring(5);
public String substring(int begin,int end);//截取区间从begin开始,一直到end结束,中间的字符串,而且是个左闭右开,[begin,end)
String str3=str1.substring(4,7);
5.6 字符串的转换相关方法

String中与转换相关的常用方法:

public char[] toCharArray();//将当前字符串拆分成字符数组作为返回值
char[] chars="Hello".toCharArray();
public byte[] getBytes();//获得当前字符串底层的字节数组
byte[] bytes="Hello".getBytes();
public String replace(CharSequence oldString,CharSequence newString);//将所有出现的老字符串替换成为新的字符串,返回替换之后的结果新字符串.CharSequence意思是可以接受字符串类型
String str1="How do you do?";
String str2=str1.replace("o","*");//H*w d* y*u d*?
5.7 字符串的分割相关方法

分割字符串的方法:

public String[] split(String regex);//按照参数的规则,将字符串切分成为若干部分
String str1="aaa,bbb,ccc";
String[] array1=str1.split(",");//aaa	bbb		ccc

注意:

split方法的参数其实是一个“正则表达式”,如果要按照英文句点".“进行切分,必须写”\\."(两个反斜杠)

第六节 关键字Static静态

6.1 概述

一旦使用了static关键字,那么这样的内容不再属于对象自己,而是属于类的,所以凡是本类的对象,都共享一份

6.2 static修饰成员
static String room;
6.3 static修饰方法
public void method(){
    System.out.println("这是一个普通的成员方法。");
}
public static void methodStatic(){
    System.out.println("这是一个静态方法");
}

一旦使用static修饰成员方法,那么这就成为了静态方法。静态方法不属于对象,而是属于类的

如果没有static关键字,那么必须首先创建对象,然后通过对象才能使用它

如果有了static关键字,那么不需要创建对象,直接就能通过类名称来使用它

无论是成员变量还是成员方法,如果有了static,都推荐使用类名称进行调用

推荐格式:

静态变量:类名称.静态变量

静态方法:类名称.静态方法()

注意:

1、静态只能直接访问静态,不能直接访问非静态

**原因:因为在内存中是先有静态内容,后有的非静态内容**

2、静态方法中不能用this

原因:this代表当前对象,通过谁调用的方法,谁就是当前对象

6.4 静态static的内存图

在方法区中有一块静态区,专门用来存储静态static类型

注意:根据类名称访问静态成员变量的时候,全程和对象向就没关系,只和类有关系

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ugzLCYzY-1611640039015)(D:/学习/Java/图片/17.png)]

6.5 静态代码块

格式:

public class 类名称{
    static{
        //静态代码块的内容
    }
}

**特点:**当第一次用到本类时,静态代码块执行唯一的依次

注意:静态内容总是优先于非静态,所以静态代码块比构造方法先执行

静态代码块的典型用途:用来一次性地对静态成员变量进行赋值

第七节:Arrays工具类

7.1 数组工具类Arrays

java.util.Arrays是一个与数组相关的工具类,里面提供了大量静态方法,用来实现数组常见操作

常见的操作:

public static String toString(数组);//将参数数组变成字符串(按照默认格式:[元素1,元素2,...])
String intstr=Arrays.toString(intArray2);
public static String void sort(数组);//按照默认升序(从小到大)对数组的元素进行排序
Arrays.sort(array);//直接将数组排序,没有返回对应数组

注意:

1、如果是数值,sort默认按照升序从小到大排序

2、如果是字母,sort默认按照字母升序

3、如果是自定义的类型,那么这个自定义的类需要有Comparable或者Comparator接口的支持

第八节: Math类

java.utli.Math类是数学相关的工具类,里面提供了大量的静态方法,完成与数学运算相关的操作

public static double abs(double num);//获取绝对值
System.out.println(Math.abs(3.14));//3.14
System.out.println(Math.abs(0));//0
System.out.println(Math.abs(-2.5));//2.5
public static double ceil(double num);//向上取整
System.out.println(Math.ceil(2.5));//3.0
public static double floor(double num);//向下取整
System.out.println(Math.floor(2.5));//2.0
public static long round(double num);//四舍五入
System.out.println(Math.round(2.5));//3.0
Math.PI//代表近似的圆周率常量(默认为double)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值