Java教程

Java基本语法

本文主要是介绍Java基本语法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

2. Java基本语法

2.1 关键字和保留字

关键字的定义和特点

定义:被Java语言赋予了特殊含义,用做专门用途的字符串(单词)

特点:关键字中所有字母都为小写

保留字

Java保留字:现有Java版本尚未使用,但以后版本可能会作为关键字使 用。自己命名标识符时要避免使用这些保留字

2.2 标识符

标识符:Java 对各种变量、方法和类等要素命名时使用的字符序列。

定义规则
  • 由26个英文字母大小写,0-9 ,_或 $ 组成
  • 数字不可以开头。
  • 不可以使用关键字和保留字,但能包含关键字和保留字。
  • Java中严格区分大小写,长度无限制。
  • 标识符不能包含空格。
Java中的名称命名规范
  • 包名:多单词组成时所有字母都小写:xxxyyyzzz
  • 类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz
  • 变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个 单词首字母大写:xxxYyyZzz
  • 常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ

2.3 变量

变量的概念
  • 内存中的一个存储区域
  • 该区域的数据可以在同一类型范围内不断变化
  • 变量是程序中最基本的存储单元。包含变量类型、变量名和存储的值
变量的作用
  • 用于在内存中保存数据
使用变量的注意事项
  • Java中每个变量必须先声明,后使用
  • 使用变量名来访问这块区域的数据
  • 变量的作用域:其定义所在的一对{ }内
  • 变量只有在其作用域内才有效 同一个作用域内,不能定义重名的变量
声明变量

语法:<数据类型> <变量名称>

变量的赋值

语法:<变量名称> = <值>

声明和赋值变量

语法: <数据类型> <变量名> = <初始化值>

变量的分类
  1. 按数据类型分

    • 基本数据类型

      • 数值型

        • 整数类型(byte(1字节)、short(2字节)、int(4字节)、long(8字节))

          注意事项

          • java的整型常量默认为 int 型,声明long型常量须后加‘l’或‘L’
          • java程序中变量通常声明为int型,除非不足以表示较大的数,才使用long
        • 浮点类型(float(4字节)、double(8字节))

          注意事项

          • Java 的浮点型常量默认为double型,声明float型常量,须后加‘f’或‘F’。
      • 字符型(char)

      • 布尔型(boolean)

        注意事项

        • boolean类型数据只允许取值true和false,无null。
    • 引用数据类型

      • 类(class)
      • 接口(interface)
      • 数组([])
  2. 按声明位置分

    • 成员变量
      • 实例变量
      • 类变量
    • 局部变量
      • 形式参数
      • 方法局部变量
      • 代码块局部变量
基本数据类型的转换
  • 自动类型转换:容量小的类型自动转换为容量大的数据类型。

    char、byte、short —> int —> long —> float —> double

  • 强制类型转换:自动类型转换的逆过程,将容量大的数据类型转换为容量小的数据类型。使用时要加上强制转换符:(),但可能造成精度降低或溢出

进制

整型二进制形式

  • 原码:直接将一个数值换成二进制数。最高位是符号位
  • 负数的反码:是对原码按位取反,只是最高位(符号位)确定为1。
  • 负数的补码:其反码加1。

其他注意事项

  • 正数的原码、反码、补码相同
  • 计算机底层存储的是补码

2.4 运算符

分类
  • 算术运算符
  • 赋值运算符
  • 比较运算符(关系运算符)
  • 逻辑运算符
  • 位运算符
  • 三元运算符
2.4.1 算术运算符
运算符运算范例结果
+正号+33
-负号a=4;-a-4
+1+12
-1-10
*1*22
/2/12
%取余(取模)3%21
++前自增:先自增,后运算a=3,b=3;b=a++a=4,b=3
++后自增:先运算,后自增a=3,b=3;b=++aa=4,b=4
前自减:先自减,后运算a=3,b=3;b=a–a=2,b=3
后自减:先运算,后自减a=3,b=3;b=–aa=2,b=2
+字符串连接“Hello” + “World”HelloWorld

注意点

  • 负数取模,符号跟被模数相同。
  • 整数做除法运算,会舍弃小数部分。
2.4.2 赋值运算符
  • 符号:=
    • 当“=”两侧数据类型不一致时,可以使用自动类型转换或使用强制类型转换原则进行处理。
    • 支持连续赋值。
  • 扩展赋值运算符: +=, -=, *=, /=, %=
2.4.3 比较运算符
运算符运算范例结果
==相等4 == 3false
!=不等4 != 3true
>大于4 > 3true
<小于4 < 3false
>=大于等于4 >= 3true
<=小于等于4 <= 3false
instanceof检查是否是类的对象“Hello” instanceof Stringtrue
2.4.4 逻辑运算符

分类

  • &——逻辑与:都为真,则为真,无论左边真假,右边都运算
  • &&——短路与:都为真,则为真,左边为假,右边不运算
  • |——逻辑或:一个为真,则为真,无论左边真假,右边都运算
  • ||——短路或:一个为真,则为真,左边为真,右边不运算
  • !——逻辑非:对结果取反
  • ^——逻辑异或:左右相同,则为假,左右不同,则为真
2.4.5 位运算符
运算符运算范例结果备注
<<左移3 << 212空位补0,被移除的高位丢弃,空缺位补0
>>右移3 >> 11被移位的二进制最高位是0,右移后,空缺位补0; 最高位是1,空缺位补1
>>>无符号右移3 >>> 11被移位二进制最高位无论是0或者是1,空缺位都用0补
&与运算6 & 32二进制位进行&运算,只有1&1时结果是1,否则是0
|或运算6 | 37二进制位进行 |运算,只有0 |0时结果是0,否则是1
^异或运算6 ^ 35相同二进制位运算,结果是0;不相同二进制位运算结果是1
~取反运算~6-7各二进制码按补码各位取反
2.4.6 三元运算符

格式:(条件表达式) ? 表达式1 : 表达式2;

注意事项

  • 条件表达式为真则结果为表达式1,条件表达式为假,则结果为表达式2
  • 表达式1和表达式2为同种类型

2.5 程序流程控制

概念

流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块。

分类
  • 顺序结构

    程序从上到下逐行地执行,中间没有任何判断和跳转。

  • 分支结构

    根据条件,选择性地执行某段代码。

    有if…else和switch-case两种分支语句。

  • 循环结构

    根据循环条件,重复性的执行某段代码。

    有while、do…while、for三种循环语句。

    注:JDK1.5提供了foreach循环,方便的遍历集合、数组元素。

2.5.1 顺序结构

Java中定义成员变量时采用合法的前向引用。即顺序结构是从上到下逐行地执行,不可反转。

2.5.2 分支结构
1.if-else结构

格式

  1. if

    if (条件表达式) {
    	执行代码块;
    }
    
  2. if-else

    if (条件表达式) {
    	执行代码块1;
    } else {
    	执行代码块2;
    }
    
  3. if-else if-else

    if (条件表达式1) {
    	执行代码块1;
    } else if (条件表达式2) {
    	执行代码块2;
    } …… else {
    	执行代码块n;
    }
    

使用说明

  • 条件表达式必须是布尔表达式(关系表达式或逻辑表达式)、布尔变量

  • 语句块只有一条执行语句时,一对{}可以省略,但建议保留

  • if-else语句结构,根据需要可以嵌套使用

  • 当if-else结构是“多选一”时,最后的else是可选的,根据需要可以省略

  • 当多个条件是“互斥”关系时,条件判断语句及执行语句间顺序无所谓

    当多个条件是“包含”关系时,“小上大下 / 子上父下”

补充——Scanner类的使用

具体实现步骤

  1. 导包:import java.util.Scanner;
  2. Scanner的实例化:Scanner scan = new Scanner(System.in);
  3. 调用Scanner类的相关方法(next() / nextXxx()),来获取指定类型的变量

注意事项
需要根据相应的方法,来输入指定类型的值。如果输入的数据类型与要求的类型不匹配时,会报异常:InputMisMatchException导致程序终止。

2.switch-case结构

结构

switch (表达式) {
case 常量1:
	语句1;
	// break;
case 常量2:
	语句2;
	// break;
… …
case 常量N:
	语句N;
	// break;
default:
	语句;
	// break;
} 

相关规则

  • switch(表达式)中表达式的值必须是下述几种类型之一:byte,short,char,int,枚举 (jdk 5.0),String (jdk 7.0);
  • case子句中的值必须是常量,不能是变量名或不确定的表达式值;
  • 同一个switch语句,所有case子句中的常量值互不相同;
  • break语句用来在执行完一个case分支后使程序跳出switch语句块;如果没有break,程序会顺序执行到switch结尾
  • default子句是可任选的。同时,位置也是灵活的。当没有匹配的case时,执行default

swithc和if语句的对比

  • 如果判断的具体数值不多,而且符合byte、short 、char、int、String、枚举等几种类型。虽然两个语句都可以使用,建议使用swtich语句。因为效率稍高。
  • 其他情况:对区间判断,对结果为boolean类型判断,使用if,if的使用范围更广。也就是说,使用switch-case的,都可以改写为if-else。反之不成立。
2.5.3 循环结构

在某些条件满足的情况下,反复执行特定代码的功能

循环语句分类

  • for 循环
  • while 循环
  • do-while 循环

循环语句的四个组成部分

  • 初始化部分(init_statement)
  • 循环条件部分(test_exp)
  • 循环体部分(body_statement)
  • 迭代部分(alter_statement)
1.for循环

格式

for (①初始化部分; ②循环条件部分; ④迭代部分){
	③循环体部分;
}

执行过程

①-②-③-④-②-③-④-②-③-④-…-②

说明

  • ②循环条件部分为boolean类型表达式,当值为false时,退出循环
  • ①初始化部分可以声明多个变量,但必须是同一个类型,用逗号分隔
  • ④可以有多个变量更新,用逗号分隔
2.while循环

格式

①初始化部分
while(②循环条件部分){
    ③循环体部分;
    ④迭代部分;
}

执行过程

①-②-③-④-②-③-④-②-③-④-…-②

说明

  • 注意不要忘记声明④迭代部分。否则,循环将不能结束,变成死循环。
  • for循环和while循环可以相互转换
  • 要避免出现死循环。
3.do-while循环

格式

①初始化部分;
do{
    ③循环体部分
    ④迭代部分
}while(②循环条件部分);

执行过程

①-③-④-②-③-④-②-③-④-…②

说明

do-while循环至少执行一次循环体。

4.其他说明
  • 最简单“无限” 循环格式:while(true) , for(;
这篇关于Java基本语法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!