包装类型
-
集合 容器 集合中只能放对象,不能放基本数据类型的值;
-
包装类型 对基本数据类型包装 让基本数据类型具有对象的性质;丰富了对基本数据类型的操作
-
包装类型都是不可变的类型,其对象都是不可变的
/**
* 字符类型方法
*/
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);
}
Java包装类型详解:特性、操作与数学方法
本文详细介绍了Java中的包装类型,包括它们在集合容器中的使用、不可变性、缓存池机制,以及自动拆箱和装箱、Math类中的相关方法、进制转换等内容。
156

被折叠的 条评论
为什么被折叠?



