API的使用和一些常用类
- API概述
- Scanner类
- Random类
- ArrayList类
- String类
API概述
API(Application Programming Interface)应用程序编程接口。对于程序员来说就是一本可检索查找的字典,是JDK官方提供给程序开发者使用类的说明文档,这些类将底层的代码封装起来,我们不需要关注这些类底层是如何实现的,只需要知道这些是如何使用的。平常开发使用JDK类库的时候,通过查阅API的方式进行的
API的使用步骤
1.打开帮助文档
2.点击显示,找到索引,找到搜索框
3.在输入框中输入你想查找的类,回车
4.看该类所在的包,对于java.lang包下的类不需要导包,其他的都需要导包
5.看该类的解释说明和类结构
6.学习该类的构造方法和成员方法
Scanner类
什么是Scanner类?
定义: 是一个可以使用正则表达式来解析基本数据类型和字符串类型的简单文本扫描器。
例如:让系统扫描用户输入的int类型值
Scanner scanner=new Scanner(System.in);
int num=scanner.nextInt();
备注:System.in系统输入,是指通过键盘录入数据
引用类型使用的步骤
1.导包
使用import关键字导包,在类的所有代码之前导包,引入需要使用的类型,java.lang包下的所有类不需要导入
导入的格式:
import 包名.类名
如:import java.util.Scanner;
2.创建对象
数据类型 变量名=new 数据类型(参数列表);
3.调用方法
变量名.方法名();
Scanner类的使用步骤
- 查看类
java.util.Scanner需要导入java.util包 - 查看构造方法
public Scanner(InputStream source)构造一个新的Scanner对象,它生成的值是从指定的输入流中扫描的 - 查看成员方法
public int nextInt();将输入的信息的下一个标记扫描为一个int类型值
匿名对象
匿名对象就是没有变量名的对象
格式:
数据类型 变量名=new 数据类型(参数列表);//有名对象
new 数据类型(参数列表);//匿名对象
public class AnonymousDemo{
public static void main(String []args){
Scanner sc=new Scanner (System.in);
int num=sc.nextInt();
//匿名对象
int num2=new Scanner(System.in).nextInt();
System.out.println(num2);
//开发中 把匿名对象进行参数传递
checkInput(new Scanner(System.in));
//获取一个Scanner类对象
Scanner sc02=getScanner();
}
public static void checkInput(Scanner sc){
int num=sc.nextInt();
System.out.println(num);
}
public static Scanner getScanner(){
return new Scanner(System.in);
}
}
备注:匿名对象只能在程序中使用唯一的一次,下次再使用需要重新创建
使用建议:如果你确定在程序中有一个对象只需要使用唯一一次,建议使用匿名对象
Random类
什么是Random类
此类的实例用于生成伪随机数
例如:使用户能够得到一个随机整数
Random random=new Random();
int i=random.nextInt();
Random的使用步骤
- 查看类
java.util.Random下,索引需要导包 - 查看构造方法
public Random() 创建一个新的伪随机数生成器 - 查看成员方法
public int nextInt(int n) 返回一个为随机整数[0,n-1]
public double nextDouble() 返回一个伪随机小数[0.0,1.0)
例1:使用Random类随机生成10个10以内的随机整数
import java.util.Random;
public class RandomDemo{
public static void main(String []args){
Random random=new Random();
for (int j = 0; j < 10; j++) {
int i = random.nextInt(10);
System.out.println(i);
}
}
}
例2:获取1-n之间的随机数,包含n
import java.util.Random;
public class RandomDemo {
public static void main(String[] args) {
Random random = new Random();
int n=50;
for (; ; ) {
int i=random.nextInt(n)+1;
System.out.println(i);
if(i==50){
break;
}
}
}
}
ArrayList类
对象数组
//把三个People类型的对象存入到容器当中
public static void main(String []args){
//创建对象数组
People[] arr =new People[3];
//创建对象
People p1=new People("张三",20);
People p2=new People("李四",15);
People p3=new People("王五",21);
arr[0]=p1;
arr[1]=p2;
arr[2]=p3;
//遍历
for(int i=0;i<=arr.length-1;i++){
System.out.println(arr[i].getName()+","+arr[i].getAge());
}
}
备注:对象数组,长度是固定的,如果在程序中需要对对象进行增加或者删除操作,很不方便,所以jav又提供了一个容器javautil.ArrayList集合类。ArrayList类可以让我们的存储和操作对象更方便
什么是ArrayList类
一个大小可变的数组的实现,里面存储的数据成为元素,该类提供了一些常用的API方法来操作内部存储的元素
Arraylist类的使用步骤
- 查看类
java.util.ArrayList:该类先导入后才能使用。,表示一种类型指定的数据类型,叫做泛型。E,取自Element–元素。在程序中遇到 的地方需要使用一种引用数据类型将其替换掉,表示我们将要存储哪种数据类型的元素
ArrayList<People> peoples;
ArrayList<String> strs;
ArrayList<int> nums;//不正确的写法,需要使用引用数据类型
- 查看构造方法
public ArrayList() 构造一个初始容量为10的容器
public ArrayList(int intialcapacity) 构造一个具有指定初始容量的空列表。
ArrayList<引用数据类型>变量名=newArrayList<引用的数据类型>();
在JDK1.7之后右侧的泛型尖括号中的数据类型可以省略不写,但是尖括号要保留
- 查看成员方法
public boolean add(E e) 将指定的元素添加到此列表尾部的位置
public void add(int index E element) 将指定的元素插入到指定位置
public boolean contains(Object o) 判断是否包含指定元素,包含则返回true,否则返回false
public E get(int index) 返回指定位置元素
public int indexOf(Object o) 返回此列表中首次出现的指定元素的索引,或如果次列表不包含元素,返回-1
public boolean isEmpty();如果有元素,返回true
public E remove(int index) 移除指定位置元素,并返回
public E set(int index,E e) 代替指定元素
public int size() 返回此列表元素个数
遍历
使用for循环,定义的循环变量就是ArrayList容器中的索引,循环的次数就是容器的元素个数
如何存储基本数据类型值
ArrayList类对象不能存储基本类型,只能存储引用类型数据,类似不支持,但是Java中提供了基本数据额类型对应的包装类型,包装类型是可以在ArrayList容器中指定的,所以我们如过想要存储基本数据类型值,需要把基本类型转换成包装类
基本类型 | 基本类型包装类 |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Charcater |
boolean | Boolean |
String类
String类概述
java.util.String 代表字符串,java程序中的所有字符串文字,如“abc”都可以看做是String类的实例化,程序当中的所有双引号字符串都是String类的对象(没有new,也是对象)
字符串的特点
- 字符串的内容永远不可变
- 正因为字符串内容不可变,所以字符串是可以共享的
- 字符串效果上相当于char[ ]字符数组,但是底层原理是byte[ ]字节
备注:在JDK1.7之后的JVM将运行时常量池从方法区中移除,在java的堆空间中开辟空间用来存储运行时常量池。在JDK1.8开始,取消了java的方法区,取而代之的是元空间(metaspace)。在JDK1.8中的字符串常量和运行时常量池逻辑上属于方法区,实际上存储在对内存当中。