自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 换个思路快速上手UML和plantUML——时序图

本篇关键词:时间顺序,方法调用顺序,生命周期=激活状态

2024-01-29 22:40:17 882

原创 换个思维方式快速上手UML和 plantUML——类图

本篇关键字:从设计者的角度,图的关系,上手实践

2024-01-28 00:31:01 1220

原创 深入理解Java的参数传递方式

本篇关键词:按值传递

2024-01-26 12:03:26 240

原创 深入理解封装的设计思想

本片关键词:限制访问,隐藏细节

2024-01-26 12:01:34 309

原创 深入理解Java类和对象的关系

本篇关键词:静动关系,状态和行为,封装限制,变量不等于对象

2024-01-26 11:58:18 934

原创 深入理解——面向对象和面向过程

本篇关键词:模块化,优先考虑方式,微化程度

2024-01-23 21:12:05 376

原创 进程和程序的区别和联系:

进程和程度的区别和联系

2023-09-25 20:46:11 87

原创 原语和系统调用的区别和联系

操作系统系统调用和原语的区别和联系

2023-09-23 15:35:02 878

原创 各种排序算法的时间复杂度和空间复杂度-记忆方式

常见排序算法的时间复杂度,空间复杂度,稳定性的记忆方法

2022-11-16 11:02:47 537 1

原创 散列结构处理冲突并计算ASL

计算线性探测法和拉链法处理冲突的平均查找长度ASL

2022-10-11 20:20:16 807

原创 考研长难句分析法和细节考点——-Version1.0.1

2022-07-13 21:52:32 144

原创 《Spark编程基础-python》考前复习-----考试前不停更---至第五章

《Spark编程基础-python》考前复习

2022-06-06 16:07:11 627 1

原创 大数据基础考试复习(考试前不停更)——《大数据技术与原理应用》

小题:文章目录小题:选择:判断:填空:大题一、简答题1、Hadoop 生态及各部分的作用2、HDFS的实现目标3、FsImage和EditLog的过程4、HDFS读数据的过程5、HBase Region的定位方式6、MapReduce运行流程7、简述Map函数和Reduce函数的功能二、实验题三、综合程序题选择:HDFS的局限性不适合低延迟的数据访问HBase 更加适合无法高效存储大量小文件不支持多用户写入及任意修改文件HDFS体系结构的局限性命名空间的限制性能的瓶颈隔

2022-05-22 20:20:12 3765

原创 Hadoop简介及HDFS基础

HDFS文章目录HDFS1.概述1.1核心组件:1.2现状:1.3优点:1.4架构变迁:1.4hadoop集群概述:1.5集群搭建1.5.1集群角色规划1.5.2服务器基础环境准备1.5.3修改配置文件1.6初体验2.介绍2.1相关概念2.2HDFS简介2.3设计目标2.4重要特性2.5shell操作3.HDFS集群角色与职责4.HDFS写数据流程(上传文件)1.概述hadoop 用java语言实现,允许用户使用简单的编程模型实现跨集群对海量数据进行分布式计算处理1.1核心组件:HDFS解决

2022-04-25 22:55:49 491

原创 Json序列化技术

从比特理解Json序列化方式关于Json 可以说是web 开发不管是前端还是后端都是非常的熟悉,第一次接触Json,是在我大一的寒假,因为人生中第一个servlet原生项目中要使用所以进行了较为粗浅的研究:当时乃至之后的很长一段时间的理解都是——json 就是前后端数据传输的一个约定的消息格式,这种消息格式因为前后端都支持,并且是一种规范,所以我可以将对象直接转为一个Json 字符串,然后写入到返回给前端的响应流中,但是其实并不理解为什么要这样做,只是了解到前后端对接可以这样做。当仔细研究了协议和

2022-01-26 10:51:35 9102 2

原创 Netty 群聊私聊聊天室

Netty实现简易聊天室文章目录Netty实现简易聊天室1.协议定制1.1协议格式:1.2编解码器:2.黏包半包问题3.封装消息3.1Message3.2AbstractResponseMessage3.3其他消息4.处理连接断开5.实现会话6.具体业务的实现6.1单对单聊天6.2客户端退出7.假死与心跳8.核心代码在Netty 的学习结束之后就很想去实现一个简单的聊天室,在参考黑马视频之外,添加自己的理解和处理实现了一个建议的聊天室,本聊天室将实现简单的几个技术需求:定制协议协议格式定制协

2022-01-25 09:50:01 621

原创 从底层看springmvc数据绑定

从底层看springmvc数据绑定:springmvc 的数据绑定简单来说就是**将http 报文进行解析,并将数据部分的数据和头字段的数据存入到指定的内存空间当中,而外在的体现就是接收页面传递的表单数据,并将数据进行一定方式的转换,绑定到控制器类(controller)的方法参数中,从而可以省去从信息流中获取数据到重新构建对象的操作部分,通过面向对象的方式直接操作数据**,可以说是对底层HttpServlet 的封装,可以简化编码的过程和提高编码效率。如果想要更深的理解和简易实现这个过程需要做以下几步

2022-01-06 20:53:35 491

原创 Netty简单实现一个回声服务器

预备知识点及思路:Netty 组件的基本使用网络通信信道是**全双工**的:需要注意的是使用底层的Sokcet 的时候用的是流,更容易被理解为对于通信传输的网络通道是单向的,写的时候不能传数据,传数据的时候不能写数据而实际上是网络信道是可以同时进行通信传输的,而Channel 能同时进行读操作和写操作其实是更贴近底层的一种模拟。对于单线程来说,数据的处理是顺序的,这也就造成了又一层的误解,如果只按单线程顺序的思想就无法理解同时进行写数据和读数据的操作,这里就需要理解多线程的思想,一个线程向Ch.

2022-01-03 21:39:04 792 2

原创 mybatis-spring整合——这可太详细了

spring-mybatis整合文章目录spring-mybatis整合1.环境配置1.1导入依赖:sringAopspring核心springJdbcspringTxspringTestmybatis整合中间件数据库驱动数据源日志辅助工具测试mvn配置1.2 数据库配置1.3 applicationContext.xml1.4 mybatis-config.xml1.5 log4j2.xml2.整合方式2.1 传统Dao开发整合定义接口:编写实现类:测试:2.2 Mapper接口方式开发整合定义接口:定

2021-12-31 15:50:25 573

原创 Netty-组件(一)EventLoop

EventLoop事件循环对象&事件循环组EventLoop 本质上是一个单线程执行器(同时维护了一个selector),里面的run方法处理channel 上源源不断的IO事件,也就是集成NIO中负责分配任务和处理accept请求的boss线程它的继承关系比较复杂:一条线是继承自j.u.c.ScheduledExecutorService 可以用于执行定时任务,同时也包含了线程池中的所有方法另一条线是继承自netty自己的OrderedEventExecutor,有序的执行任务提供

2021-12-28 19:23:56 475

原创 Netty-组件(三) Future&Promise

Future&PromiseNetty 中的Future与JDK中的Future 同名,但是这是两个接口,Netty中的Future继承自JDK中的Future 接口,而Promise又继承自Netty中的Future 接口。JDK的Future 功能较弱,只能**同步等待**任务结束(或成功,或失败)才能得到结果netty Future 可以实现同步等待任务结束,也可以异步得到结果,但是还是要等待任务结束netty promis 不仅有nettyFuture 的功能,而且脱离了任务独立存

2021-12-28 19:10:11 415

原创 Netty-组件(二)Channel

Channel文章目录ChannelchannelFuture**处理结果****处理关闭**为什么要异步channel 的主要作用:close()用于关闭channelcloseFuture()用于处理channel 的关闭close操作 之后的善后处理sync方法 是同步等待channel 的关闭用addListener 方法是异步等待channel 的关闭pipline()添加数据流的处理器write()将数据写入由于netty 的缓冲机制所以写入ch

2021-12-28 19:08:07 880

原创 sychronized关键字的使用及监视器的概念

通过锁对象和条件对象解决并发的过程会有一些繁琐,所以可以根据Java提供的另一种机制,也就是sychronized 关键字来解决并发同步问题

2021-12-13 16:40:48 480

原创 多线程——条件对象

当线程持有临界资源之后又不满足运行条件,如何让线程主动放弃资源,并进入等待资源完成的状态

2021-12-12 22:22:17 467

原创 竞争条件与重入锁

竞争条件与重入锁既然考虑到了多线程,事情就变得复杂起来了,因为处理一个人的问题很好解决,无论这个事情有多难,总能按着顺序逻辑串行下来,但是现在要考虑多个人,显然多个人能提高生产的效率,但是同样的多个人也会产生各种各样的矛盾。举个最简单的例子,也是刚学编程的时候幻想的一个问题:老王和老王他媳妇有一个银行账户的正卡和副卡,这个账户里面有600¥,老王和他媳妇同时去取钱,在一个银行的不同ATM机上,假如两个人输入相同的取钱金额500¥,同时点了取钱,一切都是同时进行的,最终会不会两个人都取出500¥,有生活

2021-12-10 17:37:45 607

原创 Java中的守护线程

守护线程在Java中有两类线程:User Thread(用户线程)Daemon Thread(守护线程)守护线程的功能非常简单,在其本身是一个线程的同时,主要是为了给其他的线程提供服务,比如说计时器,清空高速缓存等等操作,守护线程具有和被守护线程一样的生命周期(这里并不是说守护线程和被守护线程常常是1-1的关系),当被守护线程死亡,守护线程往往也会死亡,当虚拟机中只剩下守护线程时,虚拟机就会退出,因为此时也没有运行程序的必要了一个比较通俗的解释:任何一个守护线程都是整个JVM中所有非守护线程

2021-12-07 09:56:11 3040

原创 Java中的线程

1)线程概述文章目录1)线程概述1.1线程使用的原因1.2使用线程提供其他任务运行机会1.3中断线程1.4线程状态1.5线程优先级2)APIjava.lang.Threadjava.lang.Runnable为什么有了进程还要有线程?上一节的思路很明显的理解到了,因为需要解决计算机中程序间并行的问题,所以提出进程作为操作的单位,从逻辑的角度,其实进程就是一组CPU状态的组合,不管是记录了内存的状态还是CPU当时的状态,进程都是作为一个综合的单位元素去处理的。传统的操作系统中,进程有一个地址空间和控制

2021-12-07 09:54:58 316

原创 操作系统中的进程

进程文章目录进程进程模型创建进程进程终止层次结构进程状态进程管理实现多道程序设计模型最开始的计算机只能运行单道程序这是毋庸置疑的,但是随着计算机发展很显著的就会出现一个问题,如果我的计算机想要去运行多道程序,那么串行执行肯定是可以的一种方式,但是如果计算机想同时运行多道程序(并行执行多道程序),这就成为了一个必然的发展趋势和必须要解决的问题。但是一开始计算机的资源是有限的,也就是可以理解为只有一个CPU,需要解决的问题就变成了如何通过一个CPU对多个程序实现并行?这时候从理解上就无法理解了,一个人处

2021-12-02 17:35:08 381

原创 实现@RequestParam参数值校验

需求描述:在项目的实际的编写过程当中,通过JSR303针对于@RequestBody 可以进行参数的数据校验,但是如果是通过@RequestParam 或者是@PathVeriable 进行传值却没有什么很好的数据校验方式,通常只能通过:if("".equals(message) || message == null){​ throw new RuntimeException(“Bad Request”);}进行校验,所以想要编写一套注解实现对于@RequestParam 和@RequestPa

2021-11-29 22:06:12 3755

原创 动态代理及JDK代理源码解析

动态代理及JDK代理源码解析参考:JDK动态代理-超详细源码分析 - 简书 (jianshu.com)文章目录动态代理及JDK代理源码解析一、为什么需要动态代理什么是代理模式?静态代理:实现步骤:实现代码:分析:动态代理:JDK动态代理实现步骤:实现代码:CGLIB动态代理:实现步骤:二、动态代理对象是如何产生的?java.lang.reflect.Proxy.javanewInstance methodgetProxyClass0 methodjava.lang.reflect.WeakCache.j

2021-11-24 17:44:43 622

原创 NIO-完整笔记

1)NIOnon-blocking IO 非阻塞IO文章目录1)NIO一、三大组件1.1Channel & Buffer1.2Selector二、ByteBuffer2.1ByteBuffer2.2内部结构2.3常见方法分配空间写数据读数据mark&resetByteBuffer 与字符串互传ScatteringReadsGatheringWrite黏包和半包Buffer转String三、文件编程3.1FileChannel读取写入关闭位置大小强制写入3.2两个channel 传输数

2021-11-01 12:32:17 188

原创 启动jar报错(文件名、目录名或卷标语法不正确。)

/*read every 8 byte*/ ByteBuffer buffer = ByteBuffer.allocate(SERVER_BUFFER_MAXSIZE); /* * 通过类加载器获取项目根路径, * 在项目中的文件路径和编译后的文件路径是不一样的, * 需要在pom 中配置编译resources 的配置 * */ /*无法获取压缩包中的路径*/ UR...

2021-10-28 21:51:12 1810 1

原创 NIO—IO模型

IO模型一般分为四种:同步阻塞,同步非阻塞,异步阻塞,和异步非阻塞(1)同步和异步同步和异步描述的是一种消息通知的机制,主动等待消息返回还是被动接受消息。同步io指的是调用方通过主动等待获取调用返回的结果来获取消息通知,而异步io指的是被调用方通过某种方式(如,回调函数)来通知调用方获取消息。(2)阻塞非阻塞​ 阻塞和非阻塞描述的是调用方在获取消息过程中的状态,阻塞等待还是立刻返回。阻塞io指的是调用方在获取消息的过程中会挂起阻塞,知道获取到消息,而非阻塞io指的是调用方在获取io的过程中会立刻返

2021-10-26 16:16:58 174

原创 搭建简易PostMan 发送Json数据后台逻辑

搭建简单客户端需要处理的问题:向服务器发送请求包装请求体将请求体数据转换为Json将响应结果输出到控制台解决重定向问题解决错误页的输出import java.io.IOException;import java.io.InputStream;import java.io.PrintWriter;import java.net.*;import java.nio.charset.StandardCharsets;import java.nio.file.Files;impor

2021-10-21 11:52:31 321

原创 通过Java创建Socket 连接到服务器

1)连接到服务器一、使用telnettelnet 是windows上基于网络编程的调试工具,windows 可以在控制面版->程序->打开/关闭Windows特性,然后选择Telnet 客户端来开启windows 上telnet可以通过两个基本的实验来认识telnet输入:telnet time-a.nist.gov 13得到:这里通过telnet 命令来连接远程服务器,这里连接的是国家标准和技术研究所所运维的,使用这个命令后会建立和服务13端口的会话,而对应的url 也会

2021-10-13 17:18:04 2560

原创 数据结构复习笔记(一)->1. 稀疏数组 2. 队列 3. 单链表 4. 双向链表 5. 单向环形链表6.栈

Part1第二次学习数据结构与算法,之前对于数据结构与算法这门课程的学习还是比较磕磕绊绊的,这次的学习更加的系统,也加入了更多的练习的内容,包括一些leetcode 的题目和讲解,希望能帮助到每一个努力的人。主要内容:稀疏数组队列单链表双向链表单向环形链表栈求知若虚,虚心若愚文章目录Part11)稀疏数组定义:思路:实现:2)队列定义:思路:1)数组模拟队列2)数组模拟环形队列实现:1)数组实现一次性队列2)数组实现环形队列3)单链表定义:思路:实现:面试题:1)第一题:2)第二

2021-10-11 11:11:11 198

原创 Java实现简单静态-动态http服务器

编写静态-动态http服务器用例图:实现需求:实现静态-动态服务器的目的是为了更深的理解HTTP协议和Servlet 底层原生的原理。实现描述:​ 用户通过浏览器提交一个http 请求到指定的服务器的启动端口,在HttpServer 中,Java通过Socket 封装好得到http的请求流和响应流,通过HttpPrase方法将Http请求流封装成HttpRequest 对象,然后读取指定目录中的html,css,js 文件,转换为文件流,通过响应流封装好的HttpResponse 对象将数据返

2021-08-11 12:01:23 964

原创 我的西皮优学习笔记(七)->verilog实战二

Verilog实战二1、模块化设计1)module 和 port#1、module模块module ,是Verilog 的基本描述单位,module后的内容描述某个设计的功能和结构,及其与其他模块通信的外部端口。module 后接用户定义的模块名,括号内为模块中使用的端口列表,模块以module 开始以endmodule 结束。一个工程中通常包含多个设计模块,模块间通过“例化(Instantition)” 实现接口的数据交互。多模块使得设计具备一定的层级结构。处于最上层的模块称为“顶层模块(to

2021-03-16 20:52:54 1459

原创 我的西皮优学习笔记(六)->verilog实战一

Verilog实战1、组合逻辑和时序逻辑1)组合逻辑和时序逻辑的比对组合逻辑的输出状态和输入直接相关,时序逻辑必须在时钟上升沿触发后输出新值组合逻辑容易出现竞争、冒险现象,时序逻辑一般不会出现竞争、冒险现象(毛刺)组合逻辑的时序较难保证,时序逻辑更容易达到时序收敛,时序逻辑更可控组合逻辑只适合简单的电路,时序逻辑能胜任大规模的逻辑电路2)组合逻辑实现方式一:always@(电平敏感列表)在always 模块种可以使用if、case等语句一般建议使用阻塞赋值语句**“=”**al

2021-03-16 20:51:52 1660 2

原创 SmartUpload

SmartUpload????首先来介绍一下什么是smartUpload吧!smartUpload是由WWW.jspsmart.com网站开发的一套上传组件包,可以轻松的实现上传文件的上传及下载功能,可以轻松的设置上传文件的类型,上传文件的大小,上传文件的名称,也可以进行多文件上传,论其功能的简洁性而言真实我们实现文件上传功能的好帮手!总之一句话:“真香”????好!那么我们一下分别按照几个部分来讲解#实现文件上传对前端页面的小要求????#实现文件上传后端接口的几个常用的方法及其介绍?

2021-02-24 20:37:34 383

空空如也

空空如也

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

TA关注的人

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