基础知识点【初学必看】

2023/11/5 Java基础

# 1、第一个Hello World程序

开发环境已经搭建好了,现在就开始每个程序员必学的第一个程序: Hello World。为了理解Java程序执行过程,我们先不用集成开发环境。

需求:控制台打印一个Hello World

    1. 编写Hello.java

用记事本先编写一个Hello.java文件,注意里面的///* */都是注释,注释的内容不会被编译执行,是用来给人看的,就是备注,方面理解。可以先不用理解代码内容的含义,先理解代码的结构。

解释一下代码:创建了Hello类,从Java提供的main入口函数开始。main函数是Java程序的入口,无论任何的Java程序,首先第一个执行的就是main函数。然后我们在main函数中打印一个Hello World。System.out.println(集成环境时快捷输入sout)是系统提供的一个方法,帮助我们在控制台打印输出信息。

/**
 * Hello类,名称与文件名相同
 */
public class Hello {  
    /**
     * 入口函数
     * @param args
     */
    public static void main(String[] args) {
        // 打印Hello World
	    System.out.println("Hello World");

    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
    1. 使用java编译器(javac.exe)将Hello.java文件编译成字节码文件(Hello.class)

开始编译,我们可以直接在该目录下执行cmd进入命令行,这样就不用切换目录了。

执行javac Hello.java命令,编译成功后,会在当前目录下生成一个Hello.class文件。这是一个java可执行文件。

Hello.class文件

看下字节码文件Hello.class的内容,用记事本打开可能会乱码,可以用IDEA打开查看。发现注释内容都不见了,字节码文件是二进制文件,IDEA自己处理了帮助我们能够直接查看。

    1. 使用Java解释器(java.exe)执行字节码文件

现在我们就可以直接执行Hello.class文件,这个文件是可以被java解释器直接执行的。注意可以不用指定文件后缀,java解释器会自动识别。

    1. 总结分析

从上面我们可以知道了一个Java程序的执行过程:

  1. 我们编写代码为.java文件
  2. javac程序可以将我们的.java文件编译成.class字节码文件
  3. java程序可以读懂.class文件进行执行
  4. 类名与文件名相同,java解释器会自动识别
  5. 程序的入口是main函数

IDEA运行

# 2、标识符命名规则

Java的标识符命名规则有要求,也就是对方法、类、变量等的一些命名规则,其实其他的编程语言也差不多都是这些规则,具体可能有细节上的区别。

  • 标识符可以由字母、下划线、美元符号、数字组成,长度不受限制
  • 标识符第一个字符不能是数字
  • 不能是关键字
  • 注意点:标识符不能使用true、false、和null,虽然这几个不是关键字

# 3、注释

Java的注释分为单行注释和多行注释。等学完了Java基础可以去看看阿里巴巴Java开发手册-黄山版 (opens new window)

// 单行注释

/**
 * 多行注释
 */
1
2
3
4
5

# 4、关键字

Java内部定义了很多关键字,这些关键字不能用作标识符,都是有它特殊的意义,这里列举一些常用的:

  • public:表示公共的,可以在任何地方访问。
  • private:表示私有的,只能在同一类中访问。
  • protected:表示受保护的,在同一包或子类中访问。
  • static:表示静态的,属于类而不是对象。
  • final:表示不可修改的,用于修饰变量、方法和类。
  • abstract:表示抽象的,用于修饰抽象方法和类。
  • class:定义类。
  • interface:定义接口。
  • extends:表示继承一个类。
  • implements:表示实现一个接口。
  • void:表示无返回值的方法。
  • this:表示当前对象。
  • super:表示父类对象。
  • if:条件语句,用于执行条件判断。
  • else:与 if 一起使用,表示条件不满足时执行的语句块。
  • for:循环语句,用于重复执行一段代码。
  • while:循环语句,当条件满足时重复执行一段代码。
  • do:循环语句,先执行一段代码,然后根据条件重复执行。
  • switch:多分支选择语句,根据表达式的值,执行匹配的分支。
  • case:在 switch 语句中定义每个分支的值。
  • break:用于跳出循环或 switch 语句。
  • continue:用于跳过当前循环的剩余代码,开始下一次循环。
  • return:用于从方法中返回值。
  • try:异常处理语句的起始块。
  • catch:捕获异常并处理的代码块。
  • finally:与 try-catch 合用,执行最后必须执行的代码块。
  • null:表示空引用。
  • native:表示这个方法的实现是由其他语言(比如C或C++)编写的,它并不在Java源代码中。通过使用本地方法,我们可以直接调用其他语言的功能和库,从而提高性能或实现一些特定的系统操作。
  • transient:主要用于序列化。当对象序列化时,transient 关键字修饰的变量不会被序列化,也就是说在被序列化的过程中,这个域的值不会被存储下来。

# 5、语法糖

语法糖(Syntactic Sugar)是一种编程语言的设计特性,它使得代码更易读、更简洁,看起来像是“甜蜜”的语法。语法糖本质上是编程语言的一种语法扩展,不会增加新的功能,只是通过改变语法结构的方式,使程序的表达更简洁、更易理解。

  • 使用语法糖可以减少程序员的工作量,简化代码的编写和维护。它可以隐藏底层复杂的实现细节,使代码更具可读性和可理解性。语法糖通常是编程语言提供的一种更加高层次的抽象,它能够通过少量的代码实现一系列常见的操作,从而提高编程效率。

  • 编程语言中常见的一些语法糖包括:

  • 运算符重载:通过在不同的数据类型上定义相同的操作符,使得代码更具有可读性和直观性。
  • 简化循环语法:如Python的列表推导式、C#的LINQ查询表达式等,使得对数据集合的处理更加简洁。
  • 简化函数调用:例如C#中的匿名方法和Lambda表达式,使函数调用更加简洁易懂。
  • 自动类型推导:如Python的动态类型和JavaScript的隐式类型推导,减少了类型声明的繁琐性。
  • Java泛型:通过在类型上定义泛型,使得代码更加安全、简洁和易维护。

总之,语法糖是一种编程语言的设计技巧,通过改进语法结构,使代码更具可读性和可理解性,提高编程效率和代码质量。它并不会增加新的功能,只是对现有语法的一种简化和增强。