JAVA概述
第一部分:java入门基础
第二部分:java常用类
第三部分:jdbc系列教程
第四部分:java高级特征
java8新特征详解
java文件操作专题教程

知识点

相关文章

更多

最近更新

更多

Java基本数据类型

2019-03-28 22:35|来源: 网络

Java基本数据类型

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

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

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

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,485,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,int b = -200000L。

float:

  • float数据类型是单精度、32位、符合IEEE 754标准的浮点数;

  • float在储存大型浮点数组的时候可节省内存空间;

  • 默认值是0.0f;

  • 浮点数不能用来表示精确的值,如货币;

  • 例子:float f1 = 234.5f。

double:

  • double数据类型是双精度、64位、符合IEEE 754标准的浮点数;

  • 浮点数的默认类型为double类型;

  • double类型同样不能表示精确的值,如货币;

  • 默认值是0.0f;

  • 例子:double d1 = 123.4。

boolean:

  • boolean数据类型表示一位的信息;

  • 只有两个取值:true和false;

  • 这种类型只作为一种标志来记录true/false情况;

  • 默认值是false;

  • 例子:boolean one = true。

char:

  • char类型是一个单一的16位Unicode字符;

  • 最小值是’\u0000’(即为0);

  • 最大值是’\uffff’(即为65,535);

  • 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×1000=3140,3.14E-3就是3.14/1000=0.00314。

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


引用类型

  • 引用类型变量由类的构造函数创建,可以使用它们访问所引用的对象。这些变量在声明时被指定为一个特定的类型,比如Employee、Pubby等。变量一旦声明后,类型就不能被改变了。

  • 对象、数组都是引用数据类型。

  • 所有引用类型的默认值都是null。

  • 一个引用变量可以用来引用与任何与之兼容的类型。

  • 例子:Animal animal = new Animal(“giraffe”)。


Java常量

常量就是一个固定值。它们不需要计算,直接代表相应的值。

常量指不能改变的量。 在Java中用final标志,声明方式和变量类似:

final double PI = 3.1415927;

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

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

byte a = 68;
char a = 'A'

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

当使用常量的时候,前缀o表明是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)
\s 空格 (0x20)
\t 制表符
\" 双引号
\' 单引号
\\ 反斜杠
\ddd 八进制字符 (ddd)
\uxxxx 16进制Unicode字符 (xxxx)

 

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


转自网络

相关问答

更多
  • 既消耗资源基本数据类型是用的最频繁的类型。 而且占用存储空间小,可以把它们存入栈中,实现快速的操作。 而他们的封装类Integer等,必需创建实例,又耗费时间,在堆中开辟内存
  • python基本内置数据类型有哪些 一些基本数据类型,比如:整型(数字)、字符串、元组、列表、字典和布尔类型。 随着学习进度的加深,大家还会接触到更多更有趣的数据类型,python初学者入门时先了解这几种类型就可以了。 基本内置数据类型对应符号 1)整型——int——数字 python有5种数字类型,最常见的就是整型int。例如:1234、-1234 2)布尔型——bool——用符号==表示 布尔型是一种比较特殊的python数字类型,它只有True和False两种值,它主要用来比较和判断,所得结果叫做布尔 ...
  • 您好,提问者: ==是比较基本数据类型。 equals是比较对象类型的值。 如果发生一个是基本类型,一个是字符串类型的话,可以转为字符串,例如: String str = "123"; int it = 123; boolean flag = str.equals(String.valueOf(it));
  • java语言的基本数据类型指的是字节类型byte,短整型short,整型int,长整型long,布尔型boolean,字符类型char,单精度浮点类型float,双精度浮点类型double共八大基本数据类型;引用数据类型指的是类,枚举,接口和数组类型。 二者之间的区别在于,基本数据类型的变量,存储的就是数据本身的值,而引用类型的变量,存储的则是数据的地址,这个地址指向了数据的值。
  • java基本数据类型就8种,记住就好了。除了这些都是引用型的了。 java四类八种基本数据类型 第一类:整型 byte short int long 第二类:浮点型 float double 第三类:逻辑型 boolean(它只有两个值可取true false) 第四类:字符型 char 在栈中可以直接分配内存的数据是基本数据类型。 引用数据类型:是数据的引用在栈中,但是他的对象在堆中。 要想学好Java必须知道各种数据的在内存中存储位置。 对内存有了很好的了解,可以有助你分析程序。 字节: boolean ...
  • byte(字节) 1(8位) (bit是比特位,一个字节占8个比特位) shot(短整型) 2(16位) int(整型) 4(32位) long(长整型) 8(64位) float(浮点型) 4(32位) double(双精度) 8(64位) char(字符型) 2(16位) boolean(布尔型) 1位 字节是系统分配内存的最小单位。boolean是分配一个字节,但是只有一个bit有用,其他无效置0
  • 布尔型:boolean 8位 可存储"True"和"false"========================================String一直都是面试的问题,经常会听到有人说“String型”。老师也是这样说。我不知“String型”的意思是什么!但初学者往往都会说“String型”举一个简单的例子:String str1 = "x" ; String str2 = "x" ; String str3 = new String("x") ;String本身就是一个对象而不是基本数据类型,S ...
  • str是String类型,即引用类型。它是在栈上,但不是基本数据类型。当执行String str = new String(); 这条语句时,jvm就为栈上的str表示的那块存储单元分配4个字节(32位机)的空间,用来存储堆空间的地址。这是我个人的理解,仅供参考!
  • 基本数据类型(如int,boolean,double等)与String的区别在于内存。String是以数组存放的,数组的每一个内容表示字符串的一个字符;int等变量是用几个字节存放的,几种基本类型无非就是字节数量不同而已。 而且对String对象操作会产生一个新的String对象,大大减少了字符串相加的效率,而基本类型则不会。(注:可以通过StringBuilder类操作字符串,加快速度) 但实际上,基本类型可以借助于Object类的toString()方法转换为字符串,字符串也可以通过parseInt() ...
  • 基本数据类型和包装类的区别还是很大,这点估计你也是清楚的。 比如int a = 3;Integer b = new Integer(3); a和b的值都是3,但a是值对象,b是引用对象,因此二者是不等同的。相较而言值对象使用起来更方便一些(不用手动创建对象已经实例化) char是字符型,比如 char c = 'd',这里用的是单引号,字符串用的是双引号(String s = "s"), 它并不是整数类型,只不过jdk会对照ascII表把它转成对应的数字值,我们才可以利用这个特性。 在一般的开发中我们用St ...