上次回顾:程序的概念,编程语言的概念。第一个java“指令” :System.out.print/println;集成化的开发工具的使用。

这次主要谈谈变量。

变量从字面上理解,就是可变的量,比如,世界最高的人,中国最有钱的人等等,这些都是可能变化的,可变的。

程序的变量指的是什么呢?程序中的变量,主要是指内存空间(如果把计算机做一个逻辑上的极致简化,只有cpu 内存,cpu负责计算,内存存储数据,计算的来源和计算的结果都在内存中),内存分配了一个空间,这个空间有地址编号,给他一个名字(变量名),就可以用这个名字指代这个内存区域存放的值。

数据的变量类型(数据类型和运算符-1)(1)

内存和旅馆的对比

当然,内存的地址应该是最真切的变量名,但是这个名字是一串奇怪的数字,很难使用,一般会用一个好读好记的有意义的单词作为替代,我们一般称这个名字为变量名。

就像旅馆的房间有单间,双人间一样,根据所放值的不同,申请的内存空间也不同,这些不同我们称为变量的类型,常用的类型如下表,不是说只有这些类型,而是有了这几个类型,基本上基础部分就没有问题了:

数据的变量类型(数据类型和运算符-1)(2)

数据的变量类型(数据类型和运算符-1)(3)

常用类型的含义

程序就是要解决人在生成,生活中碰到的问题,解决问题,首先是要模拟问题,会碰到很多类似的场景,需要描述一些东西,你做银行的管理程序,管理客户的余额,这个肯定是数字类型,具体说,double。账户的信息,比如姓名,手机,地址都是字符串,string,年龄是数字,等等。这些值都可能变化,账户余额随着取钱存钱的操作会发生变化,手机号也可能发生改变。

所以,使用变量的步骤:

  1. 声明变量,即“根据数据类型在内存申请空间”
  2. 第二步:赋值,即“将数据存储至对应的内存空间”,一和二可以一起完成
  3. 第三步:使用变量,即“取出数据使用 ”
  4. java的规范中,类型在前,变量名在后,赋值用=符号

如下的案例,有个很坑的陷阱:

数据的变量类型(数据类型和运算符-1)(4)

" "表示字符串的拼接

上图的案例中,name为么没有显示出名字 "张大帆",而是把名字 name 显示出来了,要留意。变量不能在字符串的双引号中,修改之后的运行效果如下:

数据的变量类型(数据类型和运算符-1)(5)

正确的结果

其实有的时候到底该用什么类型,有的时候很难确定合适的类型。比如我比如有时候中国的人口,肯定不可能有小数点,但是考虑到这个人口很难精确统计,她是一个动态的变化,每一步都有很多人嗝屁,也有很多人出生,以大家发现我们人口总统地说13.5亿这样表达,小数点那个概述说明一下就可以了。

同时大家要明白,每一个类型都是有范围的,就像int不能表示所有的整数,范围是有限的,大约是 正负二十一亿。double类型虽然数值范围比较大(10的308次方),但是他的精度(小数点位数)也是有限的!同时,数字类型一般都有隐含的单位,你的存款是100,可能是元,也可能是亿,这些都要开始之前约定好。

java的变量,取名字也是有规范的,一般是字母开头(也可以用$和下划线),后面可以有数字字母和下划线和$符号,同时不能是java中的关键字,比如int就是关键字。其实一般不可能写错,因为开发工具会提示你,需要注意的规范的问题,好读好记好懂!同时同一个程序中,变量名不能重复!同时,变量赋值之后,才能使用,仔细一想,非常合理,宾馆的房间都没有住人,肯定不能取收费!!!

数据的变量类型(数据类型和运算符-1)(6)

上图中,用到了很多次 =符号,这是赋值运算符,右边的值,赋给左边的变量,把值送到变量对应的内存空间;当然,右边也可能是个变量:

数据的变量类型(数据类型和运算符-1)(7)

当然,这里的值都是固定的,可以通过键盘来输入,需要构建一个Scanner对象,对于这个的解释,要到后面才能解释,目前照抄就好了。那个sc是名字,比较关键,后面就用它来输入,他支持输入字符串,整数,double类型,上面的导入import必须,先留着:

数据的变量类型(数据类型和运算符-1)(8)

输入变量的值

需要提醒的是:变量的赋值是拷贝,拷贝的变量在拷贝后发生了变化,对赋值的变量不会有影响:

数据的变量类型(数据类型和运算符-1)(9)

练习:

使用变量存储以下的手机信息,并打印输出

品牌(brand):mate50

重量(weight):124

电池类型(type):内置锂电池

价格(price):4999

,