文章目录
API_常用类
一,什么是Java API?
- API应用程序编程接口
- 是对java预先定义的类或接口功能和函数功能的说明文档,目的是提供给开发人员进行使用帮助说明。
二,基本数据类型包装类
什么是包装类
- 包装类(例如:Integer,Double等)这些类封装了一个相应的基本数据类型数值,并为其提供了一系列操作方法。
- Java为其提供了8种对应的包装类:Byte,Short,Integer,Long,Float,Double,Boolean,Character
使用包装类的原因
- Java语言是一个面向对象的语言,但是Java中的基本数据类型却是不面向对象的,在实际使用时存在很多的不便,所以为了解决这个不足,在设计类时为每个基本数据类型设计了一个对应的类进行代表,这八个基本数据类型对应的类统称为包装类。
- 如果只有基本数据类型,使用时很不方便,比如,在集合类中,无法将int,double等类型放进去,因为集合容器要求元素时Object类型。
- 包装类还为基本类型添加了属性和方法,丰富了基本类型的操作。比如:基本类型的相关属性如最大值,最小值等,以及相关操作的方法。
包装类常用属性方法
-
属性
- public static final int MAX_VALUE 最大的int整型数
- public static final int MIN_VALUE 最小的int整型数
-
构造方法
- Integer(int a);
- Integer(String a); //将String包装为整数int
-
比较方法
- static int compareTo(Integer a);
- boolean equals(Object);
- int max(int a,int b); //比较出最大的值
- int min(int a,int b); //比较出最小的值
-
转换方法
- toBinaryString(int i) ; //转换为二进制
- toHexString(int i); //转换为十六进制
- toOctalString(int i); //转换为八进制
- int intValue(); //将包装类型转为基本类型;自动装箱时调用
- parseInt(String s); //将String类型转为基本类型
- String toString(); //返回String的字符串值
- valueOf(int i); //自动拆箱时调用
- valueOf(String s);
自动装箱和自动拆箱
- 为了方便使用和性能优化,提供了自动拆装箱机制
- Integer num = 1; //自动装箱
- int num1 = num; //自动拆箱
三,Object类
什么是Object类?
- Object类是所有Java类的祖先(根基类)。每个类都使用Object作为超类(父类),所有对象(包括数组)都实现这个类的方法。
- 任何一个类如果没有明确的继承一个父类的话,那么它就是Object的子类。
Object类常用方法
-
toString()方法
- 取得对象的信息
- 需要在类中重写父类Object中的toString()方法,不然默认输出的是一个对象在堆内存上的地址值。
-
equals()方法
-
对象比较
-
案例:Person per1 = new Person(“Tom”,20);
Person per2 = new Person(“Tom”,20);
Stystem.out.println(per1.equals(per2));
-
输出结果为false,因为直接调用equals()方法默认比较是是两个对象的地址。
-
在源码中,传递来的Object对象和当前对象比较地址值,返回布尔值。但是我们new的对象会在堆上创建新空间,所以两个对象的地址自然不相同。
-
所以当我们要判断两个对象的内容是否相等时(比如姓名,年龄等等),我们就要重写父类的equals()方法。
-
四,Arrays类
什么是Arrays类?
-
java.util.Arrays类
-
用于操作数组工具类,里面定义了常见操作数组的静态方法。
Arrays类常用方法
-
Arrays.toString(array) ;//将数组转为字符串
-
int arr[] = new int[]{1,2,3,4,5}; System.out.println(Arrays.toString(a)); //输出:[1, 2, 3, 4, 5]
-
-
Arrays.fill(); //填充数组
-
Arrays.fill(a,8); //填充数组 System.out.println(Arrays.toString(a)); //输出:[8, 8, 8, 8, 8]
-
-
Arrays.sort(); //数组排序
-
int arr[] = new int[]{4,5,8,9,6,2}; Arrays.sort(arr); System.out.println(Arrays.toString(arr)); //输出:[2, 4, 5, 6, 8, 9]
-
-
Arrrays.equals(); //比较数组中的元素是否相等
-
int[] arr1 = {1,2,3}; int[] arr2 = {1,2,3}; System.out.println(Arrays.equals(arr1,arr2)); //输出:true //如果是arr1.equals(arr2),则返回false,因为equals比较的是两个对象的地址,不是里面的数,而Arrays.equals重写了equals,所以,这里能比较元素是否相等。
-
-
Arrays.binarySearch(); //二分查找指定下标元素
-
前提数组一定是排好序的
-
int[] arr = {10,20,30,40,50}; System.out.println(Arrays.binarySearch(arr, 30)); //输出:2 (下标索引值从0开始)
-
-
Arrays.copeOf() 和Arrays.copeOfRange(); //截取数组
-
int[] arr = {10,20,30,40,50}; int[] arr1 = Arrays.copyOf(arr, 3); String str = Arrays.toString(arr1); // Arrays类的toString()方法能将数组中的内容全部打印出来 System.out.print(str); //输出:[10, 20, 30] (截取arr数组的3个元素赋值给新数组arr1)
-
int []arr = {10,20,30,40,50}; int []arr1 = Arrays.copyOfRange(arr,1,3); String str = Arrays.toString(arr1); // Arrays类的toString()方法能将数组中的内容全部打印出来 System.out.print(str); //输出:[20, 30] (从第1位(0开始)截取到第3位(不包括))
-
五,String类
什么是String?
- String类在java.lang包中
- java使用String类创建一个字符串变量,字符串变量属于对象。
- String类对象创建后不能修改,由0或多个字符组成。
String类常用方法
-
获取功能
-
int length();//求字符串长度
-
String str = "Hello"; int strlength = str.length(); // 5
-
-
char charAt(int index); //求字符串某一位置字符
-
String str = "Hello"; char ch = str.charAt(4);//ch = o
-
-
String substring(int start) //提取字符串
-
String str1 = "Hello"; String str2 = str1.substring(2); // str2 = "llo" String str3 = str1.substring(2,4); //str3 = "ll"
-
-
int indexOf(int ch/String str); //查找指定字符/字符串
-
String str = "I am a good student"; int a = str.indexOf('a');//a = 2 int b = str.indexOf("good");//b = 7 int c = str.indexOf("w",2);//c = -1
-
int lastIndexOf(int ch/String str); //从末尾向前查询
-
String str = "I am a good student"; int d = str.lastIndexOf("a");//d = 5 int e = str.lastIndexOf("a",3);//e = 2
-
-
转换功能
-
byte [] getBytes(); //将字符串转为字节数组
-
String str = "abcd"; str.getBytes(); //[97, 98, 99, 100]
-
-
char[] toCharArray(); //将字符串转为数组
-
String str = "abcd"; str.toCharArray(); //[a, b, c, d]
-
-
static String valueOf(char[] chs); // 把字符数组转成字符串
-
char[] chars = {'a', 'b', 'c', 'd'}; System.out.println(String.valueOf(chars)); //输出:abcd*
-
-
String toLowerCase(); //把字符串转换为小写
-
String toUpperCase(); //把字符串转成大写
-
String str = "abcdACC"; System.out.println(str.toLowerCase()); //abcdacc
-
String str = "abcdACC"; System.out.println(str.toLowerCase()); //ABCDACC
-
-
String concat(String str); //把字符串拼接。
-
String s = "ab"; System.out.println(s.concat("cd")); //输出:abcd
-
-
String [] split(分隔符);
-
String str = "ab,cd,ACC"; System.out.println(str.toLowerCase()); // ab,cd,acc
-
-
-
替换功能
-
String replace(char old,char new); //把字符串中的某个字符用新的字符替换
-
String replace(String old,String new)把字符串中的某个字符串用新的来替换
-
String s = "ab"; System.out.println(s.replace("a", "c")); //输出:cb System.out.println(s.replace("ab", "cd")); //输出:cd
-
-
replaceAll(String regex, String replacement) //将字符串中与正则表达式匹配的全部替换
-
replaceFirst(String regex, String replacement) //只替换第一个
-
String trim(); //去除字符串两端空格
String s = " May all the beauty be blessed"; System.out.println(s.trim()); //输出:May all the beauty be blessed System.out.println(s); // May all the beauty be blessed
-
六,Math类
-
java.lang.Math提供了一系列静态方法用于科学计算;
-
方法参数和返回值类型一般为double型。
-
常用方法
-
// Math.abs() 求绝对值 int a = -5; a = Math.abs(a); // 输出:5
-
// Math.sqrt() 求平方根 int a = 4; double b = Math.sqrt(a);//2.0
-
//Math.pow(double a,double b) 求a的b次幂 Math.pow(2,3);// 8
-
//max(int a,int b),min(int a,int b) 求两数最大/最小的值 Math.max(2,3);//3 Math.min(2,3);//2
-
Math.random(); //返回0.0-1.0随机数 0.8322260399547887
-
//Math.round() double型的数据a转换为long型(四舍五入) Math.round(2.4);//2 Math.round(2.5);//3
-
System.out.println(Math.floor(9.3));//向下取整 10 System.out.println(Math.ceil(9.7));//向上取整 9
-
System.out.println(Math.PI);//π常量
-
七,Random类
-
此类用于产生随机数
-
常用方法
-
Random random = new Random();//构造方法 double d = random.nextDouble()*10; //nextDouble() 随机数区间[0,1.0),自己可以乘自己想要的区间 random.nextInt();//生成任意整数 int num = random.nextInt(10);//在指定区间内,生成随机整数
-
八,Date类/Calendar类/SimpleDateFormat类
-
Date类
Date date = new Date();//创建一个日期对象,此对象中包含程序运行那一刻的时间 System.out.println(date);//Mon Mar 27 16:54:15 CST 2023 System.out.println(date.getYear()+1900);//2023 带删除线方法,视为过期方法,API中有新的方法替代,可以使用的 System.out.println(date.getMonth());// 月份 0(一月),1,2,3,4,5(六月).... System.out.println(date.getDay());// 星期 0(周天),1(周一),2,3,4,5,6 System.out.println(date.getDate());// 月中的天数 System.out.println(date.getTime());//1656316991359 自1970-1-1 0:0:0 ---至今的毫秒差
-
Calendar类:日历类
Calendar c1 = Calendar.getInstance();//返回的也是子类的对象 Calendar c = new GregorianCalendar();// Calendar 父类(抽象类) Gregorian 子类 System.out.println(c1.getTime());//Mon Mar 27 16:57:56 CST 2023 System.out.println(c.getTimeInMillis());//1679907476663 与Date中getTime()一样 自1970-1-1 0:0:0 ---至今的毫秒差 System.out.println(c.get(Calendar.YEAR));//获取年份 System.out.println(c.get(Calendar.DAY_OF_MONTH));//月中的第几天 System.out.println(c.get(Calendar.DAY_OF_WEEK));//一周的第几天 System.out.println(c.get(Calendar.DAY_OF_YEAR));//一年的第几天
-
SimpleDateFormat类
Date d = new Date();//日期对象,需要显示一个指定格式的字符串 SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss E"); //pattern 指定格式 String str = simpleDateFormat.format(d);System.out.println(str);//2023-03-27 17:01:21 星期一 SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy-MM-dd"); String birthday = "2002-4-20"; try { Date date = simpleDateFormat1.parse(birthday); System.out.println(date);//Sat Apr 20 00:00:00 CST 2002 } catch (ParseException e) { e.printStackTrace(); }