20240128周报-网络太杂,Tomcat太难
今天来做个小总结吧,之前说想用几个月的时间将Java生态给整理一遍,该工作已经进入第三周了。先和各位老老板汇报一下上一周的工作,然后说一下本周的计划和后面的计划。
1.上周工作
上周的计划是将网络和Tomcat的内容梳理一番,但是在执行的时候发现这两个看似简单的内容一点都不简单。
首先是网络,我们现在只要关注应用层的问题, 在整理的时候发现HTTP的协议本身确实不是很复杂,但是HTTP的实战场景是非常多的。这个后面持续积累吧。
其次是Tomcat,凡是从事过Java开发的同学,应该没人不知道Tomcat,最近研究其代码,发现这个看似很熟悉的工具,其实现并不简单, 甚至还挺复杂的。所以最近Tomcat的更新也就慢了下来。
前面我们说了,想提高自己,一个好的方式是“简单的事情深入做,复杂的事情简化做”。那Tomcat就是“简单的事情深入做”的典型。
在最近看Tomcat源码的时候发现有几个重要的技术专题可以在Tomcat中深入研究:
1.NIO,Tomcat在管理外部连接请求的时候使用的就充分考虑了多种IO模型的问题,我们之前一般学习Netty的时候才会重点研究这内容,但是不代表只有netty需要。因此对比Tomcat和Netty
,我们可以融会贯通研究IO,吊打面试官就容易多了。
2.双亲委派机制机制以及如何打破双亲委派机制,在学习JVM的时候,我们会花很多精力来研究双亲委派机制的问题,那有什么地方继续拓展双亲委派机制呢?笔者知道的有两个典型的场景会涉及,一个就是Tomcat,一个是Dubbo。Tomcat之所示使用,是因为一个Tomcat可以执行多个web程序,而不同的web程序之间的版本可能是不一样的,比如有的是Spring4,有的是Spring5,那这时候执行的时候很容易发生包冲突等情况,而Tomcat打破双亲委派机制的原因就是为了解决这个问题。
3.线程池问题,我们在学习多线程的时候,都学过原生Java多线程模型的问题,而Tomcat对其进行了扩展,那为什么要扩展,如何扩展的,有什么好处,都是值得我们研究的问题。这个问题理解清楚了,我们以后看Java程序会非常通透。
2.本周工作
本周继续研究Tomcat,努力将其基础结构、核心机制、常见优化策略整理清楚。准备发布博客10篇左右。
加油!
相关文章:
20240128周报-网络太杂,Tomcat太难
今天来做个小总结吧,之前说想用几个月的时间将Java生态给整理一遍,该工作已经进入第三周了。先和各位老老板汇报一下上一周的工作,然后说一下本周的计划和后面的计划。 1.上周工作 上周的计划是将网络和Tomcat的内容梳理一番,但…...

DES加密原理
DES加密算法综合运用了置换、代替、代数等多种密码技术,具有设计精 巧、实现容易、使用方便等特点。DES加密算法的明文、密文和密钥的分组长度 都是64位,详细的DES加密算法结构如图6-10所示。 图6-10 DES加密算法结构图 DES加密过程如下所示ÿ…...

react 之 useCallback
简单讲述下useCallback的使用方法,useCallback也是用来缓存的,只不过是用于做函数缓存 // useCallbackimport { memo, useCallback, useState } from "react"const Input memo(function Input ({ onChange }) {console.log(子组件重新渲染了…...

OfficeWeb365 Readfile 任意文件读取漏洞复现
0x01 产品简介 OfficeWeb365 是专注于 Office 文档在线预览及PDF文档在线预览云服务,包括 Microsoft Word 文档在线预览、Excel 表格在线预览、Powerpoint 演示文档在线预览,WPS 文字处理、WPS 表格、WPS 演示及 Adobe PDF 文档在线预览。 0x02 漏洞概述 OfficeWeb365 Rea…...
UnityShader(十三)Unity内置的函数
在计算光照模型时我们需要得到许多数据,比如光源方向、视角方向这种基本信息。 在之前的例子中都是自行在代码里计算的,比如: normalize(_WorldSpaceLight0Pos.xyz) 得到光源方向(这种方法实际只适用平行光) normaliz…...

【开源】基于Qt5的ROS1/ROS2人机交互软件(支持地图编辑/多点导航)
本项目基于Qt5开发,基于CMake进行构建,可以实现一套代码同时在ROS1/ROS2系统中使用(本项目已接入CI,保证多ROS版本/系统版本可用性) 项目地址: https://github.com/chengyangkj/Ros_Qt5_Gui_App 软件在编译时会自动识别环境变量中的ROS1/ROS…...
Spring和SpringBoot的区别是什么
Spring 和 Spring Boot 是 Java 开发领域内两个极其重要且紧密相关的框架,它们各自在企业级应用开发中扮演着不同的角色,并带来了一系列革新性的变化。以下是关于两者之间主要区别的详细分析: 一、设计理念与定位 Spring Framework Spring 是…...

布局技巧及CSS初始化
一,margin负值巧妙应用 二,文字围绕浮动元素 三,行内块 四,CSS三角强化 五,CSS初始化 一,margin负值巧妙应用 制作盒子的细线边框: 鼠标经过li后变色: 二,文字围绕…...

excel怎么设置密码?轻松保护您的工作表
在数字化时代,数据的安全性显得尤为重要。excel作为我们日常工作中广泛使用的办公软件,其中可能包含了大量的敏感数据。为了确保这些数据不被未授权的人访问,本文将为您详细介绍excel怎么设置密码,从而有效地保护您的数据安全。 方…...

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之TimePicker组件
鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之TimePicker组件 一、操作环境 操作系统: Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1 二、TimePicker组件 TextClock组件通过文本将当前系统时间显示在设备上。支持不…...

Springboot集成Camunda并完成一条流程实例
💖专栏简介 ✔️本专栏将从Camunda(卡蒙达) 7中的关键概念到实现中国式工作流相关功能。 ✔️文章中只包含演示核心代码及测试数据,完整代码可查看作者的开源项目snail-camunda ✔️请给snail-camunda 点颗星吧😘 💖设计流程定…...

宠物用品/宠物自动饮水机方案
宠物自动饮水机方案原理 宠物自动饮水机,也叫做智能宠物饮水机,是一种为宠物设计的智能化饮水器。应用核心主要在于智能化水泵控制,以及外围传感器电路。 宠物自动饮水机使用方便,不用频繁的换水。另外,自来水的水质可…...

git小白进阶之路
git是最常用的版本控制工具,我对其进行了整理后续补充,这个文档欢迎大家来讨论,当前我的视频梳理: git小白进阶之路_哔哩哔哩_bilibili,非常希望大佬们能够批评指正,并多多交流。 目录 初始配置 配置账号…...
哈希表——C++
目录 一、首先使用拉链法: 二、开放寻址法 三、字符串哈希 1.具体如何使用进制的方式来存储字符前缀的可以看这个y总的这个图 2.接下来说一说算某个中间的区间的字符串哈希值 哈希表是一种数组之间互相映射的数据结构,比如举个简单的例子一个十个的数…...

LabVIEW叶片厚度远程监控
LabVIEW叶片厚度远程监控 随着网络技术的高速发展,远程监控广泛应用在各个领域。本文介绍了一种基于LabVIEW的植物叶片厚度远程监控系统,旨在实现对植物生长状况的精准监测和分析。 该系统利用LabVIEW软件开发工具,通过TCP网络协议实现数据…...

el-table动态合并
废话就不多说了,直接上代码!!! 合并行 // 方法一 <template><div class"container"><el-table :data"dataSource" :border"true":header-cell-style"{ font-weight: normal,…...

【DevOps】产品需求文档(PRD)与常见原型软件
文章目录 1、PRD介绍1.1、概述1.2、前提条件1.3、主要目的1.4、关键内容1.5、表述方式1.6、需求评审人员1.7、一般内容结构 2、需求流程3、常见原型软件3.1、Word3.2、Axure3.2.1、详细介绍3.2.2、应用分类3.2.3、优缺点 3.3、摹客RP3.4、蓝湖3.5、GUI Design Studio 1、PRD介绍…...
【QT+QGIS跨平台编译】之十八:【Expat+Qt跨平台编译】(一套代码、一套框架,跨平台编译)
文章目录 一、Expat介绍二、文件下载三、文件分析四、pro文件五、编译实践一、Expat介绍 Expat库最初由James Clark创建,已经成为许多编程语言中常用的XML解析工具。它以其简单、快速和可靠的特点而受到广泛的认可和使用。 Expat库的优点包括: 快速:Expat的解析速度非常快…...
20240203
1.项目经理正在为新项目制订进度计划,项目的成功取决于使用需要政府颁发特殊环境许可证的设备,在网络图的设计过程中,项目经理应该做什么以确保正确的活动排序? A.使用滚动式规划考虑项目不确定性 B.分析外部依赖关系,…...

【Spark实践6】特征转换FeatureTransformers实践Scala版--补充算子
本节介绍了用于处理特征的算法,大致可以分为以下几组: 提取(Extraction):从“原始”数据中提取特征。转换(Transformation):缩放、转换或修改特征。选择(Selection&…...
golang循环变量捕获问题
在 Go 语言中,当在循环中启动协程(goroutine)时,如果在协程闭包中直接引用循环变量,可能会遇到一个常见的陷阱 - 循环变量捕获问题。让我详细解释一下: 问题背景 看这个代码片段: fo…...

边缘计算医疗风险自查APP开发方案
核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...
系统设计 --- MongoDB亿级数据查询优化策略
系统设计 --- MongoDB亿级数据查询分表策略 背景Solution --- 分表 背景 使用audit log实现Audi Trail功能 Audit Trail范围: 六个月数据量: 每秒5-7条audi log,共计7千万 – 1亿条数据需要实现全文检索按照时间倒序因为license问题,不能使用ELK只能使用…...

Reasoning over Uncertain Text by Generative Large Language Models
https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829 1. 概述 文本中的不确定性在许多语境中传达,从日常对话到特定领域的文档(例如医学文档)(Heritage 2013;Landmark、Gulbrandsen 和 Svenevei…...

Golang——9、反射和文件操作
反射和文件操作 1、反射1.1、reflect.TypeOf()获取任意值的类型对象1.2、reflect.ValueOf()1.3、结构体反射 2、文件操作2.1、os.Open()打开文件2.2、方式一:使用Read()读取文件2.3、方式二:bufio读取文件2.4、方式三:os.ReadFile读取2.5、写…...

Visual Studio Code 扩展
Visual Studio Code 扩展 change-case 大小写转换EmmyLua for VSCode 调试插件Bookmarks 书签 change-case 大小写转换 https://marketplace.visualstudio.com/items?itemNamewmaurer.change-case 选中单词后,命令 changeCase.commands 可预览转换效果 EmmyLua…...
土建施工员考试:建筑施工技术重点知识有哪些?
《管理实务》是土建施工员考试中侧重实操应用与管理能力的科目,核心考查施工组织、质量安全、进度成本等现场管理要点。以下是结合考试大纲与高频考点整理的重点内容,附学习方向和应试技巧: 一、施工组织与进度管理 核心目标: 规…...

PH热榜 | 2025-06-08
1. Thiings 标语:一套超过1900个免费AI生成的3D图标集合 介绍:Thiings是一个不断扩展的免费AI生成3D图标库,目前已有超过1900个图标。你可以按照主题浏览,生成自己的图标,或者下载整个图标集。所有图标都可以在个人或…...

高端性能封装正在突破性能壁垒,其芯片集成技术助力人工智能革命。
2024 年,高端封装市场规模为 80 亿美元,预计到 2030 年将超过 280 亿美元,2024-2030 年复合年增长率为 23%。 细分到各个终端市场,最大的高端性能封装市场是“电信和基础设施”,2024 年该市场创造了超过 67% 的收入。…...
使用python进行图像处理—图像滤波(5)
图像滤波是图像处理中最基本和最重要的操作之一。它的目的是在空间域上修改图像的像素值,以达到平滑(去噪)、锐化、边缘检测等效果。滤波通常通过卷积操作实现。 5.1卷积(Convolution)原理 卷积是滤波的核心。它是一种数学运算,…...