Java 02 数据类型

八种基本类型

  • byte
    数据类型是8位、有符号的,以二进制补码表示的整数。
    byte 类型用在大型数组中节约空间,主要代替整数,因为 byte 变量占用的空间只有 int 类型的四分之一。
    最小值是 -128(-2^7)
    最大值是 127(2^7-1)
    默认值是 0
    例子:byte a = 100,byte b = -50

  • short
    数据类型是 16 位、有符号的以二进制补码表示的整数。Short 数据类型也可以像 byte 那样节省空间。
    一个short变量是int型变量所占空间的二分之一。
    最小值是 -32768(-2^15)
    最大值是 32767(2^15 - 1)
    默认值是 0
    例子:short s = 1000,short r = -20000

  • int
    数据类型是32位、有符号的以二进制补码表示的整数。一般地整型变量默认为 int 类型。
    最小值是 -2,147,483,648(-2^31)
    最大值是 2,147,483,647(2^31 - 1)
    默认值是 0
    例子:int a = 100000, int b = -200000

  • long
    数据类型是 64 位、有符号的以二进制补码表示的整数。
    最小值是 -9,223,372,036,854,775,808(-2^63)
    最大值是 9,223,372,036,854,775,807(2^63 -1)
    默认值是 0L
    例子: long a = 100000L,Long b = -200000L
    "L"理论上不分大小写,但是若写成"l"容易与数字"1"混淆,不容易分辩。所以最好大写。

  • float
    数据类型是单精度、32位、符合IEEE 754标准的浮点数。在储存大型浮点数组的时候可节省内存空间。
    浮点数不能用来表示精确的值,如货币。
    在定义 float 类型时必须在数字后面跟上 F 或者 f。
    默认值是 0.0f
    例子:float f1 = 234.5f

  • double
    数据类型是双精度、64 位、符合 IEEE 754 标准的浮点数。浮点数的默认类型为 double 类型。
    double类型同样不能表示精确的值,如货币。
    默认值是 0.0d
    例子:
    double d1 = 7D ;
    double d2 = 7.;
    double d3 = 8.0;
    double d4 = 8.D;
    double d5 = 12.9867;
    ※ 7 是一个 int 字面量,而 7D,7. 和 8.0 是 double 字面量。

  • boolean
    数据类型表示一位的信息。
    只有两个取值:true 和 false
    默认值是 false
    例子:boolean one = true

  • char
    类型是一个单一的 16 位 Unicode 字符。
    最小值是 \u0000(十进制等效值为 0)
    最大值是 \uffff(即为 65535)
    默认值是 \u0000
    char 数据类型可以储存任何字符
    例子:char letter = ‘A’


特别的类

  • String
    String 默认值是 null,其他类型的默认值与基本类型的一致。
    private String str;

  • Number

    方法说明
    byte byteValue();返回 byte 类型的值
    double doubleValue();返回 double 类型的值
    float floatValue();返回 float 类型的值
    int intValue();返回 int 类型的值
    long longValue();返回 long 类型的值
    short shortValue();返回 short 类型的值

    包装类 Integer、Long、Byte、Double、Float、Short 都是抽象类 Number 的子类。

    System.out.println("基本类型:byte 二进制位数:" + Byte.SIZE);  // 8
    System.out.println("包装类:java.lang.Byte");  
    System.out.println("最小值:Byte.MIN_VALUE=" + Byte.MIN_VALUE);  // -128
    System.out.println("最大值:Byte.MAX_VALUE=" + Byte.MAX_VALUE);  // 127
    
    Number num = new Double(12.5);
    System.out.println("返回 double 类型的值:" + num.doubleValue());  // 12.5
    System.out.println("返回 int 类型的值:" + num.intValue());  // 12
    System.out.println("返回 float 类型的值:" + num.floatValue());  // 12.5
    

    相关资料: No.1 No.2

  • BigDecimal
    用来记录和计算比较精确的小数。比如金额。
    相关资料: No.1 No.2 No.3



基本类型的包装类(Wrapper Classes)

  • Byte

    方法返回值功能
    byteValue()byte以一个 byte 值返回 Byte 对象
    compareTo(Byte bytel)int在数字上比较两个 Byte 对象
    doubleValue()double以一个 double 值返回此 Byte 的值
    intValue()int以一个 int 值返回此 Byte 的值
    parseByte(String s)byte将 String 型参数解析成等价的 byte 形式
    toStringOString返回表示此 byte 值的 String 对象
    valueOf(String s)Byte返回一个保持指定 String 所给出的值的 Byte 对象
    equals(Object obj)boolean将此对象与指定对象比较,如果调用该方法的对象与 obj 相等 则返回 true,否则返回 false
    Byte b = "a";
    Byte b = new Byte("a");  // Java9以后不推荐
    System.out.println("基本类型:byte 二进制位数:" + Byte.SIZE);  // 8
    System.out.println("包装类:java.lang.Byte");  
    System.out.println("最小值:Byte.MIN_VALUE=" + Byte.MIN_VALUE);  // -128
    System.out.println("最大值:Byte.MAX_VALUE=" + Byte.MAX_VALUE);  // 127
    
  • Short

    System.out.println("基本类型:short 二进制位数:" + Short.SIZE);  // 16
    System.out.println("包装类:java.lang.Short");  
    System.out.println("最小值:Short.MIN_VALUE=" + Short.MIN_VALUE);  // -32768
    System.out.println("最大值:Short.MAX_VALUE=" + Short.MAX_VALUE);  // 32767
    
  • Integer

    方法返回值功能
    byteValue()byte以 byte 类型返回该 Integer 的值
    shortValue()short以 short 类型返回该 Integer 的值
    intValue()int以 int 类型返回该 Integer 的值
    toString()String返回一个表示该 Integer 值的 String 对象
    equals(Object obj)boolean比较此对象与指定对象是否相等
    compareTo(Integer anotherlnteger)int在数字上比较两个 Integer 对象,如相等,则返回 0;
    如调用对象的数值小于 anotherlnteger 的数值,则返回负值;
    如调用对象的数值大于 anotherlnteger 的数值,则返回正值;
    valueOf(String s)Integer返回保存指定的 String 值的 Integer 对象
    parseInt(String s)int将数字字符串转换为 int 数值
    Integer i = 500;
    Integer i = new Integer(500);  // Java9以后不推荐
    int n = i.intValue();
    System.out.println("基本类型:int 二进制位数:" + Integer.SIZE);  // 32
    System.out.println("包装类:java.lang.Integer");  
    System.out.println("最小值:Integer.MIN_VALUE=" + Integer.MIN_VALUE);  // -2147483648
    System.out.println("最大值:Integer.MAX_VALUE=" + Integer.MAX_VALUE);  // 2147483647
    
  • Long

    System.out.println("基本类型:long 二进制位数:" + Long.SIZE);  // 64
    System.out.println("包装类:java.lang.Long");  
    System.out.println("最小值:Long.MIN_VALUE=" + Long.MIN_VALUE);  // -9223372036854775808
    System.out.println("最大值:Long.MAX_VALUE=" + Long.MAX_VALUE);  // 9223372036854775807
    
  • Float

    方法返回值功能
    byteValue()byte以 byte 类型返回该 Float 的值
    doubleValue()double以 double 类型返回该 Float 的值
    floatValue()float以 float 类型返回该 Float 的值
    intValue()int以 int 类型返回该 Float 的值(强制转换为 int 类型)
    longValue()long以 long 类型返回该 Float 的值(强制转换为 long 类型)
    shortValue()short以 short 类型返回该 Float 的值(强制转换为 short 类型)
    isNaN()boolean如果此 Float 值是一个非数字值,则返回 true,否则返回 false
    isNaN(float v)boolean如果指定的参数是一个非数字值,则返回 true,否则返回 false
    toString()String返回一个表示该 Float 值的 String 对象
    valueOf(String s)Float返回保存指定的 String 值的 Float 对象
    parseFloat(String s)float将数字字符串转换为 float 数值
    System.out.println("基本类型:float 二进制位数:" + Float.SIZE);  // 32
    System.out.println("包装类:java.lang.Float");  
    System.out.println("最小值:Float.MIN_VALUE=" + Float.MIN_VALUE);  // 1.4E-45
    System.out.println("最大值:Float.MAX_VALUE=" + Float.MAX_VALUE);  // 3.4028235E38
    
  • Double

    方法返回值功能
    byteValue()byte以 byte 类型返回该 Double 的值
    doubleValue()double以 double 类型返回该 Double 的值
    fioatValue()float以 float 类型返回该 Double 的值
    intValue()int以 int 类型返回该 Double 的值(强制转换为 int 类型)
    longValue()long以 long 类型返回该 Double 的值(强制转换为 long 类型)
    shortValue()short以 short 类型返回该 Double 的值(强制转换为 short 类型)
    isNaN()boolean如果此 Double 值是一个非数字值,则返回 true,否则返回 false
    isNaN(double v)boolean如果指定的参数是一个非数字值,则返回 true,否则返回 false
    toString()String返回一个表示该 Double 值的 String 对象
    valueOf(String s)Double返回保存指定的 String 值的 Double 对象
    parseDouble(String s)double将数字字符串转换为 Double 数值
    System.out.println("基本类型:double 二进制位数:" + Double.SIZE);  // 64
    System.out.println("包装类:java.lang.Double");  
    System.out.println("最小值:Double.MIN_VALUE=" + Double.MIN_VALUE);  // 4.9E-324
    System.out.println("最大值:Double.MAX_VALUE=" + Double.MAX_VALUE);  // 1.7976931348623157E308
    
  • Boolean

    方法返回值功能
    booleanValue()boolean将 Boolean 对象的值以对应的 boolean 值返回
    equals(Object obj)boolean判断调用该方法的对象与 obj 是否相等。当且仅当参数不是 null,且与调用该
    方法的对象一样都表示同一个 boolean 值的 Boolean 对象时,才返回 true
    parseBoolean(String s)boolean将字符串参数解析为 boolean 值
    toString()string返回表示该 boolean 值的 String 对象
    valueOf(String s)boolean返回一个用指定的字符串表示的 boolean 值
    Boolean b1 = new Boolean(true);  // true
    Boolean b3 = new Boolean("true");  // true
    Boolean b2 = new Boolean("ok");  // false
    Boolean b2 = new Boolean("false");  // false
    
  • Character

    方法说明
    void Character(char value)构造一个新分配的 Character 对象,用以表示指定的 char 值
    char charValue()返回此 Character 对象的值,此对象表示基本 char 值
    int compareTo(Character anotherCharacter)根据数字比较两个 Character 对象
    boolean equals(Character anotherCharacter)将此对象与指定对象比较,当且仅当参数不是 null,而 是一个与此对象
    包含相同 char 值的 Character 对象时, 结果才是 true
    boolean isDigit(char ch)确定指定字符是否为数字,如果通过 Character. getType(ch) 提供的字
    符的常规类别类型为 DECIMAL_DIGIT_NUMBER,则字符为数字
    boolean isLetter(int codePoint)确定指定字符(Unicode 代码点)是否为字母
    boolean isLetterOrDigit(int codePoint)确定指定字符(Unicode 代码点)是否为字母或数字
    boolean isLowerCase(char ch)确定指定字符是否为小写字母
    boolean isUpperCase(char ch)确定指定字符是否为大写字母
    char toLowerCase(char ch)使用来自 UnicodeData 文件的大小写映射信息将字符参数转换为小写
    char toUpperCase(char ch)使用来自 UnicodeData 文件的大小写映射信息将字符参数转换为大写
    System.out.println("基本类型:char 二进制位数:" + Character.SIZE);  // 16
    System.out.println("包装类:java.lang.Character");
    // 以数值形式而不是字符形式将Character.MIN_VALUE输出到控制台  
    System.out.println("最小值:Character.MIN_VALUE="  
            + (int) Character.MIN_VALUE);  // 0
    // 以数值形式而不是字符形式将Character.MAX_VALUE输出到控制台  
    System.out.println("最大值:Character.MAX_VALUE="  
            + (int) Character.MAX_VALUE);  // 65535
    
  • 补充
    Float和Double的最小值和最大值都是以科学记数法的形式输出的,
    结尾的"E+数字"表示E之前的数字要乘以10的多少次方。
    比如3.14E3就是3.14 × 103 =3140,3.14E-3 就是 3.14 x 10-3 =0.00314。
    实际上,JAVA中还存在另外一种基本类型 void,
    它也有对应的包装类 java.lang.Void,不过我们无法直接对它们进行操作。


常量

在 Java 中使用 final 关键字来修饰常量。必须显式指定初始值。
常量在程序运行时是不能被修改的。
虽然常量名也可以用小写,但为了便于识别,通常使用大写字母表示常量。

final double PI = 3.14159265;



类变量(静态变量)

类变量也称为静态变量,在类中以 static 关键字声明,但必须在方法之外。
静态变量在第一次被访问时创建,在程序结束时销毁。
无论一个类创建了多少个对象,类只拥有类变量的一份拷贝。
静态变量储存在静态存储区。经常被声明为常量,很少单独使用 static 声明变量。
与实例变量具有相似的可见性。但为了对类的使用者可见,大多数静态变量声明为 public 类型。
类变量被声明为 public static final 类型时,类变量名称一般建议使用大写字母。
如果静态变量不是 public 和 final 类型,其命名方式与实例变量以及局部变量的命名方式一致。
静态变量可以通过:ClassName.VariableName的方式访问。
静态变量除了被声明为常量外很少使用,静态变量是指声明为 public/private,final 和 static 类型的变量。
静态变量初始化后不可改变。
默认值和实例变量相似。数值型变量默认值是 0,布尔型默认值是 false,引用类型默认值是 null。
变量的值可以在声明的时候指定,也可以在构造方法中指定。
此外,静态变量还可以在静态语句块中初始化。

实例:

    public class Employee {
        // salary 是静态的私有变量
        private static double salary;
    
        // DEPARTMENT 是一个常量
        public static final String DEPARTMENT = "开发人员";
    
        public static void main(String[] args){
            salary = 10000;
            System.out.println(DEPARTMENT+"平均工资:"+salary);
        }
    }



其他

byte、int、long、和short都可以用十进制、16进制以及8进制的方式来表示。
当使用字面量的时候,前缀 0 表示 8 进制,而前缀 0x 代表 16 进制, 例如:
int decimal = 100;
int octal = 0144;
int hexa = 0x64;

字符串常量和字符常量都可以包含任何Unicode字符。例如:
char a = ‘\u0001’;
String a = “\u0001”;

字符串中转义符
String str = “two\nlines”; // 转义换行 \n
String str = ““This is in quotes””; // 转义引号 "

Java语言支持一些特殊的转义字符序列
符号 字符含义
\n 换行 (0x0a)
\r 回车 (0x0d)
\f 换页符(0x0c)
\b 退格 (0x08)
\0 空字符 (0x0)
\s 空格 (0x20)
\t 制表符
" 双引号
’ 单引号
\ 反斜杠
\ddd 八进制字符 (ddd)
\uxxxx 16进制Unicode字符 (xxxx)



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值