Skip to content

第二章 基础语法 v1.0 ​

第一部分 语言基础 ​

一、Java特征 ​

基本特点图

Java基本特点

运行内存空间分配

Java运行内存空间分配

1.平台无关的语言 ​

Java可运行于多个平台,如Windows,Mac OS,及其他多种UNIX版本的系统。

Java是平台无关的语言,用Java编写的应用程序不用修改就可以在不同的平台上运行。

Java虚拟机是可运行Java字节码的虚拟计算机系统,使用Java语言编写的程序,实际上是运行在JVM之上,而不是运行在操作系统上。

2.Java特点 ​

Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点,能够适应几乎任何类型的应用程序的需求,纯粹的面向对象是Java语言核心的思想与原则。

面向对象编程(OOP)的3个原则:封装性、继承性和多态性。

二、Java程序特点 ​

1.Java的程序入口 ​

  1. 每个Java程序都必须包含一个类。
  2. 每个Java程序(或者说类)都由public static void main(String[] args)方法开始执行。
java
public class Main {
    public static void main(String[] args) {
        //访问修饰符public:表示任何人都可以访问它
        //静态修饰符static:表示该方法可以在不创建含main方法的类实例的情况下运行
        //返回值类型void:表示该方法不会返回任何值
        //方法名main:main是主方法的默认方法名
        System.out.print("Hello World");
    }
}

2.Java语法规则 ​

  1. 大小写敏感:Java是大小写敏感的,意味着标识符Hello与hello是不同的。

  2. Java标识符:类名、变量名以及方法名都被称为标识符,关于标识符,我们应该注意以下几点:

  3. 标识符由字母、美元符、下划线或数字组成。

  4. 标识符应以字母、美元符($)、下划线(_)开始(不能以数字开始)。

  5. Java标识符是大小写敏感的,长度无限制。

  6. 不能使用关键字作为Java标识符,关键字如class、void等等。

  7. 值与引用类型:Java中基本类型传的是值,对象(包括数组、字符串)传的是引用。

  8. 源文件名:源文件名必须和类名相同。保存文件时,应使用类名作为文件名保存,文件名的后缀为.java。

3.命名规范 ​

  1. 工程名:全小写以下划线作分割,例如:my_porject
  2. 类名:对于所有的类来说,类名的每个单词的首字母应该大写,例如:MyJavaClass
  3. 方法名与变量名:第一个单词小写字母开头,后面的每个单词首字母大写,例如:myJavaVariate
  4. 常变量:标识符全大写,例如:JAVAPATH

4.简单Java语句 ​

变量声明语句 ​

基本运算(包括声明变量、自加减、复合赋值、逻辑运算、注释等)类C语言。

特别: var 关键字声明变量实现自动选择类型(Java10之后引入)。 在Java中,不同于C语言,任何局部变量使用前必须赋初值,直接使用会报错

如:

基本类型的声明与赋初值:<基本类型名> <变量名> = <变量初始值>;

创建对象语句:<类名> <对象名> = new <类的构造函数名[类名]>(<构造函数参数>);

Java中基本输入输出语句 ​
java
// 输入语句
import java.util.Scanner;    //导入Scanner类(键盘扫描器,非输入)
Scanner myVar = new Scanner(System.in);    //创建类对象
var s1=myVar.next();
var s2=myVar.nextLine();

// 输出语句
System.out.print();    //不换行输出
System.out.println();    //换行输出

二、符号与运算符 ​

1.逻辑运算符 ​

运算符运算说明
& / &&按位与/逻辑与两边均为true时结果为true,区别在于后者可能只计算一遍
| / ||按位或/逻辑或两边均为false时结果为false,区别在于后者可能只计算一遍
^异或两操作数同真或同假时结果为true
!取反取与后操作数的逻辑值相反的值

2.位运算符 ​

运算符运算用法
~按位取反~var
&按位与var1&var2
|按位或var1|var2
^按位异或var1^var2
>> / >>>按位右移/无符号右移var1>>var2(位移位数)
<<按位左移var1<<var2(位移位数)

3.注释 ​

Java中基本注释语句类似于C语言

java
//单行注释

/* 
* 这是一个多行注释
*/

4.文档注释 ​

Java中存在特殊的一种注释——文档注释,写在说明的方法之前,其允许在程序中嵌入关于程序的信息。

可以使用javadoc工具软件来生成信息,并输出到HTML文件中。Java文档注释以 /** 开始,以 */结束。

java
/** 
* 这是一个文档注释
*/
java
/**
* @author hymsk
* @version jdk1.8.0
*/
public class Hello {
    /**
    * 该方法是程序的主方法,也可以叫入口方法
    * @param args 该参数以字符串数组的方式接收命令行参数
    * @return 返回值的说明
    */
    public static void main(String[] args){
        System.out.print("Hello World");
    }
}
Javadoc标签 ​
标签描述
@author标识一个类的作者,一般用于类注释
@deprecated指名一个过期的类或成员,表明该类或方法不建议使用
允许写入特殊字符等标签而不进行解析
指明当前文档根目录的路径
@exception可能抛出异常的说明,一般用于方法注释
从直接父类继承的注释
插入一个到另一个主题的链接
插入一个到另一个主题的链接,但是该链接显示纯文本字体
@param说明一个方法的参数,一般用于方法注释
@return说明返回值类型,一般用于方法注释,不能出现再构造方法中
@see指定一个到另一个主题的链接
@serial说明一个序列化属性
@serialData说明通过 writeObject() 和 writeExternal() 方法写的数据
@serialField说明一个 ObjectStreamField 组件
@since说明从哪个版本起开始有了这个函数
@throws和 @exception 标签一样.
显示常量的值,该常量必须是 static 属性。
@version指定类的版本,一般用于类注释
Javadoc用法 ​

javadoc [options] [包名] [源文件名]

名称说明
-public仅显示 public 类和成员
-protected显示 protected/public 类和成员(默认值)
-package显示 package/protected/public 类和成员
-private显示所有类和成员
-d <directory>输出文件的目标目录
-version包含 @version 段
-author包含 @author 段
-splitindex将索引分为每个字母对应一个文件
-windowtitle <text>文档的浏览器窗口标题

第二部分 程序结构 ​

一、条件结构 ​

1.条件语句——if语句 ​

java
if (条件表达式) {  //Java企业级开发规范中大括号一概不省略
    //如果此布尔表达式为true将执行的语句
}
else if (条件表达式) {
    //如果此布尔表达式为true,且前面的布尔表达式为false将执行的语句
}
else {
    //如果以上布尔表达式都为false将执行的语句
}

2.条件选择结构——switch语句 ​

java
switch(表达式){  //表达式可以是变量等
    case value1:  //常量或常量表达式
       //语句块
       break;  //可选,若不使用后续case中的语句也都会执行
    case value2:
       //语句块
       break;  //可选
    //你可以有任意数量的case语句
    default:  //可选
       //语句块
}
  1. 表达式的数据类型只能是能自动类型转化成int的类型、枚举类型、String(jdk>=1.7,但不建议使用)

  2. case后只能跟以上类型的常量或常量表达式,且常量要求唯一

  3. case后可以跟一段代码块,但是没有必要加{}

  4. default和case的顺序可以更换而不影响结果(default均最后执行)

3.三目运算符 ​

java
条件表达式?表达式1:表达式2;  //条件表达式为True返回表达式1,条件表达式为False返回表达式2

二、循环结构 ​

1.while循环 ​

java
while(条件表达式) {
    //循环体
}  //先判定,当指定条件为真执行循环语句

2.do-while循环 ​

java
do {
    //循环体
}while(条件表达式);  //先执行一遍语句,再判断当指定条件为真执行循环语句

3.for循环 ​

java
for(表达式1;条件表达式;表达式2){  //(循环前执行语句;循环条件;每次循环后执行语句)
    循环体
}

4.增强型for循环(for-each循环) ​

java
int[] anArray={......};  //此处int可以替换成各种元素
for(int a: anArray){  //变量a在循环体中表示每次循环对应的元素
    //循环体
}