Java数据类型

来源:互联网 发布:sql 表中复制数据 编辑:程序博客网 时间:2024/06/11 11:05

首先明确几个概念:变量、常量。

  • 变量即在程序运行过程中它的值是允许改变的量。

    • 是计算机语言中能储存计算结果或能表示值抽象概念,可以通过变量名来访问获取变量名所指向在内存中存储的各种数据。变量的实质是表示了计算机的一块内存空间。
    • 变量名的名是有规则的,需要使用有代表含义的单词,能够望文知义,但不能使用关键字,例如:public,int,class 等。
    • 变量名首字母必须为字母(a-z A-Z),下划线(_),或者美元符号($)开始,后面每个单词字母大写,或者可以跟数字。
    • 使用变量的步骤:
      • 1、声明变量,根据数据的类型在内存申请空间。
      • 2、赋值。(将数据存储到变量名指向的内存空间)
      • 3、使用。
  • 常量即在程序运行过程中它的值是不允许改变的量。

    • 整型值(如:18),浮点值(如:3.4f,5.8),布尔值(如:true,false),null值,字符(如:’m’),字符串(如:”hello”)
    • 自定义常量的关键字final, 例如:final double PI = 3.14PI的值在后面的语句中不能被修改

八种基本数据类型

Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,一种布尔型。
1. byte
  1个字节的8位的有符号整数,最小值是 -128(-2^7),最大值是 127(2^7-1),默认值是 0;
例:byte a = 100byte b = -50
2. short
  2个字节的16位的有符号整数,最小值是 -32768(-2^15),最大值是 32767(2^15 - 1)),默认值是 0;
例:short a = 1000short b = -20000
3. int
  4个字节的32位的有符号整数,最小值是 -2,147,483,648(-2^31),最大值是 2,147,483,647(2^31 - 1),默认值是 0;
例:int a = 100000int b = -200000
4. long
  8个字节的64位的有符号整数,最小值是 -9,223,372,036,854,775,808(-2^63),最大值是 9,223,372,036,854,775,807(2^63 -1),默认值是 0;
例:long a = 100000Llong b = -200000L
5. float
  4个字节的32位的单精度浮点数,最小值是 -3.4E38,最大值是 3.4E38,默认值是 0.0f;
例:float f1 = 234.5f
6. double
  8个字节的64位的双精度浮点数,最小值是 -1.7E308,最大值是 1.7E308 ,默认值是 0.0d;
例:double d1 = 123.4。(java默认浮点数是double型的,0.0d的d可以省略不写)
7. char
  2字节16位的 Unicode 字符,最小值是 \u0000(即为0),最大值是 \uffff(即为65,535),char 数据类型可以储存任何字符;
例:char letter = 'a'
8. boolean
  1字节8位的布尔值;只有两个取值:true 和 false;这种类型只作为一种标志来记录 true/false 情况;
例:boolean flag = true

注意:

  • 基本数据类型在被创建时,在栈上给其划分一块内存,将数值直接存储在栈上。
  • 基本数据类型没有默认的初始值,使用前必需先赋值。

基本数据类型间的转换

数据存储的位数越多,类型的级别越高
低 ——————————————> 高
byte—>short—>int—>long—>float—>double
char—>int
不能对boolean类型进行类型转换

自动类型转换

低级别的在算术运算或是赋值运算时会自动转成高级别的类型
例:
5 + 6.5f 结果是浮点型
int a = 10;
double b = a; a自动转换成double型

强制类型转换

高级别转成低级别类型时,使用一对小括号进行强制类型转换
例:
double a = 365.85;
int b = (int)a; a强制转换成int型
强制类型转换的时候,可能会丢失数据,a强制转成int类型的时候,浮点后面的数据就没了
int m = 128;
byte n = (byte)m; m强制转换成byte型,最高位数据将溢出丢失,因为byte型数据最大只能是127

引用数据类型

类、接口、数组、枚举…
* 引用数据类型在被创建时,首先在栈上给其引用分配一块内存,存储的是指向对象的地址,而对象的具体信息都存储在堆内存上。引用数据类型的本质是一个指针。(java中没有指针,这里借用指针的说法,方便理解)
* 引用数据类型默认的初始值是 null , 使用时注意初始化对象,不然直接使用会报空指针异常。

原创粉丝点击