技术周总结 10.21~10.27周日

文章目录

  • 一、10.24 周四 程序员节
    • 2.1)问题01: Memory Analysis Tool的使用方法
  • 二、10.27 周日
    • 2.1) J2EE架构
      • J2EE 的核心组件与技术
      • J2EE 的多层架构
      • J2EE 的优缺点
      • J2EE 的应用场景
    • 2.2)web应用开发中的 "web服务器" 和 "应用服务器"的区别和联系是什么?
      • 一、Web 服务器
        • 主要特点
        • 示例
      • 二、应用服务器
        • 主要特点
        • 示例
      • 三、Web 服务器与应用服务器的区别
      • 四、Web 服务器与应用服务器的联系
      • 总结

一、10.24 周四 程序员节

2.1)问题01: Memory Analysis Tool的使用方法

Memory Analysis Tool(MAT)是一个用于分析Java堆内存的工具,它可以帮助你发现内存泄漏并减少内存消耗。使用MAT,你可以从Java应用程序获取堆转储文件,并对其进行分析。以下是MAT的基本使用方法:

  1. 安装MAT

    • 如果你使用的是Eclipse,可以通过Eclipse Marketplace安装MAT插件。
    • 你也可以从官网下载MAT的独立版本并安装。
  2. 获取堆转储文件

    • 使用前面提到的方法(例如jmapjcmd或应用程序内部逻辑)获取Java应用程序的堆转储文件(.hprof格式)。
  3. 打开堆转储文件

    • 打开MAT。
    • 选择 “File” > “Open Heap Dump”。
    • 浏览文件系统,选择你的堆转储文件并打开它。
  4. 分析堆内存

    • Histogram View:列出所有Java类及其实例数和总大小,帮助你发现大量对象占用的类。
    • Dominator Tree:显示内存中对象的层级关系,并指出占用大部分内存的对象。
    • Leak Suspects Report:MAT可以自动分析并提供可能的内存泄漏报告。
    • Path to GC Roots:对于特定的对象,你可以查看它到垃圾收集根的引用链,这有助于了解为什么对象没有被垃圾收集器回收。
  5. 查看和解决内存问题

    • 使用MAT提供的不同视图和报告来查找可能的内存问题。
    • 识别出大量对象实例或大对象,分析它们的创建和引用。
    • 检查报告中的内存泄漏嫌疑点,并根据提供的信息在代码中定位问题。
  6. 优化代码

    • 根据MAT的分析结果,修改和优化你的代码以解决内存泄漏或过度内存消耗的问题。
  7. 重新测试

    • 对修改后的应用程序进行重新测试,并再次获取堆转储文件。
    • 使用MAT分析新的堆转储文件,确认内存问题是否已经解决。

请注意,MAT是一个强大的工具,但可能需要一定的学习曲线来理解所有的功能和解释分析结果。它对Java开发者和性能工程师来说是一个非常有用的资源,尤其是在处理复杂的内存问题时。

二、10.27 周日

2.1) J2EE架构

在这里插入图片描述
J2EE(Java 2 Platform, Enterprise Edition)是一个为开发企业级应用提供标准化解决方案的平台。它由一套规范和 API 组成,能够帮助开发者构建可靠、可伸缩的分布式应用。J2EE 在大规模系统和互联网应用中广泛应用,适合开发需要多层架构的大型企业应用。

J2EE 的核心组件与技术

  1. Servlet 和 JSP(JavaServer Pages)

    • Servlet:一种 Java 编程接口,用于在服务器端创建动态内容的 Java 类,通过处理和响应客户端的请求(例如 HTTP 请求),在 Web 层与客户端交互。
    • JSP:允许将 Java 代码嵌入 HTML 中,生成动态网页内容。JSP 提供了标签库和内置对象,方便快速生成 HTML。
  2. EJB(Enterprise JavaBeans)

    • EJB 是 J2EE 中的核心组件之一,负责处理业务逻辑。它封装了复杂的业务功能,并支持分布式、多线程和事务处理,主要用于构建可伸缩的、事务性强的后端业务逻辑。
  3. JDBC(Java Database Connectivity)

    • JDBC 提供了 Java 应用与关系数据库之间的连接接口。开发者可以使用 JDBC 查询、更新数据库中的数据,支持数据库连接池等功能,保证高效的数据存取。
  4. JMS(Java Message Service)

    • JMS 是一种消息服务接口,用于不同应用之间的异步通信。它支持消息队列和发布/订阅模式,能够提升应用的解耦性和响应能力,适合异步任务处理和消息驱动的架构。
  5. JTA(Java Transaction API)

    • JTA 允许应用程序管理分布式事务,实现事务的开始、提交、回滚等操作。JTA 主要用于确保多个资源的并发操作具有原子性和一致性。
  6. JNDI(Java Naming and Directory Interface)

    • JNDI 提供命名和目录服务,帮助应用程序查找和检索资源。JNDI 允许通过名称查找数据库连接、EJB 组件和环境配置等。
  7. RMI(Remote Method Invocation)

    • RMI 是 Java 的远程方法调用协议,允许在不同 JVM 之间调用对象。J2EE 使用 RMI-IIOP(RMI over IIOP)实现跨平台的对象调用,支持分布式架构。

J2EE 的多层架构

J2EE 的架构设计遵循多层架构模式,典型的 J2EE 应用由以下几层组成:

  1. 客户端层:运行在用户端,可以是 Web 浏览器、移动应用或桌面应用。
  2. Web 层:处理客户端的 HTTP 请求,主要由 Servlet 和 JSP 组成,负责呈现用户界面和基本的业务处理。
  3. 业务层:核心逻辑层,通常使用 EJB 或其他 Java 组件来实现,负责业务规则和应用逻辑。
  4. 数据层:负责与数据库交互,通过 JDBC、ORM(对象关系映射)等技术访问和管理数据库数据。

J2EE 的优缺点

  • 优点

    • 规范化:J2EE 是标准化平台,确保应用的跨平台能力和兼容性。
    • 可扩展性:支持分布式、多层架构,适合构建大规模、复杂系统。
    • 安全性:J2EE 提供内置的安全机制(如 JAAS),支持身份验证和授权。
    • 容器管理:J2EE 容器(如 Tomcat、WebSphere)提供事务、资源管理、线程池等服务,简化应用的开发与维护。
  • 缺点

    • 复杂性高:J2EE 技术栈庞大,学习曲线较陡,开发和维护成本较高。
    • 性能开销:J2EE 规范复杂,对资源需求高,系统性能会受到影响。

J2EE 的应用场景

  • 大型企业级应用:如银行、保险、电子商务系统。
  • 分布式系统:适用于构建需要多层结构的分布式应用。
  • 高安全性系统:金融、电信等对安全要求高的应用。

总体来说,J2EE 为构建高复杂度、高性能、高可用的企业级应用提供了完备的框架和规范,适合对业务要求较高的系统开发。

2.2)web应用开发中的 “web服务器” 和 "应用服务器"的区别和联系是什么?

在 Web 应用开发中,“Web 服务器”和“应用服务器”是实现 Web 应用程序的两个重要服务器类型,它们的作用和职责不同,但又常常相辅相成,以支持动态应用的部署和运行。以下是它们的区别和联系:

一、Web 服务器

Web 服务器主要用于接收和响应客户端(通常是 Web 浏览器)的 HTTP 请求,向客户端提供静态资源,如 HTML 文件、图像、CSS、JavaScript 等。典型的 Web 服务器有 Apache HTTP Server、Nginx 等。

主要特点
  • 静态内容服务:擅长处理静态文件请求(如 HTML、CSS、图片等),将静态资源直接发送到客户端。
  • HTTP 协议支持:负责实现 HTTP 请求和响应。
  • 性能优化:Web 服务器通常针对静态内容进行高度优化,响应速度快,能很好地处理大量的并发请求。
  • 负载均衡:Web 服务器往往负责初步的负载均衡,将请求转发到不同的应用服务器,提高系统性能和可用性。
示例
  • Apache HTTP Server、Nginx 等。

二、应用服务器

应用服务器主要用于执行应用的业务逻辑,处理动态内容的生成。它能够接收来自 Web 服务器的请求,执行复杂的业务逻辑、数据库查询、数据处理等,并将动态生成的内容返回给 Web 服务器。典型的应用服务器包括 Apache Tomcat、JBoss、WebSphere 等。

主要特点
  • 动态内容生成:负责处理动态请求,通过与数据库交互,处理业务逻辑,并生成动态响应内容。
  • 业务逻辑处理:支持运行 Java EE、Spring 等框架的组件,包含丰富的 API(如事务、连接池)和服务。
  • 会话管理:管理应用会话状态,为用户提供持续一致的体验。
  • 资源管理:应用服务器常提供资源管理和容器化服务,管理事务、线程、数据连接等。
示例
  • Apache Tomcat、JBoss、WebSphere、GlassFish 等。

三、Web 服务器与应用服务器的区别

特点Web 服务器应用服务器
服务内容静态内容(HTML、CSS、JavaScript、图片等)动态内容(处理业务逻辑,生成动态响应内容)
主要功能提供 HTTP 支持,处理静态文件请求,初步负载均衡执行业务逻辑,连接数据库,管理会话状态
技术依赖HTTP/HTTPS 协议多种协议(HTTP、RMI、JMS 等)
性能优化处理静态内容,高并发性能佳处理复杂业务逻辑,可能会增加系统开销
典型应用Apache HTTP Server、Nginx 等Apache Tomcat、JBoss、WebSphere 等

四、Web 服务器与应用服务器的联系

在现代 Web 应用中,Web 服务器与应用服务器通常协同工作:

  1. 请求分发:Web 服务器接收客户端请求,判断请求类型并将动态请求转发给应用服务器处理。
  2. 响应内容合成:应用服务器处理动态内容,生成响应并返回给 Web 服务器,再由 Web 服务器将结果返回客户端。
  3. 负载均衡与可扩展性:Web 服务器通常位于系统的最前端,可以将请求负载均衡分发到多个应用服务器,提升系统的可扩展性和可靠性。

总结

Web 服务器和应用服务器在职责上有所不同,但它们往往协同工作以支持完整的 Web 应用架构:Web 服务器负责初步的请求管理和静态内容分发,而应用服务器处理核心业务逻辑和动态内容生成。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

探讨Facebook的AI研究:未来社交平台的技术前瞻

在数字时代,社交媒体已成为人们日常生活的重要组成部分。作为全球最大的社交网络之一,Facebook不断致力于人工智能(AI)的研究与应用,以提升用户体验、增强平台功能并推动技术创新。本文将探讨Facebook在AI领域的研究方…

国标GB28181视频平台EasyGBS国标GB28181软件实现无需插件的视频监控对讲和网页直播

在当今社会,视频监控已经成为公共安全、企业管理、智能城市建设等领域不可或缺的一部分。然而,由于不同厂家和平台之间的兼容性问题,视频监控系统的联网和整合面临巨大挑战。为了解决这个问题,国家制定了《公共安全视频监控联网系…

【网络面试篇】三次握⼿、四次挥手综述

目录 一、三次握手 1. 过程描述 2. 为什么不是四次握手?为什么不能两次握手? 二、四次挥手 1. 过程描述 2. 为什么是四次挥手? 一、三次握手 1. 过程描述 ① 客户端 向 服务器 发送 SYN 报文、初始化序列号 ISN(seqx&…

JavaSet集合

无序(指的是添加顺序和获取出的数据顺序不一致,不重复,无索引 既然Set没有索引,因此功能同上一篇Connection的功能,几乎没有额外的功能 HashSet的原理 为什么是无序(要构建红黑树)&#xff0…

【测试平台】Odin-ws 工程环境部署

背景: 这个是我4年半以前接受测试平台过程中遇到问题记录,因为交接成都这边,拿出来直接用了。这里做个记录。 一、美东测试服务器相关 1.主服务器部署机器 该机器是美东服务器。 机器配置:t5.xlarge cpu 4核, 内存…

Android Junit 单元测试 | 依赖配置和编译报错解决

问题 为什么在依赖中添加了testImplement在build APK的时候还是会报错?是因为没有识别到test文件夹是test源代码路径吗? 最常见的配置有: implementation - 所有源代码集(包括test源代码集)中都有该依赖库.testImplementation - 依赖关系仅在test源代码…

如何将png格式的图片做成序列帧

类似以上的图片&#xff0c;根据图片的总长度和图片总数进行计算 <div class"frogeggitem"></div>.frogeggitem {width: 900rpx;height: 1000rpx;background: url(https://frog-skin.haoxgame.com/status2/frog/frogegg.png)no-repeat;background-size:…

学习笔记——动态路由——OSPF(距离矢量协议)OSPF路由类型

OSPF路由类型 在OSPF中&#xff0c;路由类型指的是不同种类的路由&#xff0c;用于描述网络中不同的路由信息及其传输方式。 1、Intra Area路由(区域内路由) Intra Area路由(区域内路由/本地路由/内部路由)是OSPF协议中的一种路由类型&#xff0c;用于描述在同一个OSPF区域内…

Android Studio Dolphin 下载、安装与配置教程

文章目录 Android Studio Dolphin简介一、核心特性二、新增功能三、用户体验优化 一&#xff0c;下载百度网盘迅雷云盘 二&#xff0c;安装三&#xff0c;下载组件四&#xff0c;添加SDK五&#xff0c;创建项目六&#xff0c;安装 Device模拟器运行项目 Android Studio Dolphin…

磁盘分区工具 DiskGenius Pro v5.5.0.1488 中文汉化版

DiskGenius 是一款专家级数据恢复软件&#xff0c;集数据恢复、硬盘分区、系统备份还原等多种功能于一身的超级工具软件&#xff0c;功能全面&#xff0c;安全可靠。可以提供磁盘的数据找回、备份、分区、修复、删除、格式化等操作&#xff0c;也能帮助用户修复磁盘坏道、彻底删…

《一人公司:失业潮中的高新技术工作者》读书笔记

基本信息 书名&#xff1a;一人公司&#xff1a;失业潮中的高新技术工作者作者&#xff1a;[美]卡丽莱恩&#xff08;Carrie M. Lane&#xff09;出版社&#xff1a;广东人民出版社出版时间&#xff1a;2023年11月 内容简介 本书通过18个月的田野调查和9年的跟踪寻访&#…

部署DNS主从服务器

一。DNS主从服务器作用&#xff1a; DNS作为重要的互联网基础设施服务&#xff0c;保证DNS域名解析服务的正常运转至关重要&#xff0c;只有这样才能提供稳定、快速日不间断的域名查询服务 DNS 域名解析服务中&#xff0c;从服务器可以从主服务器上获取指定的区域数据文件&…

es(1)(仅供自己参考)

elasticsearch&#xff08;ES&#xff09;是一款非常强大的开源搜索引擎&#xff0c;可以帮助我们从海量的数据中快速找到需要的内容。 elastic stack&#xff08;ELK&#xff09;&#xff1a;elasticsearch结合kibana、Logstash、Beats。被广泛的应用在日志数据分析、实时监控…

信创认证(信创人才考评证书)的含金量?到底有多少?

“信创认证”是什么&#xff1f; 信创认证是由工业和信息化部教育与考试中心推出的国家级权威认证&#xff0c;旨在推动信息技术应用创新产业的发展&#xff0c;并构建完善的信创产业人才培养体系。该认证在个人信息技术领域具有极高的认可度。 信创认证分为初级、中级和高级三…

新手铲屎官提问,有哪几款噪音低的宠物空气净化器推荐

相信很多铲屎官都明白的的痛就是猫咪掉毛太严重&#xff0c;所以每次看到满天飞的浮毛时只想赶紧逃离&#xff0c;一点都不想清理。但是家是自己的&#xff0c;猫是自己的&#xff0c;健康也是自己的&#xff0c;不清理也得清理。 为了更有效的清理浮毛&#xff0c;我朋友特意…

参会记录|2024 中国计算机大会(CNCC 2024)

前言&#xff1a;2024年10月24-26日&#xff0c;有幸在横店参加了2024年度的中国计算机大会&#xff08;CNCC&#xff09;&#xff0c;本篇博客总结本人在会议期间收听的主要报告内容及收获。 2024.10.24 上午 夏苑海岳开襟 如何实现人工智能在现实场景中的落地&#xff1f; …

OgCloud参加HPE Discover More AI 2024,共建数智化未来!

10月16日&#xff0c;企业科技盛会HPE Discover More AI 2024在香港瑰丽酒店举行。本次大会Hewlett Packard Enterprise (HPE) 联同全球14个科技合作伙伴&#xff0c;聚焦于AI未来走势、混合云创新与边缘安全等领域&#xff0c;以主题演讲、技术展示、研讨会等形式进行&#xf…

从双斜率,野人除法看性能优化

人呐&#xff0c;天生对线性的推崇&#xff0c;却在内心又对线性的不爱。一开始人们总是从最简单的线性过程入手&#xff0c;但最终都难免因为不满足而进入指数过程。 看一个 Linux kernel 老式 O(1) 调度器的时间片计算函数的演化&#xff1a; 早期的 O(1) 是一个连续线性函…

vue 解决:npm ERR! code ERESOLVE 及 npm ERR! ERESOLVE could not resolve 的方案

1、问题描述&#xff1a; 其一、需求为&#xff1a; 想要安装项目所需依赖&#xff0c;成功运行 vue 项目&#xff0c;想要在浏览器中能成功访问项目地址 其二、问题描述为&#xff1a; 在 package.json 文件打开终端平台&#xff0c;通过执行 npm install 命令&#xff0c…

【MySQL】视图特性 用户管理

> 作者&#xff1a;დ旧言~ > 座右铭&#xff1a;松树千年终是朽&#xff0c;槿花一日自为荣。 > 目标&#xff1a;了解什么是视图&#xff0c;我们又该如何管理用户。 > 毒鸡汤&#xff1a;有些事情&#xff0c;总是不明白&#xff0c;所以我不会坚持。早安! >…