Java基础入门:从零掌握核心概念(建议收藏)
前言
作为一名Java开发者,打好基础是迈向高薪的第一步。无论你是刚接触编程的小白,还是想巩固基础的老手,本文都将带你系统梳理Java的核心基础知识。全文涵盖数据类型、运算符、控制流程、数组、面向对象、异常处理等关键模块,并附有代码示例。建议收藏,随时查阅!
一、Java简介与平台特性
Java是一种面向对象、跨平台的高级编程语言,由Sun Microsystems(现Oracle)于1995年发布。其核心优势是“一次编写,到处运行”,这得益于Java虚拟机(JVM)机制——Java源代码被编译为字节码(.class文件),由JVM在不同操作系统上解释执行。
主要特性
-
简单易学:语法接近C/C++,但去掉了指针、多重继承等复杂特性。
-
自动内存管理:垃圾回收器(GC)自动回收不再使用的对象。
-
丰富的API:涵盖集合、IO、网络、多线程等常用工具库。
二、搭建开发环境
-
下载JDK(Java Development Kit)
推荐使用LTS版本(如Java 8、11、17)。Oracle官网或OpenJDK均可。 -
配置环境变量
-
JAVA_HOME:指向JDK安装目录 -
PATH:添加%JAVA_HOME%\bin
-
-
验证安装
java -version javac -version
💡 IDE推荐:初学者可使用Eclipse或IntelliJ IDEA Community版,也可以先用文本编辑器+命令行感受编译过程。
三、Java程序的基本结构
// 文件名必须与类名一致:HelloWorld.java
public class HelloWorld {
// main方法是程序入口,写法固定
public static void main(String[] args) {
System.out.println("Hello, Java!");
}
}
编译与运行:
javac HelloWorld.java # 生成 HelloWorld.class
java HelloWorld # 运行
四、数据类型与变量
Java是强类型语言,每个变量必须先声明类型才能使用。
1. 基本数据类型(8种)
| 类型 | 关键字 | 占用字节 | 取值范围 |
|---|---|---|---|
| 整型 | byte | 1 | -128 ~ 127 |
| short | 2 | -32768 ~ 32767 | |
| int | 4 | 约 ±21亿 | |
| long | 8 | 很大(后缀L) | |
| 浮点 | float | 4 | 后缀f |
| double | 8 | 默认浮点类型 | |
| 字符 | char | 2 | 0~65535(Unicode) |
| 布尔 | boolean | 1(理论) | true / false |
代码示例:
int age = 25;
double price = 19.99;
char grade = 'A';
boolean isPass = true;
long bigNum = 10000000000L; // 注意L后缀
float f = 3.14f; // 注意f后缀
2. 引用数据类型
-
类(如
String)、接口、数组、枚举等。 -
引用类型的变量存储的是对象的内存地址,默认为
null。
String name = "张三"; // String是引用类型
int[] scores = {90, 85, 88};
3. 类型转换
-
自动类型转换(小→大):
int → long → float → double -
强制类型转换(大→小):可能丢失精度,需显式书写。
int a = 100;
long b = a; // 自动转换
double d = 3.14;
int i = (int)d; // 强制转换,结果为3
五、运算符
1. 算术运算符
+ - * / %(取模)
注意:整数除法会截断小数部分。
2. 关系运算符
== != < > <= >= 结果均为boolean。
3. 逻辑运算符
&&(短路与)、||(短路或)、!(非)
4. 赋值与扩展运算符
= += -= *= /= %=
5. 自增自减
i++(先使用后自增)、++i(先自增后使用)
6. 三元运算符
条件 ? 表达式1 : 表达式2
java
int max = (a > b) ? a : b;
六、控制流程语句
1. 条件分支
if-else:
if (score >= 60) {
System.out.println("及格");
} else {
System.out.println("不及格");
}
switch(支持byte/short/int/char/String/枚举):
switch (day) {
case 1:
System.out.println("周一");
break;
default:
System.out.println("其他");
}
2. 循环结构
for循环:
for (int i = 0; i < 5; i++) {
System.out.println(i);
}
增强for(遍历数组/集合):
int[] arr = {1,2,3};
for (int num : arr) {
System.out.println(num);
}
while / do-while:
int i = 0;
while (i < 3) {
System.out.println(i++);
}
跳转关键字:break(退出循环)、continue(跳过本次循环)。
七、数组
数组是存储相同类型数据的容器,长度固定。
声明与初始化
// 方式一:声明并分配空间
int[] nums = new int[5]; // 元素默认为0
// 方式二:直接赋值
int[] scores = {90, 85, 88};
// 方式三:new + 初始化
int[] arr = new int[]{1,2,3};
访问与遍历
int first = scores[0]; // 索引从0开始
scores[1] = 100; // 修改
int len = scores.length; // 获取长度
二维数组(锯齿数组)
int[][] matrix = new int[3][4];
matrix[0][1] = 5;
📌 注意:Java中的数组是对象,可通过
new创建,存储在堆中。
八、面向对象编程(OOP)
Java是纯粹的面向对象语言,核心概念:类、对象、封装、继承、多态。
1. 类与对象
// 定义类
class Student {
String name; // 成员变量
int age;
void study() { // 成员方法
System.out.println(name + "正在学习");
}
}
// 创建对象
Student s = new Student();
s.name = "小明";
s.study();
2. 封装(Encapsulation)
通过private隐藏属性,提供public的getter/setter方法。
public class Person {
private int age;
public void setAge(int age) {
if (age >= 0) this.age = age;
}
public int getAge() {
return age;
}
}
3. 构造方法
与类同名,无返回值,用于初始化对象。若未定义,编译器提供默认无参构造。
class Student {
String name;
Student(String n) { // 有参构造
name = n;
}
}
4. 继承(extends)
子类继承父类的非私有成员,使用super调用父类构造或方法。
class Animal {
void eat() { System.out.println("吃东西"); }
}
class Dog extends Animal {
void bark() { System.out.println("汪汪"); }
}
5. 多态(Polymorphism)
同一个方法在不同对象中表现出不同行为。条件:继承 + 方法重写 + 父类引用指向子类对象。
Animal a = new Dog();
a.eat(); // 调用的是Dog重写后的eat()
6. 方法重写(Override)与重载(Overload)
-
重写:子类重新定义父类的方法(方法签名相同)。
-
重载:同一个类中多个同名方法,参数列表不同。
7. 抽象类与接口
-
抽象类:用
abstract修饰,不能实例化,可包含抽象方法和普通方法。 -
接口:用
interface定义,方法默认public abstract,支持多实现。
interface Flyable {
void fly();
}
class Bird implements Flyable {
public void fly() {
System.out.println("飞翔");
}
}
8. 访问修饰符
| 修饰符 | 类内部 | 同包 | 子类 | 任何地方 |
|---|---|---|---|---|
| private | ✅ | |||
| 默认 | ✅ | ✅ | ||
| protected | ✅ | ✅ | ✅ | |
| public | ✅ | ✅ | ✅ | ✅ |
九、常用工具类速览
1. String(不可变字符序列)
String s = "Hello";
int len = s.length();
String upper = s.toUpperCase();
boolean eq = s.equals("hello"); // 内容比较,勿用==
2. StringBuilder / StringBuffer(可变)
-
StringBuilder:线程不安全,效率高。 -
StringBuffer:线程安全,效率稍低。
3. 包装类
每个基本类型都有对应的包装类:int → Integer、double → Double等。用于泛型、集合等需要对象的场景。
Integer i = 100; // 自动装箱
int j = i; // 自动拆箱
int num = Integer.parseInt("123");
4. 数学工具 Math
double max = Math.max(10, 20);
double rand = Math.random(); // [0,1)
十、异常处理
Java使用try-catch-finally捕获异常,分类:
-
检查异常(如IOException):必须处理或声明。
-
运行时异常(如NullPointerException):可选处理。
try {
int[] arr = new int[2];
arr[3] = 5;
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("数组越界");
} finally {
System.out.println("一定会执行");
}
自定义异常:继承Exception或RuntimeException。
十一、集合框架(初步)
常用集合接口:
-
List:有序可重复(ArrayList、LinkedList)
-
Set:无序不重复(HashSet、TreeSet)
-
Map:键值对(HashMap、TreeMap)
List<String> list = new ArrayList<>();
list.add("Java");
String item = list.get(0);
关于泛型、迭代器、Collections工具类,后续专题详解。
十二、总结与学习建议
本文覆盖了Java基础中的数据类型、流程控制、数组、面向对象、异常、常用类等核心内容。掌握这些,你已经具备了独立编写小型Java程序的能力。
下一步学什么?
-
Java进阶:多线程、网络编程、IO流、反射、注解
-
数据库:JDBC
-
Web开发:Servlet、JSP、Spring框架
学习建议
-
多敲代码:只看不练等于零,每个示例都动手运行。
-
画内存图:理解堆栈、引用传递,对面向对象至关重要。
-
遇到bug先看异常栈:学会独立解决问题。
-
坚持写博客:输出是最好的输入。
希望这篇博客能成为你Java学习路上的好伙伴。如果觉得有用,欢迎点赞、收藏、评论!也欢迎关注我,后续会持续输出更多技术干货。
更多推荐





所有评论(0)