【Java】JAVA知识总结浅析
Java是一门功能强大的编程语言,广泛应用于多个领域。Java的编程思想,包括面向过程和面向对象编程,Java的发展历史,各版本的特点,JVM原理,数据类型,Java SE与Java EE的区别,应用场景,JDK与JDBC,Java Web技术,Spring Boot系列,以及MyBatis框架的基本实现,最后还将讨论Java在大数据、人工智能、嵌入式和Android等领域的应用。
1. 编程思想
1.1 面向过程编程(Procedural Programming)
面向过程编程是一种以过程为中心的编程方法,强调将程序分解为一系列的函数或过程。每个过程负责完成特定的任务。虽然这种方法简单易懂,但在大型项目中,管理和维护代码变得困难。
特点:
- 功能模块化,代码重用性低。
- 数据与操作分离,容易导致数据不一致。
1.2 面向对象编程(Object-Oriented Programming, OOP)
面向对象编程是一种基于“对象”的编程思想,对象是封装了数据和操作的实体。OOP通过类来定义对象,强调数据与行为的结合,具有更好的扩展性和可维护性。
基本原则:
- 封装:隐藏对象的内部实现,提供公开的接口。
- 继承:允许新类从现有类继承属性和方法。
- 多态:同一操作可以作用于不同对象,表现出不同的行为。
2. Java的发展历史
Java由James Gosling及其团队于1995年首次发布,经过多个版本的迭代,逐步演变为一个强大的开发平台。
主要版本及特点
- Java 1.0:首次发布,提供了基本的语法和API。
- Java 2 (1.2):引入Swing GUI库和集合框架。
- Java 5 (1.5):引入泛型、枚举、注解等新特性,增强代码灵活性。
- Java 8:引入Lambda表达式和Stream API,支持函数式编程。
- Java 11:长期支持版本(LTS),引入许多新特性,如本地化的HTTP客户端。
3. JVM原理
Java虚拟机(JVM)是Java程序运行的核心,负责将字节码转换为机器码。JVM具有以下功能:
- 加载:从文件或网络加载字节码。
- 验证:确保字节码的安全性和有效性。
- 执行:通过解释或即时编译(JIT)执行字节码。
- 内存管理:负责内存的分配和垃圾回收。
4. 数据类型
Java的数据类型分为两类:
4.1 基本数据类型
- 整数类型:
byte
,short
,int
,long
- 浮点类型:
float
,double
- 字符类型:
char
- 布尔类型:
boolean
4.2 引用数据类型
包括类、接口、数组等。
5. Java SE与Java EE
5.1 Java SE(Standard Edition)
Java SE是Java的标准版本,包含核心的Java库和API,适用于桌面应用和小型系统的开发。
5.2 Java EE(Enterprise Edition)
Java EE是为大型企业应用设计的扩展版本,提供大量额外的API和工具,如Servlet、JSP、EJB等,适用于Web和企业级应用的开发。
6. 应用场景
Java被广泛应用于多个领域,包括:
- 企业应用:使用Java EE构建复杂的企业级应用。
- Web开发:使用Java Web技术(如Spring, JSP, Servlets)开发动态网站。
- 移动应用:Android平台主要使用Java进行应用开发。
- 大数据:许多大数据框架(如Hadoop)使用Java编写。
- 人工智能:Java被用于机器学习和AI相关的应用。
- 嵌入式系统:Java在一些嵌入式设备中也有所应用。
7. JDK
7.1 JDK(Java Development Kit)
Java开发工具包,包含开发Java应用所需的工具和库,如编译器(javac)、JVM和调试工具。
8. Java Web技术
Java Web技术涵盖了多种框架和工具:
- Servlet:用于处理请求和响应的服务器端组件。
- JSP(JavaServer Pages):用于创建动态网页的技术。
- Spring Boot:简化Spring应用的开发,提供快速配置和自动化设置。
9. Spring Boot系列全家桶
Spring Boot是一个快速开发框架,提供了开箱即用的配置,适合快速构建微服务架构。它常与以下组件一起使用:
- Spring MVC:处理请求的控制器框架。
- Spring Data JPA:简化数据库操作。
- Spring Security:提供安全性控制。
- Spring Cloud:用于构建分布式系统。
10. MyBatis基本实现
下面是一个简单的MyBatis基本功能实现示例:
10.1 Maven依赖
<dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.7</version>
</dependency>
10.2 Mapper接口
public interface UserMapper { User selectUser(int id);
}
10.3 XML配置
<mapper namespace="com.example.UserMapper"><select id="selectUser" resultType="User">SELECT * FROM users WHERE id = #{id}</select>
</mapper>
10.4 使用MyBatis
SqlSessionFactory sqlSessionFactory = ...; // 创建 SqlSessionFactory
try (SqlSession session = sqlSessionFactory.openSession()) {UserMapper mapper = session.getMapper(UserMapper.class);User user = mapper.selectUser(1);
}
11. Java网络编程
Java提供了丰富的网络编程API,支持TCP/IP通信、HTTP请求等。常用的类包括:
- Socket:用于建立TCP连接。
- ServerSocket:用于创建服务器端Socket。
- URLConnection:用于发送HTTP请求和接收响应。
示例代码
// TCP 客户端示例
try (Socket socket = new Socket("localhost", 8080)) {PrintWriter out = new PrintWriter(socket.getOutputStream(), true);out.println("Hello Server");
}// TCP 服务器示例
try (ServerSocket serverSocket = new ServerSocket(8080)) {try (Socket clientSocket = serverSocket.accept()) {BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));String message = in.readLine();System.out.println("Received: " + message);}
}
12. Java在其他领域的应用
Java因其平台无关性和强大的库支持,在多个领域都有广泛应用:
- 大数据:Hadoop和Spark等大数据框架主要使用Java进行开发。
- 人工智能:Java可用于构建机器学习模型和处理大规模数据集。
- 嵌入式系统:Java在一些嵌入式设备中得到应用,如智能家居和物联网设备。
- Android开发:Java是Android应用开发的主要语言之一,提供了丰富的API支持。
13.开源项目汇总
项目名称 | 开源协议 | 使用场景 | 商业化应用 | 互联网公司应用情况 | 代码风格 | 学习成本 | 社区活跃度 |
---|---|---|---|---|---|---|---|
Spring Framework | Apache 2.0 | 企业级应用开发 | 多数金融和电商应用 | Netflix, Amazon, Alibaba | 清晰简洁 | 中 | 高 |
Apache Hadoop | Apache 2.0 | 大数据处理 | 数据分析与存储 | Yahoo, LinkedIn, Facebook | 模块化 | 高 | 高 |
Apache Kafka | Apache 2.0 | 实时数据流处理 | 消息队列服务 | LinkedIn, Uber, Spotify | 简洁明了 | 中 | 高 |
Apache Flink | Apache 2.0 | 流处理和批处理 | 实时数据分析 | Alibaba, Netflix | 清晰简洁 | 中 | 高 |
Hibernate | GNU Lesser GPL | ORM框架 | 数据库管理 | JBoss, Red Hat | 清晰简洁 | 中 | 中 |
Apache Tomcat | Apache 2.0 | Web服务器 | 各类Web应用 | eBay, LinkedIn | 模块化 | 低 | 高 |
Spring Boot | Apache 2.0 | 微服务架构 | 快速开发RESTful API | Netflix, Airbnb | 清晰简洁 | 低 | 高 |
JUnit | Eclipse Public License | 单元测试框架 | 测试驱动开发 | Google, IBM | 清晰简洁 | 低 | 中 |
Elasticsearch | Apache 2.0 | 搜索引擎及分析 | 日志分析、搜索服务 | Netflix, GitHub | 清晰简洁 | 中 | 高 |
Apache Maven | Apache 2.0 | 项目管理与构建 | Java项目构建管理 | Google, LinkedIn | 模块化 | 中 | 中 |
JHipster | Apache 2.0 | Web应用快速生成 | 企业级应用 | Decathlon, Carrefour | 清晰简洁 | 中 | 中 |
Mockito | MIT | 单元测试模拟 | 测试驱动开发 | Google, Netflix | 简洁明了 | 低 | 中 |
Netty | Apache 2.0 | 网络通信框架 | 高性能网络应用 | Twitter, Apple | 清晰简洁 | 中 | 高 |
Apache Solr | Apache 2.0 | 企业搜索平台 | 搜索引擎 | CNET, AOL | 模块化 | 中 | 中 |
Gradle | Apache 2.0 | 项目构建工具 | 自动化构建 | LinkedIn, Netflix | 清晰简洁 | 中 | 高 |
Log4j | Apache 2.0 | 日志记录 | 应用日志管理 | IBM, Yahoo | 简洁明了 | 低 | 中 |
Vaadin | Apache 2.0 | Web UI框架 | 企业管理系统 | SAP, Vaadin Ltd | 清晰简洁 | 中 | 中 |
Quartz | Apache 2.0 | 任务调度 | 定时任务管理 | eBay, LinkedIn | 清晰简洁 | 中 | 中 |
Jersey | Apache 2.0 | RESTful Web服务 | Web API开发 | eBay, PayPal | 清晰简洁 | 中 | 中 |
Apache Camel | Apache 2.0 | 企业集成框架 | 系统整合 | Red Hat, Cisco | 模块化 | 高 | 中 |
Grails | Apache 2.0 | Web应用开发 | 企业级Web应用 | Netflix, LinkedIn | 清晰简洁 | 中 | 中 |
Thymeleaf | Apache 2.0 | 服务器端模板引擎 | Web应用视图层 | eBay, Amazon | 模块化 | 低 | 中 |
Apache POI | Apache 2.0 | 操作Microsoft文档 | 文档处理 | IBM, Oracle | 清晰简洁 | 低 | 中 |
Flyway | Apache 2.0 | 数据库版本控制 | 数据库迁移管理 | LinkedIn, Box | 清晰简洁 | 中 | 中 |
OpenFeign | Apache 2.0 | 声明式REST客户端 | 服务调用 | Netflix, Alibaba | 清晰简洁 | 低 | 中 |
Lombok | MIT | 减少样板代码 | 提升开发效率 | Google, Atlassian | 清晰简洁 | 低 | 中 |
Micronaut | Apache 2.0 | 微服务框架 | 快速构建微服务 | Object Computing Inc. | 清晰简洁 | 中 | 中 |
Apache Pulsar | Apache 2.0 | 分布式消息系统 | 实时数据处理 | Yahoo, Verizon | 模块化 | 高 | 中 |
Apache Cassandra | Apache 2.0 | 分布式数据库 | 大规模数据存储 | Netflix, Instagram | 模块化 | 高 | 高 |
Redis | BSD License | 内存数据结构存储 | 高性能缓存 | GitHub, Twitter | 简洁明了 | 中 | 高 |
Prometheus | Apache 2.0 | 监控与告警系统 | 系统监控 | SoundCloud, DigitalOcean | 清晰简洁 | 中 | 高 |
Grafana | AGPLv3 | 数据可视化 | 监控面板 | eBay, PayPal | 清晰简洁 | 中 | 高 |
TensorFlow | Apache 2.0 | 机器学习框架 | 深度学习模型训练 | Google, Airbnb | 模块化 | 高 | 高 |
PyTorch | BSD License | 深度学习框架 | AI模型开发 | Facebook, Tesla | 清晰简洁 | 高 | 高 |
Apache Airflow | Apache 2.0 | 工作流调度 | 数据管道管理 | Airbnb, Spotify | 模块化 | 中 | 高 |
Kubernetes | Apache 2.0 | 容器编排 | 微服务部署管理 | Google, Red Hat | 模块化 | 高 | 高 |
Docker | Apache 2.0 | 容器化应用 | 应用虚拟化 | Spotify, PayPal | 模块化 | 中 | 高 |
Apache NiFi | Apache 2.0 | 数据流管理 | 数据集成与传输 | Hortonworks, Cloudera | 模块化 | 中 | 中 |
Apache Zeppelin | Apache 2.0 | 数据分析笔记本 | 数据可视化与分析 | Intel, IBM | 清晰简洁 | 中 | 中 |
Apache Zeppelin | Apache 2.0 | 数据分析笔记本 | 数据可视化与分析 | Intel, IBM | 清晰简洁 | 中 | 中 |
HashiCorp Terraform | Mozilla Public License 2.0 | 基础设施即代码 | 云资源管理 | Shopify, Slack | 清晰简洁 | 高 | 高 |
OpenShift | Apache 2.0 | Kubernetes平台 | 企业级Kubernetes解决方案 | Red Hat, IBM | 模块化 | 高 | 高 |
Jupyter | BSD License | 数据科学笔记本 | 科学计算与数据分析 | NASA, Bloomberg | 清晰简洁 | 中 | 高 |
Spring Cloud | Apache 2.0 | 微服务架构支持 | 微服务相关功能 | Netflix, Alibaba | 清晰简洁 | 中 | 高 |
Apache Superset | Apache 2.0 | 数据可视化与探索 | BI工具 | Airbnb, Lyft | 清晰简洁 | 中 | 高 |
Checkstyle | GNU Lesser GPL | Java代码风格检查 | 代码质量管理 | Google, LinkedIn | 简洁明了 | 低 | 中 |
SonarQube | GNU Lesser GPL | 代码质量检测 | 代码审查与管理 | eBay, LinkedIn | 清晰简洁 | 中 | 高 |
相关文章:

【Java】JAVA知识总结浅析
Java是一门功能强大的编程语言,广泛应用于多个领域。Java的编程思想,包括面向过程和面向对象编程,Java的发展历史,各版本的特点,JVM原理,数据类型,Java SE与Java EE的区别,应用场景&…...
23-云原生监控系统
├──23-云原生监控系统 | ├──1-Prometheus监控 | | ├──1-二进制方式部署Prometheus监控系统 | | ├──2-二进制方式部署Prometheus监控系统告警 | | ├──3-容器化构建Prometheus监控系统 | | ├──4-容器监控方案CAdvisor | | └──5-k8s监…...

信息安全工程师(40)防火墙技术应用
一、防火墙的基本概念 防火墙是一种网络安全设备,用于监控和控制网络流量,以保护网络免受未经授权的访问和攻击。它可以是装配多张网卡的通用计算机,也可能是通用的物理设备。防火墙通过在网络之间设置访问控制策略,对进出的通信流…...

Liquid AI与液态神经网络:超越Transformer的大模型架构探索
1. 引言 自2017年谷歌发表了开创性的论文《Attention Is All You Need》以来,基于Transformer架构的模型迅速成为深度学习领域的主流选择。然而,随着技术的发展,挑战Transformer主导地位的呼声也逐渐高涨。最近,由麻省理工学院(M…...

Spring Boot 进阶-详解Spring Boot中使用Swagger3.0
在上篇文章中我们介绍了Spring Boot 整合Swagger3.0的一些基础用法,这篇文章中我们来深入学习一下Swagger3.0 还有其他高级用法。 在日常的开发中,为了减少工作量,我们会遇到一种情况,就是将前端的接口与后端的接口编写到同一个代码中,这样也提高了代码的复用率,减少了重…...

Linux平台Kafka高可用集群部署全攻略
🐇明明跟你说过:个人主页 🏅个人专栏:《大数据前沿:技术与应用并进》🏅 🔖行路有良友,便是天堂🔖 目录 一、引言 1、Kafka简介 2、Kafka核心优势 二、环境准备 1…...
Android中有哪些布局方式?
Android中的布局方式是实现用户界面设计的基础,通过合理的布局,可以创建出美观且易用的应用程序界面。Android提供了多种布局方式,每种布局方式都有其特定的应用场景和特点。以下是对Android中主要布局方式的详细介绍: 一、线性布…...
Apache Ranger 70道面试题及参考答案
什么是Apache Ranger? Apache Ranger Apache Ranger 是一个用于 Hadoop 生态系统的集中式安全管理框架,旨在为 Hadoop 及相关大数据技术提供全面的安全解决方案。 它具有以下主要特点和功能: 一、访问控制管理 细粒度的权限控制:可以对 Hadoop 生态系统中的各种组件(如 H…...
2024年9月30日--10月6日(ue5肉鸽结束,20小时,共2851小时)
按照月计划,本周把ue肉鸽游戏完成,然后进行ue5太阳系 , 剩余14节,218分钟,如果按照10分钟的视频教程1小时进行完的话,则需要22小时,分布在10月2日-10月6日之间,每天44分钟的视频教程…...

什么是静态加载-前端
什么是前端静态加载 在前端开发中,静态加载是一种常见且重要的技术。简单来说,前端静态加载指的是在页面加载时将所需的资源(如HTML、CSS、JavaScript、图片等)一并加载到用户的浏览器中。这种方式有助于提高页面的加载速度和用户…...

(01)python-opencv基础知识入门(图片的读取与视频打开)
前言 一、图像入门 1.1 读取图像cv.imread() 1.2 数组数据转换cv.cvtColor() 1.3数据窗口展示 1.4图像保存 1.5图像的截取 1.6 图像的比例缩放 二、视频入门 参考文献 前言 OpenCV 于 1999 年由 Gary Bradsky 在英特尔创立,第一个版本于 2000 年问世。Vad…...

quic-go实现屏幕广播程序
最近在折腾quic-go, 突然想起屏广适合用udp实现,而http3基于quic-go,后者又基于udp, 所以玩一下。 先贴出本机运行效果图: 功能(实现)说明: 1.服务器先启动作为共享屏幕方,等待客户端连接上来 2.客户端连接 3.客户…...
C#操作SqlServer数据库语句
操作数据库语句 操作数据库语句需要搭配数据库的连接Connection类 和下达SQL命令Command类 1. ExecuteNonQuery ExecuteNonQuery 方法主要用来更新数据。通常使用它来执行Update、Insert和Delete语句,最后执行sql语句的时候可以用一个整形变量来接收,返…...

Linux之实战命令33:mount应用实例(六十七)
简介: CSDN博客专家、《Android系统多媒体进阶实战》一书作者 新书发布:《Android系统多媒体进阶实战》🚀 优质专栏: Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏: 多媒体系统工程师系列【…...

论文精读:基于概率教师学习的跨域自适应目标检测(ICML2022)
原文标题:Learning Domain Adaptive Object Detection with Probabilistic Teacher 中文标题:基于概率教师学习的域自适应目标检测 代码地址: GitHub - hikvision-research/ProbabilisticTeacher: An official implementation of ICML 2022 p…...

thinkphp 学习记录
1、PHP配置 (点开链接后,往下拉,找到PHP8.2.2版本,下载的是ZIP格式,解压即用) PHP For Windows: Binaries and sources Releases (这里是下载地址) 我解压的地址是:D:\…...
Leetcode 24 Swap Nodes in Pairs
题意:给定一个list of nodes,要求交换相邻的两个节点 https://leetcode.com/problems/swap-nodes-in-pairs/description/ Input: head [1,2,3,4] Output: [2,1,4,3] 首先你需要思考,我要交换两个节点,对于每个节点,向…...

选择 PDF 编辑器时要考虑什么?如何选择适用于 Windows 10 的 PDF 编辑器
选择 PDF 编辑器时要考虑什么? 随着技术的出现,您在网上浏览时肯定会遇到一些 PDF 软件。但是,选择PDF 编辑器时需要考虑什么?如果您是重度用户并将在您的工作场所使用它,建议您找到专业、使用方便且能够帮助您完成任…...
33-Golang开发入门精讲
├──33-Golang开发入门精讲 | └──1-Golang语法精讲 | | ├──1-介绍-go语言 | | ├──2-介绍-go语言中的面向对象 | | ├──3-第1阶段:走进Golang | | ├──4-第1阶段:走进Golang | | ├──5-第2阶段:变量与…...

研发中台拆分之路:深度剖析、心得总结与经验分享
背景在 21 年,中台拆分在 21 年,以下为中台拆分的过程心得,带有一定的主观,偏向于中小团队中台建设参考(这里的中小团队指 3-100 人的团队),对于大型团队不太适用,毕竟大型团队人中 …...
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...
DockerHub与私有镜像仓库在容器化中的应用与管理
哈喽,大家好,我是左手python! Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库,用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...
QMC5883L的驱动
简介 本篇文章的代码已经上传到了github上面,开源代码 作为一个电子罗盘模块,我们可以通过I2C从中获取偏航角yaw,相对于六轴陀螺仪的yaw,qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...
java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别
UnsatisfiedLinkError 在对接硬件设备中,我们会遇到使用 java 调用 dll文件 的情况,此时大概率出现UnsatisfiedLinkError链接错误,原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用,结果 dll 未实现 JNI 协…...

[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?
论文网址:pdf 英文是纯手打的!论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误,若有发现欢迎评论指正!文章偏向于笔记,谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...
【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】
1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件(System Property Definition File),用于声明和管理 Bluetooth 模块相…...
vue3 定时器-定义全局方法 vue+ts
1.创建ts文件 路径:src/utils/timer.ts 完整代码: import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...
【决胜公务员考试】求职OMG——见面课测验1
2025最新版!!!6.8截至答题,大家注意呀! 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:( B ) A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...
Spring AI 入门:Java 开发者的生成式 AI 实践之路
一、Spring AI 简介 在人工智能技术快速迭代的今天,Spring AI 作为 Spring 生态系统的新生力量,正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务(如 OpenAI、Anthropic)的无缝对接&…...

无人机侦测与反制技术的进展与应用
国家电网无人机侦测与反制技术的进展与应用 引言 随着无人机(无人驾驶飞行器,UAV)技术的快速发展,其在商业、娱乐和军事领域的广泛应用带来了新的安全挑战。特别是对于关键基础设施如电力系统,无人机的“黑飞”&…...