目录
String 和 StringBuilder【1】String ——> 不可变
StringBuilder 和 StringBufferStringBuilder常用方法:
String、StringBuffer、StringBuilder区别与联系
包装类
包装类 - 引入
【1】什么是包装类:
以前定义变量,经常使用基本数据类型
对于基本数据类型来说,它就是一个数,加点属性,加点方法,加点构造器将基本数据类型对应进行了一个封装,产生了一个新的类,---》包装类。
int,byte..--->基本数据类型
包装类--->引用数据类型
【2】对应关系:
基本数据类型 对应的包装类 继承关系
|
【3】已经有基本数据类型了,为什么要封装为包装类?
(1)java语言面向对象的语言,最擅长的操作各种各样的类。
(2)以前学习装数据的---》数组,int0]Stringldoublel StudentD
以后学习的装数据的---》集合,有一个特点,只能装引用数据类型的数据
【4】是不是有了包装类以后就不用基本数据类型了?
不是
包装类 - 常用属性 - 常用构造器
【1】直接使用,无需导包:
java. lang
类Integer
【2】类的继承关系:
jara. lang. object
jaya.lang.Number
java. lang. integer
【3】实现接口:
所有已实现的接口;
Serializable,Comparable<Integer)
【4】这个类被final修饰,那么这个类不能有子类,不能被继承:
pubilc final class Integer
extends Number
implements Cosparable<Integer>
【5】包装类是对基本数据类型的封装:
对int类型封装产生了Integer
Integer类在对象中包装了一个基本类型int的值。
Integer类型的对象包含一个int类型的字段。
【6】类的历史:
从以下版本开始:
JDK1.0
public class test01 {
//这是一个main方法,是程序的人口
public static void main(String[] args){
//属性:
System.out.println(Integer.MAX_VALUE);
System.out.println(Integer.MIN_VALUE);
//“物极必反”原理:
System.out.println(Integer.MAX_VALUE+1);
System.out.println(Integer.MIN_VALUE-1);
}
}
运行结果如下:
【7】属性:
//属性:
System.out.println(IntegerMAXVALUE);
System.out.println(IntegerMIN VALUE);
//"物极必反"原理:
System.out.println(Integer.MAX VALUE+1);
System.out.println(Integer.MIN VALUE-1);
【8】构造器(发现没有空参构造器)
(1)int类型作为构造器的参数
Integer i2 = new Integer("12");
Inteqer i3 = new Integer("abcdef");
(2)String类型作为构造器的参数
Integer i1 = new Integer(12);
包装类 - 自动装箱 - 自动拆箱
【9]包装类特有的机制:自动装箱、自动拆箱:
//自动装箱:int--->Integer
Integer i = 12;
System.out.println(i);
//自动拆箱:Integer--->int
Integer i2 = new Integer(12);
int num = i2;
System.out.println(num);
(1)自动装箱自动拆箱是从JDK1.5以后新出的特性
(2)自动装箱自动拆箱:将基本数据类型和包装类进行快速的类型转换。
验证:
包装类 - 常用方法
【10】Integer 常用方法
public class Test04 {
//这是一个main方法,是程序的人口:
public static void main(String[] args){
//compareTo:只返回三个值:要么是0,-1,1
Integer i1 = new Integer(value:6);
Integer i2 = new Integer( value:12);
System.out.println(i1.compareTo(i2));// return(x<y)?-1:((x==y)?0:1)
//eauals:Inteaer对Obiect中的eauals方法进行了重写,比较的是底层封装的那个value的值。
//Integer对象是通过new关键字创建的对象:
Integer i3 = new Integer(value: 12);
Integer i4 = new Integer(value: 12);
System.out.println(i3 == i4);//false因为比较的是两个对象的地址
boolean flag = i3.equals(i4);
System.out.println(flag);
//Integer对象通过自动装箱来完成:
Integer i5 = 130;
Integer i6 = 130;
System.out.println(i5.equals(i6));//true
System.out.println(i5==i6);
/*
如果自动装箱值在-128~127之间,
那么比较的就是具体的数值否在,比较的就是对象的地址
*/
//intValue():作用将Integer--->int
Integer i7 = 130;
int i= i7.intValue();
System.out.println(i);
//parseInt(String s) :String--->int:
int i8=Integer parseInt(s:"12");
System.out.println(i8);
//toString:Integer--->String
Integer i10 = 130;
System.out.println(i10.toString());
}
}
日期相关
日期相关 - java.util.Date
package zuoye15;
import java.util.Date;
public class Test {
//这是一个main方法·是程序的人口:
public static void main(String[] args){
//java.util.Date:
Date d=new Date();
System.out.println(d);
System.out.println(d.toString());
System.out.println(d.toGMTString());//过期方法·过时方法·废弃方法。
System.out.println(d.toLocaleString());
System.out.println(d.getYear());//122+1900=2022
System.out.println(d.getMonth());//5:返回的值在日和11之间·值日表示1月
//返回自1970年1月1日00:00:00GMT以来此Date对象表示的毫秒数。
System.out.println(d.getTime());//1592055964263
System.out.println(System.currentTimeMillis());
/*
(1)疑问:以后获取时间差用:getTime()还是currentTimeMiLLis()
答案:currentTimeMillis()--》因为这个方法是静态的,可以类名,方法名直接调用
(2)public static native long currentTimeMillis();本地方法
为什么没有方法体?因为这个方法的具体实现不是通过java写的。
*/
}
}
/*
(3)这个方法的作用:
一般会去衡量一些算法所用的时间
*/
public class Test {
//这是一个main方法·是程序的人口:
public static void main(String[] args){
long startTime = System.currentTimeMillis();
for (int i = 0; i < 100000; i++) {
System.out.println(i);
long endTime=System.currentTimeMillis();
System.out.println(endTime-startTime);
}
}
}
日期相关 - java.sql.Date
(使用 IDEA)