Java 基础知识全面总结及超详细要点整理

简介: 本内容详细总结了Java基础知识,涵盖语言概述、语法基础、流程控制、面向对象编程、集合框架、异常处理等核心知识点。从Java之父詹姆斯·高斯林到JVM内存模型,由浅入深解析Java特性与应用。重点包括类与对象、封装继承多态、ArrayList与HashMap的使用、异常分类与处理方式,以及字符串不可变性等关键概念。此外,还提供了代码示例和扩展知识点,如JVM内存模型、Lambda表达式等,助力开发者全面掌握Java编程。代码资源可从文末链接下载。

以下是对Java基础知识的详细总结:

Java语言概述

  • Java之父:詹姆斯·高斯林。
  • 语言特性:完全面向对象,具有跨平台性,依靠Java虚拟机(JVM)实现“一次编写,到处运行”。
  • 相关工具与环境:JDK(Java开发工具包)是Java程序开发所需,包含JRE(Java运行环境),JRE又包含JVM。JDK中的开发工具主要有编译工具javac.exe和运行工具java.exe
  • 程序开发流程:先编写Java源文件,再使用javac命令编译生成字节码文件(.class),最后通过java命令运行。
  • 基本组成单位:Java程序中最基本的组成单位是类。

Java语法基础

  • 关键字:如publicstaticvoidclass等,全部小写,具有特殊含义,不能用作标识符。
  • 标识符:由数字、字母、下划线、美元符号组成,不能以数字开头,不能是关键字,区分大小写,理论上长度无限制。
  • 常量:包括整型(如10、100)、浮点型(如3.14)、布尔型(truefalse)、字符型(如'a')、字符串型(如"abc")和空常量(null)。
  • 变量:必须先声明再赋值才能访问。根据位置分为局部变量(在方法体中声明)和成员变量(在类体内、方法体外声明),局部变量只在方法体有效,方法执行完内存释放。
  • 数据类型:基本数据类型有整数型(byteshortintlong)、浮点型(floatdouble)、布尔型(boolean)、字符型(char);引用数据类型如String等,除基本数据类型外都是引用数据类型。
  • 运算符:包括算术运算符(+-*等)、关系运算符(><==等,结果为布尔型)、逻辑运算符(&&||!等,&&||有短路特性)、赋值运算符(=+=等)、自加自减运算符(++--,单独使用时在前在后结果相同,参与操作时在前先自增/减后参与运算,在后则先参与运算后自增/减)和三元运算符(关系表达式? 表达式1 : 表达式2,根据关系表达式结果选择执行表达式1或表达式2)。
  • 类型转换:小容量可自动赋值给大容量,如byte可自动转为int;大容量赋值给小容量需强制类型转换,可能会有精度损失。boolean类型不能与其他类型转换。

流程控制

  • 选择结构:有if - else语句和switch语句。if - else可实现单分支、双分支或多分支判断;switch语句根据表达式的值与多个case常量进行匹配,执行相应分支,JDK7后switch支持字符串类型。
  • 循环结构:包括for循环、while循环和do - while循环。for循环常用于已知循环次数的场景;while循环先判断条件,条件为真则执行循环体;do - while循环先执行一次循环体,再判断条件,至少会执行一次循环体。

面向对象编程

  • 类和对象:类是对象的模板,定义了属性和方法,对象是类的实例。如定义Person类,包含nameage属性和sayHello方法,通过Person p = new Person();创建对象。
  • 封装:将属性和方法捆绑在一起,通过访问控制符(privatepublicprotected等)限制外部访问,通常用gettersetter方法访问私有属性,可保护数据安全,隐藏实现细节。
  • 继承:子类继承父类属性和方法,实现代码复用和扩展。如动物类是父类,狗类继承动物类,狗类可拥有动物类的部分属性和方法。
  • 多态:同一操作作用于不同对象有不同行为,通过方法重写和动态绑定实现。例如父类Animalspeak方法,子类DogCat重写该方法,不同子类对象调用speak方法会有不同表现。
  • 接口:是更抽象的“类”,包含常量、抽象方法和默认方法,可实现多重继承,用于定义规范。

集合框架

  • ArrayList:是动态数组,实现了List接口。可通过List<Integer> nums = new ArrayList<>(Arrays.asList(1, 2, 3, 4));创建,便于增删改查元素,遍历删除元素时需注意避免索引越界问题,可使用迭代器或倒序删除。
  • HashMap:基于哈希表的键值对存储结构,通过put方法存储数据,如scores.put("李四", 85);。遍历HashMap时,使用entrySet方式效率较高,JDK8底层是数组+链表+红黑树。

异常处理

  • 异常分类:分为ErrorChecked ExceptionUnchecked ExceptionError是系统级错误,如OutOfMemoryError,一般无需处理;Checked Exception必须使用try - catch - finally块处理或在方法声明中抛出;Unchecked ExceptionNullPointerException,通常是代码逻辑问题,可不强制处理,但建议处理以增强程序健壮性。
  • 处理方式:使用try块包裹可能抛出异常的代码,catch块捕获并处理异常,finally块中的代码无论是否发生异常都会执行,常用于资源释放等操作。

其他重要知识点

  • 字符串String类用于表示字符串,字符串是不可变的。可通过+号进行字符串拼接,比较字符串内容是否相等用equals方法,而不是====用于比较引用地址。
  • JVM内存模型:JVM内存主要分为堆、栈、方法区等。堆用于存储对象实例;栈用于存储局部变量等,遵循先进后出原则;方法区存储类信息、常量等。

Java 基础,面向对象编程,Java 集合框架,多线程,异常处理,Java IO,NIO, 反射机制,注解,泛型,Java 内存模型,JVM,Lambda 表达式,Stream API, 设计模式



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


相关文章
|
SpringCloudAlibaba Java 应用服务中间件
信创迁移适配实战-SpringCloudAlibaba服务以war包部署后无法注册到Nacos
信创迁移适配实战-SpringCloudAlibaba服务以war包部署后无法注册到Nacos
1104 0
|
9月前
|
安全 网络协议 Linux
Linux网络应用层协议展示:HTTP与HTTPS
此外,必须注意,从HTTP迁移到HTTPS是一项重要且必要的任务,因为这不仅关乎用户信息的安全,也有利于你的网站评级和粉丝的信心。在网络世界中,信息的安全就是一切,选择HTTPS,让您的网站更加安全,使您的用户满意,也使您感到满意。
250 18
|
网络协议 安全 Shell
如何在 SSH 客户端中强制使用 IPv4 或 IPv6?
如何在 SSH 客户端中强制使用 IPv4 或 IPv6?
2321 0
如何在 SSH 客户端中强制使用 IPv4 或 IPv6?
|
8月前
|
Cloud Native Java 程序员
【2025 最新版互联网一线大厂 Java 程序员面试 + 学习指南】覆盖全面面试知识点、实用面试技巧及前沿技术实操内容
本内容涵盖互联网大厂主流技术栈的最新实操指南,包括微服务架构(Spring Cloud Alibaba Nacos、OpenFeign、Spring Cloud Gateway)、容器化与Kubernetes、云原生技术(Istio、Prometheus+Grafana)、高性能开发(Reactor响应式编程、CompletableFuture异步编程)及数据持久化(Redis分布式锁、ShardingSphere分库分表)。通过详细代码示例和操作步骤,帮助开发者掌握核心技术,适用于本地环境搭建与模块功能实践。适合Java程序员学习和面试准备,附带资源链接供深入研究。
231 5
|
8月前
|
存储 Java 数据库
应届生面试高频 Java 基础问题及详细答案解析
摘要: Java数据类型分为基本类型(如int、float等)和引用类型(如类、数组)。final可修饰类、方法和变量,使其不可继承、重写或修改。static用于类级别的变量和方法,共享于所有实例。&quot;==&quot;比较基本类型的值或引用类型的地址,而equals比较对象内容(需重写)。Java只有值传递,对于引用类型传递的是地址副本。String对象不可变,拼接操作会创建新对象而非修改原对象。Java 10的var支持类型推断,Java 16的Record提供不可变类简化。
183 0
|
存储 人工智能 大数据
物联网、大数据、云计算、人工智能之间的关系
物联网、大数据、云计算、人工智能之间的关系是紧密相连、相互促进的。这四者既有各自独立的技术特征,又能在不同层面上相互融合,共同推动信息技术的发展和应用。
3717 0
|
人工智能 安全 大数据
开源软件全景解析:驱动技术创新与行业革新的力量
开源软件全景解析:驱动技术创新与行业革新的力量
1250 0
开源软件全景解析:驱动技术创新与行业革新的力量
|
数据采集 存储 自然语言处理
基于Python的微博热点李佳琦忒网友话题的评论采集和情感分析的方法,利用情感分析技术对评论进行情感倾向性判断
本文介绍了一种基于Python的方法,用于采集微博热点话题下的评论数据,并运用情感分析技术对这些评论进行情感倾向性判断,进而通过统计分析和可视化技术展示网友对特定话题的情感态度,对品牌或个人形象管理、用户需求发现、舆情监测和危机管理等方面具有重要价值。
491 2
基于Python的微博热点李佳琦忒网友话题的评论采集和情感分析的方法,利用情感分析技术对评论进行情感倾向性判断
DHCP的option43
DHCP的option43
925 4