包装类型
-
集合 容器 集合中只能放对象,不能放基本数据类型的值;
-
包装类型 对基本数据类型包装 让基本数据类型具有对象的性质;丰富了对基本数据类型的操作
-
包装类型都是不可变的类型,其对象都是不可变的
/** * 字符类型方法 */ private static void method10() { Character c = 'a'; char toUpperCase = Character.toUpperCase('a'); System.out.println(toUpperCase); char toLowerCase = Character.toLowerCase('A'); System.out.println("isDigit: " + Character.isDigit('0')); System.out.println("isSpaceChar: " + Character.isSpaceChar('\n')); System.out.println("isLetter: " + Character.isLetter('A')); System.out.println("isUpperCase: " + Character.isUpperCase('A')); System.out.println("isLowerCase: " + Character.isLowerCase('a')); } /** * 包装类型的不可变性 */ private static void method9() { //包装类型和String类型都是不可变的类型 对象都是不可变的对象 Integer num = 33; num = 99; } /** * 包装类型的缓存池 */ private static void method8() { //Integer 缓存池 提前缓存了一批Integer对象 -128 至 127 //Byte Integer num1 = 128; Integer num2 = 128; //两个引用 是否指向同一个对象 System.out.println(num1 == num2); Byte by; Long lo; Float f1; //ASCII码表 符号 0-127 Character c1 = 'a'; Character c2 = 'a'; System.out.println(c1 == c2); } /** * 自动拆箱和自动装箱 * * @param num */ private static void method7(Double num) { } private static void method6() { Integer num1 = 12; //自动拆箱: Integer-> int 包装类型自动转换为其对应的基本数据类型形式 method4(num1); int num2 = 88; //自动装箱:int ->Integer 基本数据类型自动转换为其包装类型 method5(num2); Integer num = 99; // 自动拆箱 System.out.println(num + 12); } public static void method5(Integer integer) { } public static void method4(int num) { } /** * 常用方法 */ private static void method3() { Integer num = 34; Integer num2 = 66; System.out.println(Integer.MIN_VALUE); System.out.println(Integer.MAX_VALUE); String str = "2323"; if (str.matches("\\d+")) { //把字符串对象 转换为对应的 Integer对象 Integer integer = Integer.valueOf(str); //Integer integer = Integer.valueOf(str, 10); System.out.println(integer); } // 把字符串对象 转换为对应的 int值; int i = Integer.parseInt("1111"); //int i = Integer.parseInt("1111", 2); System.out.println(i); //正 1 负-1 0 System.out.println("compareTo: " + num.compareTo(num2)); Double aDouble = Double.valueOf("66.9"); double v = Double.parseDouble("45.8"); } /** * 赋值方式 */ private static void method2() { //直接赋值 不建议使用构造方法创建对象;基于内存优化的考虑;和String类似 Integer num3 = 33; Integer num33 = 33; Byte num4 = 12; Long num5 = 13L; Float num6 = 5.6F; Double num7 = 6.6; Boolean num8 = true; Character num9 = 'a'; Integer num = new Integer(12); Integer num22 = new Integer(12); byte by = 13; Byte num2 = new Byte(by); } /** * 包装类型 都位于java.lang包中 */ private static void method1() { Byte num1; //byte Short num2;//short Integer num3;//int Long num4;//long Float num5;//float Double num6;//double Character num7;//char Boolean num8;//boolean }
Math类
/** * Math相关方法 */ private static void method11() { System.out.println(Math.PI); // System.out.println(Math.pow(2, 5)); // [0.0, 1.0) 随机值 System.out.println("random() " + Math.random()); System.out.println("四舍五入值: " + Math.round(5.3)); // System.out.println("ceil: " + Math.ceil(6.7)); System.out.println("floor: " + Math.floor(6.7)); // System.out.println("abs: " + Math.abs(-12)); System.out.println("max: " + Math.max(10, 2)); System.out.println("min: " + Math.min(10, 2)); System.out.println("sqrt: " + Math.sqrt(16)); }
进制运算
public static void method15() { //右移 等价于 除以2的指数值 System.out.println(17 >> 3); System.out.println(17 / 8); //左移 等价于 乘以2的指数值 System.out.println(3 << 2); System.out.println(3 * 4); } /** * &:与 * |:或 * ^:异或 :不等则为1 相等为0 */ public static void method14() { System.out.println(23 & 15); System.out.println(23 | 15); System.out.println(23 ^ 15); } /** * 十六进制与二进制的转换 较快 */ private static void method13() { // 十六进制 的一位 等价于 二进制的4位; int num = 0b011111111010; int num2 = 0x7fa; System.out.println(num); System.out.println(num2); } /** * 二进制:逢二进一 0 1 0b/0B数字表示 * 八进制:逢八进一 0-7 0数字表示 * 十进制:逢十进一 0-9 * 十六进制:逢十六进一 0-9 a:10 b:11 c:12 d:13 e:14 f:15 表示0-9a-f 0x/0X数字表示 */ private static void method12() { // int num = 0B1111; // int num = 017; // int num = 15; int num = 0Xf; System.out.println(num); }