一.装箱拆箱
1.所有的基本类型都有对应的类类型(封装类)
2.数字类型的封装类,这些类都是Number的抽象子类
Byte,Short,Integer,Long,Float,Double
3.基本类型转封装类
int i=5;
Integer it = new Integer(i);
Integer it2 = i;//自动装箱,不用构造方法
4.封装类型转基本类型
Integer it = new Integer(5);
int i = it.intValue();
int i2=it;//自动拆箱
5.int的最大最小值为其对应的封装类Integer.MAX_VALUE等
二.字符串转换
1.数字转换为字符串
int i = 5;
String str = String.valueof(i);//方法一
Integer it = i;
String str2 = it.toString();//方法二
2.字符串转数字
使用Integer的静态方法parseInt()
三.数学方法
java.lang.Math提供了一些常用的数学运算方法并且都是以静态方法的形式
Math.round(float);//四舍五入
Math.random();//0-1间的随机数取不到1
Math.sqrt();//开方
Math.pow(2,4);//2的4次方
Math.PI,Math.E//圆周率和自然数
四.格式化输出
1.String name ="盖伦";
int kill = 8;
String title="超神";
String sentenceFormat ="%s 在进行了连续 %d 次击杀后,获得了 %s 的称号%n";
//使用printf格式化输出
System.out.printf(sentenceFormat,name,kill,title);
//使用format格式化输出
System.out.format(sentenceFormat,name,kill,title);
2.
int year = 2020;
//总长度,左对齐,补0,千位分隔符,小数点位数,本地化表达
//直接打印数字
System.out.format("%d%n",year);//2020
//总长度是8,默认右对齐
System.out.format("%8d%n",year);//....2020
//总长度是8,左对齐
System.out.format("%-8d%n",year);//2020....
//总长度是8,不够补0
System.out.format("%08d%n",year);//00002020
//千位分隔符
System.out.format("%,8d%n",year*10000);//20,200,000
//小数点位数
System.out.format("%.2f%n",Math.PI);//3.14
五.字符char(封装类Character)
String a = 'a'; //不能够直接把一个字符转换成字符串
String a2 = Character.toString('a'); //转换为字符串
六.字符串
1.创建字符串
String garen ="盖伦"; //字面值,虚拟机碰到字面值就会创建一个字符串对象
String teemo = new String("提莫"); //创建了两个字符串对象
char[] cs = new char[]{'崔','斯','特'};
String hero = new String(cs);// 通过字符数组创建一个字符串对象
String hero3 = garen + teemo;// 通过+加号进行字符串拼接也会创建新的字符串对象
2.String被修饰为final所以是不能继承的
3.字符串一旦创建里面的内容不能改变
4.String str1 = "the light";
String str2 = new String(str1);
//==用于判断是否是同一个字符串对象
System.out.println( str1 == str2);
内容相同但是不是同一个对象
5.是同一个对象的特例
String str1 = "the light";
String str3 = "the light";
System.out.println( str1 == str3);
6.StringBuffer//可变长度的字符串
String str1 = "let there ";
StringBuffer sb = new StringBuffer(str1); //根据str1创建一个StringBuffer对象
sb.append("be light"); //在最后追加
System.out.println(sb);
sb.delete(4, 10);//删除4-10之间的字符
System.out.println(sb);
sb.insert(4, "there ");//在4这个位置插入 there
System.out.println(sb);
sb.reverse(); //反转
System.out.println(sb);
和String一样,StringBuffer也维护了一个字符数组。 但是,这个字符数组,留有冗余长度。比如说new StringBuffer("the"),其内部的字符数组的长度,是19(capacity)(不同JDK数字不一样),而不是3(length),这样调用插入和追加,在现成的数组的基础上就可以完成了。如果追加的长度超过了19,就会分配一个新的数组,长度比原来多一些,把原来的数据复制到新的数组中,看上去 数组长度就变长了