【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 基本数据类型

  • 整数类型:byteshortintlong
  • 浮点类型:floatdouble
  • 字符类型: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 FrameworkApache 2.0企业级应用开发多数金融和电商应用Netflix, Amazon, Alibaba清晰简洁
Apache HadoopApache 2.0大数据处理数据分析与存储Yahoo, LinkedIn, Facebook模块化
Apache KafkaApache 2.0实时数据流处理消息队列服务LinkedIn, Uber, Spotify简洁明了
Apache FlinkApache 2.0流处理和批处理实时数据分析Alibaba, Netflix清晰简洁
HibernateGNU Lesser GPLORM框架数据库管理JBoss, Red Hat清晰简洁
Apache TomcatApache 2.0Web服务器各类Web应用eBay, LinkedIn模块化
Spring BootApache 2.0微服务架构快速开发RESTful APINetflix, Airbnb清晰简洁
JUnitEclipse Public License单元测试框架测试驱动开发Google, IBM清晰简洁
ElasticsearchApache 2.0搜索引擎及分析日志分析、搜索服务Netflix, GitHub清晰简洁
Apache MavenApache 2.0项目管理与构建Java项目构建管理Google, LinkedIn模块化
JHipsterApache 2.0Web应用快速生成企业级应用Decathlon, Carrefour清晰简洁
MockitoMIT单元测试模拟测试驱动开发Google, Netflix简洁明了
NettyApache 2.0网络通信框架高性能网络应用Twitter, Apple清晰简洁
Apache SolrApache 2.0企业搜索平台搜索引擎CNET, AOL模块化
GradleApache 2.0项目构建工具自动化构建LinkedIn, Netflix清晰简洁
Log4jApache 2.0日志记录应用日志管理IBM, Yahoo简洁明了
VaadinApache 2.0Web UI框架企业管理系统SAP, Vaadin Ltd清晰简洁
QuartzApache 2.0任务调度定时任务管理eBay, LinkedIn清晰简洁
JerseyApache 2.0RESTful Web服务Web API开发eBay, PayPal清晰简洁
Apache CamelApache 2.0企业集成框架系统整合Red Hat, Cisco模块化
GrailsApache 2.0Web应用开发企业级Web应用Netflix, LinkedIn清晰简洁
ThymeleafApache 2.0服务器端模板引擎Web应用视图层eBay, Amazon模块化
Apache POIApache 2.0操作Microsoft文档文档处理IBM, Oracle清晰简洁
FlywayApache 2.0数据库版本控制数据库迁移管理LinkedIn, Box清晰简洁
OpenFeignApache 2.0声明式REST客户端服务调用Netflix, Alibaba清晰简洁
LombokMIT减少样板代码提升开发效率Google, Atlassian清晰简洁
MicronautApache 2.0微服务框架快速构建微服务Object Computing Inc.清晰简洁
Apache PulsarApache 2.0分布式消息系统实时数据处理Yahoo, Verizon模块化
Apache CassandraApache 2.0分布式数据库大规模数据存储Netflix, Instagram模块化
RedisBSD License内存数据结构存储高性能缓存GitHub, Twitter简洁明了
PrometheusApache 2.0监控与告警系统系统监控SoundCloud, DigitalOcean清晰简洁
GrafanaAGPLv3数据可视化监控面板eBay, PayPal清晰简洁
TensorFlowApache 2.0机器学习框架深度学习模型训练Google, Airbnb模块化
PyTorchBSD License深度学习框架AI模型开发Facebook, Tesla清晰简洁
Apache AirflowApache 2.0工作流调度数据管道管理Airbnb, Spotify模块化
KubernetesApache 2.0容器编排微服务部署管理Google, Red Hat模块化
DockerApache 2.0容器化应用应用虚拟化Spotify, PayPal模块化
Apache NiFiApache 2.0数据流管理数据集成与传输Hortonworks, Cloudera模块化
Apache ZeppelinApache 2.0数据分析笔记本数据可视化与分析Intel, IBM清晰简洁
Apache ZeppelinApache 2.0数据分析笔记本数据可视化与分析Intel, IBM清晰简洁
HashiCorp TerraformMozilla Public License 2.0基础设施即代码云资源管理Shopify, Slack清晰简洁
OpenShiftApache 2.0Kubernetes平台企业级Kubernetes解决方案Red Hat, IBM模块化
JupyterBSD License数据科学笔记本科学计算与数据分析NASA, Bloomberg清晰简洁
Spring CloudApache 2.0微服务架构支持微服务相关功能Netflix, Alibaba清晰简洁
Apache SupersetApache 2.0数据可视化与探索BI工具Airbnb, Lyft清晰简洁
CheckstyleGNU Lesser GPLJava代码风格检查代码质量管理Google, LinkedIn简洁明了
SonarQubeGNU Lesser GPL代码质量检测代码审查与管理eBay, LinkedIn清晰简洁

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1554764.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Colorize: 0 variables Colorize is not activated for this file. VsCode

问题情况 解决步骤 1.找到setting.json文件 2.输入以下代码&#xff0c;保存setting.json文件 "colorize.languages": ["css", "javascript", "sass", "less", "postcss", "stylus", "xml"…

小程序 uniapp+Android+hbuilderx体育场地预约管理系统的设计与实现

目录 项目介绍支持以下技术栈&#xff1a;具体实现截图HBuilderXuniappmysql数据库与主流编程语言java类核心代码部分展示登录的业务流程的顺序是&#xff1a;数据库设计性能分析操作可行性技术可行性系统安全性数据完整性软件测试详细视频演示源码获取方式 项目介绍 用户 注册…

2024年7月大众点评全国酒吧前百名城市分析

在做一些城市分析、学术研究分析、商业选址、商业布局分析等数据分析挖掘时&#xff0c;大众点评的数据参考价值非常大&#xff0c;截至2024年7月&#xff0c;大众点评美食店铺剔除了暂停营业、停止营业后的最新数据情况分析如下。 分析研究的字段维度包括大众点评数字id、字母…

DMA 正点原子版

就是介绍一下dma&#xff0c;只能内存到外设&#xff0c;外设到内存&#xff0c;内存到内存&#xff0c;不能外设到外设这样进行数据传输 这个是 可以看这个表来查&#xff0c;哪个dma的哪个通道用来传输什么数据&#xff0c;这个是芯片固定好的&#xff0c;只能看表查&#xf…

汉代儒家对道家《老子》修改为儒家《道德经》

汉代儒家对道家《老子》修改为儒家《道德经》 汉代对《老子》文本的改造和诠释。在汉代&#xff0c;由于政治、社会和文化背景的变化&#xff0c;许多先秦典籍&#xff0c;包括《老子》&#xff0c;都经历了不同程度的修改和重新解释。这些改造不仅反映了当时的思想潮流&#…

grep的使用

cat .\test.log |grep 1 cat .\test.log |grep [23] cat .\test.log |grep [123\|124] cat .\test.log |grep 123\|124 cat .\test.log |grep -e 2.*d

IPS和IDS有啥区别

在网络安全领域&#xff0c;入侵检测系统 (IDS) 和入侵防御系统 (IPS) 是两种关键的技术&#xff0c;旨在保护网络免受各种威胁。这两者尽管名字相似&#xff0c;但在功能、配置、以及应用场景等方面都有着显著的差异。 入侵检测系统 (IDS) IDS 是一种被动监控系统&#xff0c…

【Android】自定义控件

本文介绍App开发经常涉及的自定义控件相关技术&#xff0c;主要包括自定义视图的过程与步骤、自定义动画的原理与实现、自定义对话框的概念与示例、自定义通知栏的用法与定制&#xff0c;另外介绍四大组件之一的服务Service的生命周期与启停方式。 自定义视图 自定义视图的编…

【AIGC】VoiceControl for ChatGPT指南:轻松开启ChatGPT语音对话模式

博客主页&#xff1a; [小ᶻZ࿆] 本文专栏: AIGC | ChatGPT 文章目录 &#x1f4af;前言&#x1f4af;安装VoiceControl for ChatGPT插件&#x1f4af;如何使用VoiceControl for ChatGPT进行语音输入VoiceControl for ChatGPT快捷键注意点 &#x1f4af;VoiceControl for C…

毕业设计_基于springboot+layui+mybatisPlus的中小型仓库物流管理系统源码+SQL+教程+可运行】41004

毕业设计_基于springbootlayuimybatisPlus的中小型仓库物流管理系统源码SQL教程可运行】41004 下载地址&#xff1a; https://download.csdn.net/download/qq_24428851/89843203 技术栈 后端&#xff1a;springboot、mybatis-plus、shiro 前端&#xff1a;layUI 存储&…

贴吧软件怎么切换ip

在网络使用中&#xff0c;有时我们需要切换IP地址来满足特定的需求&#xff0c;比如需要切换贴吧软件IP以进行不同的操作。本文将介绍几种贴吧切换IP地址的方法&#xff0c;帮助用户更好地管理自己的网络身份和访问权限。 1、更换网络环境‌ 通过连接到不同的Wi-Fi网络或使用移…

15分钟学 Python 第37天 :Python 爬虫入门(三)

Day 38 : Python爬虫入门大纲 章节1&#xff1a;Python爬虫概述 1.1 什么是爬虫&#xff1f; 网页爬虫&#xff08;Web Crawler&#xff09;是一种自动访问互联网上网页并提取数据的程序。爬虫的作用包括搜索引擎索引内容、市场调查、数据分析等。 1.2 爬虫的工作原理 发起…

1c语言基础

1.关键字 一、数据类型关键字 A基本数据类型&#xff08;5个&#xff09; void&#xff1a;声明函数无返回值或无参数&#xff0c;声明无类型指针&#xff0c;显式丢弃运算结果char&#xff1a;字符型类型数据&#xff0c;属于整型数据的一种int&#xff1a;整型数据&#x…

[SAP ABAP] 数据元素添加参数ID(Parameter ID)

学生表(ZDBT_STU_437) 示例&#xff1a;为学生表ZDBT_STU_437中的数据元素ZDE_STUID_437创建Parameter ID 1.使用事务码SM30维护TPARA表 新建参数ID并输入简短描述 点击保存按钮&#xff0c;选择指定的包即可生成参数ID 2.参数ID和数据元素绑定 使用SE11对学生表(ZDBT_STU_…

自动驾驶系列—颠覆未来驾驶:深入解析自动驾驶线控转向系统技术

&#x1f31f;&#x1f31f; 欢迎来到我的技术小筑&#xff0c;一个专为技术探索者打造的交流空间。在这里&#xff0c;我们不仅分享代码的智慧&#xff0c;还探讨技术的深度与广度。无论您是资深开发者还是技术新手&#xff0c;这里都有一片属于您的天空。让我们在知识的海洋中…

终于知道神秘的蓝莓真身了

黑森林实验室&#xff08;Black Forest Labs&#xff0c;简称 BFL&#xff09;是一家初创公司&#xff0c;由流行的 Stable Diffusion AI 图像生成模型的创建者创立&#xff0c;该模型是许多 AI 图像生成应用程序和服务&#xff08;如 Midjourney&#xff09;的基础。 这意味着…

模拟实现string

1.代码理解 1.substr 断言指定的位置在字符的长度之内&#xff0c;_size-len是剩余字符的长度(pos后面的),如果输入len是大于pos后面的字符长度则默认为pos后面全部的字符去拷贝&#xff0c;再建立一个sub去储存&#xff0c;通过循环把pos后面的字符接收到sub里面。 string …

新闻推荐系统:Spring Boot的创新应用

1系统概述 1.1 研究背景 如今互联网高速发展&#xff0c;网络遍布全球&#xff0c;通过互联网发布的消息能快而方便的传播到世界每个角落&#xff0c;并且互联网上能传播的信息也很广&#xff0c;比如文字、图片、声音、视频等。从而&#xff0c;这种种好处使得互联网成了信息传…

win11远程连接MySQL(linux版),不需安装docker容器

不想安装虚拟机&#xff0c;想在Windows 11上运行Linux。 在win11的搜索框内&#xff0c;搜索"启用或关闭"&#xff0c;出现了“启用或关闭Windows功能”&#xff0c;双击打开。 勾选"适用于Linux的Windows子系统"&#xff0c;“虚拟机平台”&#xff0c…

yolov8/9/10/11模型在食品图像商标检测中的应用【代码+数据集+python环境+GUI系统】

yolov8/9/10/11模型在食品图像商标检测中的应用【代码数据集python环境GUI系统】 背景意义 准确的食品商标检测能确保消费者购买到的食品来源可靠、信息真实。消费者可以通过商标了解食品的生产厂家、生产日期、成分等关键信息&#xff0c;从而判断食品的安全性和质量。如果商…