第二章 Java基础语法
1.语法格式
1.1 Java的基本语法格式
1.2 编写Java程序代码时,需注意:
- 1.Java中的程序可分为结构定义语句和功能执行语句。
- 2.结构定义语句用于声明一个类或方法,功能执行语句用于实现具体的功能,例如:
①结构定义语句:public class HelloWorld{}
②功能执行语句:System.out.println(“这是第一个Java程序!”);
注意:每条功能执行语句的结尾都必须用英文分号(;)结束
- 3.Java语言是严格区分大小写的。
- 4.在编写Java代码时,为了便于阅读,通常会使用一种良好的格式进行排版。例如:
public class HelloWorld {
public static void main(String[] args)
System.out.println(“这是第一个Java程序!”);
}
}
2.关键字
2.1 关键字的定义和特点
- 1.定义:被Java语言赋予了特殊含义,用做专门用途的字符串(单词)。
- 2.特点:关键字中所有字母都为小写,JDK 8中有50个关键字,这些关键字都是小写的。
2.2关键字的分类
3.标识符
- 1.定义:在编程过程中,经常需要在程序中定义一些符号来标记一些名称,如包名、类名、方法名、参数名、变量名等,这些符号被称为标识符。
- 2.组成:标识符可以由任意顺序的大小写字母、数字、下划线(_)和美元符号($)组成,但标识符不能以数字开头,也不能是Java中的关键字。
4.命名规范
- 1.包名所有字母一律小写。例如:com.hpe.example。
- 2.类名和接口名每个单词的首字母都要大写。例如:ArrayList、Iterator。
- 3.常量名所有字母都大写,单词之间用下划线连接。例如:DAY_OF_MONTH。
- 4.变量名和方法名的第一个单词首字母小写,从第二个单词开始每个单词首字母大写。例如:lineNumber、getLineNumber。
- 5.在程序中,应该尽量使用有意义的英文单词来定义标识符,使得程序便于阅读。例如:使用userName表示用户名,password表示密码。
- 6.标识符不能以数字开头、不能是关键字、不能包含空格特殊字符
5.变量
5.1 变量的概念
- 1.变量是内存中的一个存储区域
- 2.该区域有自己的名称(变量名)和类型(数据类型)
- 3.Java中每个变量必须先声明,后使用
- 4.该区域的数据可以在同一类型范围内不断变化
5.2 变量的语法格式
-
1.变量的基本语法格式如下图所示:
-
2.变量的定义示例:
int x = 0,y
y = x+3
说明: 定义了两个int类型的变量x和y,相当于分配了两块内存单元,在定义变量的同时为变量x分配了一个初始值0,而变量y没有分配初始值。
5.3 变量的分类
- 按被声明的位置划分:
△成员变量:方法外部、类的内部定义的变量
△局部变量:方法或语句块内部定义的变量
△注意:类外面(类对应的大括号外面)不能有变量的声明 - 按所属的数据类型划分:
△基本数据类型变量
△引用数据类型变量
5.4 按数据类型对变量进行分类
1.结构图如下:
2.基本数据类型
1.整数类型:byte、short、int、long:
①整数类型有固定的表示范围和字段长度,不受具体操作系统的影响,以保证java 程序的可移植性。
②Java 的整型常量默认为int型,声明long 型常量须后加‘l’(小写L) 或‘L’。一般用不到除了int的类型。
③具体如下图:
2.浮点类型:float、double
①与整数类型类似,Java 浮点类型也有固定的表示范围和字段长度,不受具体操作系统的影响。
②Java 的浮点型常量默认为double 型,声明float 型常量,须后加‘f’ 或‘F’。
③浮点型常量有两种表示形式:
△十进制数形式:如:5.12 512.0f .512 (必须有小数点)
△科学计数法形式:如:5.12e2 512E2 100E-2
④具体如下图:
3.字符类型:char
①字符类型变量用于存储一个单一字符,在Java中用char表示。
②Java中每个char类型的字符变量都会占用2个字节。
③在给char类型的变量赋值时,需要用一对英文半角格式的单引号(’ ‘)把字符括起来,如’a’,也可以将char类型的变量赋值为0~65535范围内的整数,计算机会自动将这些整数转化为所对应的字符,如数值97对应的字符为’a’。
④举例:
char c = ‘a’; // 为一个char类型的变量赋值字符’a
char ch= 97; // 为一个char类型的变量赋值整数97,相当于赋值字符,等同于char ch= a;
4.布尔类型:boolean
①boolean类型适于逻辑运算,一般用于程序流程控制:
- if条件控制语句;
- while循环控制语句;
- do-while循环控制语句;
- for循环控制语句;
②boolean类型数据只允许取值true和false,不可以0或非0的整数替代true和false,这点和C语言不同。
6.数据类型
6.1变量数据类型举例
6.2变量的类型转换
- 1.说明:在程序中,当把一种数据类型的值赋给另一种数据类型的变量时,需要进行数据类型转换。
- 2.分类:根据转换方式的不同,数据类型转换可分为两种:自动类型转换和强制类型转换。
- 3.自动类型转换
①自动类型转换也叫隐式类型转换,当把同一个类型取值范围小的数值直接赋给另一个取值范围大的数据类型变量时,系统就会进行自动类型转换。自动类型转换就好比将小瓶水倒入到大瓶的换装过程。
②数据类型按容量大小排序为:
③举例如下:short转int
- 4.强制类型转换
①强制类型转换也叫显式类型转换,当两种类型彼此不兼容,或者目标类型取值范围小于源类型时,自动类型转换无法进行,这时就需要进行强制类型转换。强制类型转换就好比将大瓶水倒入到小瓶中一样,系统默认不支持这种行为,只能由开发者自己决定是否进行强制类型转换。
②强制类型转换的格式:
目标类型变量名= (目标类型)值;
注意: - 1.将容量大的数据类型转换为容量小的数据类型。使用时要加上强制转换符(),但可能造成精度降低或溢出,要格外注意。
- 2.字符串转换为基本数据类型,需要通过基本类型对应的包装类提供的parseXXX方法。
③举例如下: - int转short(同一类型)
public static void main(String[ ] args){
int num=20;
short s=(short) num;//把大的(int)转化为小的(short)
System.out.println("s"+s);
}
- int转float(不同类型)
public static void main(String[ ] args){
int num=10;
Folat f=(float) num;
System.out.println("f"+f);//int类型转化为float类型
}
- 字符串类型转化为其他类型
△String转换为int
public static void main(String[ ] args){
String str="123";
int num=Integer.parseInt(str);//字符串类型String转化为int类型
System.out.println("num"+num);
}
△int转化为String
第一种:
public static void main(String[ ] args){
int num=100;
String str=num+"";//int类型转化为字符串类型String
System.out.println("str"+str);
}
第二种:
public static void main(String[ ] args){
int num=100;
String str=String.valueOf(num);//int类型转化为字符串类型String
System.out.println("str"+str);
}
6.3 变量的作用域
- 1.定义:变量需要在它的作用范围内才可以被使用,这个作用范围称为变量的作用域。
- 2.示例如下:
7.常量
- 1.Java中的常量,其实就是特殊的变量,也是固定不变的量,有且只能进行一次赋值。
- 2.语法:Java中定义常量的语法也非常简单,只需要在定义变量的语法基础上加上一个final关键字修饰即可。
- 3.常量的语法格式:
final 常量类型常量名[= 初始值]; - 4.final int a=0, b; // 定义一个int类型的常量a和b
b= 1; // 后续为常量b赋值
8.转义字符
- 1.定义:在字符常量中,反斜杠(\)是一个特殊的字符,被称为转义符,它的作用是用来转义紧随其后的一个字符。
- 2.说明:转义后的字符通常用于表示一个不可见的字符或具有特殊含义的字符,例如“\n”表示换行。
- 3.常见转义字符
△\r :表示回车,将光标定位到当前行的开头,不会跳到下一行。
△\n :表示换行,换到下一行的开头。
△\t :表示制表符,将光标移到下一个制表符的位置,就像在文档中用Tab键一样。
△\:表示反斜杠转义字符,由于在Java代码中的斜杠(\)是转义符,因此需要表示字面意义上的\,就需要使用双斜杠\。
9.运算符
-
9.1 定义
所谓运算符就是专门用于告诉程序执行特定运算或逻辑操作的符号。 -
9.2 分类
9.2.1.算术运算符
①定义:Java中的算术运算符就是用来处理四则运算的符号,也是最简单和最常用的运算符号。
②算术运算符分类说明:
③注意
-
1.在进行自增(++)和自减(–)的运算时,如果运算符(++或–)放在操作数的前面则是先进行自增或自减运算,再进行其他运算。反之,如果运算符放在操作数的后面则是先进行其他运算再进行自增或自减运算。
-
2.在进行除法运算时,当除数和被除数都为整数时,得到的结果也是一个整数;如果除法运算有小数参与,得到的结果会是一个小数。
-
3.在进行取模(%)运算时,运算结果的正负取决于被模数(%左边的数)的符号,与模数(%右边的数)的符号无关。
9.2.2.赋值运算符
①定义:赋值运算符的作用就是将常量、变量或表达式的值赋给某一个变量。
②赋值运算符分类说明:
③注意:
- 1.在Java中可以通过一条赋值语句对多个变量进行赋值。
- 2.在赋值运算符中,除了“=”,其他的都是特殊的赋值运算符,以“+=”为例,x += 3就相当于x = x + 3,首先会进行加法运算x+3,再将运算结果赋值给变量x。其余的-=、*=、/=、%=赋值运算符都可依此类推
④赋值运算符中强制类型转换的自动实现
在使用+=、-=、**=、/=、%= 赋值运算符时,需要进行的强制类型转换会自动完成,程序不需要做任何显式地声明。示例如下:
package com.page;
public class CC{
public static void main(String[ ] args){
short s = 3 ;
s += i;
System.out.println("s ="+s);
}
9.2.3.比较运算符
①定义:用来对两个数值或变量进行比较,其结果是布尔类型的true或false。
②比较运算符分类说明:
③注意:
-
1.比较运算符的结果都是boolean型,也就是要么是true,要么是false
-
2.比较运算符“= =”不能误写成“=” 。
9.2.4.逻辑运算符
①定义:是用于对布尔类型的值或表达式进行操逻辑判断的符号,其返回值类型是布尔类型。
②逻辑运算符分类说明:
③注意事项:
-
1.逻辑运算符可以针对结果为布尔值的表达式进行逻辑运算。如:5 > 3 && 1 != 0的结果为true。
-
2.运算符“&”和“&&”都表示与操作,当且仅当运算符两边的操作数都为true时,其结果才为true,否则结果为false。
-
3.“&”和“&&”的区别:在使用“&”进行运算时,不论左边为true或者false,右边的表达式都会进行运算。如果使用“&&”进行运算,当左边为false时,右边的表达式不会进行运算,因此“&&”被称作短路与。
-
4.运算符“|”和“||”都表示或操作,当运算符任何一边的操作数或表达式为true时,其结果为true,当两边的值都为false时,其结果才为false。同与操作类似,“||”表示短路或,当运算符“||”的左边为true时,右边的表达式不会进行运算。
-
5.运算符“^”表示异或操作,当运算符两边的布尔值相同时(都为true或都为false),其结果为false。当两边布尔值不相同时,其结果为true。
9.2.5.条件运算符
①定义:也称作三元运算符(或三目运算符),由符号“? :”组合构成,对布尔类型的表达式判断,如果为true,就执行冒号“:”前面的表达式,否者执行后面的表达式。
②条件运算符的语法格式:
(boolean_expr) ? true_statement: false_statement;
③规则:
先判断boolean_expr的值,如果为true,就执行表达式true_statement,否者执行表达式false_statement。
④条件运算符的使用示例:
public class CC{
public static void main(String[ ] args){
int store = 5;
System.out.println(store <=0 ? "没有库存啦":"库存量为"+store);
//输出结果为“库存量为:5”
}
9.3运算符的优先级:
- 1.定义:指的是在表达式中各个运算符参与运算的先后顺序,例如:先乘除,后加减
- 2.运算符的优先级——优先级列表:
学习笔记