Java基础语法1
关键字,保留字
- 关键字:所有字母都为小写。很多像class,int,interface等等之类的。
- 保留字:包含了关键字,但是多出了一些在可能当前版本java中尚未使用的关键字,例如:goto, const等
- 注意的是在java命名过程是需要避免使用这些关键字和保留字,否则会出现一些包中方法无法使用而报错的情况
标识符
凡是自己可以起名字的地方都叫标识符。
- 由26个英文字母大小写,
- 0-9 ,_或 $ 组成 数字不可以开头。
- 不可以使用关键字和保留字,但能包含关键字和保留字。
- Java中严格区分大小写,长度无限制。
- 标识符不能包含空格。
Java中的名称命名规范
- 包名:多单词组成时所有字母都小写:xxxyyyzzz
- 类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz
- 变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个 单词首字母大写:xxxYyyZzz
- 常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ
- 注意1:在起名字时,为了提高阅读性,要尽量有意义,“见名知意”。
- 注意2:java采用unicode字符集,因此标识符也可以使用汉字声明,但是不建议使用。
变量和数据类型
变量
- 内存中的一个存储区域 ,用于在内存中保存数据
按照数据类型可分为基本数据类型和引用数据类型
- 基本数据类型:分数值型(又分为整形(byte short char int long)和浮点型(float double)),字符型(char),布尔型(boolean)
- 引用数据类型:类(class)(string类型在其中),接口(interface),数组([])
注意,经验之谈
long声明的后面可以不跟L
float声明的后面必须跟f
double声明的后面可以跟d f 也可以选择不跟
int 声明的后面 不能跟l
char类型的占用2个字节,boolean类型的占用1个字节。
按照声明的位置可分为成员变量和局部变量
- 成员变量:包括两种,实例变量(不用static修饰的)和类变量(用static修饰的)
- 局部变量:包括三种,形参(方法,构造器上定义的变量),方法局部变量(方法内定义的),代码块局部变量(在代码块中定义的)
自动转化
- 自动类型转换:容量小的类型自动转换为容量大的数据类型。数据类型按容 量大小排序为:
byte short char 可以直接转换为int
byte short char 类型之间不能相互转换
int 也可以直接转换为long 需要在数据的结尾添加L
long --> float尽量不用,不确定性
float double
float 也可以直接转换为double
特殊情况:
long --> float
可以转换
float 32位 使用最高位1位表示符号位 8位表示E 23位表示小数
long转换为float 可以自动转换 但是这种转换之后E后的数据具有不确定性 尽量不用
long到double时同样的
强制类型转换
- 将容量大的类型转换成容量小的类型,需要进行强制转换
语法: 接受类型 变量名 = (将要转换的类型)待转换变量
运算符
-
算数运算符
算数运算中 byte short char int 运算的结果都是int类型
运算中如果有long类型存在 则结果long类型
在整数类型及char类型做运算的时候 如果操作数如果时byte short char 那么运算的结果是int
如果期中有int类型的操作书 结果肯定是int
如果操作书中有long类型 结果肯定是long
如果在运算中操作数中有float类型 则结果为float
如果在运算中操作数中有double类型 则结果为double
总结就是运算时结果的范围总是与操作数中最大范围的值相同
–
boolean不能参与算数运算 boolean也不能和其他类型之间进行相互转换
对于/ *法运算 其中如果有负数 则结果为负
在除法运算中 取得是相除的商
%取模运算 结果为余数 结果的正负与第一个操作数保持一致
++ 自增
–自减
++ 作用都是给当前操作数+ 1
++写在操作数之后 是先取操作数的值 然后在给该数加1(a++先取值,后运算)
++写在操作数之前 是先加1 在取值(++a先运算,后取值)
注意
-如果对负数取模,可以把模数负号忽略不记,如:5%-2=1。 但被模数是 负数则不可忽略。此外,取模运算的结果不一定总是整数。
-对于除号“/”,它的整数除和小数除是有区别的:整数之间做除法时,只保留整数部分而舍弃小数部分。
-“+”除字符串相加功能外,还能把非字符串转换成字符串. -
逻辑运算符
&—逻辑与 | —逻辑或 !—逻辑非 && —短路与 || —短路或 ^ —逻辑异或
逻辑运算符用于连接布尔型表达式,在Java中不可以写成33 & x<6 。
“&”和“&&”的区别:
单&时,左边无论真假,右边都进行运算;
双&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。
“|”和“||”的区别同理,||表示:当左边为真,右边不参与运算。
异或( ^ )与或( | )的不同之处是:当左右都为true时,结果为false。 -
赋值运算符
符号:=
当“=”两侧数据类型不一致时,可以使用自动类型转换或使用强制 类型转换原则进行处理。
支持连续赋值。
扩展赋值运算符: +=, -=, *=, /=, %= -
关系运算符
特殊的比较运算符:instanceof
比较运算符的结果都是boolean型,也就是要么是true,要么是false。
比较运算符“==”不能误写成“=” 。 -
位运算
-
三元运算符
表达式1和表达式2为同种类型
三元运算符与if-else的联系与区别:
1)三元运算符可简化if-else语句
2)三元运算符要求必须返回一个结果。
3)if后的代码块可有多个语句 -
运算符的优先级
暂时不提