03.基础语法(数据类型、常量)

三、数据类型

强类型语言,所有变量都必须先定义后再使用

I. 基本数据类型
II. 引用数据类型

I. 通常大家说的四类八种基本数据类型:
1. 整型
byte 、short 、int 、long(4种)
2. 浮点型
float 、 double(2种)
3. 字符型
char(1种)
4. 布尔型
boolean(1种)

序号 数据类型 位数 默认值 取值范围 举例说明
1 byte(字节) 8 0 -2^7(-128) ~ 2^7-1(127) byte b = 100;
2 short(短整数) 16 0 -2^15(-32768) ~ 2^15-1(32767) short s = 100;
3 int(整数) 32 0 -2^31(-2,147,483,648) ~ 2^31-1(2,147,483,647) int i = 100;
4 long(长整数) 64 0L -2^63L ~ 2^63-1L long l = 10L;
5 float(单精度) 32 0.0f -2^31 ~ 2^31-1 float f = 10.0f;
6 double(双精度) 64 0.0 -2^63 ~ 2^63-1 double d = 10.0;
7 char(字符) 16 0 ~ 2^16-1 char c = 'c';
8 boolean(布尔值) 8 false true、false boolean b = true;

byte
byte类型用在大型数组中节约空间,主要代替整数,因为byte变量占用的空间只有int类型的四分之一。

short
short数据类型也可以像byte那样节省空间。一个short变量是int型变量所占空间的二分之一。

int
一般地整型变量默认为int类型。

long
long类型主要使用在需要比较大整数的系统上,定义long类型需要在数字后面加“L/l”(小写看起来费劲,尽量用L),用来区分int类型。(后面的类型转换知识点会后续解释)

float
float在储存大型浮点数组的时候可节省内存空间,定义浮点数类型,需要加上“F/f”,用于区分double类型。

double
浮点数的默认类型为double类型,定义浮点数时候,可加可不加“D/d”。浮点数不能用来表示精确的值,如货币

char
char数据类型可以储存任何字符,最小值是’\u0000’(即为0),最大值是’\uffff’(即为2^16-1=65535)。

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

跑下代码

public class PrimitiveTypeTest {
    public static void main(String[] args) {
        //byte
        System.out.println("byte二进制位数:" + Byte.SIZE);
        System.out.println("最大值:Byte.MAX_VALUE=" + Byte.MAX_VALUE);
        System.out.println("最小值:Byte.MIN_VALUE=" + Byte.MIN_VALUE);
        System.out.println();
        //short
        System.out.println("short二进制位数:" + Short.SIZE);
        System.out.println("最大值:Short.MAX_VALUE=" + Short.MAX_VALUE);
        System.out.println("最小值:Short.MIN_VALUE=" + Short.MIN_VALUE);
        System.out.println();
        //int
        System.out.println("int二进制位数:" + Integer.SIZE);
        System.out.println("最大值:Integer.MAX_VALUE=" + Integer.MAX_VALUE);
        System.out.println("最小值:Integer.MIN_VALUE=" + Integer.MIN_VALUE);
        System.out.println();
        //long
        System.out.println("long二进制位数:" + Long.SIZE);
        System.out.println("最大值:Long.MAX_VALUE=" + Long.MAX_VALUE);
        System.out.println("最小值:Long.MIN_VALUE=" + Long.MIN_VALUE);
        System.out.println();
        //float
        System.out.println("float二进制位数:" + Float.SIZE);
        System.out.println("最大值:Float.MAX_VALUE=" + Float.MAX_VALUE);
        System.out.println("最小值:Float.MIN_VALUE=" + Float.MIN_VALUE);
        System.out.println();
        //double
        System.out.println("double二进制位数:" + Double.SIZE);
        System.out.println("最大值:Double.MAX_VALUE=" + Double.MAX_VALUE);
        System.out.println("最小值:Double.MIN_VALUE=" + Double.MIN_VALUE);
        System.out.println();
        // char
        System.out.println("char 二进制位数:" + Character.SIZE);
        System.out.println("最小值:Character.MAX_VALUE=" + (int)Character.MAX_VALUE);
        System.out.println("最大值:Character.MIN_VALUE=" + (int) Character.MIN_VALUE);

    }
}

运行后输出结果

byte二进制位数:8
最大值:Byte.MAX_VALUE=127
最小值:Byte.MIN_VALUE=-128

short二进制位数:16
最大值:Short.MAX_VALUE=32767
最小值:Short.MIN_VALUE=-32768

int二进制位数:32
最大值:Integer.MAX_VALUE=2147483647
最小值:Integer.MIN_VALUE=-2147483648

long二进制位数:64
最大值:Long.MAX_VALUE=9223372036854775807
最小值:Long.MIN_VALUE=-9223372036854775808

float二进制位数:32
最大值:Float.MAX_VALUE=3.4028235E38
最小值:Float.MIN_VALUE=1.4E-45

double二进制位数:64
最大值:Double.MAX_VALUE=1.7976931348623157E308
最小值:Double.MIN_VALUE=4.9E-324

char 二进制位数:16
最小值:Character.MAX_VALUE=65535
最大值:Character.MIN_VALUE=0

Float和Double的最小值和最大值都是以科学记数法的形式输出的,结尾的"E+数字"表示E之前的数字要乘以10的“数字”次幂。比如3.14E3就是3.14×1000=3140,3.14E-3就是3.14/1000=0.00314。

II.引用数据类型

  • 引用类型变量由类的构造函数创建,可以使用它们访问所引用的对象。这些变量在声明时被指定为一个特定的类型,比如Employee、Pubby等。变量一旦声明后,类型就不能被改变了。
    对象、数组都是引用数据类型。
  • 所有引用类型的默认值都是null。
  • 一个引用变量可以用来引用与任何与之兼容的类型。
  • 例子:Animal animal = new Animal(“giraffe”)。

最后做个脑图巩固一下

四、Java常量

final double PI = 3.1415927;

JAVA中使用final标志,声明方式和变量相似。
常量名可以用小写,但是为了便于区分识别,通常用大写字母表示常量。
字面量可以赋给任何内置类型的变量。

byte、short、int、long都可以使用八进制、十进制、十六进制。
通常用0前缀表明是8进制,0x表明是16进制

int decimal = 100;   //10进制
int octal = 0144;    //8进制
int hexa =  0x64;    //16进制

字符串中的一些转义字符

符号 字符含义
\n 换行 (0x0a)
\r 回车 (0x0d)
\f 换页符(0x0c)
\b 退格 (0x08)
\0 空字符(0x0)
\s 字符串
\t 制表符
" 双引号
' 单引号
\ 反斜杠
\ddd 八进制字符 (ddd)
\uxxxx 16进制Unicode字符 (xxxx)
posted @ 2020-12-11 12:54  bigezero  阅读(126)  评论(0)    收藏  举报