目录
一 API概述
API(Applictaion Programming )应用程序接口:预先定义的接口供开发人员使用。JDK中以包的形式提供了丰富的API接口。
java.lang包:是所有类库的基础,支持Java程序运行。lang包已经被嵌入到JVM虚拟机中并创建为对象,因此在使用时不需要导入。
以下所有类都是在java.lang包中的
导包:java.lang.*
二 Scanner类
说明:是一个用于扫描输入文本,可以解析基本类型和字符串的文本扫描器
使用示例:
public static void main(String[] args) { //创建一个Scanner扫描 Scanner sc = new Scanner(System.in); System.out.println("输入一个布尔类型:"); boolean bo = sc.nextBoolean(); System.out.println("输入的布尔值是:" + bo); System.out.println("--------------------"); System.out.println("输入一个int值:"); int i = sc.nextInt(); System.out.println("输入的int值是:" + i); System.out.println("--------------------"); System.out.println("输入一个字符串:"); String s = sc.next(); System.out.println("输入的字符串是:" + s); System.out.println("--------------------"); }
注意:
next()、nextLine()、nextInt()、hasnext()
三 Random类
说明:用于生产伪随机数,这个随机也是有规则的。随机算法的起源数字为种子数(seed),相同种子数的random对象,两次生成的随机数是完全相同的,所有在生成多个随机数时要注意。
使用示例:
四 Runtime类
说明:封装了与虚拟机相关的方法,可以获取当前程序运行信息,退出程序,关闭虚拟机等操作。
使用示例:
public static void main(String[] args) { //获取JVM内存信息 Runtime runtime = Runtime.getRuntime(); //最大内存 long maxMemory = runtime.maxMemory(); //总内存 long totalMemory = runtime.totalMemory(); //空闲内存 long freeMemory = runtime.freeMemory(); System.out.println("最大可用内存空间:" + (maxMemory/1024/1024)+"M"); System.out.println("所有可用内存空间:" + (totalMemory/1024/1024)+"M"); System.out.println("剩余内存空间:" + (freeMemory/1024/1024)+"M"); }
五 Math类
说明:执行基本数学运算,大都是静态方法。
使用示例:
public static void math(){ //绝对值 int abs = Math.abs(-20); System.out.println(abs);//20 //向上取整 double ceil = Math.ceil(30.2); System.out.println(ceil);//31.0 //向下取整 double floor = Math.floor(45.4); System.out.println(floor);//45 //四舍五入 long r1 = Math.round(44.6); System.out.println(r1); //生成[0,1)的随机数 for (int i = 0; i < 20; i++) { System.out.println(Math.random()); } }
Math.random:
Math.random() * 9 + 1:随机生成一位数1-9
(Math.random() * 9 + 1 )*10:随机生成二位数10-99
(Math.random() * 9 + 1 )*100:随机生成三位数100-999
public static void main(String[] args) { //生成6个四位数验证码 for (int i = 0; i < 6; i++) { int num =(int)((Math.random()*9+1)*1000); System.out.println(num); } }
六 String类
1.说明:
用于创建字符串,创建后不再改变,其值视为常量
2.使用示例:
构造方法
public static void main(String[] args) { //1.String()创建一个空的字符串对象 String str1 = new String(); System.out.println("str1:" + str1);//空字符串 //2.String(String original) 根据字符串来创建一个字符串对象 String str2 = new String("good!"); System.out.println(str2);//good //3.String(char[] value)通过字符数组创建字符串对象 char[] ch = {'A','B','D'}; String str3 = new String(ch); System.out.println(str3);//ABD //4.String(byte[] bytes)通过字节数组来构造新的字符串对象 byte[] bytes = {97,98,99,100}; String str4 = new String(bytes); System.out.println(str4);//abcd //5.String(byte[] bytes, int offset, int length) //通过字节数组一部分来构造字符串对象 String str5 = new String(bytes, 1, 2); System.out.println(str5);//bc }
常用方法:
/*1.比较功能方法*/ String s1 = "ww"; String s2 = "ww"; String s3 = "Ww"; //boolean equals(Object anObject)将此字符串与直到对象进行比较 System.out.println(s1.equals(s2));//true System.out.println(s2.equals(s3));//false System.out.println("-------------------"); //boolean equalsIgnoreCase(String str)忽略大小写 System.out.println(s1.equalsIgnoreCase(s2));//true System.out.println(s2.equalsIgnoreCase(s3));//true /*2.获取功能方法*/ String str = "HelloWorld"; //public int length():返回字符串长度 System.out.println(str.length());//10 //public String concat(String str):将指定字符串连接到该字符串末尾 String str2 = str.concat("_2023"); System.out.println(str2);//HelloWorld_2023 //public char charAt(int index):返回指定索引处的char值 char ch = str.charAt(4); System.out.println(ch);//o //public int indexOf(String str):返回子字符串第一次出现在字符串中的索引 int a = str.indexOf("ll"); int b = str.indexOf("w"); System.out.println(a);//2 System.out.println(b);//-1 /*3.转换功能方法*/ String str = "abc"; //public char[] toCharArray():将此字符串转换为新的字符数组 char[] chars = str.toCharArray();//a,b,c for (int i = 0; i < chars.length; i++) { System.out.println(chars[i] + ","); } //public byte[] getBytes():使用默认字符集将该String编码转换为新的字节数组 byte[] bytes = str.getBytes();//97,98,99 for (int i = 0; i < bytes.length; i++) { System.out.println(bytes[i] + ","); } //public String toLowCase():转小写 String low = str.toLowerCase(); System.out.println(low);//abc //public String toUpperCase():转大写 String up = str.toUpperCase(); System.out.println(up);//ABC //public String replace(CharSequence target, CharSequence replacement) :第二个参数替换第一个 String str2 = "good"; String str3 = str2.replace("o","O"); System.out.println(str2);//good System.out.println(str3);//gOOd /*4.切割功能方法*/ String str = "HelloWorld"; //public String substring(int beginIndex):从beginIndex位置开始截取字符串到结尾 String sub1 = str.substring(5); System.out.println(sub1);//World //public String substring(int beginIndex, int endIndex):[beginIndex,endIndex) String sub2 = str.substring(0,5); System.out.println(sub2);//Hello //String[] split(String regex):按照指定规则拆分 String word = "燕麦奶加咖啡液,美味,真的美味"; String[] words = word.split(","); for (int i = 0; i < words.length; i++) { System.out.println(words[i]); } //燕麦奶加咖啡液 //美味 //真的美味
3.常量池
简介:常量池是JVM中的一块内存区域。
七 Arrays类
说明:关于数组操作的工具类,均为静态方法。
使用示例:
public static void main(String[] args) { int[] arr1 = {11,22,33,44,55,66}; int[] arr2 = {11,22,33,44,55,66}; //1.比较两个数组的元素是否相同 System.out.println(Arrays.equals(arr1, arr2));//true //2.toString()方法 String s = Arrays.toString(arr1); System.out.println(s);//[11, 22, 33, 44, 55, 66] /*3拷贝*/ int[] arr = {1,2,3,4,5,6,7}; //[0,4)从0下标拷贝到4下标,将中间的元素放入新数组并返回 int[] newArr1 = Arrays.copyOfRange(arr,0,4); //[2,4)从2下标拷贝到4下标,将中间的元素放入新数组并返回 int[] newArr2 = Arrays.copyOfRange(arr,2,4); System.out.println(Arrays.toString(arr));//[1, 2, 3, 4, 5, 6, 7] System.out.println(Arrays.toString(newArr1));//[1, 2, 3, 4] System.out.println(Arrays.toString(newArr2));//[3, 4] //从0下标开始拷贝2个元素到新数组并返回 int[] newArr = Arrays.copyOf(arr,2); System.out.println(Arrays.toString(newArr));//[1, 2] /*4.sort()方法*/ int[] a = {27,13,76,98,56}; int[] b = {16,11,20,47,22}; System.out.println(Arrays.toString(a));//[27, 13, 76, 98, 56] //数组排序:默认升序 Arrays.sort(a); System.out.println(Arrays.toString(a));//[13, 27, 56, 76, 98] //数组排序:只排序[0,3)下标内的元素 Arrays.sort(b,0,3); System.out.println(Arrays.toString(b));//[11, 16, 20, 47, 22] /*5.binarySearch()方法*/ int[] c = {22,65,34,18,20}; //搜索前先排序 Arrays.sort(c); System.out.println(Arrays.toString(c)); //在数组中搜索18 int index = Arrays.binarySearch(c,18); System.out.println(index);//0 //在数组中搜索不存在的25:25插入的索引为2,最终查询位置:(-2-1)=-3 int index2 = Arrays.binarySearch(c,21); System.out.println(index2);//-3 }
八 Object类
说明:是Java语言中的根类,Object类描述的所有方法子类都可以使用。对象实例化的时候,最终找到的父类就是Object类。
常用方法:
使用示例:
九 Calendar类
说明:是日历类,方便获取各个时间属性。
取值范围:星期0-6,代表星期六-星期五; 月份0-11,代表1-12月。
使用示例:
get方法:
public static void main(String[] args) { /*get方法*/ Calendar calendar = Calendar.getInstance(); System.out.println("年:" + calendar.get(Calendar.YEAR)); System.out.println("月:" + calendar.get(Calendar.MONTH)); System.out.println("日:" + calendar.get(Calendar.DAY_OF_MONTH)); System.out.println("星期几:" + calendar.get(Calendar.DAY_OF_WEEK)); System.out.println("这个月第几周:" + calendar.get(Calendar.WEEK_OF_MONTH)); System.out.println("时:" + calendar.get(Calendar.HOUR)); System.out.println("分:" + calendar.get(Calendar.MINUTE)); System.out.println("秒:" + calendar.get(Calendar.SECOND)); }
set方法:
public static void main(String[] args) { /*set方法:将给定的日历设置为给定值*/ Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.YEAR,2024); calendar.set(Calendar.MONTH,1); calendar.set(Calendar.DAY_OF_MONTH,8); calendar.set(Calendar.HOUR,21); calendar.set(Calendar.MINUTE,20); calendar.set(Calendar.SECOND,22); System.out.println("年:" + calendar.get(Calendar.YEAR)); System.out.println("月:" + calendar.get(Calendar.MONTH)); System.out.println("日:" + calendar.get(Calendar.DAY_OF_MONTH)); System.out.println("星期几:" + calendar.get(Calendar.DAY_OF_WEEK)); System.out.println("时:" + calendar.get(Calendar.HOUR)); System.out.println("分:" + calendar.get(Calendar.MINUTE)); System.out.println("秒:" + calendar.get(Calendar.SECOND)); }
add方法:
public static void main(String[] args) { /*add方法:对给定日立的值进行加减操作*/ Calendar calendar = Calendar.getInstance(); //2023年10月16日 System.out.println(calendar.get(Calendar.YEAR)+"年"+calendar.get(Calendar.MONTH)+"月"+calendar.get (Calendar.DAY_OF_MONTH)+"日"); //使用add方法 calendar.add(Calendar.DAY_OF_MONTH,6);//加2天 calendar.add(Calendar.YEAR,-6);//减6年 //2017年10月22日 System.out.println(calendar.get(Calendar.YEAR)+"年"+calendar.get(Calendar.MONTH)+"月"+calendar.get(Calendar.DAY_OF_MONTH)+"日"); }
getTime方法:
public static void main(String[] args) { //getTime:拿到对应的Date对象 Calendar calendar = Calendar.getInstance(); Date date = calendar.getTime(); System.out.println(date);//Mon Oct 16 21:33:11 CST 2023 }
十 SpringBuilder类
说明:称为字符可变序列,是一个字符的缓冲区。相当于一个容器,内部拥有一个可以存放很多字符串的数组,可以对字符串进行各种操作,会自动扩容。
使用示例:
构造方法:
public static void main(String[] args) { //1.无参构造 StringBuilder s1 = new StringBuilder(); System.out.println(s1); //2.带参构造 StringBuilder s2 = new StringBuilder("hello"); System.out.println(2); }
常用方法:
append方法:
public static void main(String[] args) { /*append方法:添加任意类型数据的字符串形式,并返回当前对象自身。*/ StringBuilder builder = new StringBuilder(); StringBuilder builder1 = builder.append("hello"); System.out.println("builder:"+builder);//builder:hello System.out.println("builder1:"+builder1);//builder1:hello System.out.println(builder == builder1);//true builder.append("good"); builder.append(true); builder.append("100"); System.out.println(builder);
reverse方法:
public static void main(String[] args) { /*reverse方法:将当前对象的字符串反转,并返回当前对象自身*/ StringBuilder s1 = new StringBuilder("sofa"); StringBuilder s2 = s1.reverse(); System.out.println(s1);//afos System.out.println(s1 == s2);//true }
toString方法:
public static void main16(String[] args) { /*reverse方法:将当前对象的字符串反转,并返回当前对象自身*/ StringBuilder s1 = new StringBuilder("sofa"); StringBuilder s2 = s1.reverse(); System.out.println(s1);//afos System.out.println(s1 == s2);//true }