欢迎光临
我们一直在努力

Java语言提供了八种基本类型。六种数字类型【函数规范123】

变量就是申请内存来存储值。也就是说,当创建变量的时候,需要在内存中申请空间。

内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能用来储存该类型数据。

因此,通过定义不同类型的变量,可以在内存中储存整数、小数或者字符。

Java 的两大数据类型:

  • 内置数据类型
  • 引用数据类型

内置数据类型

Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。

byte:

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

short:

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

int:

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

long:

  • 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:

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

double:

  • 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:

  • boolean数据类型表示一位的信息;
  • 只有两个取值:true 和 false;
  • 这种类型只作为一种标志来记录 true/false 情况;
  • 默认值是 false;
  • 例子:boolean one = true。

char:

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

实例

对于数值类型的基本类型的取值范围,我们无需强制去记忆,因为它们的值都已经以常量的形式定义在对应的包装类中了。请看下面的例子:

实例

public class PrimitiveTypeTest { public static void main(String[] args) { // byte System.out.println("基本类型:byte 二进制位数:" + Byte.SIZE); System.out.println("包装类:java.lang.Byte"); System.out.println("最小值:Byte.MIN_VALUE=" + Byte.MIN_VALUE); System.out.println("最大值:Byte.MAX_VALUE=" + Byte.MAX_VALUE); System.out.println(); // short System.out.println("基本类型:short 二进制位数:" + Short.SIZE); System.out.println("包装类:java.lang.Short"); System.out.println("最小值:Short.MIN_VALUE=" + Short.MIN_VALUE); System.out.println("最大值:Short.MAX_VALUE=" + Short.MAX_VALUE); System.out.println(); // int System.out.println("基本类型:int 二进制位数:" + Integer.SIZE); System.out.println("包装类:java.lang.Integer"); System.out.println("最小值:Integer.MIN_VALUE=" + Integer.MIN_VALUE); System.out.println("最大值:Integer.MAX_VALUE=" + Integer.MAX_VALUE); System.out.println(); // long System.out.println("基本类型:long 二进制位数:" + Long.SIZE); System.out.println("包装类:java.lang.Long"); System.out.println("最小值:Long.MIN_VALUE=" + Long.MIN_VALUE); System.out.println("最大值:Long.MAX_VALUE=" + Long.MAX_VALUE); System.out.println(); // float System.out.println("基本类型:float 二进制位数:" + Float.SIZE); System.out.println("包装类:java.lang.Float"); System.out.println("最小值:Float.MIN_VALUE=" + Float.MIN_VALUE); System.out.println("最大值:Float.MAX_VALUE=" + Float.MAX_VALUE); System.out.println(); // double System.out.println("基本类型:double 二进制位数:" + Double.SIZE); System.out.println("包装类:java.lang.Double"); System.out.println("最小值:Double.MIN_VALUE=" + Double.MIN_VALUE); System.out.println("最大值:Double.MAX_VALUE=" + Double.MAX_VALUE); System.out.println(); // char System.out.println("基本类型:char 二进制位数:" + Character.SIZE); System.out.println("包装类:java.lang.Character"); // 以数值形式而不是字符形式将Character.MIN_VALUE输出到控制台 System.out.println("最小值:Character.MIN_VALUE=" + (int) Character.MIN_VALUE); // 以数值形式而不是字符形式将Character.MAX_VALUE输出到控制台 System.out.println("最大值:Character.MAX_VALUE=" + (int) Character.MAX_VALUE); } }

运行实例 »

编译以上代码输出结果如下所示:

基本类型:byte 二进制位数:8
包装类:java.lang.Byte
最小值:Byte.MIN_VALUE=-128
最大值:Byte.MAX_VALUE=127

基本类型:short 二进制位数:16
包装类:java.lang.Short
最小值:Short.MIN_VALUE=-32768
最大值:Short.MAX_VALUE=32767

基本类型:int 二进制位数:32
包装类:java.lang.Integer
最小值:Integer.MIN_VALUE=-2147483648
最大值:Integer.MAX_VALUE=2147483647

基本类型:long 二进制位数:64
包装类:java.lang.Long
最小值:Long.MIN_VALUE=-9223372036854775808
最大值:Long.MAX_VALUE=9223372036854775807

基本类型:float 二进制位数:32
包装类:java.lang.Float
最小值:Float.MIN_VALUE=1.4E-45
最大值:Float.MAX_VALUE=3.4028235E38

基本类型:double 二进制位数:64
包装类:java.lang.Double
最小值:Double.MIN_VALUE=4.9E-324
最大值:Double.MAX_VALUE=1.7976931348623157E308

基本类型:char 二进制位数:16
包装类:java.lang.Character
最小值:Character.MIN_VALUE=0
最大值: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。

https://avg.163.com/topic/detail/10646202 https://avg.163.com/topic/detail/10646201 https://avg.163.com/topic/detail/10646200 https://avg.163.com/topic/detail/10646199 https://avg.163.com/topic/detail/10646198 https://avg.163.com/topic/detail/10646197 https://avg.163.com/topic/detail/10646196 https://avg.163.com/topic/detail/10646195 https://avg.163.com/topic/detail/10646194 https://avg.163.com/topic/detail/10646193 https://avg.163.com/topic/detail/10646192 https://avg.163.com/topic/detail/10646191 https://avg.163.com/topic/detail/10646190 https://avg.163.com/topic/detail/10646189 https://avg.163.com/topic/detail/10646188 https://avg.163.com/topic/detail/10646187 https://avg.163.com/topic/detail/10646186 https://avg.163.com/topic/detail/10646185 https://avg.163.com/topic/detail/10646184 https://avg.163.com/topic/detail/10646183 https://avg.163.com/topic/detail/10646182 https://avg.163.com/topic/detail/10646181 https://avg.163.com/topic/detail/10646180 https://avg.163.com/topic/detail/10646179 https://avg.163.com/topic/detail/10646178 https://avg.163.com/topic/detail/10646177 https://avg.163.com/topic/detail/10646176 https://avg.163.com/topic/detail/10646175 https://avg.163.com/topic/detail/10646174 https://avg.163.com/topic/detail/10646173 https://avg.163.com/topic/detail/10646172 https://avg.163.com/topic/detail/10646171 https://avg.163.com/topic/detail/10646170 https://avg.163.com/topic/detail/10646168 https://avg.163.com/topic/detail/10646167 https://avg.163.com/topic/detail/10646166 https://avg.163.com/topic/detail/10646165 https://avg.163.com/topic/detail/10646164 https://avg.163.com/topic/detail/10646163 https://avg.163.com/topic/detail/10646162 https://avg.163.com/topic/detail/10646161 https://avg.163.com/topic/detail/10646160 https://avg.163.com/topic/detail/10646159 https://avg.163.com/topic/detail/10646158 https://avg.163.com/topic/detail/10646157 https://avg.163.com/topic/detail/10646156 https://avg.163.com/topic/detail/10646155 https://avg.163.com/topic/detail/10646154 https://avg.163.com/topic/detail/10646153 https://avg.163.com/topic/detail/10646152 https://avg.163.com/topic/detail/10646151 https://avg.163.com/topic/detail/10646150 https://avg.163.com/topic/detail/10646149 https://avg.163.com/topic/detail/10646148 https://avg.163.com/topic/detail/10646147 https://avg.163.com/topic/detail/10646146 https://avg.163.com/topic/detail/10646145 https://avg.163.com/topic/detail/10646144 https://avg.163.com/topic/detail/10646143 https://avg.163.com/topic/detail/10646142 https://avg.163.com/topic/detail/10646141 https://avg.163.com/topic/detail/10646140 https://avg.163.com/topic/detail/10646139 https://avg.163.com/topic/detail/10646138 https://avg.163.com/topic/detail/10646137 https://avg.163.com/topic/detail/10646136 https://avg.163.com/topic/detail/10646134 https://avg.163.com/topic/detail/10646135 https://avg.163.com/topic/detail/10646133 https://avg.163.com/topic/detail/10646132 https://avg.163.com/topic/detail/10646131 https://avg.163.com/topic/detail/10646130 https://avg.163.com/topic/detail/10646129 https://avg.163.com/topic/detail/10646128 https://avg.163.com/topic/detail/10646127 https://avg.163.com/topic/detail/10646126 https://avg.163.com/topic/detail/10646125 https://avg.163.com/topic/detail/10646124 https://avg.163.com/topic/detail/10646123 https://avg.163.com/topic/detail/10646122 https://avg.163.com/topic/detail/10646121 https://avg.163.com/topic/detail/10646120 https://avg.163.com/topic/detail/10646119 https://avg.163.com/topic/detail/10646118 https://avg.163.com/topic/detail/10646117 https://avg.163.com/topic/detail/10646116 https://avg.163.com/topic/detail/10646115 https://avg.163.com/topic/detail/10646114 https://avg.163.com/topic/detail/10646113 https://avg.163.com/topic/detail/10646112 https://avg.163.com/topic/detail/10646111 https://avg.163.com/topic/detail/10646110 https://avg.163.com/topic/detail/10646109 https://avg.163.com/topic/detail/10646108 https://avg.163.com/topic/detail/10646107 https://avg.163.com/topic/detail/10646106 https://avg.163.com/topic/detail/10646105 https://avg.163.com/topic/detail/10646104 https://avg.163.com/topic/detail/10646103 https://avg.163.com/topic/detail/10646102 https://avg.163.com/topic/detail/10646101 https://avg.163.com/topic/detail/10646100 https://avg.163.com/topic/detail/10646099 https://avg.163.com/topic/detail/10646098 https://avg.163.com/topic/detail/10646097 https://avg.163.com/topic/detail/10646096 https://avg.163.com/topic/detail/10646095 https://avg.163.com/topic/detail/10646094 https://avg.163.com/topic/detail/10646093 https://avg.163.com/topic/detail/10646092 https://avg.163.com/topic/detail/10646091 https://avg.163.com/topic/detail/10646090 https://avg.163.com/topic/detail/10646089 https://avg.163.com/topic/detail/10646088 https://avg.163.com/topic/detail/10646087 https://avg.163.com/topic/detail/10646086 https://avg.163.com/topic/detail/10646085 https://avg.163.com/topic/detail/10646084 https://avg.163.com/topic/detail/10646083 https://avg.163.com/topic/detail/10646082 https://avg.163.com/topic/detail/10646081 https://avg.163.com/topic/detail/10646080 https://avg.163.com/topic/detail/10646079 https://avg.163.com/topic/detail/10646078 https://avg.163.com/topic/detail/10646077 https://avg.163.com/topic/detail/10646076 https://avg.163.com/topic/detail/10646075 https://avg.163.com/topic/detail/10646074 https://avg.163.com/topic/detail/10646073 https://avg.163.com/topic/detail/10646072 https://avg.163.com/topic/detail/10646071 https://avg.163.com/topic/detail/10646070 https://avg.163.com/topic/detail/10646069 https://avg.163.com/topic/detail/10646068 https://avg.163.com/topic/detail/10646067 https://avg.163.com/topic/detail/10646066 https://avg.163.com/topic/detail/10646065 https://avg.163.com/topic/detail/10646064 https://avg.163.com/topic/detail/10646063 https://avg.163.com/topic/detail/10646062 https://avg.163.com/topic/detail/10646061 https://avg.163.com/topic/detail/10646060 https://avg.163.com/topic/detail/10646059 https://avg.163.com/topic/detail/10646058 https://avg.163.com/topic/detail/10646057 https://avg.163.com/topic/detail/10646056 https://avg.163.com/topic/detail/10646055 https://avg.163.com/topic/detail/10646054 https://avg.163.com/topic/detail/10646053 https://avg.163.com/topic/detail/10646052 https://avg.163.com/topic/detail/10646051 https://avg.163.com/topic/detail/10646050 https://avg.163.com/topic/detail/10646049 https://avg.163.com/topic/detail/10646048 https://avg.163.com/topic/detail/10646047 https://avg.163.com/topic/detail/10646046 https://avg.163.com/topic/detail/10646045 https://avg.163.com/topic/detail/10646044 https://avg.163.com/topic/detail/10646043 https://avg.163.com/topic/detail/10646042 https://avg.163.com/topic/detail/10646041 https://avg.163.com/topic/detail/10646040 https://avg.163.com/topic/detail/10646039 https://avg.163.com/topic/detail/10646038 https://avg.163.com/topic/detail/10646037 https://avg.163.com/topic/detail/10646036 https://avg.163.com/topic/detail/10646035 https://avg.163.com/topic/detail/10646034 https://avg.163.com/topic/detail/10646033 https://avg.163.com/topic/detail/10646032 https://avg.163.com/topic/detail/10646031 https://avg.163.com/topic/detail/10646030 https://avg.163.com/topic/detail/10646029 https://avg.163.com/topic/detail/10646028 https://avg.163.com/topic/detail/10646027 https://avg.163.com/topic/detail/10646026 https://avg.163.com/topic/detail/10646025 https://avg.163.com/topic/detail/10646024 https://avg.163.com/topic/detail/10646023 https://avg.163.com/topic/detail/10646022 https://avg.163.com/topic/detail/10646021 https://avg.163.com/topic/detail/10646020 https://avg.163.com/topic/detail/10646019 https://avg.163.com/topic/detail/10646018 https://avg.163.com/topic/detail/10646017 https://avg.163.com/topic/detail/10646016 https://avg.163.com/topic/detail/10646014 https://avg.163.com/topic/detail/10646013 https://avg.163.com/topic/detail/10646012 https://avg.163.com/topic/detail/10646011 https://avg.163.com/topic/detail/10646010 https://avg.163.com/topic/detail/10646009 https://avg.163.com/topic/detail/10646008 https://avg.163.com/topic/detail/10646007 https://avg.163.com/topic/detail/10646006 https://avg.163.com/topic/detail/10646005 https://avg.163.com/topic/detail/10646004 https://avg.163.com/topic/detail/10646003 https://avg.163.com/topic/detail/10646002 https://avg.163.com/topic/detail/10646001 https://avg.163.com/topic/detail/10645999 https://avg.163.com/topic/detail/10646000 https://avg.163.com/topic/detail/10645998 https://avg.163.com/topic/detail/10645997 https://avg.163.com/topic/detail/10645996 https://avg.163.com/topic/detail/10645995 https://avg.163.com/topic/detail/10645994 https://avg.163.com/topic/detail/10645993 https://avg.163.com/topic/detail/10645992 https://avg.163.com/topic/detail/10645991 https://avg.163.com/topic/detail/10645990 https://avg.163.com/topic/detail/10645989 https://avg.163.com/topic/detail/10645988 https://avg.163.com/topic/detail/10645987 https://avg.163.com/topic/detail/10645986 https://avg.163.com/topic/detail/10645985 https://avg.163.com/topic/detail/10645984 https://avg.163.com/topic/detail/10645983 https://avg.163.com/topic/detail/10645981 https://avg.163.com/topic/detail/10645982 https://avg.163.com/topic/detail/10645980 https://avg.163.com/topic/detail/10645979 https://avg.163.com/topic/detail/10645978 https://avg.163.com/topic/detail/10645977 https://avg.163.com/topic/detail/10645976 https://avg.163.com/topic/detail/10645975 https://avg.163.com/topic/detail/10645974 https://avg.163.com/topic/detail/10645973 https://avg.163.com/topic/detail/10645972 https://avg.163.com/topic/detail/10645971 https://avg.163.com/topic/detail/10645970 https://avg.163.com/topic/detail/10645969 https://avg.163.com/topic/detail/10645968 https://avg.163.com/topic/detail/10645967 https://avg.163.com/topic/detail/10645966 https://avg.163.com/topic/detail/10645965 https://avg.163.com/topic/detail/10645964 https://avg.163.com/topic/detail/10645963 https://avg.163.com/topic/detail/10645962 https://avg.163.com/topic/detail/10645961 https://avg.163.com/topic/detail/10645960 https://avg.163.com/topic/detail/10645959 https://avg.163.com/topic/detail/10645958 https://avg.163.com/topic/detail/10645957 https://avg.163.com/topic/detail/10645956 https://avg.163.com/topic/detail/10645955 https://avg.163.com/topic/detail/10645954 https://avg.163.com/topic/detail/10645953 https://avg.163.com/topic/detail/10645952 https://avg.163.com/topic/detail/10645951 https://avg.163.com/topic/detail/10645950 https://avg.163.com/topic/detail/10645949 https://avg.163.com/topic/detail/10645948 https://avg.163.com/topic/detail/10645947 https://avg.163.com/topic/detail/10645946 https://avg.163.com/topic/detail/10645945 https://avg.163.com/topic/detail/10645944 https://avg.163.com/topic/detail/10645943 https://avg.163.com/topic/detail/10645942 https://avg.163.com/topic/detail/10645941 https://avg.163.com/topic/detail/10645940 https://avg.163.com/topic/detail/10645939 https://avg.163.com/topic/detail/10645938 https://avg.163.com/topic/detail/10645937 https://avg.163.com/topic/detail/10645936 https://avg.163.com/topic/detail/10645935 https://avg.163.com/topic/detail/10645934 https://avg.163.com/topic/detail/10645933 https://avg.163.com/topic/detail/10645932 https://avg.163.com/topic/detail/10645931 https://avg.163.com/topic/detail/10645930 https://avg.163.com/topic/detail/10645929 https://avg.163.com/topic/detail/10645928 https://avg.163.com/topic/detail/10645927 https://avg.163.com/topic/detail/10645926 https://avg.163.com/topic/detail/10645925 https://avg.163.com/topic/detail/10645924 https://avg.163.com/topic/detail/10645923 https://avg.163.com/topic/detail/10645922 https://avg.163.com/topic/detail/10645921 https://avg.163.com/topic/detail/10645920 https://avg.163.com/topic/detail/10645919 https://avg.163.com/topic/detail/10645918 https://avg.163.com/topic/detail/10645917 https://avg.163.com/topic/detail/10645916 https://avg.163.com/topic/detail/10645915 https://avg.163.com/topic/detail/10645914 https://avg.163.com/topic/detail/10645913 https://avg.163.com/topic/detail/10645912 https://avg.163.com/topic/detail/10645911 https://avg.163.com/topic/detail/10645910 https://avg.163.com/topic/detail/10645909 https://avg.163.com/topic/detail/10645908 https://avg.163.com/topic/detail/10645907 https://avg.163.com/topic/detail/10645906 https://avg.163.com/topic/detail/10645905 https://avg.163.com/topic/detail/10645903 https://avg.163.com/topic/detail/10645902 https://avg.163.com/topic/detail/10645901 https://avg.163.com/topic/detail/10645900 https://avg.163.com/topic/detail/10645899 https://avg.163.com/topic/detail/10645898 https://avg.163.com/topic/detail/10645897 https://avg.163.com/topic/detail/10645896 https://avg.163.com/topic/detail/10645895 https://avg.163.com/topic/detail/10645894 https://avg.163.com/topic/detail/10645893 https://avg.163.com/topic/detail/10645892 https://avg.163.com/topic/detail/10645891 https://avg.163.com/topic/detail/10645890 https://avg.163.com/topic/detail/10645889 https://avg.163.com/topic/detail/10645888 https://avg.163.com/topic/detail/10645887 https://avg.163.com/topic/detail/10645886 https://avg.163.com/topic/detail/10645885 https://avg.163.com/topic/detail/10645884 https://avg.163.com/topic/detail/10645882 https://avg.163.com/topic/detail/10645883 https://avg.163.com/topic/detail/10645881 https://avg.163.com/topic/detail/10645880 https://avg.163.com/topic/detail/10645879 https://avg.163.com/topic/detail/10645878 https://avg.163.com/topic/detail/10645877 https://avg.163.com/topic/detail/10645876 https://avg.163.com/topic/detail/10645875 https://avg.163.com/topic/detail/10645874 https://avg.163.com/topic/detail/10645873 https://avg.163.com/topic/detail/10645872 https://avg.163.com/topic/detail/10645871 https://avg.163.com/topic/detail/10645870 https://avg.163.com/topic/detail/10645869 https://avg.163.com/topic/detail/10645868 https://avg.163.com/topic/detail/10645867 https://avg.163.com/topic/detail/10645866 https://avg.163.com/topic/detail/10645865 https://avg.163.com/topic/detail/10645864 https://avg.163.com/topic/detail/10645863 https://avg.163.com/topic/detail/10645862 https://avg.163.com/topic/detail/10645861 https://avg.163.com/topic/detail/10645860 https://avg.163.com/topic/detail/10645857 https://avg.163.com/topic/detail/10645858 https://avg.163.com/topic/detail/10645859 https://avg.163.com/topic/detail/10645856 https://avg.163.com/topic/detail/10645855 https://avg.163.com/topic/detail/10645854 https://avg.163.com/topic/detail/10645853 https://avg.163.com/topic/detail/10645852 https://avg.163.com/topic/detail/10645851 https://avg.163.com/topic/detail/10645850 https://avg.163.com/topic/detail/10645849 https://avg.163.com/topic/detail/10645848 https://avg.163.com/topic/detail/10645847 https://avg.163.com/topic/detail/10645846 https://avg.163.com/topic/detail/10645845 https://avg.163.com/topic/detail/10645844 https://avg.163.com/topic/detail/10645843 https://avg.163.com/topic/detail/10645842 https://avg.163.com/topic/detail/10645841 https://avg.163.com/topic/detail/10645840 https://avg.163.com/topic/detail/10645839 https://avg.163.com/topic/detail/10645838 https://avg.163.com/topic/detail/10645837 https://avg.163.com/topic/detail/10645836 https://avg.163.com/topic/detail/10645833 https://avg.163.com/topic/detail/10645835 https://avg.163.com/topic/detail/10645834

实际上,JAVA中还存在另外一种基本类型 void,它也有对应的包装类 java.lang.Void,不过我们无法直接对它们进行操作。

类型默认值

下表列出了 Java 各个类型的默认值:

数据类型默认值
int 0
long 0L
short 0
char '\\u0000'
byte 0
float 0.0f
double 0.0d
boolean false
引用类型(类、接口、数组) null

说明:

  • int, short, long, byte 的默认值是0。
  • char 的默认值是 \\u0000(空字符)。
  • float 的默认值是 0.0f。
  • double 的默认值是 0.0d。
  • boolean 的默认值是 false。
  • 引用类型(类、接口、数组)的默认值是 null。

实例

public class Test { static boolean bool; static byte by; static char ch; static double d; static float f; static int i; static long l; static short sh; static String str; public static void main(String[] args) { System.out.println("Bool :" + bool); System.out.println("Byte :" + by); System.out.println("Character:" + ch); System.out.println("Double :" + d); System.out.println("Float :" + f); System.out.println("Integer :" + i); System.out.println("Long :" + l); System.out.println("Short :" + sh); System.out.println("String :" + str); } }

实例输出结果为:

Bool :false
Byte :0
Character:
Double :0.0
Float :0.0
Integer :0
Long :0
Short :0
String :null


引用类型

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

Java 常量

常量在程序运行时是不能被修改的。

在 Java 中使用 final 关键字来修饰常量,声明方式和变量类似:

final double PI = 3.1415927;

虽然常量名也可以用小写,但为了便于识别,通常使用大写字母表示常量。

字面量可以赋给任何内置类型的变量。例如:

byte a = 68;
char a = 'A'

byte、int、long、和short都可以用十进制、16进制以及8进制的方式来表示。

当使用字面量的时候,前缀 0 表示 8 进制,而前缀 0x 代表 16 进制, 例如:

int decimal = 100;
int octal = 0144;
int hexa = 0x64;

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

"Hello World"
"two\\nlines"
"\\"This is in quotes\\""

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

char a = '\\u0001';
String a = "\\u0001";

Java语言支持一些特殊的转义字符序列。

符号字符含义
\\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类型进行类型转换。

  • 2. 不能把对象类型转换成不相关类的对象。

  • 3. 在把容量大的类型转换为容量小的类型时必须使用强制类型转换。

  • 4. 转换过程中可能导致溢出或损失精度,例如:

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

    因为 byte 类型是 8 位,最大值为127,所以当 int 强制转换为 byte 类型时,值 128 时候就会导致溢出。

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

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

自动类型转换

必须满足转换前的数据类型的位数要低于转换后的数据类型,例如: short数据类型的位数为16位,就可以自动转换位数为32的int类型,同样float数据类型的位数为32,可以自动转换为64位的double类型。

实例

public class ZiDongLeiZhuan{ public static void main(String[] args){ char c1='a';//定义一个char类型 int i1 = c1;//char自动类型转换为int System.out.println("char自动类型转换为int后的值等于"+i1); char c2 = 'A';//定义一个char类型 int i2 = c2+1;//char 类型和 int 类型计算 System.out.println("char类型和int计算后的值等于"+i2); } }

运行结果为:

char自动类型转换为int后的值等于97
char类型和int计算后的值等于66

解析:c1 的值为字符 a ,查 ASCII 码表可知对应的 int 类型值为 97, A 对应值为 65,所以 i2=65+1=66。

强制类型转换

  • 1. 条件是转换的数据类型必须是兼容的。

  • 2. 格式:(type)value type是要强制类型转换后的数据类型 实例:

    实例

    public class ForceTransform { public static void main(String[] args){ int i1 = 123; byte b = (byte)i1;//强制类型转换为byte System.out.println("int强制类型转换为byte后的值等于"+b); } }

    运行结果:

    int强制类型转换为byte后的值等于123

隐含强制类型转换

  • 1、 整数的默认类型是 int。

  • 2、 小数默认是 double 类型浮点型,在定义 float 类型时必须在数字后面跟上 F 或者 f。

这一节讲解了 Java 的基本数据类型。下一节将探讨不同的变量类型以及它们的用法。

赞(0)
未经允许不得转载:171主机测评 » Java语言提供了八种基本类型。六种数字类型【函数规范123】
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址