Java 基础知识超详细整理总结及学习要点解析

文章正文
发布时间:2025-07-10 00:31

以下是一篇关于Java基础知识的总结文章,涵盖了Java语言特性、语法基础、面向对象编程、集合框架、异常处理等内容,并包含相关应用实例,供你学习使用:

Java基础知识总结 Java语言核心特性

面向对象(OOP):以“对象”为中心,将事物抽象为具有属性和方法的实例。例如设计一个Car类,可封装品牌、速度等属性,以及启动、刹车等方法。

简洁易用:去除了C/C++中的复杂特性,如指针运算,语法更严谨统一,内存管理由JVM自动完成,减少了编程错误。

健壮性:通过强类型检查、异常处理和自动垃圾回收等机制,在编译期和运行期进行多重校验。如NullPointerException可被及时捕获,提高程序的稳定性。

安全性:内置沙箱模型、类加载器验证和字节码校验等机制,防止恶意代码侵入,适用于网络应用等场景,如Applet的运行环境安全保护。

平台无关性(WORA):Java字节码可在不同操作系统和硬件上,通过安装相应的JVM运行,实现“一次编写,到处运行”,如Windows、Linux、macOS系统均可运行同一Java程序。

多线程支持:内建Thread类与高层java.util.concurrent框架,简化了并发编程。例如可同时下载多个文件,提高资源利用率。

分布式能力:提供丰富的网络API(java.net),便于实现Socket编程与远程调用(RMI),常用于客户端 - 服务器模型的远程对象调用。

编译与解释并存:先将源码编译为字节码(.class),再由JVM逐条解释或JIT编译执行,兼具效率与灵活性,如Spring Boot热部署框架支持快速重启。

Java语法基础

标识符:由字母、数字、下划线(_)或美元符号($)组成,首字符不能是数字,区分大小写,不能使用关键字或保留字,如String userName是合法的标识符。

关键字和保留字:关键字是Java语言内部定义并赋予特殊意义的,如class、if等;保留字当前未使用,将来可能成为关键字,如goto、const。

变量:声明格式为“数据类型 变量名;”,赋值使用“变量名 = 表达式;”,也可声明并赋值,如“int count = 5;”。

注释类型:包括单行注释(// 注释内容)、多行注释(/* 注释内容 */)和文档注释(/** 注释内容 */),文档注释可用于生成API文档。

数据类型:基本数据类型有byte、short、int、long、float、double、boolean和char。如byte b = 100;,double d = 3.1415926;。

类型转换:分为隐式转换(精度小的类型自动转为精度大的类型)和强制(显式)转换(手动指定,可能丢失精度),如int x = 10; double y = x;是隐式转换,double d = 9.99; int n = (int)d;是强制转换。

运算符:包括算术运算符(如+、-、*、/、%)、赋值运算符(如=、+=等)、比较运算符(如==、!=等)、逻辑运算符(如&&、||、!)和三元运算符(? :)。

面向对象编程

类和对象:类是对象的模板,由属性和行为组成。对象是类的实例化。例如定义一个Person类,包含name、age等属性和sayHello等方法,通过Person p = new Person();创建对象。

构造方法:用于创建对象时初始化对象的属性。构造方法名与类名相同,没有返回值类型。若类中未显式定义构造方法,系统会提供默认无参构造方法,若定义了有参构造方法,系统则不再自动生成无参构造方法。

成员变量和局部变量:成员变量声明在类中方法体之外,作用域为整个类,可使用修饰符,有缺省值。局部变量声明在方法体或代码块中,作用域为当前方法体,无缺省值,只能使用final修饰。

方法重载:在同一个类中,可定义多个方法名相同但参数不同的方法,根据传入参数的不同来调用相应的方法。

集合框架

ArrayList:是一个动态数组,实现了List接口。可通过List<Integer> nums = new ArrayList<>(Arrays.asList(1, 2, 3, 4));创建。需注意,在遍历ArrayList时若要删除元素,不能直接使用普通for循环正序删除,否则会出现索引越界等问题,应使用迭代器或倒序操作。

HashMap:是一种基于哈希表的键值对存储结构。通过scores.put("李四", 85);存储数据,遍历HashMap时,使用entrySet方式效率较高。JDK8的HashMap底层是数组 + 链表 + 红黑树,加载因子默认0.75,扩容2倍,这是面试常考知识点。

异常处理

异常分类:分为Error、Checked Exception和Unchecked Exception。Error是系统级错误,如OutOfMemoryError,一般无需处理;Checked Exception必须使用try - catch块处理,如IOException;Unchecked Exception可处理可不处理,如NullPointerException。

自定义异常:可通过继承Exception或RuntimeException来创建自定义异常类。若继承RuntimeException,则为非检查型异常。注意,不要用异常做业务逻辑控制,否则会影响性能。

JVM基础

内存模型:主要包括方法区(存储类信息、静态变量等)、堆(对象实例所在地,GC主战场)、虚拟机栈(方法调用栈帧,存储局部变量)、本地方法栈(用于Native方法)和程序计数器(记录当前执行位置)。例如,String str = new String("abc");创建对象时,若常量池没有"abc",会先在常量池创建,再在堆创建,若已有"abc",则只在堆创建新对象。

其他重要知识点

==和equals:基本类型使用==比较值是否相等,对象比较通常使用equals方法。对于String类型,尤其要注意,==比较的是引用地址,equals比较的是字符串内容。

字符串拼接:在循环内不要使用+号拼接字符串,应使用StringBuilder或StringBuffer,否则会产生大量临时字符串对象,影响性能。

BigDecimal:进行金钱计算等对精度要求高的场景,必须使用BigDecimal,因为double类型会存在精度丢失问题。

资源关闭:使用try - with - resources语句可以自动关闭实现了AutoCloseable接口的资源,如文件流等,这是JDK7+的特性,可简化代码并确保资源正确关闭。

Java 基础,面向对象编程,Java 核心类库,异常处理,集合框架,多线程,IO 流,Java 并发编程,JDK,Java 语法,泛型,反射机制,注解,Java 虚拟机 (JVM),Java 开发工具

代码获取方式
https://pan.quark.cn/s/14fcf913bae6