字面量和常量 常量:程序中固定不变化的值。 常量分类:
变量 变量的定义:表示存储空间,可用来存放某一类型的常量值,没有固定值,并可以重复使用,也可以用来存储某种类型的未知数据。 好比饭店雅间的名字. 变量的特点: ① 占据着内存中的某一块存储区域; ② 该区域有自己的名称(变量名)和类型(数据类型); ③ 可以被重复使用; ④ 该区域的数据可以在同一类型范围内不断变化; 变量的定义: 先定义变量,再赋值: 数据类型 变量名; 变量名 = 值; 或在声明时同时赋值: 数据类型 变量名 = 初始化值; 注:格式是固定的,记住格式,以不变应万变。 不推荐:同时定义多个变量. 变量的分类: 根据变量定义在类中的位置不同,故把变量分成两大类: 1):成员变量:直接定义在类里的变量,又称为全局变量或字段。 2):局部变量:变量除了成员变量之外,其他就是局部变量。根据定义的位置不同有3种表现形式:方法形参,方法内变量,代码块变量。 变量作用域(作用范围/说人话:在哪一个范围之内可以使用): 指变量的存在范围,只有在这个范围内,程序代码才能访问它。当一个变量被定义时,它的作用域就确定了: 作用域是定义开始到定义所在的花括号结束; 变量使用规则: 1.变量必须先声明,并且初始化后才能使用; 2.声明变量必须有数据类型 3.同一作用域内变量不能重复定义 -------------------------------------------- 更多的如变量的生命周期等等,在面向对象再讲. JAVA表达式 表达式(expression):是由数字、运算符、数字分组符号(括号)、变量等以能求得结果的有意义排列的组合。 用运算符号连接的变量/常量可称为表达式。那么也就是说表达式是由常量、变量、运算符、括号组成能求得值的有意义结果的语句。 如: a a + b 3.14 + a (x + y) * z + 100 表达式中操作数进行运算得到的最终结果就是表达式的结果。 表达式的运算顺序(大多和数学一样,参照运算符操作优先级): 数据类型和分类 前面谈到变量的时候,说变量是有类型的,那么Java数据有多少和哪些类型呢?总得来说,分成两种: ① 基本数据类型,又称为原生数据类型; ② 引用数据类型,又称为对象数据类型; ------------------------------------------------- 8大基本数据类型: 数值类型: 整数: byte,short,int,long 小数: float,double 字符类型:符号char 布尔类型:对/错boolean 最常用的引用类型-String Java引用类型: 类/接口/数组; 最常用的的引用类型:String类.(字符串) ---------------------------------------------------------- 什么是字符串: 除了8种基本数据类型,其他所有类型都是引用数据类型,包括类、接口、数组。引用数据类型默认初始值都是null。 String是一个类,表示字符串(后面详讲),所谓字符串,就是一串字符,也就是N个字符连接在一起(N可以表示0或多个),好比羊肉串。 字符串都得使用 "" 括起来的,连接字符串使用 “+”符号。 任何数据类型和String相连接(+),结果都是新的字符串. 如:String str ="做个程序员"; str+="很好 不错"; 基本数据类型转换 基本数据类型转换: 方式1: 自动类型转换 方式2: 强制类型转换 ----------------------------------------------------- 自动类型转换,也称为“隐式类型转换: 当把小数据范围类型的数值或变量赋给另一个大数据范围类型变量,系统可以完成自动类型转型。这好比把装一斤水容器里的水倒进可以装两斤水的容器里一样。 再次强调:boolean 类型是不可以转换为其他数据类型。 ------------------------------------------------------- 强制类型转换,也称为“显示类型转换": 当把大范围类型的数值或变量赋给另一个小范围类型变量时,此时系统不能自动完成转换,需要加上强制转换符,但这样的操作可能造成数据精度的降低或溢出,所以使用时要格外注意。 这就好比把装两斤水容器里的水倒在可以装一斤水的容器里,是可能造成水溢出的。 若要坚持把4斤苹果塞进一个装3斤的袋子里,我们要怎么办?动用暴力。 强制类型转换,可能造成溢出和精度损失。 ================== 面试笔试题: 自增: ++, 递增操作符,使变量值增加1,有前置和后置之分, 只能操作变量。 自减: -- ,递减操作符,使变量值减去1,有前置和后置之分, 只能操作变量。 自增和自减具体操作是一样的,仅仅是一个是加1,一个是减1而已,现在单讲++: 代码 result ++和 ++result,都将使result变量的值加1。 唯一的区别是: 前置(++result): 表示对result加1之后的结果进行运算, 后置(result++): 表示对变量加1之前的值(原始值)进行运算。 如果仅仅执行简单的递增操作(只写result++或++result),那么选用任意一个都可以。 --------------------------------如图------------------------------------------
语法格式为:boolean result = 表达式A 逻辑运算符 表达式B; -----------------------------美美分割线------------------------------------- &:表示并且,当操作数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看做是false,1看做是true. &:参与运算的两个数,若相应位数的值都为1,则该位结果值是1,否则是0。 |:参与运算的两个数相应位中只要有一个1,结果就是1。 ^:参与运算的两个数相应位相同则结果为0,否则为1。 ~ :表示把每个二进制位的“1”换成“0”,把“0”换成“1”。 ----------------------------------------------- 移位操作: <<:将操作数的二进制码整体左移指定位数,左移之后的空使用“0”来补充。 >>:将操作数的二进制码整体右移指定位数,右移之后的空使用“符号位”来补充: 若是正数使用“0”补充; 若是负数使用“1”补充;(操作负数:取反,求补,操作,取反,求补) >>>:将操作数的二进制码整体右移指定位数,右移之后的空位使用“0”来补充。 运算符的操作优先级 总结 |
|