今日内容:
-
API概述
-
Scanner类
-
Random类
-
ArrayList类
-
String类
-
static关键字
-
Arrays类
-
Math类
学习目标
-
能够明确API使用的步骤
-
能够使用Scanner类获取键盘录入数据
-
能够使用Random类生成随机数
-
能够使用数组存储自定义类型并且遍历
-
能够使用ArrayList集合的构造方法创建ArrayList集合对象
-
能够使用ArrayList集合存储数据
-
能够使用ArrayList集合中的常用方法
-
能够使用ArrayList集合中存储字符串并遍历
-
能够使用ArrayList集合存储自定义的对象并且遍历
-
能够使用ArrayList类作为形式参数和返回值类型
-
能够使用String类的构造方法创建字符串对象
-
能够使用String类的构造方法创建对象和直接赋值创建字符串对象的区别
-
能够使用文档查询String类的判断方法
-
能够使用文档查询String类的获取方法
-
能够使用文档查询String类的转换方法
-
能够理解static关键字
-
能够写出静态代码块的格式
-
能够使用Arrays类操作数组
-
能够使用Math类进行数学运算。
API概述
API(Application Programming Interface)应用程序编程接口,Java API对于程序员来说就是一本可以查找检索的【字典】,是JDK官方提供给程序开发者使用的说明文档。这些类将底层的代码封装起来,我们不需要关注这些类底层是如何实现的,我们只需要知道这些类是如何使用的,平常开发使用的JDK类库的时候,通过查阅API的方式进行的。
API的使用步骤:
1.打开帮助文档
2.点击“显示”,找到索引,找到输入框
3.在输入框中输入要查找的类名,然后回车,
4.看该类所在的包,对于Java.lang包下的类不需要导包,其他都需要
5.看该类的解释说明和类结构
6.学习该类的构造方法和成员方法。
Scanner类
什么是Scanner类:一个可以使用正则表达式来解析基本类型和字符串的简单文本扫描器。
例如:系统扫描输入的int类型值
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
备注:System.in 系统输入指的是通过键盘录入数据
引用类型使用步骤:
导包: 使用import关键字导包,在类的所有代码之前导包,引入要使用的类型,java.lang包下的所有类不需要导入
导入的格式:import 包名.类名
如:import java.util.Scanner
创建对象:
数据类型 变量名=new 数据类型(参数列表);
调用方法:
变量名.方法名();
Scanner类的使用步骤
1.查看类
java.util.Scanner 需要导入java.util包
2.查看构造方法
public Scanner (InputStream source):构造一个新的Scanner对象,它生成的值是从指定的输入流中扫描的。
3.查看成员方法
public int nextInt():将输入的信息的下一个标记扫描为一个int类型值。
import java.util.Scanner
public class Scanner{
public static void main(String[] args){
// 创建对象
Scanner sc = new Scanner(System.in);
//接受系统录入的数据
int num1 = sc.nextInt();
int num2 = sc.nextInt();
//求和
int sum=num1+num2;
System.out.println(sum)
}
}
匿名对象【了解】
概念:没有变量名的对象
格式:
数据类型 变量名 = new 数据类型(参数列表);//有名对象
new 数据类型(参数列表)//匿名对象
举例:
public class AnonymousDemo{
public static void main(String[] args){
//传统的写法
Scanner sc =new Scanner(System.in);
int num =sc.next.Int();
//匿名对象的方式
int num2=new Scanner(System.in).nextInt();
System.out.println(num2);
//开发中 使用匿名对象进行参数的传递
checkInput(new Scanner(System.in));
}
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 ran =new Random();
int i= ran.nextInt();//int 的取值范围
Random类的使用步骤
1.查看类
位于java.util.Random中,需要导包才能使用。
2.查看构造方法
public Random():创建一个新的随机数生成器。
3.查看成员方法
public int nextInt(int n):返回一个伪随机数,范围在【0,n-1】;
public double nextDouble():返回一个伪随机小数,范围在【0.0,1.0)。
//导包
import java.util.Random;
public class RandomDome02{
public static void main(String[] args){
//构建一个n的范围
int n=50;
//构建一个Random类的对象
Random r=new Random();
//调用类中的方法
int sum=r.nextInt(n)+1;
System.out.println(sum);
}
}
ArrayList类
引入---对象数组
备注:对象数组长度是固定的,如果在程序中需要对象进行增加或者删除等数量操作时,非常不方便。
Java又提供了一个容器java.util.ArrayList集合类,这个类可以让我们的存储和操作对象更方便。
什么是ArrayList类:
java.util.ArrayList类是一个【大小可变的数组】的实现,里面存储的数据称为元素,该类提供了一些常用的api方法来操作内部存储的元素。
ArrayList类的使用步骤:
1. 查看类:java.util.ArrayList<E>,该类也是需要导入后才能使用
<E>:表示一种指定的数据类型,叫做【泛型】。E,取自Element(元素)的首字母。在程序中遇到【E】的地方,我们需要使用一种【引用的数据类型】将其替换掉即可,表示我们将存储哪种数据类型的元素。
例如:
ArrayList<People> list;
ArrayList<String> strs;
ArrayList<int> nums;//错误的写法
2. 查看构造方法
public ArrayList():构造一个初始容量为10的空列表
public ArrayList(int initialcapacity):构造一个指定初始容器的空列表
基本格式:
ArrayList<引用数据类型> 变量名 = new ArrayList<引用数据类型>();
在JDK1.7之后,右侧的泛型尖括号里面的数据类型可以选择省略不写,但是<>要保留。
3. 查看成员方法
public boolean | add(E e) 将指定的元素添加到此列表的尾部。 |
public void | add(int index, E element) 将指定的元素插入此列表中的指定位置。 |
public void | clear() 移除此列表中的所有元素。 |
public boolean | contains(Object o) 如果此列表中包含指定的元素,则返回 true。 |
public E | get(int index) 返回此列表中指定位置上的元素。 |
public int | indexOf(Object o) 返回此列表中首次出现的指定元素的索引,或如果此列表不包含元素,则返回 -1。 |
public E | set(int index, E element) 用指定的元素替代此列表中指定位置上的元素。 |
public boolean | remove(Object o) 移除此列表中首次出现的指定元素(如果存在)。 |
public int | size() 返回此列表中的元素数。 |
public boolean | isEmpty() 如果此列表中没有元素,则返回 true |
遍历【重点】
使用for循环,定义的循环变量就是ArrayList容器中的索引,循环的次数就是容器的元素个数size();
如何存储基本数据类型
ArrayList类对象不能存储基本类型,只能存储引用类型的数据,类似<int>不支持的,但是Java中提供了基本数据类型对应的包装类型,包装类型是可以在ArrayList容器中指定,所以我们如果想要存储基本数据类型值,首先需要把基本数据类型转换成包装类型。
基本类型 | 基本类型包装类 |
byte | Byte |
short | Short |
int | Integer[重点] |
long | Long |
float | Float |
double | Double |
char | Character[重点] |
boolean | Boolean |
备注:我们需要对int和char进行特殊记忆,其他类型只需记住首字母大写即可。
String类
String 类的概述:java.lang.String类代表字符串,java程序中的所有字符串文字,如"abc"都可以看作是String类的实例。
程序当中的所有双引号字符串,都是String类的对象,(没有new,也是对象)。
字符串的特点:
1.字符串的内容永远不可改变【重点】。
2.正是因为字符串的内容永远不可改变,所以字符串是可以共享使用的。
3.字符串效果相当于是char[]字符数组,但是底层原理是byte[]字节数组。
备注:JDK1.7之后的JVM将【运行时常量池】从方法区去移除了,在Java堆(heap)中开辟空间用来存储运行时常量池。
JDK1.8开始,取消了Java方法区(method area),取而代之的是元空间(metaspace)
JDK1.8中字符串常量池和运行时常量池逻辑上属于方法区,实际上存在堆内存中。