JAVA核心类库
1.泛型
一 创建类
public class qqq <T>{
private T data;
}
使用的时候
qqq<String> a=new qqq<>();
这时候泛型指的是String
二 创建接口
public interface www <T>{
T getData();
}
实现接口的时候可以选择不指定类型,例如
public class eee<T> implements www<T>{}
也可以选择指定类型:
public class eee implements www<String>{}
三 创建方法
public static <T> void ww(T a,T b){}
四 泛型限制与通配符
```perl`在这里插入代码片`
public class Demo {
public static void main(String[] args) {
pla<sg> pla=new pla<>();
//限制了pla里的泛型必须是实现了sg接口的类
}
}
interface sg{}
class app implements sg{}
class pla<T extends sg>{
T data;
}
通配符
pla<? exents sg> pla=new pla<app>();
pla必须是sg的子类
pla<? super app> pla=new pla<sg>();
pla必须是app的父类或父类以上
2. java.util.Objects
Objects有很多静态方法
equals方法可以排除空指针异常
isNull方法可以判断对象是否为空
3. java.lang.Math
abs方法:求绝对值
min方法:求最小值
max方法:求最大值
round方法:把小数位四舍五入,如果是0.5向正无穷取值,例如-11.5是-11
floor方法:返回小于等于参数的最大整数
ceil方法:返回大于等于参数的最大整数
4.java.util.Arrays
toString方法:把数组输出成字符串;
sort方法:排序
binarySearch方法:查找指定元素的下标
copyOf方法:扩容
5. java.math.BigDecimal
double类型或者float类型进行运算可能会精度出错
package nineFive;
import java.math.BigDecimal;
public class Demo {
public static void main(String[] args) {
System.out.println(0.1+0.2);
BigDecimal b1=new BigDecimal("0.1");
BigDecimal b2=new BigDecimal("0.2");
BigDecimal b3=b1.add(b2);
//BigDecimal b3= b1.subtract(b2);//减
//BigDecimal b3= b1.multiply(b2);//乘
//BigDecimal b3= b1.divide(b2);//除
System.out.println(b3);
}
}
"C:\Program Files\Java\jdk1.8.0_251\bin\java.exe" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2020.2.1\lib\idea_rt.jar=53827:C:\Program Files\JetBrains\IntelliJ IDEA 2020.2.1\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_251\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_251\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_251\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_251\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_251\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_251\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_251\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_251\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_251\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_251\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_251\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_251\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_251\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_251\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_251\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_251\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_251\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_251\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_251\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_251\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_251\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_251\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_251\jre\lib\rt.jar;C:\Users\7777777\IdeaProjects\demo2\out\production\demo2" nineFive.Demo
0.30000000000000004
0.3
Process finished with exit code 0
6.java.util.Date
getTime方法:返回一个19701月1日0:00到现在的毫秒数
toString方法:打印现在的时间
7.java.text.DateFormat
public class Demo {
public static void main(String[] args) {
SimpleDateFormat format =new SimpleDateFormat("yyyy年MM月dd日 HH:mm ss");
String s=format.format(new Date());
System.out.println(s);
}
}``
parse方法:把字符串时间转换成毫秒数
8.java.util.Calendar
Calendar calendar=Calendar.getInstance();//获得对象
int week=calendar.get(Calendar.DAY_OF_WEEK)-1; //获得星期
calendar.set(year, month,day); //赋值
add方法:添加时间,4月加11月等于3月
int min = calendar.getActualMinimum(Calendar.DAY_OF_MONTH); //获取本月起始
int max = calendar.getActualMaximum(Calendar.DAY_OF_MONTH); //获取本月结束
日历的代码
package nineFive;
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;
import java.util.SimpleTimeZone;
public class Demo {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.println("请输入年份:");
int year=input.nextInt();
System.out.println("请输入月份:");
int month=input.nextInt();
Calendar calendar=Calendar.getInstance();//获得对象
calendar.set(year, month-1,01); //赋值
int week=calendar.get(Calendar.DAY_OF_WEEK)-1; //获得星期
if (week==0){
week=7;
}
int min = calendar.getActualMinimum(Calendar.DAY_OF_MONTH); //获取本月起始
int max = calendar.getActualMaximum(Calendar.DAY_OF_MONTH); //获取本月结束
max=max+(week-1);
System.out.println(week);
System.out.println(min);
System.out.println("--------------------"+year+"年"+month+"月日历-----------------------");
System.out.println("一\t二\t三\t四\t五\t六\t日");
for (int i = min; i <=max; i++) {
if(i<week) {
System.out.print("\t");
}else {
System.out.printf(new DecimalFormat("00").format((i-(week-1)))+"\t");
}
if(i%7==0) {
System.out.println();
}
}
}
}