自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(54)
  • 收藏
  • 关注

原创 学习Java资源分享(已更新SpringMVC教程)

小编在这里分享一些java的学习视频资料。JavaSE基础知识视频学习链接:https://pan.baidu.com/s/1nwK2dg1 密码:p0su。这里是黑马培训的java基础视频,新手可以从这里开始看起MySql简单视频教学链接:https://pan.baidu.com/s/1pMVntgR 密码:2s8n。这里是Mysql简单视频教学,需要了解Mysql的可以从这里看起。JavaWeb基础教学链接:https://pan.baidu.com/s/1jJPrRH.

2021-07-11 02:02:02 190 3

原创 中新赛克 校招 -java开发工程师

如果有个user对象,a方法中传入user对象,a中在new 一个对象并赋给user,外部的user会变吗。spring如何配置bean,比如有一个地方项目需要注入某个对象,另一个地方不需要注入,该怎么配置。如果核心线程数为5,最大线程数10,阻塞队列5,第五个线程来的话,池里有几个线程,第六个呢。如果线程有优先级,怎么让线程池按优先级从阻塞队列中取任务,每次取都排序合理吗。spring 一次反射就能注入bean吗,比如a中有b,b中有a,怎么解决。redis持久化了解吗,讲一下,项目中怎么使用的。

2023-06-22 11:06:30 645

原创 Java面试—蔚来汽车

适合去面试的朋友:底层比较熟悉的朋友,熟悉一些算法的朋友。福利待遇:福利待遇还可以,不是很卷,年终奖可能要打折。整个流程:3轮 初面-二面-三面-hr面-可能加面。6.b[gf]2795[/gf]树索引。7.Netty的设计原理 网络模型。蔚来一面 高级Java开发工程师。4.用过什么设计模式 答代理。5.线程池用过吗 拒绝策略?2.讲一讲rpc的服务注册。3.rpc有用到本地缓存吗。公司介绍:新能源车企公司。1.算法 模拟矩阵输出。总结:侧重算法加上底层。

2023-03-06 00:23:35 2746

原创 乐信—高级Java开发工程师二面(偏业务)

4 若是你原来读取的Redis中的数据,它的数据的结构发⽣生了变化,如何在 不改变代码的状况下进⾏行处理,使下游业务不受影响?3 什么是线程调度器(ThreadScheduler)和时间分片(TimeSlicing)2 说说Redis的淘汰策略?1 使⽤用Redis的过程当中有没有遇到什么问题。2 所处自己负责的业务模块,其中用到哪些技术点。总结:主要是看重有没有实际处理过高并发的经验。5 你觉得项目中的比较难的点大概是什么样。3 Redis的内存回收机制有哪些?1 项目的架构大概什么样子。

2022-09-30 01:28:53 753

原创 乐信—高级Java开发工程师一面(偏业务)

1 给定一百万个整数,没有范围,无序。内存只有102个,如何找出最大的100个数字。1 redis缓存过期的lru机制,运用场景还有实现原理。总结:主要是看重有没有实际处理过高并发的经验。2 高并发场景系统设计的时候应该怎么考虑。1 如何实现最终⼀致性分布式事务?1 索引的B+树结构是咋样的。1 常用的linux指令。1 项目的tps是多少。3 如何减轻DB的压力。福利待遇特点:还可以。1 jvm调优的目标。2 jvm调优的步骤。时间 55 分钟左右。

2022-09-28 01:02:36 460

原创 腾讯三面—高级Java开发工程师

总结:主要侧重架构设计方面,需要平时多一些设计方面的思考,还有有一道算法题目,平时可能也需要多学习算法。新库,⽤⾃增id,binlog同步⽤旧库id,可能出现旧库id与新库id冲突,怎么解决。切换数据源后,预发旧库binlog同步操作出现短暂延迟,由于表⾃增,⽣产切换后写。canal监听库配置,在切库前后修改配置新库,都会造成事件丢失/重复,怎么解决。问题1:直接修改数据源,滚动发布过程中部分机器操作新库,部分机器操作旧库。问题2:多个业务⽅依赖基础服务表操作变更事件,在切库时,需要重新配置。

2022-09-27 00:29:37 753

原创 腾讯二面 高级Java开发工程师

腾讯二面 高级Java开发工程师福利待遇特点:福利拉满部门特点:腾讯金融业务部门整个流程1 自我介绍2 问答环节3 提问环节JVM1 讲一讲内存分代及生命周期。2 什么情况下触发垃圾回收?3 如何选择合适的垃圾收集算法?4 JVM中最大堆大小有没有限制?存储方案1 多存储情况下有多少种同步方案,每种方案的优缺点2 数据一致性有啥解决方案?算法1 谈一谈一致性哈希icon算法。2 paxos是什么?3 什么是Lease机制?4 如何理解选主算法?实际场景1 微服务网.

2022-08-29 18:56:02 231

原创 腾讯高级java开发——一面

如果线程池的线程使用 ThreadLocal 会有什么问题?2 如果你作为一个放款渠道,后面接入很多资金方,你怎么设置的路由策略,从哪些方面进行考量。1 你觉得项目里给你最大的挑战是什么?2 什么 ConcurrentHashMap 的读操作不需要加锁?总结:主要侧重设计方面,然后实操方面,然后需要有一点的业务知识。所有的系统调用都会进入到内核态吗?1 在一个贷款系统中,我怎么控制单日总额度和客户的额度。1 线程死锁,解除线程死锁有哪几种方式?1 进程的调度算法有哪些?2 僵尸进程产生的原因?

2022-08-24 00:22:55 983

原创 SHEIN面试——Java高级开发

2022年7月20希音二面高级开发工程师(供应链)4spring和mybatis怎么操作数据库的。5平时工作量怎么定义的。1线程间的通信方式。2什么是pua定义。3什么是内卷的定义。7如何提升工作效率。

2022-07-25 23:17:13 2370 5

原创 SHEIN面试分享(java高级开发)

4我有四张表几十亿的数据,没有关联,我要从里面查询上个月的数据select*from表名wheretime='上个月',然后把结果合并,查询很慢,我怎么去优化,优化思路。3mysql中有一张表id自增name找出name重复的记录。3redis加锁和设置过期时间非原子性操作,怎么去解决。1voilate原理(缺点),可以用什么替代比较好。2mysql什么是最左前缀原则,最左前缀原则原理。2redis除了5种数据结构还有没有其他数据结构。1mysql慢sql优化思路。...

2022-07-22 17:03:31 2090 1

原创 技术日常系列——我想用Swagger来进行API管理,同事说我out了

分享今天创建了一个新服务,我想用swagger进行API管理我:用swagger来进行管理API接口把,比较方便他:你out了,现在谁还用swagger我:那用啥他:当然是用knife4j了,好用多了。我:该怎么用啊他:就这么用 ....如何使用knife4j引入jar 包<dependency> <groupId>com.github.xiaoymin</groupId> &l

2021-12-28 10:54:57 669

转载 雷军做程序员时写的博客,太牛了。。

来源:雷军的博客 blog.sina.com.cn/leijun这篇文章是在雷总个人博客看到的,里面聊到了他作为程序员的一些经历、初衷以及思考。写的不错,转来给大家看看。如果程序人生的话,这条路太漫长。我并非天生喜欢写程序,上高中时也没有想过程序员的生活。我学电脑非常偶然,小时好友上大学时选择了计算机系,为了和这个朋友有更多的共同语言,我也选择了计算机系,开始步入程序人生的道路。当我学会一些后,发现自己特别喜欢写程序。我是八七年上的武汉大学计算机系,大一下学期才有专业课。当我有资格上机的

2021-12-16 13:40:42 130

原创 技术日常系列——今天同事看到我的sql用count(*)立马制止了我

问题起因 我想判断数据库存不存在记录,就是使用count(*)去判断 代码如下: ####SQL写法: SELECT count(*) FROM table WHERE a = 1 AND b = 2 #### Java写法: int nums = xxDao.countXxxxByXxx(params); if ( nums > 0 ) { //当存在时,执行这里的代码 } else { //当不存在时,执行这里

2021-12-16 10:34:03 905

原创 技术日常系列——朋友问我为啥要用where 1=1 作为查询条件

where的使用朋友问我为啥要用where 1=1 作为查询条件问题发起 今天朋友问我,为啥需要用到where 1=1作为查询条件,有啥意义,想必可能有些朋友也有类似的疑问,我跟有问题的朋友一起过一下where 1=1大家先看段代码 <select id="selectKey" parameterType="java.util.Map" resultType=""> select ID,CUSTOMER_CODE from CUS

2021-12-11 19:21:12 905

原创 Hadoop之Zookeeper——知识点总结

学习路径第1节 安装第2节 简单操作第3节 分布式协调服务介绍、zookeeper节点介绍第4节 Zookeeper 分布式协调服务watcher机制第5节 Curator 客户端与Zookeeper的简单操作第6节 Curator 客户端与Zookeeper 事件监听第7节 Curator 客户端与Zookeeper springboot集成第8节 Zookeeper之Zab协议第9节 Zookeeper实现数据发布订阅第10节 Zookeeper实现分布式锁 原

2021-12-09 18:50:37 1007

原创 《github精选系列》——SpringBoot 全家桶

1 简单总结1SpringBoot 全家桶简介2项目简介3子项目列表4环境5运行6后续计划7问题反馈gitee地址:https://gitee.com/yidao620/springboot-bucket2主要介绍SpringBoot 全家桶Spring Boot 现在已经成为Java 开发领域的一颗璀璨明珠,它本身是包容万象的,可以跟各种技术集成。本项目对目前Web开发中常用的各个技术,通过和SpringBoot的集成,并且对...

2021-09-22 14:33:51 863

原创 《github精选系列》——多线程编程一站式解决方案(asyncTool)

1 简单总结1 并行常见的场景2 并行场景之核心——任意编排3 并行场景可能存在的需求之——每个执行结果的回调4 并行场景可能存在的需求之——执行顺序的强依赖和弱依赖5 并发场景可能存在的需求之——依赖上游的执行结果作为入参6 并发场景可能存在的需求之——全组任务的超时7 并发场景可能存在的需求之——高性能、低线程数8 asyncTool特点gitee地址:https://gitee.com/jd-platform-opensource/asyncTool

2021-09-06 11:36:33 480

原创 《github精选系列》——分布式任务调度平台XXL-JOB

1 简单总结1 说明2 特点3 搭建调度中心架构图git地址:https://gitee.com/xuxueli0323/xxl-job2 主要介绍2.1 说明XXL-JOB是一个分布式任务调度框架,核心设计目标是快速开发、学习简单、轻量级、易扩展。2.2 特点1.简单:支持通过网页对任务进行CRUD操作,操作简单,一分钟上手;2.动态:支持动态修改任务状态、暂停/恢复任务、终止正在运行的任务,即时生效;3.调度中心HA(中心型):调度中心设计,

2021-09-02 15:05:26 271

原创 计算机网络基础——物理层

1 简单汇总1 基本概念2 数据通信的基本知识3 常用编码形式4 信道复用技术2 主要介绍2.1 基本概念首先要知道的是,物理层考虑的是怎样才能在连接各种计算机的传输媒体上传输数据比特流,而不是指具体的传输媒体。因为现在的计算机网络中的硬件设备和传输媒体的种类非常的多。而物理层的作用就是要尽可能地屏蔽掉这些不同的差异,从而使得物理层上面的数据链路层感觉不到这些差异,这样就可以让数据链路层“安心”的完成自己的本职工作而不必考虑网络的具体传输媒体和通信手段是什么。.

2021-08-31 16:01:34 179

原创 计算机网络基础——概述

1 简单汇总1 计算机网络在信息时代中的作用2 互联网概述1) 网络的网络2)互联网基础结构发展的三个阶段3 互联网的组成1) 边缘部分2) 核心部分4 计算机网络的类别1) 按照网络的作用范围进行分类2) 按照网络的使用者进行分类5 计算机网络性能计算机网络的性能指标1)速率2) 带宽3) 吞吐量4) 时延5) 时延带宽积6) 往返时间RTT7) 利用率计算机网络的非性能指标(1)费用(2)质量(3)标准化(

2021-08-30 11:08:47 337

原创 计算机网络基础——http详解

1 简单汇总2 主要介绍2.1 HTTP协议简介超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础。HTTP的发展是由蒂姆·伯纳斯-李于1989年在欧洲核子研究组织(CERN)所发起。HTTP的标准制定由万维网协会(World Wide Web Consortium,W3C)和互联网工程任务组(Internet Engineering Task Force,I

2021-08-26 14:56:49 1703

原创 计算机网络基础——需要注意的那些问题

1 简单汇总1.OSI,TCP/IP,五层协议的体系结构,以及各层协议2.IP地址分类3.ARP是地址解析协议,简单语言解释一下工作原理4.简单介绍几种协议5.TCP三次握手四次挥手6.在浏览器中输入www.baidu.com后执行的全部过程7.TCP和UDP的区别8.TCP对应的协议和UDP对应的协议9.DNS域名系统,简单描述其工作原理2 主要介绍2.1 OSI,TCP/IP,五层协议的体系结构,以及各层协议OSI分层 (7层):物理层、数

2021-08-23 15:42:47 358

原创 计算机网络基础——知识点总结

计算机网络基础1 概述1 什么是互联网2 互联网的组成3 网络性能指标4 计算机2 物理层1 物理层的作用2 常用编码形式3 信道复用技术3 数据链路层1 点对点通信2 三个基本问题3 点对点协议PPP4 广播信道的数据链路层4.1 局域网4.2 CSMA/CD协议4.3 适配器4.4 MAC地址4.5 MAC帧4.6 交换机扩展局域网3 网络层1 虚电路和数据报之争2 网路层协议3 IP地址分类

2021-08-23 15:40:56 382

原创 Java基础——异常

1 基本概括2 主要介绍2.1 异常的概念什么是异常指程序在运行过程中,出现的非正常的情况,最终会导致java虚拟机(jvm)的非正常停止。异常如何处理当异常出现时,执行预先准备好的程序异常处理必要性减少用户的损失、同时也减少给用户带来的不必要的麻烦;也可以利用异常处理给与用户一些提示异常机制的概述异常机制是指当程序出现错误后,程序如何处理。具体来说,异常机制提供了程序退出的安全通道。当出现错误后,程序执行的流程发生改变,程序的控制权转移到异常处理器。程序错误

2021-08-18 16:35:37 168

原创 bat 等大厂常问的Java多线程面试题,3万字解析

1 基本概括2 文章详情1.1 Java基础——Java多线程(进程与线程的介绍)1.2 Java基础——Java多线程(线程的创建方式)1.3 Java基础——Java多线程(什么是进程?)1.4 Java基础——Java多线程(什么是线程?)1.5 Java基础——Java多线程(什么是线程池?)1.6 Java基础——Java多线程(什么是线程安全?)1.7 Java基础——Java多线程(多线程死锁问题)1.8 Java基础——Java多线程(ThreadLo

2021-08-13 16:49:42 541

原创 Java多线程(15)——多线程常见的锁

1 基本概括2 主要介绍2.1 乐观锁 VS 悲观锁2.1.1 悲观锁定义总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它线程)。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。在Java中,synchronized从偏向锁、轻量级锁到重量级锁,全是悲观锁。JDK提供的Loc

2021-08-11 14:36:09 667

原创 Java多线程(14)——Lock接口详解

1 基本概括2 主要介绍2.1 Lock接口的作用2.1.1 简单介绍锁是用来控制多个线程访问共享资源的方式,一般来说,一个锁能够防止多个线程同时访问共享资源,解决数据的一致性问题。在Lock接口出现之前,Java程序是靠synchronized关键字实现锁功能的,而Java SE 5之后,并发包中新增了Lock接口(以及相关实现类)用来实现锁功能,它提供了与synchronized关键字类似的同步功能,只是在使用时需要显式地获取和释放锁。虽然它缺少了隐式获取释放锁的便捷...

2021-08-10 09:40:51 370

原创 Java多线程(13)——synchronized优化

1 基本概括2 主要介绍2.1 锁的优化的五种方法锁优化的思路和方法有以下几种:减少锁持有时间减小锁粒度锁分离锁消除2.1.1 减少锁持有时间减小锁的持有时间是为了降低锁的冲突的可能性,提高体系的并发能力。1) 只在必要时进行同步加锁操作例如下面的代码:在加锁时先判断是否满足同步代码逻辑的要求,以达到减小锁的占有几率的目的// 使用条件判断减少锁持有时间提高效率。public void matcher(Char input) { if (!co

2021-08-10 01:06:50 186

原创 Java多线程(12)——synchronized详解

1 基本概括2 主要介绍2.1 同步概念2.1.1 对象的内存布局1 实例数据:存放类的属性数据信息,包括父类的属性信息;2 对齐填充:由于虚拟机要求 对象起始地址必须是8字节的整数倍。填充数据不是必须存在的,仅仅是为了字节对齐;3 对象头:Java对象头一般占有2个机器码(在32位虚拟机中,1个机器码等于4字节,也就是32bit,在64位虚拟机中,1个机器码是8个字节,也就是64bit),但是 如果对象是数组类型,则需要3个机器码,因为JVM虚拟机可以通过Java对象的元数

2021-08-09 02:16:08 1015

原创 Java多线程(11)——volatile详解

1 基本概括2 主要介绍2.1 Java内存模型(JMM)JMM(Java Memory Model)Java内存模型,是java虚拟机规范中所定义的一种内存模型。Java内存模型(Java Memory Model)描述了Java程序中各种变量(线程共享变量)的访问规则,以及在JVM中将变量存储到内存和从内存中读取变量这样的底层细节。所有的共享变量都存储于主内存。这里所说的变量指的是实例变量和类变量。不包含局部变量,因为局部变量是线程私有的,因此不存在竞争问题。每一个线程还存在自己

2021-08-08 04:49:50 700

原创 Java多线程(10)——线程与进程的通信方式

1 基本概括2 主要介绍2.1 进程通信和线程通信的概念进程通信进程相互交换数据与信息。进程间通信有两种基本模型:共享内存和消息传递(消息队列)。线程通信原因:为了更好地协作,线程无论是交替式执行,还是接力式执行,都需要进行通信告知。线程间通信:(1)临界区通过多线程的串行化允许线程对共享资源的访问,速度快(2)互斥量只有拥有互斥对象的线程才能对资源空间进行访问,因为互斥对象只有一个,所以可以保证公共资源不被多个线程访问(3)信号量用于控制多个线程对共

2021-08-07 03:17:00 1364

原创 设计模式——生产者消费者模式

1 基本概括2 主要介绍2.1 概念生产者消费者模式是通过一个容器来解决生产者和消费者的强耦合问题。生产者和消费者彼此之间不直接通讯,而通过阻塞队列来进行通讯,所以生产者生产完数据之后不用等待消费者处理,直接扔给阻塞队列,消费者不找生产者要数据,而是直接从阻塞队列里取,阻塞队列就相当于一个缓冲区,平衡了生产者和消费者的处理能力这个阻塞队列就是用来给生产者和消费者解耦的。如果缓冲区已经满了,则生产者线程阻塞;如果缓冲区为空,那么消费者线程阻塞。2.2 生产消费者模型就是在一

2021-08-06 01:49:42 8832

原创 Java多线程(9)——ThreadLocal详解

1 基本概括2 主要介绍2.1 ThreadLocal的简单介绍ThreadLocal是线程变量,即ThreadLocal中填充的变量属于当前线程,该变量对其他线程而言是隔离的。ThreadLocal为变量在每个线程中都创建了一个副本,那么每个线程可以访问自己内部的副本变量。数据隔离的本质:Thread内部持有ThreadLocalMap对象,创建的副本都是存在这里,所以每个线程之间就 实现了隔离2.2 ThreadLocal的作用1、在进行对象跨层传递的时候,使用ThreadL

2021-08-03 02:42:35 574

原创 Java多线程(8)——多线程死锁问题

1 基本概括2 主要介绍2.1 死锁的概念所谓死锁,是指多个进程在运行过程中因争夺资源而造成的一种僵局。当进程处于这种僵持状态时,若无外力作用,它们都将无法再向前推进。2.2 死锁产生的原因1) 系统资源的竞争通常系统中拥有的不可剥夺资源,其数量不足以满足多个进程运行的需要,使得进程在 运行过程中,会因争夺资源而陷入僵局,如磁带机、打印机等。只有对不可剥夺资源的竞争 才可能产生死锁,对可剥夺资源的竞争是不会引起死锁的。2) 进程推进顺序非法进程在运行过程中,请求和释放资源

2021-08-02 18:05:52 1369

原创 Java多线程(6)——什么是线程安全?

1 基本概括2 主要介绍2.1 线程安全的概念当多个线程访问一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方进行任何其他的协调操作,调用这个对象的行为都可以获得正确的结果,那这个对象就是线程安全的。2.2 多线程编程的三个概念2.2.1 原子性这一点,跟数据库事务的原子性概念差不多,即一个操作(有可能包含有多个子操作)要么全部执行(生效),要么全部都不执行(都不生效)。2.2.2 可见性这一点,跟数据库事务的原子性概念差

2021-08-02 02:23:01 548

原创 Java多线程(5)——线程池

1 基本概括2 主要介绍2.1 线程池的概念线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。线程池线程都是后台线程。线程池内部结构 :1.线程池管理器:负责线程创建、销毁、添加任务等;2.工作线程: 线程池创建的正在工作的线程;3.任务队列( BlockingQueue ):线程满了之后,可以放到任务队列中,起到一定的缓冲;4.任务:要求实现统一的接口,方便处理和执行;2.2 线程池的优点可以将任务的提交和执行策略解耦,便

2021-08-01 02:08:02 432

原创 Java多线程(3)——什么是线程?

1 基本概括2 主要介绍2.1 线程的概念现在的操作系统是多任务操作系统。多线程是实现多任务的一种方式。进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程中可以启动多个线程。比如在Windows系统中,一个运行的exe就是一个进程。线程是指进程中的一个执行流程,一个进程中可以运行多个线程。我们来理解一下下面几个问题:2.1.1 为啥有了进程还要有线程有了线程以后,凡是程序涉及到多线任务时,都使用多线程来实现,使用多线程来实现时,线程间的

2021-07-31 03:53:05 201

原创 Java多线程(2)——什么是进程?

1 基本概括2 主要介绍2.1 进程的概念进程是操作系统结构的基础;是一个正在执行的程序;计算机中正在运行的程序实例;可以分配给处理器并由处理器执行的一个实体;由单一顺序的执行显示,一个当前状态和一组相关的系统资源所描述的活动单元。第一,进程是一个实体。每一个进程都有它自己的地址空间,一般情况下,包括文本区域(text region)、数据区域(data region)和堆栈(stack region)。文本区域存储处理器执行的代码;数据区域存储变量和进程执行期间使用的动态分配的

2021-07-30 02:27:38 212

原创 Java多线程(4)——线程的创建方式

1 基本概括2 主要介绍2.1 创建方式1.继承Thread类实现多线程run()为线程类的核心方法,相当于主线程的main方法,是每个线程的入口a.一个线程调用 两次start()方法将会抛出线程状态异常,也就是的start()只可以被调用一次b.native生明的方法只有方法名,没有方法体。是本地方法,不是抽象方法,而是调用c语言方法registerNative()方法包含了所有与线程相关的操作系统方法c. run()方法是由jvm创建完本地操作系统级线程后回调的方法,不可以手动

2021-07-29 09:24:06 147

原创 Java面试题——NIO相关面试题

1 NIO、BIO、AIO的区别BIO:传统的网络通讯模型,就是BIO,同步阻塞IO它其实就是服务端创建一个ServerSocket, 然后就是客户端用一个Socket去连接服务端的那个ServerSocket, ServerSocket接收到了一个的连接请求就创建一个Socket和一个线程去跟那个Socket进行通讯。这种方式的缺点:每次一个客户端接入,都需要在服务端创建一个线程来服务这个客户端这样大量客户端来的时候,就会造成服务端的线程数量可能达到了几千甚至几万,这样就可能会造成服务端过

2021-07-26 09:34:46 1400

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除