Java基础---Java概述

1什么是程序

程序:

​ 在计算机科学中,程序通常指的是一系列指令的集合,这些指令告诉计算机如何执行特定的任务。

​ 在Java语言中,程序是按照面向对象的编程范式编写的,这意味着程序由类(Class)和对象(Object)组成。

2java技术平台

Java技术平台的三个主要分支:

Java SE(标准版)、Java EE(企业版)、Java ME(微型版)。

特性Java SEJava EEJava ME
定义Java平台的核心部分,提供了Java语言的基础功能。为企业级应用提供服务,包含Java SE的所有功能,并增加了企业级应用开发所需的API和运行时环境。为移动设备和嵌入式设备提供轻量级解决方案,包含Java SE的一部分功能。
用途桌面应用、移动应用、小型服务器应用等。大型企业级应用、分布式应用、Web服务等。移动电话、电视、家用电器等嵌入式系统。
主要组件Java虚拟机(JVM)、Java核心类库、Java编译器等。Servlet API、JSP API、EJB API、JMS API、JPA API等。CDC(Configuration-dependent Device Class)、CLDC(Connected Limited Device Configuration)。
开发重点面向个人和小型应用的开发。面向大型分布式系统的企业级开发。面向资源受限设备的轻量级开发。
API丰富度基础API,适合大多数应用。丰富的API,支持复杂的企业级需求。精简的API,适应资源受限的环境。
性能适中。高性能,适合复杂的企业级应用。低资源消耗,适合小型设备。
开发工具Eclipse、IntelliJ IDEA、NetBeans等。Eclipse、IntelliJ IDEA、NetBeans等,以及特定的企业级开发工具。EclipseME、JDE等。
学习曲线初级到中级。中级到高级。初级。
社区支持广泛。广泛。相对较少,但仍然有社区支持。

3Java重要特点

面向对象(Object-Oriented):

​ Java是一种面向对象的语言,这意味着它支持类和对象的概念,以及封装、继承和多态性。

健壮性

​ Java的设计目标是减少错误,它提供了强类型检查、异常处理机制等,以增强程序的稳定性。

跨平台性(Write Once, Run Anywhere - WORA):

​ Java代码可以在任何支持Java虚拟机(JVM)的平台上运行,无需修改。

解释型:

​ Java是一种解释型语言,这意味着Java源代码不是直接编译成机器码来执行,而是首先编译成一种中间形式,称为字节码(bytecode)。字节码是一种与平台无关的代码,可以在任何安装了Java虚拟机(JVM)的设备上运行。

可移植性:

​ 由于跨平台的特性,Java代码可以在多种操作系统和硬件平台上运行。

简单性:

​ Java设计时考虑到了简洁性,它去除了C++中的一些复杂特性,如指针运算、多重继承等。

安全性:

​ Java提供了一个安全的运行环境,它有一套安全管理器和安全特性,可以防止恶意代码的执行。

多线程:

​ Java内置了对多线程编程的支持,允许开发者编写能够同时执行多个任务的程序。

分布式:

​ Java提供了丰富的网络通信API,使得开发分布式应用变得容易。

动态性:

​ Java支持动态加载和链接,这意味着在运行时可以动态地添加和替换代码。

高性能:

​ 虽然Java是一种解释型语言,但通过即时编译器(JIT)和优化技术,它可以达到接近编译型语言的性能。

国际化:

​ Java支持国际化,这意味着它可以很容易地适应不同的语言和地区设置。

可扩展性:

​ Java的内存管理和垃圾收集机制使得它能够处理大型和复杂的应用程序。

丰富的API:

​ Java提供了一个庞大的标准库,包括用于网络、数据库访问、数据结构、图形用户界面构建等的API。

社区和生态系统:

​ Java拥有一个庞大的开发者社区,提供了大量的框架、工具和库,支持开发者快速开发高质量的应用程序。

4Java运行机制

Java是一种跨平台的编程语言,它的运行机制主要基于Java虚拟机(JVM)。以下是Java运行机制的详细步骤:

  1. 编写源代码

    • 开发者使用文本编辑器或集成开发环境(IDE)编写Java源代码,并保存为.java文件。
  2. 编译源代码

    • 使用Java编译器(javac命令)将源代码编译成字节码。编译后的字节码保存为.class文件。
  3. 加载字节码

    • Java运行时环境(JRE)中的Java虚拟机(JVM)加载编译后的字节码文件。
  4. 解释执行

    • JVM中的解释器(Interpreter)逐行读取字节码并将其转换成特定平台的机器码执行。
  5. 即时编译(JIT)

    • 为了提高性能,JVM可以使用即时编译器(Just-In-Time Compiler,JIT)将热点代码(频繁执行的代码)编译成机器码,存储在代码缓存中,以提高后续执行效率。
  6. 垃圾回收

    • JVM负责管理内存,包括自动垃圾回收,以释放不再使用的内存空间。
  7. 运行时类型检查

    • Java在运行时进行类型检查,确保类型安全。
  8. 异常处理

    • Java程序在执行过程中可能会抛出异常。JVM负责异常的捕获和处理。
  9. 多线程支持

    • JVM支持多线程执行,允许程序中的多个任务同时运行。
  10. 平台无关性

    • 由于Java源代码被编译成平台无关的字节码,因此可以在任何安装有JVM的平台上运行,实现了“一次编写,到处运行”(Write Once, Run Anywhere,WORA)的特性。

Java的这种运行机制使得Java程序具有良好的可移植性、安全性和性能。通过JVM,Java能够适应不同的操作系统和硬件平台,同时提供丰富的运行时服务,如内存管理、多线程支持等。

在这里插入图片描述

5什么是JDK,JRE

​ JDK(Java Development Kit)是Java开发工具包,它包含了Java开发所需的所有工具,如编译器、调试器以及Java运行时环境(JRE)。【 JDK=JRE+Java的开发工具[java,javac,javadocjavap等]】

​ JDK是面向开发者的,使他们能够编写、编译和运行Java程序。

​ JRE(Java Runtime Environment)是Java运行时环境,它包含了运行Java应用程序所需的核心组件,如Java虚拟机(JVM)和Java类库。【JRE=JVM+java的核心类库[类]】

JRE是面向最终用户的,他们只需要运行Java程序而不需要开发。

​ JDK和JRE的关系是包含关系:JDK中包含了JRE,因此安装了JDK就不需要单独安装JRE。简单来说,如果你要开发Java程序,需要JDK;如果你只是要运行Java程序,只需要JRE。

6下载安装JDK【空白】

7配置环境变量

为什么要配置环境变量?

下载并安装JDK后配置环境变量是一个重要的步骤,原因如下:

  1. 可执行路径:通过配置环境变量,可以确保操作系统知道在哪里找到JDK中包含的可执行文件,如javac(Java编译器)和java(Java运行时)。
  2. 命令行访问:配置环境变量后,可以在命令行中直接运行Java命令,无需每次都指定JDK的完整路径。
  3. 脚本和自动化:当编写脚本或进行自动化操作时,环境变量确保了Java工具可以被正确调用。
  4. 开发工具集成:许多集成开发环境(IDE)和其他开发工具依赖于环境变量来定位JDK,以便进行代码编译和运行。
  5. 系统识别:配置环境变量后,系统可以识别Java文件类型,并将其与适当的工具关联。
  6. 简化路径:在编写脚本或命令时,可以简化路径,使用相对路径或环境变量代替绝对路径。
  7. 跨平台兼容性:环境变量提供了一种方式来适应不同操作系统的路径和配置差异。

配置方法:

配置环境变量通常涉及以下几个步骤:

  • 更新系统路径:将JDK的bin目录添加到系统的PATH环境变量中。
  • 设置JAVA_HOME:创建一个新的环境变量JAVA_HOME,其值为JDK的安装路径。
  • 更新CLASSPATH(可选):虽然不是必需的,但有时可能需要设置或更新CLASSPATH环境变量,以便JVM能够找到用户类和库。

配置环境变量使得Java开发更加方便和高效,确保了开发工具和命令行都能够顺利地使用JDK提供的功能。

8快速入门【大胆的和Java语言过招吧!】

1编写Java源代码

  • 使用文本编辑器(如Notepad++、Sublime Text、VS Code等)创建一个新的文本文件
public class HelloJava {
    public static void main(String[] args) {
        System.out.println("Hello Java");
    }
}
//这段的代码就这么多,下面是为了详细解释
//详细解释这段代码
//定义一个公共类 HelloJava
// 类名应与文件名一致,这是Java的命名规范
public class HelloJava {
    
    // 主方法的入口点,每个Java程序都从这里开始执行
    // public static void main(String[] args) 是Java程序的主方法签名
    public static void main(String[] args) {
        
        // System.out 是Java的标准输出流
        // println 是输出后换行的方法
        // "Hello Java" 是要输出到控制台的字符串
        System.out.println("Hello Java");
        
        // 当 println 执行完毕后,程序结束
    }
    
    // HelloJava 类结束
}
  • 注意:将文件保存为HelloJava.java,注意文件名必须与public类名匹配。
    在这里插入图片描述

2编译Java程序:

  • 打开命令提示符或终端,导航到HelloJava.java文件所在的目录。

  • 运行命令javac HelloJava.java来编译Java程序。这将生成一个名为HelloJava.class的字节码文件。

3运行Java程序:

  • 在同一个目录下,运行命令java HelloJava来执行编译后的字节码文件。

4查看输出:

控制台将输出"Hello Java"。

在这里插入图片描述

9Java开发注意事项和细节

  1. Java源文件以.java为扩展名。
  2. Java源文件的基本组成部分是类(class),例如Hello类。
  3. Java应用程序的执行入口是main()方法,它有固定的书写格式:
    [ public static void main(String[] args) ]
  4. Java语言严格区分大小写。
  5. Java方法由一条条语句构成,每个语句以分号;结束。
  6. 大括号{}都是成对出现的,缺一不可。编写习惯是先写大括号再写代码。
  7. 一个源文件中最多只能有一个public类。其他类的个数不限。
  8. 如果源文件包含一个public类,则文件名必须与该类名相同。
  9. 一个源文件中可以包含多个类,也可以将main方法写在非public类中,然后通过指定运行非public类来执行,这样入口方法就是非publicmain方法。

10Java转义字符

在Java中,转义字符用于在字符串中包含那些通常有特殊含义的字符。以下是一些Java转义字符的使用案例及其作用:

  1. 换行符 \n

    • 案例

      System.out.println("Hello\nWorld!");
      
    • 输出

      Hello
      World!
      
    • 作用:在输出文本时创建一个新行。

  2. 制表符 \t

    • 案例

      System.out.println("Name\tAge\tCity");
      System.out.println("Alice\t25\tNew York");
      
    • 输出

      Name    Age    City
      Alice  25     New York
      
    • 作用:创建一个水平制表位,通常用于对齐文本。

  3. 单引号 \'

    • 案例

      String quote = "It's a beautiful day.";
      System.out.println(quote);
      
    • 输出

      It's a beautiful day.
      
    • 作用:允许在字符串中包含单引号字符。

  4. 双引号 \"

    • 案例

      String quote = "He said, \"Hello World!\"";
      System.out.println(quote);
      
    • 输出

      He said, "Hello World!"
      
    • 作用:允许在字符串中包含双引号字符。

  5. 反斜杠 \\

    • 案例

      String path = "C:\\Users\\Username\\file.txt";
      System.out.println(path);
      
    • 输出

      C:\Users\Username\file.txt
      
    • 作用:在字符串中包含实际的反斜杠字符,常用于表示文件路径。

    等等

11注释

在Java中,注释用于解释代码,增强代码的可读性,并且不会被编译器执行。Java支持三种类型的注释:

1单行注释

使用两个斜杠 // 开始,仅对该行有效。

案例

// 这是一个单行注释
int number = 10; // 这行代码声明了一个变量number

作用:用于添加对单行代码的解释或备注。

2多行注释:

使用斜杠加星号 /* 开始,星号加斜杠 */ 结束,可以跨越多行。

案例

/* 这是一个
   多行注释 */
int number = 10;

作用:用于添加跨越多行的解释或备注,但通常不推荐使用,因为它们可能会使代码难以阅读。

3文档注释:

使用两个星号 /** 开始,星号加斜杠 */ 结束,用于生成API文档。

案例

/**
 * 这是一个文档注释
 * @param args 命令行参数
 */
public static void main(String[] args) {
    // ...
}

作用:用于生成API文档。文档注释通常包含方法的详细描述、参数说明、返回值说明以及可能抛出的异常等信息。

​ 文档注释是Java中特有的一种注释方式,它被Javadoc工具解析,用来自动生成HTML格式的程序文档。这对于维护大型项目和团队协作开发非常有用,因为它提供了一种标准化的方式来记录和展示代码的公共API。

在实际开发中,应该根据需要选择合适的注释方式,以提高代码的可读性和可维护性。

12Java代码规范

Java的代码规范通常遵循一些行业标准和最佳实践,以确保代码的可读性、一致性和可维护性。以下是一些广泛接受的Java代码规范:

  1. 命名约定

    • 类名:通常是名词,首字母大写,如 MyClass
    • 方法名和变量名:通常是小写字母和下划线(snake_case),如 myMethodmy_variable
    • 常量名:全部大写字母和下划线,如 MAX_VALUE
  2. 代码格式化

    • 使用适当的缩进,通常是4个空格。
    • 在大括号的使用上保持一致,可以是K&R风格或Allman风格。
    • 在方法和变量声明之间,以及方法调用的参数之间添加空行。
  3. 注释

    • 使用文档注释来描述类、方法和复杂逻辑。
    • 为复杂的代码段添加注释,以解释代码的意图。
  4. 避免长行

    • 保持代码行在合理的长度内,通常不超过80或120个字符。
  5. 避免复杂的表达式

    • 尽量使方法和逻辑保持简单,避免复杂的嵌套和长表达式。
  6. 使用访问修饰符

    • 明确使用 publicprotectedprivate 等访问修饰符来控制成员变量和方法的可见性。
  7. 避免使用 final 关键字的不一致性

    • 如果一个类不是设计为被子类化,应该声明为 final
  8. 异常处理

    • 恰当地使用try-catch块来处理异常,避免使用过于宽泛的异常捕获。
  9. 代码重用

    • 通过方法和类的继承来提高代码的重用性。
  10. 避免不必要的对象创建

    • 避免在循环内部创建可以在循环外部创建的对象。
  11. 使用泛型

    • 利用泛型来提高代码的类型安全性和灵活性。
  12. 使用断言

    • 利用断言来检查程序状态,特别是在开发和测试阶段。
  13. 避免魔法值

    • 将“魔法值”替换为命名常量,以提高代码的可读性。
  14. 遵循SOLID原则

    • 设计时遵循SOLID原则,使代码易于维护和扩展。
  15. 单元测试

    • 编写单元测试来验证代码的正确性。
  16. 使用版本控制系统

    • 使用如Git这样的版本控制系统来管理代码变更。
  17. 代码审查

    • 通过代码审查来提高代码质量。
  18. 避免全局状态

    • 尽量减少全局状态的使用,这会使代码更难于理解和维护。

总结

​ 这些规范有助于保持代码的整洁和一致性,使得团队成员之间的协作更加顺畅。不同的团队和项目可能会有特定的编码标准,但上述规范是一个很好的起点。

13总结

至此,我的Java概述总结就就结束了,后面还会继续补充的。有什么错误还希望提出,帮我精进。感谢!

  • 32
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值