目录
①变量
②Java数据类型
③标识符(命名)
④变量的注意事项
⑤数据类型转换
⑥运算符
⑦Scanner类
①变量
定义:在程序执行的过程中,在某个范围内其值可以发生改变的量;
本质:用来存放数据的一小块内存空间
理解:1.用来存放数据
2.数据内容可以改变
3.一次只能存放一个数据
4.可根据变量名称使用数据
5.存放的数据必须满足数据类型的要求
根据格式定义变量
【格式一:
分步
】
1.创建一个变量 数据类型 变量名称;
String
str
;
2.向变量中赋值 变量名称 = 数据值;
str="楠哥";
【格式二:一步】
1.创建同时赋值 数据类型 变量名称 = 数据值;
String
str
=
"楠哥"
;
注意
变量赋值
:变量值的复制
对象赋值
:地址值(指针)的改变——共同管理对象
②Java数据类型
基本数据类型(四类八种)——存的是
数值
short 2个字节 -32768~32767
int 3个字节 -21亿~21亿
long 4个字节 天文数字
浮点类型: float 4个字节 -3.403E38~3.403E38(因为是科学计数法,即使4个字节也比long的范围大)
double 8个字节 -1.798E308~1.798E308
字符型: char 2个字节 表示一个空格('A'、'中'、'0') 不能为空而字符串就可以
布尔型: boolean 1个字节 只有两个值 true or false
注意事项
A : 整数默认是int类型,浮点数默认是double
B : 定义long类型数据的时候,要加L或者l,建议加L
定义float类型数据的时候,要加F或者f,建议加F
C : Java中的字符采用的是Unicode字符集,每一个字符占用两个字节,就可以存储一个汉字
D : boolean类型适用于逻辑运算,一般用于流程控制
引用数据类型——存的是
地址
字符串、类、接口、数组、枚举…
③标识符(命名)
给包,类,方法,变量等起名字
(1)组成规则(硬性规定)
由字符,
下划线_
,
美元
符$组成;这里的字符采用的是Unicode字符集.
(2)注意事项(硬性规定) 不能以
数字
开头;不能是Java中的关键字.
(3)命名规则(软性建议) 基本要求:见名知意
包
(其实就是文件夹,用于对类进行管理)
全部小写,多级包用点隔开。公司域名的反写。
cn.yaojianan (相当于两级文件夹:cn\yaojianan)
com.wangjie (相当于两级文件夹:com\wangjie)
类
(大驼峰)
一个单词首字母大写 Student Car
多个单词,每个单词首字母大写 HelloWorld
变量
或者
方法
(小驼峰)
一个单词首字母小写 age show()
多个单词,从第二个单词开始每个单词首字母大写 maxAge getAge()
④变量的注意事项
(1)变量一定要进行赋值才能使用,不赋值不能使用。
(2)变量只有在自己所属的作用域内才有用,超出
作用域
,不可用。 作用域:从定义的一行开始,一直到大括号最后的结束。(成员变量,局部变量)
(3)可以使用一个步骤(一行)定义多个变量,但一般不推荐这么写。
int a = 10,b=20;
⑤数据类型转换
(1)自动类型转换(隐式)
特点:代码不需要进行特殊处理,自动完成。
原则要求:从数据范围小的类型,自动转为数据范围大的类型(从小到大)
转换规则:转换规则byte,short,char—int—long—float—double
(2)强制类型转换(显式)
特点:代码需要进行特殊处理,不能够自动完成。
【处理格式】:范围小的类型 范围小的标量名称 = (范围小的类型) 原本范围大的变量或数值;
注意事项
1.强制类型转换不推荐使用,因为有可能发生
精度损失
(小数变整数,小数点后面的部分可能会直接被省略掉)、数据溢出(装不下强行装)
(编译不报错)
。
2.byte short char 都可以发生运算!三者在发生运算的时候都会首先自动提升为int,然后在计算!
3.
boolean
不能发生任何数据类型的转换!
⑥运算符
运算符:对常量和变量进行操作的符号
表达式:用运算符把常量或者变量连接起来符合java语法的式子
一、算术运算符(+,-,*,/,%)
算术运算符中游四则运算加法 +,减法 -,乘法 *,除法 /,取模%(只看余数不看商)
注意事项
(1)对于整数来说,除法得到的结果就是整数,只看商,不看余数。
(2)一旦有小数参与运算,那么的结果就是小数。
(3)对于byte/short/char三者来说 : 右侧没有超出左侧的范围:编译器会隐藏添加相应的(byte)(short)(char);右侧超出了范围,编译器会直接报错。
(4)字符相加,参考ASCII表(或者是Unicode表),将字符转换成为int数字,然后再运算。(其中A为65,a为97,0为48)
(5)字符串相连(按照从左到右的顺序:"Hello"+20+10=Hello2010 20+10+"Hello"=30Hello 但是第一种情况如果加()结果就会有所改变)
(6)
自增(减)运算符
:(
++的
优先级
比乘除还高
)
自增运算符:++,在原有的基础上+1
自减运算符:--,在原有的基础上-1
使用格式:可以写在变量前面,也可以写在变量后面。但是只能用于
变量
,不能用于常量。++a a--
使用方式:
1.单独使用,不与其它任何运算混合,自己独立成为一个步骤(一行)
2.混合使用,与其它操作混合
使用区别:
1.对于单独使用来说,前++和后++,没有任何区别
2.对于混合使用来说有【重大区别】
A.如果是【前++】,那么立刻马上+1,然后拿着结果进行使用。【先加后用】
B.如果是【后++】,那么首先使用本来的数值,用完之后再+1。【先用后加】
二、赋值运算符(=,+=,-=,*=,/=,%=)
就是将右边的数据交给左边的变量。
1. 基本赋值运算符:=
2. 复合赋值运算符:
+= a += 3 a = a + 3
-= a -= 4 a = a - 4
*= a *= 5 a = a * 5
/= a /= 6 a = a / 6
%= a %= 7 a = a % 7
注意事项:复合赋值运算符隐含了一个强制类型转换(就是char/byte/short那三种)
三、关系比较运算符(==,!=,>,<,>=,<=)
关系运算符的结果都是boolean型,也就是要么是true,要么是false
四、逻辑运算符(&,|,!,^)
与(并且) & 全都是true才是true;否则就是false
或(或者) | 只要有一个true,就是true;全都是false,才是false
非(取反) ! (必须放在前面)本来是true变成false;本来是false变成true
异或(取异) ^ 相同就是false;不同就是true
注意事项
1.逻辑运算符只能用于连接若干个boolean类型
2.只有取反是作用于一个数据的,其他都是左右各有一个数据
3.如果希望判断
3 < x < 6,需要写:3 < x & x < 6
,拆开来写,不能连着写。
4.在逻辑运算符当中,&与和|或可以双写:&& ||
a. 从效果上来看,双写和单写没有任何区别!
b. 双写可以起到“短路”的效果,有可能提高程序执行的效率!(从左到右如果已经判断出结果了,后边的就不进行计算了)
c.小游戏
int
a
= 1,
b
= 1;
if
(
a
++ == 1 || ++
b
== 1) {
a
= 7;
}
System.
out
.println(
"a="
+
a
+
",b="
+
b
);
五、三元运算符
一元运算符:有
一
个部分
参与运算 ! ++ --
二元运算符:有
两
个部分
参与运算 + - % & |
三元运算符:有
三
个部分
参与运算
【格式】数据类型 变量名称 = 条件判断 ? 表达式A : 表达式B
char b = (a>1) ? '是' : '否' ;
【逻辑】
首先进行条件判断,如果条件成立,那么取用表达式A的值放入左侧变量;
如果条件不成立,那么取用表达式B的值放入左侧变量。
注意事项
1 . 三元运算符的
结果必须被使用
。
2 . 表达式A和表达式B必须
同时满足
左侧
变量的数据类型
要求。
String str = (n%2==0) ? "偶数" :"奇数";
String str = (n>=60) ? "及格" : "不及格";
int n = (a>b) ? (a+b) : (a*b);
⑦Scanner类
引用数据类型(例如Scanner)使用的一般步骤:
1. 导包:格式: import java.util.Scanner 只有java.lang包下的东西不需要导包也可以照样使用,但是其他所有的包如果要想使用内容,都必须进行import导包。
2. 创建,格式: 数据类型 变量名称 = new 数据类型(); 对于Scanner来说,右侧的小括号之内必须写上System.in,代表键盘输入。
3. 使用,格式: 变量名称.方法名();
Scanner sc = new Scanner(System.in);
sc1.nextLine();