Java基础笔记(二)

130 阅读4分钟

变量

当需要在程序中记录单个数据内容时,则声明一个变量即可,而声明变 量的本质就是在内存中申请一个存储单元,由于该存储单元中的数据内 容可以发生改变,因此得名为"变量" 。 •

由于存放的数据内容大小不一样,导致所需存储单元的大小不一样,在 Java语言中使用数据类型加以描述,为了便于下次访问还需要给该变量指 定一个名字,用于记录该变量对应的存储单元。 

在Java中,变量分为两种:基本类型的变量和引用类型的变量。

在Java中,变量必须先定义后使用,在定义变量的时候,可以给它一个初始值。

变量的声明方式

• 数据类型 变量名 = 初始值; 

 • 其中=初始值可以省略,但;不可以省

int a = 1;

• Java是强类型语言,变量在使用前必须声明来指明其数据类型。 

• 变量在使用之前必须初始化。 

• 变量不能重复声明 

标识符的命名法则

  1. 由数字、字母、下划线以及$等组成,其中数字不能开头(后面讲到)。 
  2. 不能使用Java语言的关键字,所谓关键字就是Java语言用于表示特殊含义 的单词。
  3. 区分大小写,长度没有限制但不宜过长。
  4. 尽量做到见名知意,支持中文但不推荐使用。
  5. 标识符可以给类/变量/属性/方法/包 起名字。

基本数据类型

在Java语言中数据类型主要分为两大类:

(1)基本数据类型

byte、short、int、long、float、double、boolean、char 

(2)引用数据类型

 数组、类、接口、枚举、标注 

  • 整数类型:byte,short,int,long

  • 浮点数类型:float,double

  • 字符类型:char

  • 布尔类型:boolean

单个字节表示的整数范围

• 在计算机中单个字节表示八位二进制位,其中最高位(最左边)代表符号位, 使用0代表非负数,使用1代表负数

• 非负数表示范围:0000 0000 ~ 0111 1111 => 0 ~ 127 => 0 ~ 2^7-1 

• 负数表示范围:1000 0000 ~ 1111 1111 => -128 ~ -1 => -2^7 ~ -2^0 

• 单个字节表示的整数范围是:-2^7 ~ 2^7-1,也就是-128 ~ 127 

整型

对于整型类型,Java只定义了带符号的整型,因此,最高位的bit表示符号位(0表示正数,1表示负数)。各种整型能表示的最大范围如下:

  • byte:-128 ~ 127
  • short: -32768 ~ 32767
  • int: -2147483648 ~ 2147483647
  • long: -9223372036854775808 ~ 9223372036854775807

浮点型

浮点类型的数就是小数,因为小数用科学计数法表示的时候,小数点是可以“浮动”的,如1234.5可以表示成12.345x102,也可以表示成1.2345x103,所以称为浮点数。

  • 其中float类型在内存空间占4个字节,叫做单精度浮点数,可以表示7位 有效数字,范围:-3.403E38~3.403E38。 
  • 其中double类型在内存空间占8个字节,叫做双精度浮点数,可以表示15 位有效数字,范围:-1.798E308~1.798E308。 
  • Java程序中直接写出的小数数据叫做直接量,默认为double类型,若希望 表达float类型的直接量,则需要在直接量的后面加上f或者F

布尔类型

布尔类型是关系运算的计算结果

  • 数值只有:true 和 false
  • 布尔类型在内存空间中所占大小没有明确的规定,可以认为是1个字节

字符类型

字符类型char表示一个字符,Java语言中用于描述单个字符的数据类型:char类型。如:'a'、 '中'等。

  • 其中char类型在内存空间中占2个字节并且没有符号位,表示的范围是: 0 ~ 65535,由于现实生活中很少有数据能够被单个字符描述,
  • 多个字符串起来组成的字符串,使用String类型加 以描述,如:“hello”、 “奇点”等。 

计算机的底层只识别0和1组成的二进制序列,对于字符'a'这样的图案来 说不满足该规则,因此该数据无法直接在计算机中存储,但现实生活中 存在这样的图案数据需要计算机存储,为了使得该数据能够存储起来就 可以给该数据指定一个编号,然后将编号存储起来即可,该编号就叫做 ASCII。

基本数据类型之间的转换

Java语言中基本数据类型之间的转换方式:自动类型转换和强制类型转换。

其中自动类型转换主要指从小类型到大类型之间的转换。 

其中强制类型转换主要指从大类型到小类型之间的转换

目标类型 变量名 = (目标类型)源类型变量名

double b = (double)a;