实例

  1. public class PrimitiveTypeTest {
  2. public static void main(String[] args) {
  3. // byte
  4. System.out.println("基本类型:byte 二进制位数:" + Byte.SIZE);
  5. System.out.println("包装类:java.lang.Byte");
  6. System.out.println("最小值:Byte.MIN_VALUE=" + Byte.MIN_VALUE);
  7. System.out.println("最大值:Byte.MAX_VALUE=" + Byte.MAX_VALUE);
  8. System.out.println();
  9. // short
  10. System.out.println("基本类型:short 二进制位数:" + Short.SIZE);
  11. System.out.println("包装类:java.lang.Short");
  12. System.out.println("最小值:Short.MIN_VALUE=" + Short.MIN_VALUE);
  13. System.out.println("最大值:Short.MAX_VALUE=" + Short.MAX_VALUE);
  14. System.out.println();
  15. // int
  16. System.out.println("基本类型:int 二进制位数:" + Integer.SIZE);
  17. System.out.println("包装类:java.lang.Integer");
  18. System.out.println("最小值:Integer.MIN_VALUE=" + Integer.MIN_VALUE);
  19. System.out.println("最大值:Integer.MAX_VALUE=" + Integer.MAX_VALUE);
  20. System.out.println();
  21. // long
  22. System.out.println("基本类型:long 二进制位数:" + Long.SIZE);
  23. System.out.println("包装类:java.lang.Long");
  24. System.out.println("最小值:Long.MIN_VALUE=" + Long.MIN_VALUE);
  25. System.out.println("最大值:Long.MAX_VALUE=" + Long.MAX_VALUE);
  26. System.out.println();
  27. // float
  28. System.out.println("基本类型:float 二进制位数:" + Float.SIZE);
  29. System.out.println("包装类:java.lang.Float");
  30. System.out.println("最小值:Float.MIN_VALUE=" + Float.MIN_VALUE);
  31. System.out.println("最大值:Float.MAX_VALUE=" + Float.MAX_VALUE);
  32. System.out.println();
  33. // double
  34. System.out.println("基本类型:double 二进制位数:" + Double.SIZE);
  35. System.out.println("包装类:java.lang.Double");
  36. System.out.println("最小值:Double.MIN_VALUE=" + Double.MIN_VALUE);
  37. System.out.println("最大值:Double.MAX_VALUE=" + Double.MAX_VALUE);
  38. System.out.println();
  39. // char
  40. System.out.println("基本类型:char 二进制位数:" + Character.SIZE);
  41. System.out.println("包装类:java.lang.Character");
  42. // 以数值形式而不是字符形式将Character.MIN_VALUE输出到控制台
  43. System.out.println("最小值:Character.MIN_VALUE="
  44. + (int) Character.MIN_VALUE);
  45. // 以数值形式而不是字符形式将Character.MAX_VALUE输出到控制台
  46. System.out.println("最大值:Character.MAX_VALUE="
  47. + (int) Character.MAX_VALUE);
  48. }
  49. }

运行实例

  1. 基本类型:byte 二进制位数:8
  2. 包装类:java.lang.Byte
  3. 最小值:Byte.MIN_VALUE=-128
  4. 最大值:Byte.MAX_VALUE=127
  5. 基本类型:short 二进制位数:16
  6. 包装类:java.lang.Short
  7. 最小值:Short.MIN_VALUE=-32768
  8. 最大值:Short.MAX_VALUE=32767
  9. 基本类型:int 二进制位数:32
  10. 包装类:java.lang.Integer
  11. 最小值:Integer.MIN_VALUE=-2147483648
  12. 最大值:Integer.MAX_VALUE=2147483647
  13. 基本类型:long 二进制位数:64
  14. 包装类:java.lang.Long
  15. 最小值:Long.MIN_VALUE=-9223372036854775808
  16. 最大值:Long.MAX_VALUE=9223372036854775807
  17. 基本类型:float 二进制位数:32
  18. 包装类:java.lang.Float
  19. 最小值:Float.MIN_VALUE=1.4E-45
  20. 最大值:Float.MAX_VALUE=3.4028235E38
  21. 基本类型:double 二进制位数:64
  22. 包装类:java.lang.Double
  23. 最小值:Double.MIN_VALUE=4.9E-324
  24. 最大值:Double.MAX_VALUE=1.7976931348623157E308
  25. 基本类型:char 二进制位数:16
  26. 包装类:java.lang.Character
  27. 最小值:Character.MIN_VALUE=0
  28. 最大值:Character.MAX_VALUE=65535

类型默认值

数据类型 默认值
byte 0
short 0
int 0
long 0L
float 0.0f
double 0.0d
char ‘u0000’
String (or any object) null
boolean false

实例

  1. public class Test {
  2. static boolean bool;
  3. static byte by;
  4. static char ch;
  5. static double d;
  6. static float f;
  7. static int i;
  8. static long l;
  9. static short sh;
  10. static String str;
  11. public static void main(String[] args) {
  12. System.out.println("Bool :" + bool);
  13. System.out.println("Byte :" + by);
  14. System.out.println("Character:" + ch);
  15. System.out.println("Double :" + d);
  16. System.out.println("Float :" + f);
  17. System.out.println("Integer :" + i);
  18. System.out.println("Long :" + l);
  19. System.out.println("Short :" + sh);
  20. System.out.println("String :" + str);
  21. }
  22. }

运行实例

  1. Bool :false
  2. Byte :0
  3. Character:
  4. Double :0.0
  5. Float :0.0
  6. Integer :0
  7. Long :0
  8. Short :0
  9. String :null

引用类型

  • 在Java中,引用类型的变量非常类似于C/C++的指针。引用类型指向一个对象,指向对象的变量是引用变量。这些变量在声明时被指定为一个特定的类型,比如 Employee、Puppy 等。变量一旦声明后,类型就不能被改变了。
  • 对象、数组都是引用数据类型。
  • 所有引用类型的默认值都是null。
  • 一个引用变量可以用来引用任何与之兼容的类型。
  • 例子:Site site = new Site(“Runoob”)。

Java 常量

常量在程序运行时是不能被修改的。
在 Java 中使用 final 关键字来修饰常量,声明方式和变量类似:

  1. final double PI = 3.1415927;

虽然常量名也可以用小写,但为了便于识别,通常使用大写字母表示常量。
字面量可以赋给任何内置类型的变量。例如:

  1. byte a = 68;
  2. char a = 'A'

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

  1. int decimal = 100;
  2. int octal = 0144;
  3. int hexa = 0x64;

和其他语言一样,Java的字符串常量也是包含在两个引号之间的字符序列。下面是字符串型字面量的例子:

  1. "Hello World"
  2. "two\nlines"
  3. "\"This is in quotes\""

字符串常量和字符常量都可以包含任何Unicode字符。例如:

  1. char a = '\u0001';
  2. String a = "\u0001";

转义字符

符号 字符含义
\n 换行 (0x0a)
\r 回车 (0x0d)
\f 换页符(0x0c)
\b 退格 (0x08)
\0 空字符 (0x0)
\s 空格 (0x20)
\t 制表符
\“ 双引号
\‘ 单引号
\\ 反斜杠
\ddd 八进制字符 (ddd)
\uxxxx 16进制Unicode字符 (xxxx)

自动类型转换

整型、实型(常量)、字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算。
转换从低级到高级。

低 ——————————————————> 高

byte,short,char—> int —> long—> float —> double

数据类型转换必须满足如下规则:

    1. 不能对boolean类型进行类型转换。
    1. 不能把对象类型转换成不相关类的对象。
    1. 在把容量大的类型转换为容量小的类型时必须使用强制类型转换。
    1. 转换过程中可能导致溢出或损失精度,例如:

int i =128;
byte b = (byte)i;

    1. 浮点数到整数的转换是通过舍弃小数得到,而不是四舍五入,例如:

(int)23.7 == 23;
(int)-45.89f == -45


隐含强制类型转换

    1. 整数的默认类型是 int。
    1. 浮点型不存在这种情况,因为在定义 float 类型时必须在数字后面跟上 F 或者 f。