java变量基础

  • 变量的使用
  • 变量的分类-按数据类型
  • 数据类型
  • 整型类型:byte、short、int、long
  • 浮点类型:float、double
  • 布尔型:boolean
  • 基本数据类型之间的运算规则


变量的使用

java定义变量的格式:数据类型 变量名 = 变量值;

public class Variable {
    public static void main(String[] args) {
        //变量的定义
        int myAge = 12;
        //变量的使用
        System.out.println(myAge);

        //System.out.println(myNumber); //编译错误,使用myNumber之前并未定义过myNumber

        //变量的声明
        int myNumber;
        //变量的赋值

        //System.out.println(myNumber); //编译错误,使用myNumber之前并未赋值过myNumber

        myNumber = 1001;
        System.out.println(myNumber);

        //System.out.println(myClass);  //编译报错:变量作用域在method方法中,不能在main方法中使用

        //int myNumber = 1002   //编译报错,同一个作用域中不能出现重名变量
    }

    public void method(){
        int myClass = 1;
    }
}

变量的分类-按数据类型

对于每一种数据都定义了明确的具体数据类型(强类型语言),在内存中分配了不同大小的内存空间

数据类型
  • 基本数据类型(primitive type)
  • 数值型
  • 整数类型(byte,short,int,long)
  • 浮点类型(float,double)
  • 字符型(char)
  • 布尔型(boolean)
  • 引用数据类型
  • 类(class)(字符串)
  • 接口(interface)
  • 数组([])

整型类型:byte、short、int、long

  • Java中各整数类型有固定的表数范围和字段长度,不受具体OS的影响,以保证java程序的可移植性
  • java的整型常量默认为int型,声明long型常量必须后加“l”或“L”
  • java程序中变量通常声明为int型,除非不足以表示较大的数,才使用long

类型

占用存储空间

表数范围

byte

1字节 = 8bit位

-128——127

short

2字节

-215——215-1

int

4字节

-231——231-1(约21亿)

long

8字节

-263——263-1

浮点类型:float、double

  • 与整数类型类似,Java浮点类型也有固定的表数范围和字段长度,不受具体操作系统的影响
  • 浮点型常量的两种表示形式:
  • 十进制数形式:如5.12 5.12of 5.12(必须有小数点)
  • 科学计数法形式:如5.12e2 512E2 100E-2
  • float:单精度,尾数可以精确到7位有效数字。很多情况下,精度很难满足需求(float表示数值的范围比long还大)
  • double:双精度,精度是float的两倍。通常采用此类型(浮点型常量默认double类型)
  • java的浮点型常量默认为double型,声明float型常量,须后加“f”或“F”

类型

占用存储空间

表数范围

单精度float

4字节

-3.403E38——3.403E38

双精度double

8字节

-1.798E308——1.798E308

布尔型:boolean

  • 只能取两个值之一:true、false
  • 常常在条件判断、循环结构中使用

基本数据类型之间的运算规则

注意:这里只讨论7中基本数据类型变量间的运算。不包含boolean类型的

  1. 自动类型提升

结论:当容量小的数据类型的变量与容量大的数据类型的变量做运算时,结果自动提升为容量大的数据类型

byte、char、short---->int------>long------>float----->double

特别的:当byte、char、short三种类型的变量做运算时,结果为int型

  1. 强制类型转换

自动类型提升运算的逆运算

①需要使用强转符:()

②注意:强制类型转换可能导致精度损失

说明:此时的容量大小指的是,表示数的范围的大和小。比如:float容量要大于long的容量