1. 引言
Java作为一门面向对象的编程语言,凭借其跨平台性、稳定性和丰富的生态,及其"一次编写,到处运行"的核心优势,成为入门编程的热门选择。本文将为初学者梳理Java的核心概念,帮助快速建立编程逻辑,迈出软件开发的第一步。
2. Java的起源与特性
Java由Sun Microsystems于1995年推出,其"一次编写,到处运行"的特性得益于JVM(Java虚拟机)。关键特点包括:
• 跨平台
Java程序的跨平台主要是指字节码文件可以在任何具有Java虚 拟机的计算机或者电子设备上运行,Java虚拟机中的Java解释 器负责将字节码文件解释成为特定的机器码进行运行。
• 简单性
不再有#include 和#define 等预处理功能 、不再有struct,union及typedef 、不再有函数、不再有指针、不再有多重继承 、不再有goto 、不再有操作符重载(Operatior Overloading) 、不再有全局变量 取消自动类型转换,要求强制转换 、不再有手动内存管理
• 安全性
Java取消了强大但又危险的指针。由于指针可进行移动运算,指针可随便指向一个内存区域, 而不管这个区域是否可用,这样做是危险的,因为原来这个内存地址可能存储着重要数据 或者是其他程序运行所占用的, 并且使用指针也容易数组越界。
Java提供了自动内存管理机制,由垃圾回收器在后台自动回收,
Java在字节码的传输过程中使用了公开密钥加密机制(PKC)。 而在运行环境提供了四级安全性保障机制: 字节码校验器 -类装载器 -运行时内存布局 -文件访问限制。。
• 完全面向对象
Java和C++都是面向对象语言。也就是说,它们都能够实现面向对象思想(封装,继承,多 态)。 由于C++为了照顾大量C语言使用者而兼容了C,使得自身仅仅成为了带类的C语言,多少影 响了其面向对象的彻底性! Java则是完全的面向对象语言,它句法更清晰,规模更小,更易学。它是在对多种程序设计 语言进行了深入细致研究的基础上,据弃了其他语言的不足之处,从根本上解决了c++的固有缺陷。SXT
• 健壮性
Java的强制类型机制、异常处理、垃圾的自动收集等是Java程序健壮性的重要保证。对指针的丢弃是Java的明智选择。
Java的安全检查机制使得Java更具健壮性。
3.Java跨平台原理
a:Java运行过程
Java程序的运行分为两步:先编译再解释执行。通过“编译器”将Java源程序编译成Java 字节码文件(.class)(字节码文件采用结构中立 的中间文件格式) 。通过不同的“虚拟机”将Java字节码文件解释为对应机器语言并执行。
b:Java和C跨平台的区别
Java:一次编译,到处运行; C:多次编译,到处运行。
Java的运行速度没有C语言快 。
Java需要将class文件解释成机器码再执行;C执行执行机器码。
c:字节码文件bytecode
.class文件(二进制文件)格式中立、平台无关的二进制文件 ,是编译的产物,是解释的原料。
d:Java虚拟机 JVM
JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿 真模拟各种计算机功能来实现的。
JVM就是一个虚拟的用于执行bytecodes字节码的计算机,是Java最核心技术,也是跨平台的基础。 Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在 Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。
Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。这就是Java的能够“一次编译,到处运行”的原因。
5:JDK、JRE、JVM的区别联系
JDK | Java Development Kit | Java开发工具包,包含Java编译器(javac )、运行时环境(JRE)和开发库(如java.lang 等),专为开发者设计。 |
JRE | Java Runtime Environment | Java运行环境,包含JVM和运行Java程序所需的核心类库,适用于普通用户运行程序。 |
JVM | Java Virtual Machine | Java虚拟机,负责将字节码( .class 文件)转换为机器指令并执行,是跨平台的核心 。 |
4. Java开发前准备及环境搭建
a.常用Java开发工具准备
文本编辑器(选择任意一个) :EditPlus、notepad++等;
集成开发环境:(IDE:Integrated Development Environment)、Eclipse 开源 解压即可(重点) 、 MyEclipse:若进行J2EE开发,还要加MyEclipse插件。MyEclipse是Eclipse的插件,也是一 款功能强大的J2EE集成开发环境。现在直接安装集成Eclipse的MyEclipse即可。
-
IDE配置策略
-
IntelliJ IDEA社区版:
-
启用智能编码辅助:File→Settings→Editor→General→Auto Import
-
项目创建时需显式关联已安装的JDK路径
-
-
Eclipse IDE:
-
下载"Eclipse IDE for Java Developers"专用包
-
首次运行时建议设置独立workspace目录(避免系统盘存储)
-
-
JDK帮助文档:SUN公司为JDK工具包提供了一整套文档资料,我们习惯上称之为JDK文档。 JDK文档中提供了Java中的各种技术的详细资料,以及JDK中提供的各种类的帮助说明。 JDK文档是Java语言的完整说明,大多数书籍中的类的介绍都要参照它来完成,它是编程者经常查阅的资料。
b.开发环境搭建
JDK安装
- jdk可以在Oracle的官网下载。
- 安装JDK(Windows系统)
- 右键单击下载文件,选择“以管理员身份运行”。注意:安装路径不要有中文或者特殊符号如空格等。
- 配置jdk 的环境
配置环境变量:
右键我的电脑->属性->高级系统设置->高级->环境变量->新建
变量名:JAVA-HOME ,变量值:jdk安装的主目录 (到lib一级) ,
配置Path,在变量值最开头加入:%JAVA_HOME%\bin;
在新建 变量名:classpath 变量值: .;jdk中lib的路径
- 5.检查jdk是否安装成功
在cmd里面输入:java -version
Maven安装
- 进入Maven官网下载
- 下载完成后,选择一个路径进行解压
- 然后配置path环境变量
系统变量:MAVEN_HOME = apache-maven安装路径
系统变量:path = %MAVEN_HOME%\bin
- 配置settings文件
- 在 安装目录\conf 下可以找到settings文件找到第52行,这里是maven默认的仓库
- 复制第53行将它拿到注释外并将中间的内容改成你需要的路径
- 因为国外的服务器下载jar包很慢所以我们改为阿里云服务器(大约在150行左右),这两个仓库只用选一个,要夹在两个mirrors标签之间
- 在最后配置jdk,也要夹在两个profiles标签之间(我这里使用的为jdk8)
- 配置完成,在命令行输入mvn help:system测试,看到下载链接里面是ailiyun的链接表示配置成功
5. 首个Java程序实践
以IntelliJ IDEA工具为例:
创建新项目
- 启动IDEA后选择"File"→"New"→"Project"
- 选择Java项目类型并配置JDK版本
- 设置项目名称和存储路径(推荐使用英文路径避免编码问题)
项目结构配置
- 在src目录下创建package(建议按公司/组织规范命名)
- 右键package选择"New"→"Java Class"创建主类(如HelloWorld)
编写第一个程序
- 在类中通过快捷键输入"psvm"生成main方法框架
- 使用"System.out.println("Hello World")"输出结果
运行与调试
- 点击代码左侧绿色箭头运行程序
- 可通过设置断点进行调试(点击行号左侧空白处)
/**
* Author malixiang
* Date 2025/7/23
* Version : V1.0.0
* Description 第一个Java程序
*/
// 文件名必须与public类名严格一致(区分大小写)
public class HelloWorld {
// main方法作为JVM执行入口需保持固定签名
public static void main(String[] args) {
// 标准输出方法:println自动追加换行符
System.out.println("Hello, World!");
}
}
-
语义解析:
-
public class
声明类的访问权限与类型定义 -
main
方法的static
修饰符实现类加载即执行 -
输出方法对比:
println
与print
的换行差异
-
-
全流程执行:
-
源文件保存为
HelloWorld.java
(路径建议全英文无空格) -
编译阶段:
javac HelloWorld.java
生成.class字节码文件 -
运行阶段:
java HelloWorld
直接调用JVM解释执行
-
6. 典型问题诊断
-
编译期错误:
-
类名与文件名不匹配:错误提示"class X is public should be declared in a file named X.java"
-
命令未识别:出现"javac不是内部命令"需复查PATH变量包含
%JAVA_HOME%\bin
-
-
IDE效率技巧:
-
IntelliJ快速修复:Alt+Enter自动处理未导包问题
-
Eclipse智能补全:Ctrl+Space激活上下文代码建议
-
7. 持续学习路径
语言基础(1-2周):核心语法:基本数据类型、控制结构、数组操作等