美文网首页
Java 基本类型和包装类

Java 基本类型和包装类

作者: Tinyspot | 来源:发表于2022-07-27 10:47 被阅读0次

1. Java中的数据类型

  • 基本数据类型:整型、浮点型、布尔型、字符型
  • 引用数据类型:类、接口、数组等

整型:byte, short, int, long
浮点型:float, double
布尔:boolean
字符:char
引用数据类型之字符串,字符编码 Unicode字符序列

1.1 八种基本类型

Variable Wrapper Class byte 值域(二进制) 值域 备注
byte Byte 1 -2^7 ~ 2^7-1 -128 ~ 127
boolean Boolean 1 true / false
char Character 2 0 ~ 65535 Unicode 字符集
short Short 2 -2^15 ~ 2^15-1 -32768 ~ 32767
int Integer 4 -2^31 ~ 2^31-1 21亿+ (2147483647) 整数类型的缺省类型
float Float 4 +/-3.4E+38F(6~7 个有效位) 精度 + 值域
long Long 8 -2^63 ~ 2^63-1 9223372036854775807 19位数字
double Double 8 +/-1.8E+308 (15 个有效位) 浮点数的缺省类型,double精度是float的两倍

计算机中单位 bit, 文件大小单位 byte
byte 是计算机中基本的衡量存储的单位

浮点数采用科学计数法表示
例如:2E3 等价 2 * 10^3

double d = 2E3;
float f = 2E3F;

1.2 字符

  • ASCII编码
    • 为英文字符设定了统一并且唯一的二进制编码(服务于英文)
  • Unicode编码(万国码)
    • 为每种语言中的每个字符设定了统一并且唯一的二进制编码(服务于所有国家的所有语种的所有字符)
    • 可以跨语言、跨平台

Unicode 中每个字符都对应一个二进制正数,可以使用多种方式赋值
字符赋值、整数赋值、进制赋值

// 字符赋值
char c1 = 'A';
// 整数赋值(十进制)
// 整数类型赋值给字符类型,会找该整数对应的字符
char c2 = 65;
// 进制赋值
// \u 表示十六进制的 Unicode 编码,十六进制的 0041 是 65
char c3 = '\u0041';
// A, A, A
System.out.println(c1 + ", " + c2 + ", "+ c3);

1.3 转义字符

转义字符 描述
\n 换行
\t 制表符
\ 反斜线
' 单引号
" 双引号
System.out.println("Hello\tWorld");
System.out.println("Hello\nWorld");

2. 包装类

  • 基本类型所对应的引用数据类型
  • 包装类的默认值是 null

2.1 装箱拆箱

int num = 10;
// 装箱
Integer integer = new Integer(num);
Integer integer1 = Integer.valueOf(num);
// 拆箱
int inum = integer.intValue();

// JDK 1.5 之后自动装箱和拆箱
Integer inte = num;
int i = inte;

2.2 类型转换

int 与 String 互转

int num = 14;
String s = Integer.toString(num);
/*
    Integer.toString(int i, int radix)
    radix 基数,即:进制
 */
String s1 = Integer.toString(num, 16);
String s2 = Integer.toHexString(num);
String s3 = Integer.toOctalString(num);

int i = Integer.parseInt(s);

boolean 转 String
只要非 true, 全部都是 false

boolean b1 = Boolean.parseBoolean("true");
boolean b2 = Boolean.parseBoolean("false");
boolean b3 = Boolean.parseBoolean("0");
boolean b4 = Boolean.parseBoolean("1");
// b1=true; b2=false; b3=false; b4=false
System.out.println("b1=" +b1 + "; b2=" + b2 + "; b3=" + b3 + "; b4=" + b4);

2.3 Integer 缓冲区

Integer integer1 = new Integer(100);
Integer integer2 = new Integer(100);
System.out.println(integer1 == integer2); // false

// 自动装箱
Integer integer3 = 100;
Integer integer4 = 100;
System.out.println(integer3 == integer4); // true

反编译文件

Integer integer3 = Integer.valueOf(100);
Integer integer4 = Integer.valueOf(100);

Integer integer3 = 100; 等价 Integer.valueOf(100);

查看源码

private static class IntegerCache {
    static final int low = -128;
    static final int high;
    static final Integer cache[];

    static {
      // high value may be configured by property
      int h = 127;
      high = h;
      cache = new Integer[(high - low) + 1];
    }
}

public static Integer valueOf(int i) {
  if (i >= IntegerCache.low && i <= IntegerCache.high)
      return IntegerCache.cache[i + (-IntegerCache.low)];
  return new Integer(i);
}

整数缓冲区
Java 预先创建了 256 个常用的整数包装类型对象
在实际应用当中,对已创建的对象进行复用

相关文章

  • Java中必须了解的常用类

    学习了解# Java中的包装类 Java中基本类型和包装类型之间的转换 Java中基本类型和字符串之间的转换 使用...

  • Java 常用类 04. Java 包装类

    包装类 Java 数据类型分为:基本数据类型 和 引用数据类型,但基本数据类型怎么成为对象呢? 包装类:基本数据类...

  • Java 中基本类型和包装类之间的转换

    Java 中基本类型和包装类之间的转换 基本类型和包装类之间经常需要互相转换,以 Integer 为例(其他几个包...

  • 第47节:Java当中的基本类型包装类

    Java当中的基本类型包装类 01 基本数据类型对象的包装类 什么是基本数据类型对象包装类呢?就是把基本数据类型封...

  • JavaSE进阶五 包装类

    java中的包装类 java中对8种基本数据类型提供了8种包装类型;包装类是引用类型,父类是Object。 为什么...

  • JVM面试考点—— 值==问题(常量池)

    基本类型的包装类和常量池 java中基本类型的包装类的大部分都实现了常量池技术,即Byte,Short,Integ...

  • JAVA中的对象

    java8增强的包装类 java中基本数据类型不能当作对象类型变量使用的问题, java提供了包装类 (Wrapp...

  • java类型,打印变量类型,类型转换

    java类型 分为两类 基本类型boolean 对应包装类 java.lang.Boolean 类型名称默认值补充...

  • 基本数据类型的包装类

    包装类 Java提供了一组包装类,来包装所有的基本数据类型 以上包装类又分为两种子类型: 对象型包装类(Objec...

  • 1. Java之基本数据类型

    各个基本数据类型比较 整数的不同进制 包装类以上8种基本类型都不是类,Java 提供了对应的类,称之为包装类。包装...

网友评论

      本文标题:Java 基本类型和包装类

      本文链接:https://www.haomeiwen.com/subject/santwrtx.html