API概述
概述:
API:应用程序编程接口,对程序员来说就是一本字典,JDK官方提供给程序员使用类 的说明文档,这些类将底层代码封装起来,不需要关注如何实现,只需要这累的 使用,平常使用就是通过查阅API来完成的
API使用步骤:
1.打开帮助文档
2.点击显示找到索引,找到输入框
3.在输入框中输入想要查找的类---->回车
4.看该类的所在包,对于java.long包下面的不需要导包,其他的都需要
5。看该类的解释说明和类结构
6.学习类的构造方法和成员方法
Scanner类
什么是Scanner类
一个可以使用正则表达式来解析基本数据类型和字符串数据类型的文本扫描器,
例如:
让系统扫描用户输入的int类型值
java
//构建Scanner对象
Scanner sc=new Scanner(System.in);
//访问类中的成员方法
int num=sc.nextInt();
备注:System.in代表系统输入,指的是通过键盘进行数据的录入
引用类型使用步骤
导包:
使用import关键字导包,在所有代码之前导包,引入要使用的类型java.lang包下所 有类不需要导入,导入格式为:import 包名.类名
创建对象:
java
数据类型 变量名=new 数据类型(参数列表);
调用方法:
java
数据类型 变量名=变量名.方法名();
Scanner类使用步骤:
1.查看类:导入java.util包
2.查看构造方法:public Scanner,构造一个新的Scanner对象,扫描从键盘输入 值
3.查看成员方法:public int nextInt()将输入信息标记为int值
练习1
java
import java.util.Scanner;
public class ScannerDemo{
public static void main(String[] args){
//创建对象
Scanner sc=new Scanner(System.in);
//接收系统录入数据
int num1=sc.nextInt();
int num2=sc.nextInt();
int num3=sc.nextInt();
System.out.println(num1+num2+num3);
}
}
练习2:求三个数据最大值
java
import java.util.Scanner;
public class ScannerDemo{
public static void main(String[] args){
//创建对象
Scanner sc=new Scanner(System.in);
//接收数据
int num1=sc.nextInt();
int num2=sc.nextInt();
int num3=sc.nextInt();
//判断获取三个数据最大值
int three=num01>num02?num01:nunm02;
int max=three>num03?three:num03;
System.out.println(max);
}
}
常用Scanner类
sc.nextInt 返回整数
sc.nextDouble 返回浮点数
sc.next 返回输入的文本
sc.nextLine 返回输入文本中的 行分隔符
sc.close 关闭流
匿名对象:
概念:没有变量名的对象
格式:
//有名对象
数据类型 变量名=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类
此类实例主要是用于生成伪随机数
java
//随即得到一个整数,范围是int的取值范围
Random ran=new Random();
int i=ran.nextInt();
Random使用步骤
1.查看类,知道在java.util包下,所以需要导入才能使用
2.查看构造方法:
public Random() 创建一个新的随机数生成器
3.查看成员方法:
public int nextInt(int n); 生成一个伪随机数范围[0,n-1]
public double nextDouble(); 生成一个伪随机小数,范围是[0.0,1.0]
练习:随机生成10个10以内整数
import java.util.Random;
public class RandomDemo2{
public static void mian(String[] args){
//生成Random类
Random random=new Random();
//调用方法 nextInt(int n);
for(int i=0;i<10;i++){
int num=random.nextInt(10);
System.out.println(num);
}
}
}
练习:获取1-n之间的随机数,包含.n
```java
//导包
import java.util.Random;
public class RandomDemo2{
public static void main(String[] args){
//构建一个n
int n=50;
//构建对象
Random random=new Random();
//调用方法
int num=ran.nextDouble()*n;
System.out.println(num);
}
}
ArrayList类:
引入---对象数组
java
//把三个people类型对象遁入到容器当中,数组
public static void main(String[] args){
//创建对象数组
People[] arr=new People[3];
//创三个people对象
People p1=new People("小明",20);
People p2=new People("小花",18);
People p3=new People("小刘",22);
arr[0]=p1;
arr[1]p2;
arr[2]=p3;
//使用循环
//for(int i=0;i<3;i++){
// arr[i]=new People
//}
for(int i=0;i<arr.length;i++){
System.out.println(arr[i].getName+","+arr[i]+getAge)
}
}
备注:对象数组是以前的方法,但是一点数组长度定义就不能修改,想增加或者删除不方便 所以Java提供了java.util.ArrayList集合类 ArrayList是一个长度可变的集合,可以让 我们的增加和删除更方便
什么是Arraylist类
java.util.ArrayList集合类 ArrayList是一个长度可变的集合,存储的数据称为元 素,提供一些常用的API方法来操作内部存储的元素。
ArrayList的使用步骤
1.查看类,发现在java.utilArrayList
ArrayList<People> peoples;
ArrayList<> ;
ArratList<> ;
2.查看构造方法:
public ArrayList(); //构造一个初始容量为10的空列表
public ArrayList(int m); //构造一个指定初始肉平凉的空列表
基本格式:
ArrayList<引用数据类型> 变量名=new ArrayList<引用数据类型>();
//虽然在jdk1.7之后,后面的尖括号里面内容可以不写,但是尖括号必须保存
3.查看成员方法
1.public boolean add(E e); //将指定元素添加到此列表尾部
2.public void add(int index,E e); //将指定元素插入到指定位置
3.public void clear(); //移除此列表中的所有元素
4.public boolean contains(Object o) //判断是否包含指定元素包含返回true
5.public E get(int index); //返回指定位置元素
6.public int indexOf(Object o); //返回此列表第一次出现次元素的位置
7.public boolean isEmpty(); //判断是否为空
8.public E remove(int index); //删除指定位置的元素,并且返回删除的元素
9.public E set(int index ,E e); //指定元素替代指定位置的元素
10.public int size(); //返回元素个数
11.public E get(int index); //返回对应下标的元素
遍历
1.因为有索引所以可以使用for循环,循环次数就是容器元素个数size()
//需求:王ArrayList集合中存入五个学生对象,查找小丽同学,查到返回true,并输出小丽的信息,然后开除小丽,学生包含姓名,年龄,学号,
//1.导包
import java.util.ArrayList;
public class ArrayListDemo03{
public static void main(String[] args){
//创建对象
ArrayList<Student> list=new ArrayList<>();
list.add(new Student("小丽",22,1));
list.add(new Student("小王",23,2));
list.add(new Student("小黑",22,3));
list.add(new Student("小明",22,4));
list.add(new Student("小小",22,5));
for(int i=0;i<list.size();i++){
if(list.get(i).getName=="小丽"){
Systm.out.println(list.get(i).getName+","+list.get(i).getAge+","+list.get(i).getId)
list.remove(i);
}
}
}
}
如何存储基本数据类型
Arraylist类不能直接存储基本数据类型,值能存储应用数据类型,但是java提供了基本 面数据类型的包装类型的没所以包装类型是可以存在ArrayList类里面的,所以想要存储 基本数据类型需要先把基本数据类型转换为包装类。
基本数据类型 | 基本数据类型的包安装类 |
---|---|
byte | Byte |
short | Short |
int | Integer【注意】 |
long | Long |
float | Float |
double | Double |
char | Character【注意】 |
boolean | Boolean |
备注:需要单独记忆 int和char,其他类型只需要记住首字母大写即可
练习:存储基本数据类型值:
//需求1:存入外国人的考试是成绩到ArrayList容器之中,地域60就额外奖励写代码
inport java.util.ArrayList;
//需求2:五个人的身高,大于180就提出
//需求3:生成是个1-10之间的随机数添加到ArrayList集合之中
//用一个30的大集合,存入30个随机数字,然后赛选偶数元素,放到小集合中,使用自定义方 法赛选元素,展示小集合中的偶数元素,打印输出偶数元素个数
String关键字【重点】
String的简要概述:
概述:是java.long.String 代表字符串,Java程序中所有字符串文字入"abc"都可以看作是String类的实例,程序当中所有的双引号字符串,都是String类的对象(没有new也是对象)
字符串特点:
1.字符串内容永远不可变,【重点】
2.因为内容不可改变,所以可以共享使用
3.字符串效果上相当于char[]字符数组,但是底层原理是byte[] 字节数组
//第二点:
String str1="abc"; //相当于构建了一个String对象,虽然没有new
String str2="abc"; //表示可以共享, 都在字符串常量池,在堆内存张中
//内存当中的"abc",一旦程序中扫描到,就会被创建出来,而且只会被创建一次。从而实现共享
String str3=new String("abc");//一旦用了new那就是一个单独得String对象
备注:在jdk1.7之后的JVM将 【运行时常量池】,从方法区中移除,方法区中没有【运行时常量池】,【运行时常量池】转移到堆中了。在jdk1.8开始,取消了java得方法区,换成了元空间,元空间可以直接进行存储,jdk1.8中的字符串常量池和运行时常量池,逻辑上属于元空间,实际上存储在堆内存中。
## Static关键字
```java
public class Student{
String name;
int age;
String id;
String room;
}
//当我们new对象就会在堆内存中开辟一个空间,
ststic作用:
如果一个类有多个对象被储存,如果没有创建对象就会被存到堆内存当中,有了static之后就会存到元空间内,我们对象带哦用方法也是更具方法名在元空间找到i相应变量,变量再去静态域找到我们的静态变量。所以静态信息通常是被共享的。