Java单机模式下重要的两个知识点(数据检索和并发线程)

单机高并发模型设计 在微服务架构下,我们习惯使用多机器、分布式存储、缓存去支持一个高并发的请求模型,而忽略了单机高并发模型是如何工作的。这篇文章通过结构客户端与服务端的建立连接和数据传输过程,阐述下如何进行单机高并发模型设计。如何在一台物理机上同时服务10K用户,及10000个用户,对于java程序员来说,这不是什么难事,使用netty就能构建出支持并发超过10000的服务端程序。那么netty是如何实现的?首先我们忘掉netty,从头开始分析。每个用户一个连接,对于服务端就是两件事我们以常见TCP连接为例。 一张很熟悉的图。 阅读详情

Java单机架构模式一般采用MVC模式,搭建一个单机模式下的MVC架构服务不是特别的难,有一定经验的工程师都可以做到,常见的有:SSH(Structs+Spring+Hibernate),SSM(SpringMVC+Spring+MyBatis)。

 

在这样的小中型服务运用的的知识结构中,有两个重要的知识点。

  1. 数据检索
  2. 并发线程

一.数据检索包括结构化数据检索和非结构化数据检索(跟数据库关联都是应用到了数据索引)

  1. 结构化数据检索(指具有固定格式或有限长度的数据,如:数据库,元数据)

       应用的数据库索引:

                如:唯一索引,单列索引,组合索引

  1. 非结构化数据检索(指不定长度或无固定格式的数据,如:邮件,word文档之内的)

       应用的数据库索引:

                如:全文索引(Java提供一些有关框架如:分布式数据检索ElesticSearch ,  单机全文检索Solr   )

 

数据检索是一个很庞大的东西,但它的基础是上面介绍的模式。

 

二.并发线程包括线程的实现,线程的工具类,并发集合,甚至还有JMM等等,包含不少东西。

大家可以自行去研究掌握。

 

在这里把这两个知识点提出来,是因为它们在单机模式的重要性,也是面试当中很容易监考到的东西,掌握它们,才可以去看懂很多框架的源码,甚至可以避免架构过程中的一些坑。

Java程序员自救指南 新生代:存储新创建的对象,包含Eden区和两个Survivor区。垃圾回收频繁,称为Minor GC。老年代:存储生命周期较长的对象。垃圾回收较少,称为Major GC或Full GC。通过这种分代的方式,JVM能够更高效地进行内存管理和垃圾回收,提高应用程序的性能。JVM启动参数JVM(Java Virtual Machine)启动参数是用于配置Java虚拟机运行时行为的参数。通过这些参数,你可以控制JVM的内存分配、垃圾回收策略、调试选项等。内存设置参数-Xms<size>-Xms512m。 阅读详情

相关推荐

educoder-HBase 实战:Java API 实现高效数据操作全流程解析

本文详细解析了在educoder平台上使用Java API操作HBase数据库的全流程,涵盖环境准备、连接建立、表创建、数据增删改查以及性能调优等核心环节。通过实战代码示例,帮助开发者掌握高效数据操作的关键技术,并提供了RowKey设计、批量操作等最佳实践,以提升开发效率与系统性能。

weixin_29047545的博客 113

Java简易考试系统

Java简易考试系统

Joey King的博客 337

多线程 - Java实现并发的几种方法

【Java实现并发的几种方法】

学无止境 3200

java单机版任务调度总结及代码样例

java单机版任务调度总结及代码样例。

weixin_44329964的博客 761

一个简单的java桌面应用:单机版IFTTT

本项目是由java编写的一款简单的单机版ifttt桌面应用。 用户可以指定this和that事件。当应用监测到this事件发生时,将自动执行that事件。 当前可供选择的this事件有: 定时器 指定的QQ邮箱收到邮件(可指定发件人邮箱包含某一子串) 当前可供选择的that事件有: 通过QQ邮箱发送邮件 发布新浪微博

JAVA单机版考试软件设计

JAVA单机版考试软件设计考试软件需要满足以下的要求: 1)采用标准化题目类型。 2)自动阅卷准评分。 3)组卷形式灵活方便。 4)考试过程中动态显示剩余时间。 5)动态保存考生数据。 单机版软件设计的原则是: 1)为简单起见只采用单选题一种题型。 2)采用试卷库的形式,以文本文件的形式存储在考试文件夹下,考生任意抽取。 3)根据命题员给出的标准答案和考生提交的答案对比,给出得分。 4)本程序为考生自测,考试结束后,考生单机“查看分数”得知考试成绩。

聊一聊Java中那些常见的并发控制手段

复制代码。

2401_86963650的博客 569

NFT图片批量合成及稀有度计算工具

一、制作背景 -当前NFT作品制作的大多方式都是使用部件拼接的形式,然后从大量的可能性结果取优; 二、解决问题 拼接合成的组合数量十分巨大,手工合成费时费力; 合成中对各个部件的使用次数不容易控制,部位出现的概率对作品的稀有度及评分影响较大; 对于生成的作品各个部位的信息(包括来源和使用率)统计繁琐,不利于对作品的介绍中体现; 三、程序功能介绍 1、功能自定义部位稀有度批量合成NFT作品 步骤一:创建各个合成部件文件夹,将图片放到文件夹内 步骤二:软件上设置各个部件对于的图片文件夹及出现的概率 步骤二

Keeping111的博客 4638

Android和Java之并发多线程(详细归纳和讲述)

如果关注了本人的博客,前面有一篇这样的博客,讲述是:Java单机模式下重要的两个知识点(数据检索和并发线程) https://blog.youkuaiyun.com/zh_android/article/details/90721884 这里我们来详细谈谈并发线程。 Android和Java之并发多线程 有些工程师将并发和多线程当成一个概念,在软件开发中这样概念还不少,如:依赖注入和控制反转,高...

Frank浩的博客 543

在F1C100s上跑GBA游戏:手把手教你用Buildroot配置SDL和移植gpsp模拟器

本文详细介绍了在全志F1C100s开发板上配置Buildroot、移植SDL库和gpsp模拟器的完整流程,帮助开发者实现在ARM9平台上流畅运行GBA游戏。内容涵盖环境配置、交叉编译、常见问题解决及性能优化技巧,特别针对'段错误'和'无声音'等典型问题提供实用解决方案。

weixin_42566424的博客 397

深入探究贝叶斯网络(Bayesian Network):从基础原理到实际应用

贝叶斯网络,也称为信念网络或有向无环图模型,是一种概率图模型。它使用有向无环图(DAG)来表示随机变量之间的条件依赖关系。每个节点代表一个随机变量,边表示变量之间的条件依赖关系。贝叶斯网络作为一种强大的工具,通过结合概率论和图论,为复杂系统建模和推理提供了有效手段。无论是在医学诊断、故障检测还是自然语言处理等领域,它都展示了巨大的潜力。然而,其计算复杂度高、结构学习困难等挑战也需要我们在实际应用中不断优化算法和技术。希望通过本文,你能对贝叶斯网络有更深入的理解,并能够在实际项目中灵活应用这一强大工具。

qq_28791753的博客 5968

Android和Java之数据检索(应用和原理)

Android和Java之数据检索 如果关注了本人的博客,前面有一篇这样的博客,讲述是:Java单机模式下重要的两个知识点(数据检索和并发线程) https://blog.youkuaiyun.com/zh_android/article/details/90721884  这里我们来详细谈谈数据检索。 这篇博客的数据检索是相对于关系型数据库,底层是关系型数据库的索引,数据结构是树型结构,算法是如:B+...

Frank浩的博客 270

SAP_MM模块采购价格确定控制简介

SAP MM模块采购价格确定控制是采购管理中的关键功能,系统通过"价格确定日期"判断条件记录有效性并带出正确价格。文章分析了四种常见业务场景及其对应的价格确定方案:普通采购订单(创建日期)、长期合同(交货日期)、特殊业务(手动输入)和接口下单(系统传入)。详细介绍了配置方法和前台操作步骤,并提供了不同业务类型对应的推荐控制方式汇总表。通过合理设置价格确定日期控制,企业可以确保采购价格准确性,满足各种复杂业务场景下价格管理的需求,从而提高采购管理效率和成本控制能力。

我小时候很黑的博客 737

Nacos 2.x 源码深度解析 (七):服务注册流程 —— 客户端上报与服务端存储

本文解析Nacos2.x基于gRPC长连接的服务注册源码。客户端依托Spring生态实现自动注册,通过Redo缓存与定时重试,保障临时实例注册高可用。服务端统一处理注册、注销请求,采用客户端驱动架构与倒排索引优化读写性能。系统基于事件总线实现模块解耦,注册后依次完成索引更新、延迟合并推送,并通过Distro协议同步集群数据,兼顾高并发、高可用与数据一致性。

于云原生深处,追寻架构与代码的优雅 894

1. SAP Business Application Studio 里创建一个基于 CAP 模型的最简单的 OData 服务

本文基于 SAP Cloud Application Programming 编程模型的 OData 服务开发教程的第一步,简述了 SAP Business Technology Platform 里 Business Application Studio 开发工具的打开方式,创建 Dev Space 以及 CAP 项目的创建步骤,以及如何通过 schema.cds 和 service.cds 分别创建 OData 模型和 OData 服务,最后通过 ports preview 打开 OData 服务预览页

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1798

RK3588部署YOLO模型 包含模型量化+npu轻量化+ubuntu+RGA图像加速和多线程模型加速 包源码

本专栏为深度学习部署全栈学习体系,包含68篇由浅入深的教程,专为零基础学习者设计。内容涵盖TensorRT与RK3588平台部署技术,包含Jetson系列和RK系列硬件部署实战,采用"理论+源码+实战"三位一体的教学模式。学习路径从基础环境搭建到模型优化、容器化部署、多硬件平台适配,最终掌握工业级AI部署能力。特色包括C++基础教学、Docker容器化、INT8量化、多线程优化等核心技术,并附带YOLOv5、人脸检测、车牌识别等多个实战项目源码。适合算法工程师转部署方向、嵌入式开发者及对

FJN110的博客 3731

java 如何解决并发问题吗_JAVA如何解决并发问题

并发问题的根源在哪首先,我们要知道并发要解决的是什么问题?并发要解决的是单进程情况下硬件资源无法充分利用的问题。而造成这一问题的主要原因是CPU-内存-磁盘三者之间速度差异实在太大。如果将CPU的速度比作火箭的速度,那么内存的速度就像火车,而最惨的磁盘,基本上就相当于人双腿走路。这样造成的一个问题,就是CPU快速执行完它的任务的时候,很长时间都会在等待磁盘或是内存的读写。计算机的发展有一部分就是如...

weixin_34746715的博客 692

2026年算法工程师常见面试简答题

本文摘要:文章系统梳理了机器学习与深度学习中的30个核心概念,涵盖模型优化、评估指标、经典算法和大模型应用等关键知识点。主要内容包括:1)过拟合与欠拟合的成因及解决方法;2)偏差-方差权衡原理;3)数据划分与交叉验证策略;4)分类/回归任务评估指标选择;5)逻辑回归、决策树、SVM等传统算法解析;6)梯度下降优化与正则化技术;7)CNN、RNN、Transformer架构对比;8)Embedding表示与RAG技术。特别强调面试高频考点如XGBoost改进、注意力机制原理等,并给出实际工程中的解决方案建议,

不务正业的猿 350

java单机应用,并发名额扣减或增加的处理

在 Java 中,可以使用 synchronized 关键字来处理单机应用中的并发名额扣减或增加。 使用 synchronized 关键字的方式如下: 使用 synchronized 修饰方法: public synchronized void decrementCount() { count--; } public synchronized void incrementCount(...

weixin_42594419的博客 167

厉害了,华为推出下一代光传送网:fgOTN

2024年10月,在全球信息技术博览会(GITEX Global 2024)上,华为正式发布了其颠覆性的创新产品——端到端细粒度光传送网(fgOTN)解决方案。这一产品组合被誉为行业内首个fgOTN,旨在重塑光传送网络的格局,满足电力运输等行业日益增长的通信需求。在过去的近三十年中,同步数字体系(SDH)技术一直是电信和工业网络的支柱,因其可靠性、稳定性和低延迟而备受青睐。然而,随着数据需求的激增,SDH的最大带宽仅为10 Gbps,逐渐显露出局限性。

网络技术联盟站 635

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

记一次高并发流量控制

前言 在实际项目中,曾经遭遇过线上5W+QPS的峰值,也在压测状态下经历过10W+QPS的大流量请求,本篇博客的话题主要就是自己对高并发流量控制的一点思考。 应对大流量的一些思路 首先,我们来说一下什么是大流量? 大流量,我们很可能会冒出:TPS(每秒事务量),QPS(每秒请求量),1W+,5W+,10W+,100W+...。其实并没有一个绝对的数字,如果这个量造成了系统的压力,影响了系统的性能,那么这个量就可以称之为大流量了。 其次,应对大流量的一些常见手段是什么? 缓存:说白了,就是让数据尽

夏天吹雪的博客 545

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

java面试题

一些面试题

jiaowoquxuexi的博客 280

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

java并发控制的三种方式

第一种 给方法前面 加 synchronized 示例:[code="java"]public synchronized void out2(String name) { int length = name.length(); for (int i = 0; i < length; i++) { System.out.print(name.charAt(i)); ...

天浩 1469

java 单机_Java 中间件环境搭建-单机版

建立软连接:ln -s 源文件 目标目录下载、解压、进入 dubbo-admin,运行 mvn package 打包,需要安装 maven并设置环境变量。然后把打包的 war 包拷贝至 web 容器中启动。默认管理账号 root,密码 root,可以在项目的 WEB-INF 目录下的 dubbo.properties 中修改。下载、解压、拷贝至 /usr/local 目录、配置、修改环境变量或者建...

weixin_32133403的博客 382

java单例模式——详解JAVA单例模式及8种实现方式

本文转载自:java单例模式——详解JAVA单例模式及8种实现方式_EatingSoilLang的博客-优快云博客_java单例模式 ## 单例模式是最简单也是最基础的设计模式之一,下边一起学习一下单例模式! 一.单例模式的定义: 单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。在计算机系统中,线程池、缓存、日志对象、对话框、打印机、显卡的驱动程序对象常被设计成单例。这些应用都或多或少具有资源管理器的功能。每台计算机可以有若干个打印机,但只能有一个Printer Spooler

chali1314的博客 2万+
上一篇: 用日常角度看数据结构和算法
下一篇: Java分布式模式重要的两个知识点(分布式缓存和高可用)
Frank浩
博客等级 码龄15年 4粉丝 30原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Frank浩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值