Java入门之常用的API
API介绍
概念:API 即应用编程程序接口。Java API是JDK中提供给我们使用的类说明文档,这些类将底层的代码实现封装。无需关心这些类是如何实现,只需要学习如何使用。
使用:通过API找到需要使用的类,学习使用构造方法和成员方法。(创建对象,调用即可)
一、Scanner类
功能:解析基本类型和字符串的简单文本扫描器。
构造方法:无参构造 Scanner,生成的值是从指定输入流扫描的。
成员方法:
nextInt 方法会将输入信息记录为int类型。
import java.util.Scanner; //导包 public class TestScanner { public static void main(String[] args){ Scanner sc = new Scanner(System.in); System.out.println("正在录入数据:"); int a = sc.nextInt(); System.out.println(a); } }
System.in 表示通过键盘录入数据,然后使用 Scanner类的 nextInt 方法获取输入数据。
使用导包:使用 import 关键字,引入包中的类。java.lang 包下的类无需导入。
二、Random类
功能:生成伪随机数。
构造方法:无参构造随机数生成器。
成员方法:
nextInt 方法会返回一个伪随机数,范围在0(包含)-n(参数,不包含)之间。
import java.util.Random; public class TestRandom { public static void main(String[] args){ Random R = new Random(); //创建随机数生成器 System.out.println(R.nextInt(10)); } }
三、ArrayList类
功能:ArrayList 集合类会创建一个大小可变的数组,用于存储和操作对象数据。
构造方法:无参构造一个空集合。
成员方法:
- add 方法将指定的元素添加到集合的尾部。(添加的数据必须和创建ArrayList对象时声明的数据类型一致)
- remove 方法移除集合指定位置上的元素,并返回被删除的元素。
- get 方法返回集合中指定位置上的元素,并返回获取的元素。
- size 方法返回集合中的元素数量。用于遍历集合是,控制索引,防止指针越界。
import java.util.ArrayList; public class TestArrayList { public static void main(String[] args){ //创建对象并声明集合类型为Integer ArrayList<Integer> list = new ArrayList<>(); //jdk7后的版本右侧<>可不写内容 //添加 int 类型元素 list.add(1); list.add(2); list.add(3); list.add(4); list.add(5); System.out.println(list); //获取指定位置的元素 注意指针越界 System.out.println(list.get(0)); //删除指定位置的元素 注意指针越界 System.out.println(list.remove(1)); //遍历打印 printArrayList(list); } //遍历打印 public static void printArrayList(ArrayList<Integer> list){ for (int i=0;i<list.size();i++){ System.out.println(list.get(i)); } } }
ArrayList 对象不能存储基本类型,只能存储引用类型的数据,但是可以存储基本数据类型对应的包装类型(见本文第十一节)。
四、String类
功能:类 String 包括用于检查各个字符串的方法。
特点:
- 字符串的值创建后不能更改。
- 可以被共享。
- String底层使用字符数组实现的。“abc”等效于 “char[] data = {\’a\’ ,\’b\’ ,\’c\’ }”。
构造方法:
- 无参构造创建一个新的空字符 String对象。
- char[] value :通过当前参数中的字符数组构造。
- byte[] bytes:通过使用平台默认字符集解码当前参数中的字节数组构造。
public class TestString { public static void main(String[] args){ //构造方法 //无参构造 String str1 = new String(); //字符数组构造 char chars[] = {\'a\',\'b\',\'c\'}; String str2 = new String(chars); //字节数组构造 byte bytes[] = {97,98,99}; String str3 = new String(bytes); } }
成员方法:
方法 | 返回值类型 | 参数 | 功能 |
equals | boolean | object | 用于将此字符串与指定对象比较。相同为true,不同为false。 |
equalsIgnoreCase | boolean |
str |
equalsIgnoreCase 方法和 equals 方法相同,只不过在比较时会忽略大小写。 |
length | int | 返回字符串的长度 | |
concat | String | str | 将指定的字符串连接到该字符串的末尾 |
charAt | char | index | 返回指定索引处的char值 |
indexOf | int | str | 返回指定字符串第一次出现在该字符串内的索引 |
substring | String | beginIndex,endIndex |
无endIndex从beginIndex到结尾截取字符串 有endIndex从beginIndex到endIndex(不含endIndex) |
toCharArray | char[] | 将字符串转换为新的字符数组 | |
getBytes | byte[] | 使用平台默认字符集将String转换为新的字节数组 | |
replace | String | targe,replacement | 将与target匹配的字符串替换为replacement |
split | String[] | regex | 将字符串按照regex拆分为字符串数组 |
package com.api; public class TestString { public static void main(String[] args){ //构造方法 //无参构造 String str1 = new String(); //字符数组构造 char chars[] = {\'a\',\'b\',\'c\'}; String str2 = new String(chars); //字节数组构造 byte bytes[] = {97,98,99}; String str3 = new String(bytes); System.out.println(str1); System.out.println(str2); System.out.println(str3); //字符串比较(区分大小写) 相同为true,否则为false System.out.println(str2.equals(str3)); System.out.println(str1.equals(str3)); //字符串比较(不区分大小写) 相同为true,否则为false String str4 = "ABC"; System.out.println(str2.equalsIgnoreCase(str4)); //获取长度 System.out.println(str2.length()); //字符串连接(指定字符串连接末尾) System.out.println(str2.concat(str4)); //获取指定索引处的字符 System.out.println(str2.charAt(0)); //获取一个字符串在字符串对象中第一次出现的索引,没有则返回1 System.out.println(str2.indexOf("b")); System.out.println(str2.indexOf("d")); //从start索引开始截取字符串,end存在截取不会包含end System.out.println(str2.substring(1)); System.out.println(str2.substring(1,2)); //转换字符数组 System.out.println(str2.toCharArray()); System.out.println(str2.getBytes()); //替换字符 System.out.println(str3.replace("a","R")); //拆分数组 System.out.println(str3.split("b")); } }
五、Math类
功能:包含用于执行基本数学运算的方法,如初等指数,对数,平方根和三角函数。
特点:调用简单,所有方法均为静态方法。(静态方法使用static修饰,无需创建类对象即可调用)
public class TestMath { public static void main(String[] args){ //绝对值 double d1 = Math.abs(-1); //向上取整 double d2 = Math.ceil(1.1); //向下取整 double d3 = Math.floor(1.1); //四舍五入 double d4 = Math.round(2.4); } }
六、Object类
概述:Object 类是Java语言中的根类,即所有类的父类。如果一个没有指定继承父类,都会默认继承 Object 类。
部分方法:
toString 方法:返回对象的字符串表示。
equals 方法:比较两个对象是否相同。
public class TestObject{ public static void main(String[] args){ String a = "abc"; System.out.println(a.toString()); String b = "abc"; System.out.println(a.equals(b)); } }
七、时间日期类
1.Date 类
功能:表示特定的时间,精确到毫秒。
构造方法:无参构造自动获取系统当前时刻。指定参数long date 可以自定义毫秒时刻。
成员方法:public long getTime()把日期对象转换成对应的时间毫秒值。
import java.util.Date; public class TestDate { public static void main(String[] args){ System.out.println(new Date()); System.out.println(new Date(0L)); System.out.println(new Date().getTime()); } }
2.DateFormat 类(抽象类)
功能:完成Date对象和String的相互转换。
构造方法:使用 public SimpleDateFormat(String pattern) 子类。指定一个格式来格式化或解析的标准。
成员方法:
- public String format(Date date) :将Date对象格式化为字符串对象。
- public Date parse(String source):将字符串解析为Date对象。
import java.text.ParseException;
import java.util.Date;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
public class TestDateFormat { public static void main(String[] args) throws Exception { //创建时间对象 Date d = new Date(); System.out.println(d); //创建日期格式化对象 DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); System.out.println(df); //时间对象格式化为字符串 String str1 = df.format(d); System.out.println(str1); //字符串解析为Date对象 Date d2 = df.parse(str1); System.out.println(d2); } }
Date d2 = df.parse(str1);总是异常,为方法添加 throws Exception,忽略异常。
八、Calendar类
功能:日历类,该类将所有可能用到的时间信息封装为静态成员变量,方便获取各个时间属性。
Canlendar为抽象类,创建对象是并非直接创建而是通过静态方法创建,返回子类对象。
静态方法:public static Calendar getInstance() 使用默认时区和语言环境获得一个日历。
成员方法:
-
-
public abstract void add(int field, int amount)
:根据日历的规则,为给定的日历字段添加或减去指定的时间量。 -
public Date getTime()
:返回一个表示此Calendar时间值(从历元到现在的毫秒偏移量)的Date对象。
import java.util.Calendar;
import java.util.Date;
public class TestCalendar { public static void main(String[] args){ //创建Calendar对象 Calendar cal = Calendar.getInstance(); //get设置年月日 int year = cal.get(Calendar.YEAR); int month = cal.get(Calendar.MONTH) + 1; int dayOfMonth = cal.get(Calendar.DAY_OF_MONTH); //set修改年月日 cal.set(Calendar.YEAR,2020); cal.set(Calendar.MONTH,1); cal.set(Calendar.DAY_OF_MONTH,1); //add 在原值基础上加减 cal.add(Calendar.DAY_OF_MONTH,1);//加1天 //getTime 获取对应的Date对象 Date date = cal.getTime(); } }
九、System类
功能:提供了大量的静态方法,可以获取与系统相关的信息或系统级操作。
成员方法:
1、public static long currentTimeMillis()
public class TestSystem { public static void main(String[] args) { System.out.println(System.currentTimeMillis()); } }
2、public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length):将数组中指定的数据拷贝到另一个数组中。
public class TestSystem { public static void main(String[] args) { int[] arr1 = new int[]{1,2,3,4,5}; int[] arr2 = new int[]{6,7,8,9,10}; //拷贝指定位置数据覆盖指定位置0-3 System.arraycopy( arr1, 0, arr2, 0, 3); } }
十、StringBuilder类
前面提到 String 对象的内容不可改变,字符串是常量,所以每次进行字符串拼接操作会生成一个新的对象。这样既耗时又浪费内存,为了解决这个问题,可以使用 StringBuilder 类。
功能:可变字符序列(数组),它是一个类似String的字符串缓冲区,通过调用方法可以改变序列内容和长度。
构造方法:
-
-
public StringBuilder(String str)
:构造一个StringBuilder容器,并将字符串添加进去。
成员方法:
-
-
public String toString()
:将当前StringBuilder对象转换为String对象。
public class TestStringBuilder { public static void main(String[] args){ //创建StringBuilder对象 StringBuilder builder = new StringBuilder(); //添加任意字符 builder.append("你是"); builder.append(true); System.out.println(builder); //转换字符串 String str = builder.toString(); } }
十一、包装类
1.什么是包装类?为什么要使用包装类?
将基本数据类型封装成对象(包装类),好处在于可以在对象中定义更多的功能方法操作该数据。
2.装箱与拆箱
装箱可以将基本类型转换Wie对应的包装类对象。拆箱将包装类对象转换为基本类型。
如果对一个 包装类 进行修改,系统会自动完成拆箱和装箱操作。
valueOf或构造方法都可以进行装箱操作。
public class TestPack { public static void main(String[] args){ int a = 1; //装箱 Integer b = Integer.valueOf(a); //自动拆箱装箱 b += 1; } }
3.类型转换方法(基本类型和字符串转换)
-
-
public static short parseShort(String s)
:将字符串参数转换为对应的short基本类型。 -
public static int parseInt(String s)
:将字符串参数转换为对应的int基本类型。 -
public static long parseLong(String s)
:将字符串参数转换为对应的long基本类型。 -
public static float parseFloat(String s)
:将字符串参数转换为对应的float基本类型。 -
public static double parseDouble(String s)
:将字符串参数转换为对应的double基本类型。 -
public static boolean parseBoolean(String s)
:将字符串参数转换为对应的boolean基本类型。
注意如果转换类型必须为基本类型
温馨提示
- 如果您对本文有疑问,请在评论部分留言,我会在最短时间回复。
- 如果本文帮助了您,也请评论关注,作为对我的一份鼓励。
- 如果您感觉我写的有问题,也请批评指正,我会尽量修改。