JavaSE基本语法(上)
前言
本博主将用CSDN记录软件开发求学之路上亲身所得与所学的心得与知识,有兴趣的小伙伴可以关注博主!
也许一个人独行,可以走的很快,但是一群人结伴而行,才能走的更远!让我们在成长的道路上互相学习,欢迎关注!
一、“标识符”的使用
1. 概念
标识符:凡是自己可以起名字的地方都叫标识符
比如:类名,变量名,方法名,接口名,包名……
2. 标识符的命名规则(不遵守则编译不通过)
(1) 由26个英文字母大小写,0-9,_或$组成。
(2) 数字不可以开头。
(3) 不可以使用关键字和保留字,但能包含关键字和保留字。
(4) Java中严格区分大小写,长度无限制。
(5) 标识符不能包含空格。
3. 标识符的命名规范(建议遵守)
(1)包名:多单词组成时所有字母都小写:
xxxyyyzz
;
(2)类名,接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz
;
(3)变量名,方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz
;
(4)常量名:所有字母都大写,多单词时每个单词用下划线连接:XXX_YYY_ZZZ
;
(5)在起名字时,要做到“见名知意”;
(6)Java采用unicode字符集,因此标识符也可以使用汉字声明,但是不建议使用;
二、“变量”的使用
1. 语法格式
⭕ 声明变量
语法:<数据类型> <变量名称>
例如:int var;
⭕ 变量的赋值
语法:<变量名称> = <值>
例如:var = 10;
⭕ 声明和赋值变量
语法: <数据类型> <变量名> = <初始化值>
例如:int var = 10;
2. 注意事项
(1) Java中的每个变量必须先声明后使用;
(2) 使用变量名来访问这块区域的数据;
(3) 变量的作用域:其定义所在的一对{ }内;
(4) 变量只有在其作用域内才有效;
(5) 同一个作用域内,不能定义重名的变量;
2. 变量分类
⭕ 按数据类型的不同分类
(1)基本数据类型:
整型:
byte
\short
\int
\long
浮点型:float
\double
字符型:char
布尔型:boolean
(2)引用数据类型:
类(包含字符串)(
class
)
接口(interface
)
数组(arry)
⭕ 按声明的位置的不同分类
(1)在方法体外,类体内声明的变量称为成员变量。
(2)在方法体内部声明的变量称为局部变量。
注意:二者在初始化值方面的异同:
同:都有生命周期
异:局部变量除形参外,需显式初始化。
3. 整型变量
(1)
byte
(1字节 = 8 bit)\short
(2字节)\int
(4字节)\long
(8字节);
(2)byte
范围:-128—127;
(3)声明long
型变量,必须以“l”或“L”结尾,如:long x =321232323232L;
(4)通常,定义整型变量时,使用int
型;
(5)整型常量,默认类型为int
型;
4. 浮点型变量
(1)
float
(4字节)\double
(8字节);
(2)float
:单精度,尾数可以精确到7位有效数字;
(3)double
:双精度,精度是float
的两倍;
(4)float
表示数值的范围比long
还大,但所占内存一致;
(5)定义float
类型变量时,变量要以“f”或“F”结尾,如:float f1 = 12.3F;
(6)通常,定义浮点型变量时,使用double
型;
(7) 浮点型常量,默认类型为double
类型;
5. 字符型变量
(1)
char
(2字节);
(2)字符常量是用单引号‘ ’括起来的单个字符,如:char c1 = ‘a’;char c2 = ‘中’;char c3 = ‘9’;
(3)Java中允许使用转义字符‘\’来将其后的字符转变为特殊字符型常量,如:char c3 = ‘\n’;
(4)直接使用Unicode值来表示字符型常量:‘\uXXX’,其中,XXXX代表一个十六进制整数;
(5)char
类型是可以进行运算的,因为它都对应有Unicode码;
6. boolean型变量
(1)只能取两个值之一:
ture
,false
;如:boolean b1 = false;
(2)boolean
类型用来判断逻辑条件,一般用于程序流程控制:
if
条件控制语句;while
循环控制语句;do-while
循环控制语句;for
循环控制语句;(3)不可以使用 0 或 非0 的整数替代
false
和true
,这点和C语言不同。(4)Java虚拟机中没有任何供
boolean
值专用的字节码指令,Java语言表达所操作的boolean
值,在编译之后都使用java虚拟机中的int
数据类型来代替:true
用1表示,false
用0表示。———《java虚拟机规范 8版》
7. 基本数据类型之间的运算规则(不包括boolean类型)
⭕ 自动类型提升
(1)有多种类型的数据混合运算时,系统首先自动将所有的数据转换成容量最大的那种数据类型,然后再进行运算,此时的容量大小指的是数的范围的大和小,如:
float
容量大于long
的容量;
(2)byte,short,char
之间不会相互转换,它们三者在计算时首先转换成int类型;
(3)转换规则:(byte,char,short)--> int --> long --> float --> double
;
⭕ 强制类型转换:
(1)需要使用强转符();
(2)强制类型转换,可能导致精度损失,
如:
//精度损失举例1
double x = 12.9;
//精度损失举例2
long x =123;
short y = (short)x;//(没有精度损失)
int x = 128;byte y = (byte)x;//有精度损失
(3)
boolean
类型不可以转换为其它的数据类型。
(4)通常,字符串不能直接转换为基本类型,但通过基本类型对应的包装类则可
以实现把字符串转换成基本类型。
如:String a = “43”; int i = Integer.parseInt(a);
//判断能否通过编译
1)short s = 5;
s = s-2; //判断:no
2) byte b = 3;
b = b + 4; //判断:no
b = (byte)(b+4); //判断:yes
3)char c = ‘a’;
int i = 5;
float d = .314F;
double result = c+i+d; //判断:yes
4) byte b = 5;
short s = 3;
short t = s + b; //判断:no
8. String类型变量
(1)
String
属于引用数据类型,翻译为:字符串;
(2)声明String
类型变量时,使用一对“”;
(3)String
可以和8种基本数据类型变量做运算,且运算只能是连接运算:+;
(4)当把任何基本数据类型的值和字符串(String)进行连接运算(+)时,基本数据类型的值将自动转化为字符串(String)类型;
System.out .println(3+4+“Hello!”); //输出:7Hello!
System.out.println(“Hello!”+3+4); //输出:Hello!34
System.out.println(‘a’+1+“Hello!”); //输出:98Hello!
System.out.println(“Hello”+‘a’+1); //输出:Helloa1
三、注释(comment)
1. 概念
用于注解说明解释程序的文字就是注释。
2. 分类
Java中的注释类型:
- 单行注释
格式://注释文字
- 多行注释
格式:/* 注释文字 */
- 文档注释 (java特有)
格式:
/**
@author 指定java程序的作者
@version 指定源文件的版本
*/
3. 注意事项
⭕ 提高了代码的阅读性;调试程序的重要方法。
⭕ 注释是一个程序员必须要具有的良好编程习惯。
⭕ 将自己的思想通过注释先整理出来,再用代码去体现。
⭕ 对于单行和多行注释,被注释的文字,不会被JVM(java虚拟机)解释执行。
⭕多行注释里面不允许有多行注释嵌套。
⭕ 注释内容可以被JDK提供的工具 javadoc 所解析,生成一套以网页文件形式体现的该程序的说明文档。
操作方式:
四、 运算符
1. 概念
运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等。
2. 分类
⭕ 算术运算符
⭕ 赋值运算符
⭕ 比较运算符(关系运算符)
⭕ 逻辑运算符
⭕ 位运算符
⭕ 三元运算符
3. 算术运算符
⭕ 基本四则运算符:加减乘除模(+ - * / %
)
(1)
"+"、"-"、"*"、"/"、"%"
这些运算符都是二元运算符,使用时必须要有左右两个操作数。
(2)做除法(
/
)和取模(%
)时,右操作数不能为 0 。
(3)在Java中,
"%"
不仅可以对整数取模,也可以对小数取模,当两侧操作数类型不一致时,向类型范围大的提升。
(4)
被模数 % 模数 = 结果
如果对负数取模,可以把模数负号忽略不记,如:5%-2=1。
但被模数是负数时则不可忽略,即结果的符号是正还是负,完全取决于被模数的符号,且与被模数的符号一致。 此外,取模运算的结果不一定总是整数。
System.out.println(10%3);//1
System.out.println(10%-3);//1
System.out.println(-10%3);//-1
System.out.println(-10%-3);//-1
(5)对于除号
"/"
,它的整数除和小数除是有区别的:
- 整数之间做除法时,结果还是整数类型,只保留整数部分而舍弃小数部分,而且会向下取整。
- 小数之间做除法时,结果会保留小数部分。
int x=3510;
x=x/1000*1000;
System.out.println(x)//3000
(6)“
+
”除字符串相加功能外,还能把非字符串转换成字符串。
System.out.println(“5+5=”+5+5); //5+5=55
⭕ 增量运算符("+= "、 "-="、 "*="、 "%="
)
(1)该类型运算符操作完成后,会将操纵的结果赋值给左操作数 。
(2)只有变量才能使用该运算符,常量不能使用。
int a = 1;
a += 2; // 相当于 a = a + 2
System.out.println(a); // 输出3
a -= 1; // 相当于 a = a - 1
System.out.println(a); // 输出2
a *= 3; // 相当于 a = a * 3
System.out.println(a); // 输出6
a /= 3; // 相当于 a = a / 3
System.out.println(a); // 输出2
a %= 3; // 相当于 a = a % 2
System.out.println(a); //输出2
⭕ 自增/自减运算符 ("++"、" --"
)
(1)
++
是给变量的值+1,–是给变量的值-1。
(2)该种运算符分为前置运算符(
++a
)和后置运算符(a++
)
● 单独使用时,【前置++】和【后置++】没有任何区别。
● 混合使用时,
【前置++/–】先+1,然后再使用+1或-1之后的变量值。
【后置++/–】先使用变量原来的值,表达式结束时再给变量+1或-1。
(3)只有变量才能使用自增/自减运算符,常量不能使用,因为常量不允许被修改.
4. 赋值运算符
(1) 符号:
=
(2)当“
=
”两侧数据类型不一致时,可以使用自动类型转换或使用强制类型转换原则进行处理。
(3)支持连续赋值。
5. 比较运算符
(1)比较运算符的结果都是
boolean
型,也就是要么是true
,要么是false
。
(2)注(开发中常犯错误):比较运算符
"=="
不能误写成"="
。
(3)在Java中 = 表示赋值,在Java中 == 表示相等。 当需要多次判断时,不能连着写。比如:
3 < a < 5
,这是错误的写法。应该写作3<a && a<5
。
6. 逻辑运算符
符号 | 名称 |
---|---|
& | 逻辑与 |
| | 逻辑或 |
! | 逻辑非 |
&& | 短路与 |
|| | 短路或 |
^ | 逻辑异或 |
(1) 逻辑运算符用于连接布尔型表达式,在Java中不可以写成
3<x<6
,应该写成x>3 & x<6
。
(2)“
&
”和“&&
”的区别:
● 单&时,左边无论真假,右边都进行运算;
● 双&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。
(3)“
|
”和“||
”的区别同理,||表示:当左边为真,右边不参与运算。
(4)异或(
^
)与或(|
)的不同之处是:
当左右都为true
时,结果为false
。 理解:异或,追求的是“异”!
7. 位运算符
(1)位运算是直接对整数的二进制进行的运算。
8. 三元运算符
(1)格式:
(2)表达式1和表达式2必须为同种类型。
(3)表达式不能单独存在,其产生的结果必须要被使用。
(4)三元运算符与
if-else
的联系与区别:
● 三元运算符可简化if-else
语句
● 三元运算符要求必须返回一个结果。
●if
后的代码块可有多个语句
9. 运算符的优先级
(1)运算符有不同的优先级,所谓优先级就是表达式运算中的运 算顺序。如下表,上一行运算符总优先于下一行。
(2) 只有单目运算符、三元运算符、赋值运算符是从右向左运算的。
四、关键字与保留字
1. 关键字
(1)定义:被Java语言赋予了特殊含义,用做专门用途的字符串(单词)。
(2)特点:关键字中所有字母都为小写。
(3)官方地址:点击跳转
用于定义数据类型的关键字:
class | interface | enum | byte | short |
int | long | float | double | char |
boolean | void | |||
用于定义流程控制的关键字: | ||||
:——–: | :————-: | :————-: | :————-: | :————-: |
if | else | switch | case | default |
while | do | for | break | continue |
return | ||||
用于定义访问权限修饰符的关键字: | ||||
:——–: | :————-: | :————-: | ||
private | protected | public | ||
用于定义类,函数,变量修饰符的关键字: | ||||
:——–: | :————-: | :————-: | :————-: | :————-: |
abstract | final | static | synchronized | |
用于定义类与类之间关系的关键字: | ||||
:——–: | :————-: | :————-: | :————-: | :————-: |
extends | implements | |||
用于定义建立实例及引用实例,判断实例的关键字: | ||||
:——–: | :————-: | :————-: | :————-: | :————-: |
new | this | super | instanceof | |
用于异常处理的关键字: | ||||
:——–: | :————-: | :————-: | :————-: | :————-: |
try | catch | finally | throw | throws |
用于包的关键字: | ||||
:——–: | :————-: | :————-: | :————-: | :————-: |
package | import | |||
其他修饰符关键字: | ||||
:——–: | :————-: | :————-: | :————-: | :————-: |
native | strictfp | transient | volatile | assert |
用于定义数据类型值的字面值: | ||||
:——–: | :————-: | :————-: | :————-: | :————-: |
true | false | null |
2. 保留字
Java保留字:现有Java版本尚未使用,但以后版本可能会作为关键字使用。自己命名标识符时要避免使用这些保留字
goto
、const
。
关注并私信博主,可领JDK1.8中文版!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/137735.html