一 装箱拆箱
1. 封装类
所有基本类型对应的类类型
基本类型可以和类类型相互转换
package digit;
public class TestNumber {
public static void main(String[] args) {
int i = 5;
//把一个基本类型的变量,转换为Integer对象
Integer it = new Integer(i);
//把一个Integer对象,转换为一个基本类型的int
int i2 = it.intValue();
}
}
2. Number类
package digit;
public class TestNumber {
public static void main(String[] args) {
int i = 5;
Integer it = new Integer(i);
//Integer是Number的子类,所以打印true
System.out.println(it instanceof Number);
}
}
3. 自动装箱、拆箱
不需要调用构造方法,通过=
符号自动把基本类型转换为类类型就叫装箱。
不需要调用Integer的intValue
方法,通过=
就自动转换成int类型,就叫拆箱.
int i = 5;
Integer it = i; //装箱
int i2 = it; //拆箱
4. int 的最大值、最小值
Integer.MAX_VALUE,Integer.MIN_VALUE
二 字符串转换
1. 数字转字符串
方法1: 使用String类的静态方法valueOf
方法2: 先把基本类型装箱为对象,然后调用对象的toString
int i = 5;
//方法1
String str = String.valueOf(i);
//方法2
Integer it = i;
String str2 = it.toString();
2. 字符串转数字
调用Integer的静态方法parseInt
。
String str = "999";
int i= Integer.parseInt(str);
三 数学方法
java.lang.Math提供了一些常用的数学运算方法,并且都是以静态方法的形式存在
###1. 四舍五入, 随机数,开方,次方,π,自然常数
float f1 = 5.4f;
float f2 = 5.5f;
//5.4四舍五入即5
System.out.println(Math.round(f1));
//5.5四舍五入即6
System.out.println(Math.round(f2));
//得到一个0-1之间的随机浮点数(取不到1)
System.out.println(Math.random());
//得到一个0-10之间的随机整数 (取不到10)
System.out.println((int)( Math.random()*10));
//开方
System.out.println(Math.sqrt(9));
//次方2的4次方
System.out.println(Math.pow(2,4));
//π
System.out.println(Math.PI);
//自然常数
System.out.println(Math.E);
四 格式化输出
%s 表示字符串
%d 表示数字
%n 表示换行 //平台无关
1. 换行符
换行符就是另起一行 --- '\n' 换行(newline)
回车符就是回到一行的开头 --- '\r' 回车(return)
在eclipse里敲一个回车,实际上是回车换行符
Java是跨平台的编程语言,同样的代码,可以在不同的平台使用,比如Windows,Linux,Mac
然而在不同的操作系统,换行符是不一样的
(1)在DOS和Windows中,每行结尾是 “\r\n”;
(2)Linux系统里,每行结尾只有 “\n”;
(3)Mac系统里,每行结尾是只有 "\r"。
为了使得同一个java程序的换行符在所有的操作系统中都有一样的表现,使用%n,就可以做到平台无关的换行
总长度,左对齐,补0,千位分隔符,小数点位数,本地化表达
int year = 2020;
//总长度,左对齐,补0,千位分隔符,小数点位数,本地化表达
System.out.format("%d%n",year);
System.out.format("%8d%n",year);
System.out.format("%-8d%n",year);
System.out.format("%08d%n",year);
System.out.format("%,8d%n",year*10000);
System.out.format("%.2f%n",Math.PI);
System.out.format(Locale.US,"%,.2f%n",Math.PI*10000);
System.out.format(Locale.UK,"%,.2f%n",Math.PI*10000);
五 字符
保存一个字符的时候使用char
char对应的封装类 character
常用方法
System.out.println(Character.isLetter('a'));//判断是否为字符
System.out.println(Character.isDigit('a')); //判断是否为数字
System.out.println(Character.isWhitespace(' ')); //是否是空白
System.out.println(Character.isUpperCase('a')); //是否是大写
System.out.println(Character.isLowerCase('a')); //是否是小写
System.out.println(Character.toUpperCase('a')); //转换为大写
System.out.println(Character.toLowerCase('A')); //转换为小写
String a = 'a'; //不能够直接把一个字符转换成字符串
String a2 = Character.toString('a'); //转换为字符串
常见转义字符
六 字符串
1. 性质
和C++ STL 中的 std::string在创建过程,相加(+)方面类似,不可继承(final),一旦定义,不可更改(immutable),可以为空。
2. 常用方法
(并没有列出所有的重载函数)
String str = "java是面向对象式语言";
//charAt(int index)获取指定位置的字符
char c1=str.charAt(0);
//toCharArray()获取对应的字符数组
char[] cs=str.toCharArray();
//截取子字符串
String subStr1=str.substring(3,5);
//split根据分隔符进行分隔,分割成String数组
String subStr2[]=str.split(",");
//trim去掉首尾空格
String str2 =" "+str;
String str3 =str2.trim();
//大小写
String str4="Green";
String str5=str4.toLowerCase();
String str6=str4.toUpperCase();
//indexOf 判断字符或者子字符串出现的位置,contains 是否包含子字符串
//replaceAll 替换所有的 ,replaceFirst 只替换第一个
3. 字符串比较
1)是否为同一个对象
该引用必须指向同一个对象。
当一般说来,编译器每碰到一个字符串的字面值,就会创建一个新的对象。但是编译器发现已经存在现成的字面值时,那么就直接拿来使用,而不会进行重复创建。
2)内容是否相同
使用equals进行字符串内容的比较,必须大小写一致
equalsIgnoreCase,忽略大小写判断内容是否一致
3)是否以子字符串开始或者结束
startsWith //以...开始
endsWith //以...结束
StringBuffer 可变长的字符串 和C++ 的std::string完全类似。
关键字
append delete insert reverse
length capacity