Java-变量

常量:程序中固定不变化的值。

变量:表示存储空间,可用来存放某一类型的常量,没有固定值,并可以重复使用,也可以用来存储某种类型的未知数据。
好比饭店雅间的名字.
变量的特点:
① 占据着内存中的某一块存储区域;
② 该区域有自己的名称(变量名)和类型(数据类型);
③ 可以被重复使用;
④ 该区域的数据可以在同一类型范围内不断变化;
变量的定义:
先定义变量,再赋值:
数据类型 变量名;
变量名 = 值;
或在声明时同时赋值:
数据类型 变量名 = 初始化值;

不推荐:同时定义多个变量.

变量分类-作用域-使用规则:
变量的分类:
随着变量定义在类中的位置不同,故把变量分成两大类:
成员变量:直接定义在类里的变量,又称为全局变量或字段。
局部变量:变量除了成员变量之外,其他就是局部变量。根据定义的位置不同有3种表现形式:方法形参,方法内变量,代码块变量。

变量作用域:
指变量的存在范围,只有在这个范围内,程序代码才能访问它。当一个变量被定义时,它的作用域就确定了:
作用域是定义开始到定义所在的花括号结束;

变量使用规则:
1.变量必须先声明,并且初始化后才能使用;
2.声明变量必须有数据类型
3.同一作用域内变量名不能重复定义

表达式(expression):是由数字、运算符、数字分组符号(括号)、常量、变量等以能求得结果的有意义排列的组合。
用运算符号连接的变量/常量可称为表达式。那么也就是说表达式是由常量、变量、运算符、括号组成能求得值的有意义结果的语句。

在Java中数据类型整体上分成两大类:
1):基本数据类型/原生数据类型,共8个:
1>:数值型:
整数类型:byte,short,int,long,
不同的整数类型在内存占用的内存空间大小是不一样的.
小数类型:float,double.
2>:字符型:char,什么是字符,字母/符号.
3>:布尔型:boolean,表示对与错.true,false.
2):引用数据类型/对象数据类型:
类/接口/数组
整数类型(byte-short-int-long):
byte、short、int、long类型:
整型常量的四种表示形式:
① 二进制整数:0B或0b开头(Java7的新特性),如:int a = 0B110;
② 八进制整数:要求以0开头,如 int a = 012;
③ 十进制整数:如:int a = 17;
④ 十六进制整数:要求0X或0x开头,如int a = 0x12;

Java语言的整型常量默认是int型,声明long型变量后加上‘l’或‘L,因小写的l容易和数字1相混淆,建议使用大写L。

默认情况下,一个整型的字面量默认是int类型.

boolean类型:通常用于逻辑运算和程序流程控制(条件选择/循环)。
该类型的值只能是true 或 false,表示真或假。
不可以使用0或非0的整数来代替false和true,区分于C语言。
(其实在JVM中对boolean的处理也是用0表示false,非0表示true的。)
false和true是boolean的常量。

小数类型(float-double):
float、double类型:
表示小数类型又称为浮点类型,其中float表示单精度类型,double表示双精度类型,但是二者都不能表示精确的小数。
Java的浮点类型常量有两种表现形式:
十进制形式: 例如:3.14 ,168.0, .618
科学计数法形式: 例如:3.14e2, 3.14E2, 1000E-2
科学计数法表达式返回的结果是double类型。

默认情况下,一个浮点类型的字面量默认是double类型.若要声明一个常量为float型,则需在常量后加上f 或 F,double常量后面的D或d可省略。
注意:Java里只有浮点型的变量才可以接受科学计算式结果:

因为float和double都不能精确的表示小数,那么在精度要求高的系统比如银行系统里,那怎么表示精确的小数呢?后面我们会讲BigDecimal类型,它表示任意精度的数据。

字符类型(char):字符,字母和符号.
char类型:表示16位的无符号整数或者Unicode字符,Java对字符采用Unicode字符编码。
Unicode收集了世界上所有语言文字中的符号,是一种跨平台的编码方式,Java的字符占两个字节,可以表示一个汉字。
什么是编码?
计算机只能表示0和1两个数,于是人们做规定使用一个数字去表示一个特定的字符,比如a使用97表示。
char前256个字符和ASCII(美国信息交互标准编码)码中的字符重复。
char常量有3种表示形式:
① 直接使用单个字符来指定字符常量,格式如’◆’、‘A’,‘7’;
② 直接作为十进制整数数值使用,但是数据范围在[0,65535],格式如97,但是打印出来的值依然是ASCII码表对于的符号,如97打印出来是字符a。
③ 和2一样,只不过表示的是16进制的数值,格式如’\uX’,X表示16进制整数;如:97的16进制是61。那么表示为‘\u0061’打印出来也是a。
所以有人说char本质上也是整型,也是有道理的。
char前256个字符和ASCII(美国信息交互标准编码)码中的字符重复,可查表。

除了8种基本数据类型,其他所有类型都是引用数据类型,包括类、接口、数组。引用数据类型默认初始值都是null。

当要表示的数据超出数据类型的临界范围时,称为溢出。溢出情况发生时程序并没有做数据范围检查处理,此时会出现数据紊乱情况。

在8大基本数据类型中,boolean不属于数值类型,不参与转换.

自动类型转换,也称为“隐式类型转换:
当把小数据范围类型的数值或变量赋给另一个大数据范围类型变量,系统可以完成自动类型转型。这好比把装一斤水容器里的水倒进可以装两斤水的容器里一样。
再次强调:boolean 类型是不可以转换为其他数据类型。

一般的,byte,short,char不参与转换操作.
我们直接把byte,short,char直接付给int类型.
强制类型转换,也称为“显示类型转换”:

当一个算术表达式中包含多个基本数据类型(boolean除外)的值时,整个算术表达式的数据类型将在数据运算时出现类型自动提升,其规则是:
所有的byte、short、char类型被自动提升到int类型;
整个表达式的最终结果类型被提升到表达式中类型最高的类型;

String和任意数据使用 + 连接起来,结果都是String(字符串).
++和–详解: 都只能操作变量,不能操作常量.
++: 表示当前操作变量自己累加1.
–: 表示当前操作变量自己减去1.

自增:++,递增操作符,使变量值增加1,有前置和后置之分,只能操作变量。
自减: – ,递减操作符,使变量值减去1,有前置和后置之分,只能操作变量。
自增和自减具体操作是一样的,仅仅是一个是加1,一个是减1而已,现在单讲++:
代码 result ++和 ++result,都将使result变量的值加1。
唯一的区别是:
前置(++result): 表示对result加1之后的结果进行运算,
后置(result++): 表示对result变量加1之前的值(原始值)进行运算。
如果仅仅执行简单的递增操作(只写result++或++result),那么选用任意一个都可以。
== 等于,若比较的是两个操作数都是数值类型,即使他们的类型不同,只要值相同就返回true。
当然也可以比较引用数据类型,留到后面讲。
instanceof:在讲面向对象的时候,再细讲。

三元运算符,表示有三个元素参与的表达式,所以又称为三目运算符,其语义表示if-else.
语法格式:X ? Y :Z, 其
中x为boolean类型表达式,先计算X的值,若X结果为true则整个三目运算表达式的结果是Y,否则就是Z。三目运算符结果的类型由Y和Z决定。

&:表示并且,当操作数A和B都为true结果才为true,否则结果result 是false。
&&:和&结果相同,具有短路效果,如果左边操作数A是false,result 一定为false,且不运行B的运算。
|:表示或者,A和B都为false结果result为false,只要有A或B是true,结果就是true。
||:和|结果相同,具有短路效果,如果左边操作数A是true,result一定为true,且不运行B的运算。
^:判断A和B是否不同,不同则为true,相同则为false。
!:取反,!true结果是false,!fasle结果是true。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值