概述
Java核心类库
泛型
概述: 泛型 ‘指的时参数化类型’ 就是将类型由原来的具体的类型参数化,类似育方法中的变量参数,此时类型也定义成参数形式,然后在使用/调用传入具体的类型
使用泛型类
public cliass ClassName<T>{
private T data;
public T getData(){
return data;
}
public void setData(T data){
this.data = data;
}
}
泛型接口
public interface IntercaceName<T>{
T getDate();
}
实现接口时,可以选择指定泛型,也可以选择不指定,
指定类型:
public class Interfacel implements IntercaceName<String>{
private String text;
@Override
public String getData(){
return text;
}
}
不指定类型
public class Interfacel implements IntercaceName<T>{
private T data;
@Override
public T getData(){
return data;
}
}
泛型方法
private static <T> T 方法名(T a, T b){}
泛型限制类型
在使用泛型时,可以指定泛型的限制区域
例如 某某类的子类 格式:
<T extends 类或接口1 & 接口2>
泛型的通配符
通配符号 ?
<? extends Parent> 指定了泛型类型的上界 泛型最高只能时Parent
<? super Child> 指定了泛型类型的下界 泛型只能使用 Child 的父类级以上的类型
Objets类中常用方法
Objtes.equals方法
注意 --> 此方法如果两个对象都是空,那么返回的也是 true!!!
// 此方法时用来比较两个对象是否是空[ 也就是自定义实例化类和引用数据类型/包装类 ]
public static void main(String[] args) {
Integer a = 1;
Integer b = null;
System.out.println(Objects.equals(a,b));
}
Objects.toString方法
- toString 有两个
-
- Objects.toString(Object o)
-
- Objects.toString(Object o, String nullDefault)
此方法的源码如下
- Objects.toString(Object o, String nullDefault)
// Objects中单参toString
public static String toString(Object o) {
return String.valueOf(o);
}
// String中 ValueOf方法
public static String valueOf(Object obj) {
return (obj == null) ? "null" : obj.toString();
}
// Objects双参toString
public static String toString(Object o, String nullDefault) {
return (o != null) ? o.toString() : nullDefault;
}
方法的使用
public static void main(String[] args) {
Integer a = null;
String c = Objects.toString(a,"此对象是个空");
System.out.println(c); // 输出 此对象是个空
System.out.println(Objects.toString(a)); //null
}
Objects.requireNonNull方法
此方法是检查你传入的对象是不是空 如果是空,那么会抛出空异常 源码如下
public static <T> T requireNonNull(T obj) {
if (obj == null)
throw new NullPointerException();
return obj;
}
// message 是要传入的字符串 而这个字符串是在报错的时候显示的
// [ 类似于Exception in thread "main" java.lang.NullPointerException: 这是个空啊!! | 因为我在Massage中传入的是 '这是个空'所以这里出现的是这是个空]
public static <T> T requireNonNull(T obj, String message) {
if (obj == null)
throw new NullPointerException(message);
return obj;
}
使用方式
Integer a = null;
Integer v = null;
try{
v = Objects.requireNonNull(a);
System.out.println(v);
}catch (NullPointerException e){
System.out.println("这是个空");
}
Objects.requireNonNull(a,"这是个空啊!!");
Math类中常用方法
Math这个类是一个数学函数类!
public static void main(String[] args) {
long a = Math.round(20.46d);
int b = Math.round(20.2f);
System.out.println("double进行四舍五入后:"+a+"t float进行四舍五入后:"+b);
// double进行四舍五入后:20 float进行四舍五入后:20
// 返回小于等于 参数的最大整数
System.out.println(Math.floor(3.5));
System.out.println(Math.floor(-3.5));
// 返回大于等于 参数的最小整数
System.out.println(Math.ceil(3.5));
System.out.println(Math.ceil(-3.5));
}
Arrays类
Arrays是一个数组的工具类.
int[] a = {8,1,2,3,4,5,6,7};
// 这个类中都是和数组相关的方法
Arrays.toString(a) // 此方法用于格式化我们定义好的数组编程字符串 他的返回结果是个字符串!
Arrays.sort(a) // 此方法将用于对数组进行排序,默认是升序
Arrays.binarySearch(a,5) // 用于查找数组中 5 所在的索引值
Arrays.copyOf(a,15) // 这个方法是将数组扩容至 15 且返回的是一个新数组
BigDecimal类
BigDecmal类是专门用于 浮点数的精准运算类
// 使用BigDecimal类
// 生成两个BigDecimal对象
BigDecimal b1 = new BigDecimal(1.3);
BigDecimal b2 = new BigDecimal(1.5);
// add 两数相加方法
BigDecimal b3 = b1.add(b2);
System.out.println(b3.doubleValue()); // [.doubleValue()是将值从BigDecimal对象中取出转换]
// subtract 两数相减操作
BigDecimal b4 = b2.subtract(b1);
System.out.println(b4.doubleValue());
// multiply 乘法计算
BigDecimal b5 = b1.multiply(b2);
System.out.println(b5.doubleValue());
// divide 除法计算
BigDecimal b6 = b1.divide(b2);
System.out.println(b6.doubleValue());
// [ 注意除法可能会报错,而报错就需要去指定四舍五入模式 ]
DataFormat类
此类用来格式化日期
// 创建一个DataDormmat
/*
* y : 年
* M : 月
* d : 日
* H : 时
* m : 分
* s : 秒
*/
SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日 HH:mm ss");
// 将date对象转换为 字符串
String text = format.format(new Date());
System.out.println(text);
// parse 将yyyy-MM-dd HH:mm ss这种形式的字符串转换为 date对象
try {
format.parse("2021-12-12 12:30 12");
} catch (ParseException e) {
e.printStackTrace();
}
Calendar
Calendar 日历类
// 日历月份是从0开始的
// Calender
Calendar c1 = Calendar.getInstance();
int year = c1.get(Calendar.YEAR);
System.out.println(year);
int day = c1.get(Calendar.DAY_OF_YEAR);
System.out.println(day);
// 设置日历的年
c1.set(Calendar.YEAR,2021);
// 将年份进行加减操作
c1.add(Calendar.MONTH,11);
System.out.println(c1.get(Calendar.MONTH));
c1.add(Calendar.MONTH,-11);
System.out.println(c1.get(Calendar.MONTH));
// 获取日历的时间 表示的对象
Date d = c1.getTime();
// getActualMaximum 获取某字段的最大值
int a = c1.getActualMaximum(Calendar.MONTH);
System.out.println(a);
// 设置当月的几号
c.set(Calendar.DAY_OF_MONTH,2);
String类
字符串是不变的,它们的值在创建后无法更改.
在字符串创建好的时候,他是以char数组进行存在的,而数组创建好后,就无法进行修改
且,因为String对象是不变的,所以可以共享它们,而它所在的是字符串常量池
字符串常量池
方法区(Metod Area), 又称永久代(Permanent Generalation),又称非堆区(Non-Heap space) 方法区,又称永久代(Permanent Generation) 常称为PermGen,位于非堆空间,又称非堆区(Non-Heapspace)
堆 在逻辑上分为三部分(Perm)
- 新生代(Young Generation, 常称YoungGen)
- 老年代(Old Generation, 常称为OldGen TenuringGen)
- 永久代(Permanent Generation. 常称PermGen)
最后
以上就是陶醉帽子为你收集整理的Java核心类库介绍Java核心类库的全部内容,希望文章能够帮你解决Java核心类库介绍Java核心类库所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复