泛型
泛型即参数化类型,将原来具体的类型参数化,在使用时传入具体的类型。
作用:
1、提高代码复用率
2、泛型的类型在使用的时候指定,无需强制类型装换。(类型安全,编译器会检查类型)
泛型类:
public class Test<T>{
private T data;
public T getData(){
return data;
}
public void setData(T data){
this.data = data
}
}
泛型接口
public interface IntercaceName<T>{
T getData();
}
实现接口时,可以选择指定泛型类型,也可以选择不指定, 如下:
指定类型:
public class Interface1 implements IntercaceName<String> {
private String text;
@Override
public String getData() {
return text;
}
}
不指定类型:
public class Interface1 implements IntercaceName<T> {
private T data;
@Override
public T getData() {
return data;
}
}
泛型方法
private static <T> T 方法名(T a,T b){}
泛型限制类型
使用泛型是可以指定泛型的限定区域,
如:必须是某个类的子类或者 某个接口的实现类,格式:
<T extends 类或接口1 & 接口2>
泛型中的通配符 ?
类型通配符是使用?代替方法具体的类型实参。
1 指定了泛型类型的上届
2 指定了泛型类型的下届
3 指定了没有限制的泛型类型
注意
Java中的泛型只在编译阶段有效,不会进入到运行时阶段。
Object类
Object类是一个特殊的类,是所有类的父类,如果一个类没有用extends明确指出继承于某个类,那么它默认继承Object类。这里主要总结Object类中的几个常用方法:toString()、equals()、hashCode()。
1.取得对象信息的方法:toString()
该方法在打印对象时被调用,将对象信息变为字符串返回,默认输出对象地址。
2.对象相等判断方法:equals()
该方法用于比较对象是否相等,而且此方法必须被重写。因为equals()方法比较的是两个对象的地址,
3.对象签名:hashCode()
该方法用来返回其所在对象的物理地址(哈希码值),常会和equals方法同时重写,确保相等的两个对象拥有相等的.hashCode。
Math类
1、Math.floor()
返回小于等于(<=)给定参数的最大整数
2、Math.ceil()
返回大于等于(>=)给定参数的最大整数。
3、Math.round()
表示四舍五入,算法为Math.floor(x+0.5),既将原来的数字加上0.5后再向下取整。
4、Math.rint()
返回最接近给定参数的整数,如果有2个数同样接近,则返回偶数的那个。
5、Math.random()
返回一个随机数,0.0<= Math.random() <1.0,返回值为double值。
Math.sqrt()//计算平方根
*Math.cbrt()//计算立方根
*Math.pow(a, b)//计算a的b次方
*Math.max( , );//计算最大值
*Math.min( , );//计算最小值
*Math.abs();//求绝对值
Arrays 类
Arrays类的sort()方法:对数组进行升序排序
Arrays.sort(数组名);
String toString()方法:将一个数组array转换成一个字符串
void fill()方法:把数组array所有元素都赋值为指定数
copyOf()方法:把数组array复制成一个长度为length的新数组,返回类型与复制的数组一致
int binarySearch()方法:查询元素值在数组中的下标(要求数组中元素已经按升序排列)
boolean equals()方法:比较两个数组是否相等
BigDecimal类
用来对超过16位有效位的数进行精确的运算。双精度浮点型变量double可以处理16位有效数
常用方法
BigDecimal b1 = new BigDecimal("20");
BigDecimal b2 = new BigDecimal("30");
b1.add(b2) :加法,求两个BigDecimal类型数据的和。
b1.subtract(b2):减法,求两个BigDecimal类型数据的差。
b1.multiply(b2):乘法,求两个BigDecimal类型数据的积。
b1.remainder(b2):求余数,求b1除以b2的余数。
b1.max(b2) : 最大数,求两个BigDecimal类型数据的最大值
b1.min(b2) : 最小数,求两个BigDecimal类型数据的最小值。
bi.abs():绝对值,求BigDecimal类型数据的绝对值。
b1.negate():相反数,求BigDecimal类型数据的相反数。
BigDecimal divide(BigDecimal divisor, int scale, int roundingMode)
除法 divide有三个参数的方法,第一参数表示除数,第二个参数表示小数点后保留位数,第三个参数表示取舍规则
最常用的四舍五入应该是 ROUND_HALF_UP
四舍五入
BigDecimal中有一个setScale()方法
第一个参数就是你要保留几位,第二个可填的参数就是取舍规则。
Date类
Date:表示特定的瞬间,精确到毫秒,可以通过方法来设定自己所表示的时间,可以表示任意的时间
System.currentTimeMillis( ):返回的是当前系统时间,1970-1-1至今的毫秒数
构造方法:
Date( ):创建的是一个表示当前系统时间的Date对象
例如:Date d = new Date( );
Date(long date):根据“指定时间”创建Date对象
例如:Date d = new Date(1000 *60 *60);
常用方法:
1.毫秒值—>Date
void setTime(long time)
例如;
Date d = new Date();
d.setTime(1000*60*60);
[注]:1000 *60 *60表示一个小时。1000毫秒等于1秒
2.Date—>毫秒值
long getTime( )
SimpleDateFormat类
作用:对日期时间进行格式化(如:可以将日期转换为指定格式的文本,也可以将文本转换为日期)
format()
将给定的 Date
为日期/时间字符串,并将结果附加到给定的 StringBuffer
。
parse()
解析字符串中的文本以生成Date
。
Calendar类
Calendar
类是一个抽象类,它为特定瞬间与一组诸如 YEAR
、MONTH
、DAY_OF_MONTH
、HOUR
等 日历字段
之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。
Calemdar类写了静态方法getInstance() 可以直接返回子类的对象,不需要直接new 子类的对象,通过静态方法直接获取。
Calendar类常用方法
getInstance()
Calendar
的 getInstance
方法返回一个 Calendar
对象,其日历字段已由当前日期和时间初始化:
get()
Calendar类的get方法,用于获取日历字段的值,返回值的结果也是个int类型的值。
set()
将给定的日历字段设置为给定值。
add()
日历的偏移量,可以指定一个日历中的字段,进行整数的偏移。
getTime()
把日历对象转换成Date日期对象。
String 类
1、int length(); 语法:字符串变量名.length(); 返回值为 int 类型。得到一个字符串的字符个数(中、英、空格、转义字符皆为字符,计入长度)
2、char charAt(值); 语法 :字符串名.charAt(值); 返回值为 char 类型。从字符串中取出指定位置的字符
3、char toCharArray(); 语法 :字符串名.toCharArray(); 返回值为 char 数组类型。将字符串变成一个字符数组
4、int indexOf(“字符”) 语法 :字符串名.indexOf(“字符”);字符串名.indexOf(“字符”,值);查找一个指定的字符串是否存在,返回的是字符串的位置,如果不存在,则返回-1 。
in lastIndexOf(“字符”) 得到指定内容最后一次出现的下标
5、toUpperCase(); toLowerCase();字符串大小写的转换
6、String[] split(“字符”) 根据给定的正则表达式的匹配来拆分此字符串。形成一个新的String数组。
7、boolean equals(Object anObject) 语法 :字符串变量名.wquals(字符串变量名); 返回值为布尔类型。
8、trim(); 去掉字符串左右空格 **replace(char oldChar,char newChar);**新字符替换旧字符,也可以达到去空格的效果一种
9、String substring(int beginIndex,int endIndex) 截取字符串
10、boolean equalsIgnoreCase(String) 忽略大小写的比较两个字符串的值是否一模一样,返回一个布尔值
11、boolean contains(String) 判断一个字符串里面是否包含指定的内容,返回一个布尔值
12、boolean startsWith(String) 测试此字符串是否以指定的前缀开始。返回一个布尔值
13、boolean endsWith() 测试此字符串是否以指定的后缀结束。返回一个布尔值