一、API的概述和使用
1、定义:应用程序编程接口。实际就是很多类的集合,类似于Java中程序员使用的字典。
使用1.6版本的JDK API
使用步骤:
点击显示——>搜索需要使用的类——>看包路径——>看构造方法和方法摘要
2、Scanner类
(1)定义:一个可以解析基本类型和字符串的简单文本扫描器
(2)功能:可以实现键盘输入数据到程序当中。
引用类型的一般使用步骤:
01、导包
import 包路径.类名称
- 注意:如果需要使用的目标类,和当前类位于同一包下,则可以省略导包语句不写。
- 只有java.lang包下的内容不需要导包,其他的包都需要import语句
02、创建
类名称 对象名 = new 类名称()
03、使用
对象名.成员方法 ( )
(3)Scanner的使用步骤
import java.util.Scanner(导包,写在类前,可不用写有快捷方式)——>Scanner sc =new Scanner (System.in)(创建)——>获取键盘输入的数据
( int数字 :int num=sc.nextInt() ; 字符串:String str = sc.next() ; 这些可在API中查找)
注意:输入的数据实际均为字符串,nextInt实际将字符串转换为Int变量。
(4)Scanner 练习题
键盘输入两个数字求和,键盘输入三个数字求取最大值。
(5)匿名对象
01、格式:
new 类名称().成员变量 后接赋值语句;
02、注意事项:匿名对象只能使用唯一的一次,下次再用必须创建一个新对象。
03、使用建议:如果确定一个对象只需要使用唯一的一次,就可以使用匿名对象
04、匿名对象可作为方法的参数和返回值
3、Random类
(1)定义:产生随机数的一个类
(2)使用步骤
01、导包
import java.util.Random;
02、创建
Random r = new Random ( );
小括号当中留空即可
03、使用
- 获取一个随机的int数字(范围是int所有范围,由正负两种):int num = r.nextInt ( ) ;
- 获取一个随机的int数字(参数代表了范围,左闭右开区间):int num = r. nextInt(3)
- 实际上代表的含义是:[0,3),也就是0~2
04、练习
生成一个1~N的随机数字(关键在于给生成的随机数字加1)
猜数游戏(关键在于while循环的使用)
05、对象数组
类名 [ ] array = new 类名 [ 数组长度]
例如:
4、ArrayList(集合类,泛型)
(1)定义:ArrayList是大小可变的数组的实现,存储在内的数据被称为元素。此类提供一些方法来操作内部存储的元素。ArrayList中国可不断添加元素,期大小也自动增长。
注意:对于ArrayList来说,有一个<E>代表泛型
泛型:泛型只能是引用类型,不能是基本类型
(2)与一般数组的区别:
数组的长度不可以发生改变。但是ArrayList的长度可以改变。
(3)使用步骤:
导包——>创建——>使用
创建格式:ArrayList<引用类型如String> list = new ArrayList<>();
解释:创建了一个ArrayList集合,集合的名称为List,数据类型均为String字符串类型。
- 注意:对于ArrayList来说,直接打印得到的不是地址,而是内容。
- 如果内容是空,则得到是空的中括号。
常用方法(其余方法可在Api当中查找)
01、向集合类型当中添加数据,需要用到add方法。
List.add(添加的数据)
注意:对于ArrayList来说,add添加的动作一定是成功的,所以返回值可用可不用。但是对于其他集合来说,add添加动作不一定成功。
02、从集合当中获取元素,参数是索引编号,返回值就是对应位置的元素。索引从0开始。
List.get(索引值) ;
03、从集合中删除元素,参数为索引编号,返回值就是被删除的元素。
List.remove(索引值) ;
04、获取集合的尺寸长度,返回值为集合元素的个数。
LIst.size() ;
05、遍历集合
for (int i=0;i<List.size();i++)
{
System.out.println(List.get(i));
}
(4)ArrayList集合存储基本数据类型
必须使用基本类型的“包装类”。
基本类型 包装类(引用类型,包装类都位于java.lang包下)
- byte ——Byte
- short——Short
- int——integer
- long——Long
- float——Float
- double——Double
- char——Character
- boolean——Boolean
自动装箱:基本类型——>包装类型
自动拆箱:包装类型——>基本类型
二、字符串
(1)字符串概述和特点
- java.lang.String类代表字符串。
- 程序当中的所有双引号字符,都是String类的对象。(就算没有new也是)
- 特点
- 字符串的内容创建后不可更改
- 正是因为字符串不改变,所以字符串可以共享使用。
- 字符串效果上相当于是char[]字符数组,但是底层原理是byte[]字节数组。
(2)如何创建字符串(3+1)种方式
三种构造方法:
1、pubilc String ():创建一个空白字符串,不含有任何内容。
2、public String (char[ ] array) : 根据字符数组的内容,来创建对应的字符串。
3、public String (byte [ ] array) :根据字节数的内容,来创建对应的字符串。
一种直接创建:
String str = “字符串”
注意:直接写上双引号,就是字符串对象。
(3)字符串的常量池
- 程序当中直接写上的双引号字符串就在字符串常量池中,创建的字符串对象不在字符串常量池当中。
- 对于基本类型来说:==进行数值比较
- 对于引用类型来说;==进行地址值比较
- 内存使用图:
(4)字符串的常用方法
01、字符串的比较方法:
pubilc boolean equals ( Object obj) : 参数可以是任何对象,只有参数是一个字符串并且内容相同的才会返回t
rue值,否则为False。
例如:
- 注意:任何对象都能用Object接收。
- equals方法具有对称性,也就是a.equals(b)等同于b.equals(a)。
- 如果比较双方一个常量一个变量推荐字符串常量写在前面把变量作为方法参数。若常量为null值,则会报错出现空指针异常。
- 若想忽略大小写直接比较值可用equalsIgnorancCase方法。(只有英文字母区分大小写)。
02、字符串的获取方法。
1、pubilc int length() : 获取字符串当中含有的字符个数,拿到字符串长度
2、public String concat(String str):将当前字符串和参数字符串拼接成为返回值新的字符串
3、public char charAt(int index):获取指定索引位置的单个字符。(索引从0开始。)
4、public int indexof (String str):查找参数字符串在本字符串中的位置,如果没有返回-1值。
例如:
03、字符串的截取方法
1、public String substring(int index) : 截取从参数位置一直到字符串末尾,返回新字符串。
2、public String substring(int begin,int end):截取从begin开始,一直到end结束,中间的字符串。
([begin,end)),包含左边,不包含右边。
例如:
04、字符串的转换相关方法
1、public char [ ] toCharArray() :将当前字符串拆分成为字符数组作为返回值。
2、public byte [ ] getBytes() :获得当前字符串底层的字节数组。
3、pubilc String repalce(CharSequence oldString,CharSequence newString):将所有出现的老字符串替换成为新的字符串,返回替换之后的结果新字符串。
CharSequence 就是可以接收字符串类型。
05、字符串的分割方法
public String [ ] split (String regex) : 按照参数的规则,将字符串切分为若干的部分
注意:spilt的方法的参数是一个“正则表达式”
例如:如果按照英文句点"."进行切分,必须写“\\.”
三、静态
1、static关键字概述
2、静态关键字static修饰成员变量
如果一个成员变量使用了该关键字,那么成员变量不再属于对象自己而是属于所在的类。多个对象共享同一个数据。
使用格式:
static 变量类型 变量名;
3、静态关键字static修饰成员方法
(1)一旦使用该关键字修饰成员方法,那么这就成为了静态方法。静态方法不属于对象,而是属于类的。
(2)如果没有该关键字,那么必须首先创建对象,然后通过对象才能使用。
(3)对于静态方法来说可以通过对象名进行调用,也可以通过类名称进行调用。推荐使用类名称调用,适用对象进行调用后也会被编译器翻译为类名称调用方法。
(4)无论是成员变量还是成员方法。如果使用了static关键字,都推荐使用类名称进行调用。
静态变量 :类名称.静态变量
静态方法:类名称.静态方法
(5)对于本类当中的静态方法,可以省略类名称。
注意事项:
01、静态只能直接访问静态,不能直接访问非静态。
因为内存当中是先有的静态内容,后有的非静态内容。
02、成员方法可以访问成员变量,成员方法可以访问静态变量。
03、静态方法当中不能用this。
因为this代表当前对象,通过谁调用的方法,谁就是当前对象。
4、静态内存使用图
5、静态代码块
(1)静态代码块格式:
pubilc class 类名称{
static {
内容
}
}
(2)特点
01、当第一次使用到本类时,静态代码块执行唯一的一次
02、静态内容总是优先非静态,所以静态代码比构造方法先执行。
(3)用途:用来一次性对静态成员变量进行复制。
四、常用的两个工具类
1、Arrays数组工具类
(1)定义:java.util.Arrays是一个与数组相关的工具类,里面提供了大量静态方法,用来实现数组常见的操作。
(2)常用方法:
01、public static String toString(数组):将参数数组变成字符串(按照默认格式:[ 元素1,元素2,元素3... ]
02、pubilc static void sort(数组):按照默认升序(从小到大)对数组的元素进行排序。
注意:如果是数值,默认按照升序从小到大。如若是字符串,默认按照字母升序。如果是自定义的类型,需要有Comprable或者Comparator接口的支持。
2、数学工具类Math
(1)java.util.Math是数学相关的类,里面提供了大量的静态方法,完成与数学运算相关的操作。
(2)常用方法
01、pubilc static double abs(double num):获取绝对值,有多种重载。
02、public static double ceil (double num):向上取整。
03、public static double floor (double num):向上取整。
04、pubilc static long round(double num):四舍五入,不带小数点。
System.out.println(Math.abs(-2.0));//2.0
System.out.println(Math.ceil(3.9));//4.0
System.out.println(Math.ceil(3.0));//3.0
System.out.println(Math.floor(4.1))//4.0
System.out.println(Math.round(4.6))//5
注意:Math.PI(圆周率)