二,变量(variable)

1.变量的本质

  • 变量本质上就是代表一个“可操作的存储空间”,空间位置是确定的,但是里面放的值不确定。
  • 可通过变量名访问“对应的存储空间”,从而操纵这个“存储空间”存储的值。
  • java是一种强制性语言,每个变量都必须声明其数据类型,变量的数据类型决定了变量占据存储空间的大小。

1.1,使用变量时应注意

使用变量注意:

  • Java 中每个变量必须先声明,后使用;
  • 使用变量名来访问这块区域的数据;
  • 变量的作用域:其定义所在的一对{ }内;
  • 变量只有在其作用域内才有效;
  • 同一个作用域内,不能定义重名的变量;

1.2,声明变量

  • 语法:<数据类型> <变量名称>
  • 例如:int var;

1.3、变量的赋值

语法:<变量名称> = <值>
例如:var = 10;

2.基本数据类型

变量的分类-按数据类型

2.1整数类型:byte、short、int、long
类型 占用存储空间 表数范围
byte 1字节 -128 ~ 127
short 2字节 -2^15~ 2^15-1
int 4字节 -2^31~ 2^31-1 (约21亿)
long 8字节 -2^63~ 2^63-1
2.2浮点类型:float、double
float:单精度,尾数可以精确到7位有效数字。很多情况下,精度很难满足需求。
double:双精度,精度是float的两倍。通常采用此类型。
2.3字符类型:char

  • char 型数据用来表示通常意义上“字符”(2字节)
  • Java中的所有字符都使用Unicode编码,故一个字符可以存储一个字母,一个汉字,或其他书面语的一个字符。
  • 字符型变量的三种表现形式:
  • 字符常量是用单引号(‘ ’)括起来的单个字符。例如:char c1 = ‘a’; char c2 = ‘中’; char c3 = ‘9’;
    2.4布尔型:boolean
  • //① 只能取两个值之一:true 、false
  • //② 常常在条件判断、循环结构中使用

按照数据类型来分:

  • 基本数据类型:
    整型:byte \ short \ int \ long
    浮点型:float \ double
    字符型:char
    布尔型:boolean
  • 引用数据类型:
    类:class
    接口:interface
    数组:array

3,基本数据类型转换

自动类型转换:容量小的类型自动转换为容量大的数据类型。数据类型按容量大小排序为:

有多种类型的数据混合运算时,系统首先自动将所有数据转换成容量最大的那种数据类型,然后再进行计算。
byte,short,char之间不会相互转换,他们三者在计算时首先转换为int类型。
boolean类型不能与其它数据类型运算。
当把任何基本数据类型的值和字符串(String)进行连接运算时(+),基本数据类型的值将自动转化为字符串(String)类型。
基本数据类型之间的运算规则:

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

  1. 自动类型提升:
    当容量小的数据类型的变量和容量大的数据类型的变量做运算时,结果自动提升为容量大的数据类型。
    char、byte、short–>int–>long–>float–>double

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

  2. 强制类型转换:

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

  • 自动类型转换的逆过程,将容量大的数据类型转换为容量小的数据类型。使用时要加上强制转换符:(),但可能造成精度降低或溢出,格外要注意。
  • 通常,字符串不能直接转换为基本类型,但通过基本类型对应的包装类则可以实现把字符串转换成基本类型。
    如:String a = “43”; inti= Integer.parseInt(a);
    boolean类型不可以转换为其它的数据类型。
  1. ASCII表
    因为计算机内部只能识别01二进制数字,对于数字而言,
    可以直接转换为二进制,但是对于人类的文字而言如何
    转换为二进制的01呢?因为自己算最早出现在美国,所以
    美国就编写了一张码表,将人类的语言和符号和计算机
    中的01进行对应
  • 当输入人类语的时候,操纵系统就会去查询对应的码表,
    将这些语言转换为对应的二进制,因为是美国人的语言
    只有英文,所以ASCII中只有英文和一些标点,每个英文
    字母和符号对应一个字节(8位)的二进制数字
    不需要我们全部记忆,只需大家记住(0­9)对应(48­57),
    (A­Z)对应(65­90),(a­z)对应(97­122)

  • 因为不能识别中文,所以中国编写自己第一张简体中文
    编码表GB2312(简体中文,符号,日本假名),因为存的字
    有限,所以后来升级成为GBK(增加繁体中文和少数名族
    文字),我们的操作系统,如果设置成中文就是GBK编码

  • 因为后来出现了很多码表,所以世界标准组织ISO推出
    了Unicode编码表(万国码表),规定一个字符占用两个字

    所有的编码表都支持ASCII编码表

4,字符串类型:String

String不是基本数据类型,属于引用数据类型
使用方式与基本数据类型一致。例如:String str= “abcd”;
一个字符串可以串接另一个字符串,也可以直接串接其他类型的数据。