内容纲要

数据类型

  • 基本数据类型:字节型、短整型、整型、长整型、单精度浮点型、双精度浮点型、字符型、布尔型
  • 引用数据类型:数组、类、接口等

基本数据类型

数据类型占用字节取值范围
整数字节型(byte)1个字节-128~127
短整型(short)2个字节-32768~32767
整型(int)4个字节-231~231-1
长整型(long)8个字节-263~263-1
浮点数单精度浮点型(float)4个字节1.4013*10-45~3.4028*1038
双精度浮点型(double)8个字节4.9*10-324~1.7977*10308
字符型char2个字节0-65535
布尔型boolean1个字节true,false

其中整数的默认数据类型为int,浮点数为double
布尔型在《Java虚拟机规范》中的描述:“虽然定义了boolean这种数据类型,但是只对它提供了非常有限的支持。在Java虚拟机中没有任何供boolean值专用的字节码指令,Java语言表达式所操作的boolean值,在编译之后都使用Java虚拟机中的int数据类型来代替,而boolean数组将会被编码成Java虚拟机的byte数组,每个元素boolean元素占8位”。也就是说JVM规范指出boolean当做int处理,也就是4字节,boolean数组当做byte数组处理,这样我们可以得出boolean类型占了单独使用是4个字节,在数组中是确定的1个字节。

变量

变量是用来保存数值,可以看做一个容器。
变量的定义方式为:数据类型 变量名 = 值;
已经定义的变量不可再次定义,只能通过变量名 = 值;进行改变它的值。

整数

byte

byte a = 127;
byte b = 0b1111;
byte o = 017;
byte h = 0xF;

其中byte的默认值为0,变量b为15的二进制表示以0b开头,变量c为15的八进制表示以0开头,变量h为15的十六进制表示0x开头。

short

short a = 32767;

其中short的默认值为0

int

int a = 2147483647;

其中int的默认值为0

long

long a = 9223372036854775807L;

其中long的默认值为0L,使用long类型定义的变量值后加L,使用l容易和1混淆。

浮点数

float

float a = 3.4028E+38F;

其中float的默认值为0.0F,使用float类型定义的变量值后加F,上述使用的是科学表示法,3.4028E+38表示为3.4028*1038

double

double a = 1.7977E+308;

其中double的默认值为0.0D,用double类型定义的变量值后可加可不加D

字符

char a = 'a';
char b = '\u1220';

其中char的默认值为'u0000',其中''里必须有且仅有一个字符,'\u1220'为16进制Unicode字符。

布尔

boolean a = false;

其中boolean的默认值为false

var

jdk8之后引入,可以替代任何变量类型,像弱类型的JavaScriptvar一样可以自动识别。

var a = 'a';
var b = 1;
var c = false;
var s = new Scanner(System.in);

变量的作用域

public class Test{

    public static void main(String[] args){

        int a = 11;

        {
            int b = 12;
            System.out.println(b);
        }
        System.out.println(a);
        System.out.println(b);//编译错误,从}结束之后b被销毁
    }

}

变量的作用域从被定义开始一直到所属的语句块.....结束,变量作用域大范围的不可使用,小范围的可使用大范围变量。

编译错误

常量

在Java程序运行中,固定不变的数据。
使用final关键字进行定义修饰,赋值后不可修改,否则编译错误。

整数常量

final byte A = 127;
final short B = 32767;
final int C = 2147483647;
final long D = 9223372036854775807L;

只使用数值,默认为int类型。

浮点数常量

final float A = 3.4028E+38F;
final double B = 1.7977E+308;

只使用数值,默认为double类型。

字符常量

final char A = 'a';

''里必须有内容。

字符串常量

final String A = "";

""里可以是空串。

布尔常量

final boolean A = false;

空常量

final String A = null;

引用类型的默认值就是null

最后修改日期:2020年8月2日

作者

留言

撰写回覆或留言

发布留言必须填写的电子邮件地址不会公开。