1:API
JAVA API文档查看:
2:包装类
1:针对八种基本定义相应的引用类型—包装类(封装类)
2:有了类的特点,就可以调用类中的方法基本数据类型
包装类
boolean
Boolean
byte
Byte
short
Short
int
Integer
long
Long
char
Char
float
Float
double
Double
把基本值=>对象 过程称为装箱(boxing)
对象 => 基本值, 过程称为拆箱(unboxing)
基本数据类型包装成包类的实例--装箱:
装箱 :
* Xxx xx = new Xxx(xxx);
* Xxx xx = new Xxx("xxx");
* Xxx xx = Xxx.valueOf(xxx);
* Xxx xx = Xxx.valueOf("xxx");
通过包装类的构造器实现:
Integer t1=new Integer(i);//手工装箱
Integer t2 = 500; //自动装箱
通过字符串参数构造包装类对象:
Float f = new Float(“4.56”);
Long l = new Long(“asdf”); //NumberFormatException
获得包装类对象中包装的基本类型变量 ---拆箱:
调用包装类的.xxxValue()方法
boolean b = Obj.booleanValue();//手动拆箱
boolean n = Obj;//自动拆箱
举例:
int i = 500;
Integer t = new Integer(i);
装箱:包装类使得一个基本数据类型的数据变成了类。
有了类的特点,可以调用类中的方法。
String s = t.toString(); // s = “500“,t是类,有toString方法
String s1 = Integer.toString(314); // s1= “314“ 将数字转换成字符串。
String s2=“4.56”;
double ds=Double.parseDouble(s2); //将字符串转换成数字
拆箱:将数字包装类中内容变为基本数据类型
* 拆箱 :
* x x = xx.xxxValue();
int j = t.intValue(); // j = 500,intValue取出包装类中的数据
包装类在实际开发中用的最多的在于字符串变为基本数据类型。
String str1 = "30" ;
String str2 = "30.3" ;
int x = Integer.parseInt(str1) ; // 将字符串变为int型
float f = Float.parseFloat(str2) ; // 将字符串变为float型
例题:
* 单元测试 : @Test
* 测试类必须是公共的, 不可以有任何构造器
* 测试方法公共的,非静态, 无返回值, 无参.
————————————————————————————————————————————————————————————————
3:String
String 字符串,:内容不可改变的Unicode字符序列。
String s1=‘’aaaaa”;
String s1=”bbbb”;
s1指向的值aaaa并没有变而是或者说被覆盖掉而是,s1引用没有指向aaaa,而是指向了新创建的bbbb
和下图类似:
* 底层就是一个char[]. 有下标和索引的概念.
*
* 字符串字面量"abc", "134", 称为字符串常量
* 字符串常量在内存中有一块专门的空间, 用于保存常量, 称为常量区(是永久区的一部分).
*
* 字符串变量在拼接时会在GC区中创建新对象.
* 字符串常量在拼接时不会在GC区中创建, 而是常量区创建.
*
* 只要是new, 和变量参与的拼接都在GC区.
* 字面量, 和常量的拼接都在常量区.
**************************************************************************************************************************************************
String string=”afdf51464556ghj”
* public int length() : 获取字符串长度(字符个数)
* string.length() –>15
* public char charAt(int index) : 获取参数index指定下标处的字符
* string.charAt(1) –>f
* public char[] toCharArray() : 获取字符串内部的char[]的复制品.
* char result[] = new char[value.length];
* // 第1个参数是源数组, 第2个参数是源数组开始复制的下标
* //第3个参数是目标数组,第4个参数是目标数组开始被复制的下标
* // 第5个参数是要复制的元素个数
* System.arraycopy(value,0,result, 0,value.length);
*
* public boolean equals(Object anObject) 比较字符串内容是否相等, 大小写敏感
* public int compareTo(String anotherString) 比较字符串大小, 比较的是字符对应的unicode码值
* public int indexOf(String s) : 定位参数中的子串在当前字符串中首次出现的下标
string.indexOf(“d”)—>2
* public int indexOf(String s ,int startpoint) : 定位参数中的子串在当前字符串中首次出现的下标, 指定开始位置
string.indexOf("5", 0)—>4 从0位置开始查找
* public boolean startsWith(String prefix) : 判断当前字符串是否以参数中的子串为开始, 用于筛选一些数据
public String substring(int start,int end) : 从当前串中取子串, 从start开始(包含), 到end结束(不包含)
string.substring(1,3)—>fd;
public String replace(char oldChar,char newChar) : 把当前字符串中的所有oldChar字符替换为newChar
public String[] split(String regex) : 以参数中的子串为切割器把字符串分割成多个部分
运行:
* public boolean equalsIgnoreCase(String s) : 比较字符串内容是否相等, 忽略大小写
______________________________________________________________________________________________________________________________________________________________
************************************************************************************************************************************************************
4:StringBuffer类
StringBuilder 和 StringBuffer 非常类似,均代表可变的字符序列,而且方法也一样.
StringBuffer:可变字符序列、效率低、线程安全
StringBuilder(JDK1.5):可变字符序列、效率高、线程不安全
________________________________________________________________________________________________________________________
5:StringBuilder 类
StringBuilder :
内容可以改变的Unicode字符序列. 可以把它当成是一个char容器.
1:StringBuilder append(...)//把任意数据追加到当前字符串的末尾,
2:StringBuilder insert(int index, ...);
//把任意数据插入到指定的index下标处.
3:StringBuilder delete(int startIndex, int endIndex)
//删除指定的区间.
4:void setCharAt(int n ,char ch)
运行:
______________________________________________________________________________________________________________________________________________________________________
6:System类,SimpleDateFormat类,Calendar
System类提供的public static long currentTimeMillis()用来返回当前时间与1970年1月1日0时0分0秒之间以毫秒为单位的时间差。
计算世界时间的主要标准有:
1:UTC(Universal Time Coordinated)
2:GMT(Greenwich Mean Time)
3:CST(Central Standard Time)
7:Data类
1: java.util.Date类
表示特定的瞬间,精确到毫秒.
构造方法:
Date( )使用Date类的无参数构造方法创建的对象可以获取本地当前时间
Date(long date)
常用方法
getTime():返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。
toString():把此 Date 对象转换为以下形式的 String: dow mon dd hh:mm:ss zzz yyyy 其中: dow 是一周中的某一天 (Sun, Mon, Tue, Wed, Thu, Fri, Sat),zzz是时间标准
Data类:
创建对象不方便, 2) 显示的时候也不方便改进版的Calendar好用一些.
缺点 : 内部使用数组, 没有体现面向对象.
所有的属性的获取和设置都必须依赖下标.月份数据有出入
最大的问题是 内部数据可以变化, 从而导致不安全. 原始数据无法找回.
任何的修改都会产生新的对象
日期类:
java.util.Calendar(日历)类
Calendar是一个抽象基类,主用用于完成日期字段之间相互操作的功能。
获取Calendar实例的方法
使用Calendar.getInstance()方法
调用它的子类GregorianCalendar的构造器。
运行截图:
JDK8中新时间日期API:
使用 LocalDate、LocalTime、LocalDateTime
运行实例图
7:math类
java.lang.Math提供了一系列静态方法用于科学计算;其方法的参数和返回值类型一般为double型。
random() 返回0.0到1.0的随机数
8:BigInteger类和BigDecimal类
************************************************************************************************************************************************
—————————————————————————————————————————————————————————————