chengqiuming
码龄6年
  • 8,664,824
    被访问
  • 5,681
    原创
  • 16
    排名
  • 2,772
    粉丝
关注
提问 私信
  • 加入CSDN时间: 2016-06-18
博客简介:

实践求真知

查看详细资料
  • 9
    领奖
    总分 16,050 当月 717
个人成就
  • 获得2,363次点赞
  • 内容获得971次评论
  • 获得10,000次收藏
创作历程
  • 257篇
    2022年
  • 881篇
    2021年
  • 528篇
    2020年
  • 1258篇
    2019年
  • 1247篇
    2018年
  • 1511篇
    2017年
  • 1篇
    2016年
成就勋章
TA的专栏
  • 架构师
    61篇
  • 产品经理
    112篇
  • Spring Cloud
    4篇
  • Nginx
    9篇
  • 面试题
    1篇
  • Spring Boot
    230篇
  • Mysql
    94篇
  • JVM
    282篇
  • Go
    189篇
  • 数据结构与算法
    146篇
  • 运维
    11篇
  • JSP
    111篇
  • MUI
    3篇
  • uni-app
    17篇
  • CSS
    2篇
  • Servlet
    31篇
  • JavaWeb
    23篇
  • java
    751篇
  • 思维导图视频代码揭秘shiro
    15篇
  • 思维导图视频代码揭秘RabbitMQ
    12篇
  • Shiro
    14篇
  • RabbitMQ
    27篇
  • Activiti
    21篇
  • 微服务
    353篇
  • 高斯数据库
    1篇
  • python
    320篇
  • spring
    136篇
  • 设计模式
    71篇
  • Spring Security
    10篇
  • 软件工程与软件架构
    34篇
  • Gradle
    11篇
  • Vue
    151篇
  • IT
    2篇
  • Hibernate
    150篇
  • Struts
    120篇
  • MyBatis
    53篇
  • Openstack
    262篇
  • Linux
    239篇
  • PHP
    205篇
  • C++
    179篇
  • 安全
    187篇
  • JavaScript
    164篇
  • Django
    105篇
  • 人工智能
    91篇
  • Docker
    84篇
  • 爬虫
    62篇
  • Highcharts
    58篇
  • Oracle
    58篇
  • HTML5
    56篇
  • Hadoop
    52篇
  • Neutron
    48篇
  • 网络
    52篇
  • Bootstrap
    44篇
  • Redis
    49篇
  • storm
    37篇
  • Hive
    34篇
  • 软能力
    41篇
  • MongoDB
    30篇
  • Scala
    18篇
  • maven
    23篇
  • Git
    17篇
  • Spring MVC
    62篇
  • Spark
    14篇
  • UML
    13篇
  • kafka
    10篇
  • XML
    9篇
  • Hbase
    9篇
  • zookeeper
    9篇
  • AngularJS
    9篇
  • Quartz
    10篇
  • flume
    9篇
  • Splash
    9篇
  • IDE
    30篇
  • Lua
    2篇
  • sqoop
    1篇
  • SQL Server
    1篇
  • DevOps
    2篇
  • RESTful
    1篇
  • 单元测试
    1篇
  • Android
    7篇
  • 最近
  • 文章
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

编码解码实战

一对字符串进行编码和解码操作1代码public static void test21() throws CharacterCodingException { Charset charset = Charset.forName("utf-8"); // 获取 utf-8 编码器 CharsetEncoder charsetEncoder = charset.newEncoder(); // 获取 utf-8 解码器 CharsetDecoder chars..
原创
发布博客 6 小时前 ·
4 阅读 ·
0 点赞 ·
0 评论

编码解码原理和历史问题

一点睛平时在编程时,会遇到各种各样的编码和解码,那么为什么有这么不同的编码类型呢?程序最终都是通过字节码的形式存储在硬盘文件上,而字节码就是byte数组。因此编码就是将人类眼睛所能看到的字符串,转为字节数组,即String转为byte[];反之,解码就是将字节数组转为字符串,即byte[]转为String。之所以会出现各种类型编码类型,其实是一个历史问题。在计算机发展初期,美国等少数国家最先给自己的语言设置一套编码,即ASCII。由于这些国家使用的都是英语,而英语只需要26...
原创
发布博客 6 小时前 ·
5 阅读 ·
0 点赞 ·
0 评论

使用 AIO 完成网络通信

一需求使用AsynchronousServerSocketChannel搭建服务端,使用AsynchronousSokectChannel搭建客户端,完成客户端和服务端的一次通信。二实战1服务端代码package aio;import java.net.InetSocketAddress;import java.nio.ByteBuffer;import java.nio.channels.AsynchronousServerSocketChannel;import...
原创
发布博客 6 小时前 ·
7 阅读 ·
0 点赞 ·
0 评论

异步非阻塞式数据传输——AIO的两种实现方式

一点睛AIO是自JDK1.7开始提供,本质是对NIO中Channel进行的一些扩展,因此AIO也称为NIO.2。具体地讲,AIO就是在NIO的基础上,新增加了下表的3个Channel实现类,这3个类也称为异步通道。 异步通道 简介 AsynchronousFileChannel 用于文件的异步读写 AsynchronousServerSocketChannel ...
原创
发布博客 6 小时前 ·
6 阅读 ·
0 点赞 ·
0 评论

NIO 中多缓冲区实战

一点睛在scatter-and-gather场景下,可以将数据写入多个Buffer中。在NIO中,也能够同时操作多个缓冲区。在很多Channel实现类中,都提供了多个重载的read()和write()方法,下表介绍了SocketChannel的read()和write()方法。1read的重载方法 read()的重载方法 简介 intread(ByteBufferdst) ...
原创
发布博客 前天 18:47 ·
32 阅读 ·
0 点赞 ·
0 评论

通过选择器 Selector 开发高性能聊天室

一点睛选择器(Selector)的核心作用:可以在一个选择器上注册多个通道,并且可以通过选择器切换使用这些通道。如果不使用选择器,服务端的I/O代码,会给每个客户端创建一个新线程,也就是用N个线程去处理N个客户端请求。因此,如果有1万个客户请求,就会创建1万个线程,这显然是不合理地。而NIO处理这种问题的思路是,用一个线程处理全部请求,并通过Selector切换处理不同的请求通道。二实战1需求使用NIO实现一个聊天室功能。要求如下:服务端启动后可以接...
原创
发布博客 前天 18:28 ·
42 阅读 ·
0 点赞 ·
0 评论

NIO 规范读写工具——管道 Pipe

一 点睛两个线程之间单向传递数据时,可以使用 Pipe 规范数据的读写操作。Pipe 中可以存放数据,并且 Pipe 包含了 SinkChannel 和 SourceChannel 两个 Channel。其中,SinkChannel 用于向 Pipe 中写数据,SourceChannel 用于从 Pipe 中读数据。二 代码public static void testPipe() throws IOException { //创建管道 Pipe pipe = Pipe
原创
发布博客 前天 18:26 ·
5 阅读 ·
0 点赞 ·
0 评论

使用 NIO 完成对资源加锁

一点睛给某一个文件加锁,防止并发访问时引起的数据不安全。在JUC中,可以使用synchronized、Lock给共享的资源加锁,或者使用volatile、CAS算法等防止并发冲突。在 FileChannel中也提供了类似Lock的加锁方式。public abstract FileLock lock(long position, long size, boolean shared) throws IOException;shared参数说明。true:共享锁。实际...
原创
发布博客 2022.05.21 ·
42 阅读 ·
0 点赞 ·
0 评论

使用 NIO 实现“客户端向服务端发送文件”功能

一服务端代码public static void server() throws IOException { ServerSocketChannel serverSocketChannel = ServerSocketChannel.open(); FileChannel outFileChannel = FileChannel.open(Paths.get("g:\
avicat1.chm"), StandardOpenOption.WRITE, StandardOpenOpti.
原创
发布博客 2022.05.21 ·
18 阅读 ·
0 点赞 ·
0 评论

直接缓冲区实战

一在直接缓冲区对文件进行修改1 需求在直接缓冲区,使用MappedByBuffer修改文件内容。2 代码public static void test4() throws IOException { RandomAccessFile raf = new RandomAccessFile("G:\\abc.txt", "rw"); FileChannel fileChannel = raf.getChannel(); // mappedByteBuffer:代表...
原创
发布博客 2022.05.21 ·
0 阅读 ·
0 点赞 ·
0 评论

通过零拷贝实现高性能文件传输

一 点睛对于缓冲区,有操作“直接缓冲区”和操作“非直接缓冲区”两种方式。1 使用非直接缓冲区进行文件读写2 使用直接缓冲区进行文件读写3 注意a 零拷贝是指用户空间与内核空间之间的复杂次数,并不代表内核空间内部也不存在复制。b 数据的复制会涉及 I/O 操作,而 I/O 操作是由操作系统完成的,因此零拷贝既减少了数据的复制次数,又降低了 CPU 的负载压力。二 实战1 说明在直接缓冲区,使用内存映射文件,并借助 Channel 完成文件的复制。2 代码p
原创
发布博客 2022.05.19 ·
31 阅读 ·
0 点赞 ·
0 评论

Spring 多数据源配置

一配置文件1修改前# Specify datasourcespring.datasource.driver-class-name=com.mysql.jdbc.Driverspring.datasource.url=jdbc:mysql://XXXX:3306/zzzzz?useUnicode\=true&characterEncoding\=UTF-8spring.datasource.username=XXXXspring.datasource.password=XXXX..
原创
发布博客 2022.05.19 ·
108 阅读 ·
0 点赞 ·
0 评论

同步 EDA 框架设计

一点睛1Message在基于Message的系统中,每一个Event也可以被称为Message,Message是对Event更高一个层级的抽象,每一个Message都有一个特定的Type用于与对应的Handler做关联。它是一种数据。2ChanelChange用于接收来自EventLoop分配的消息,每一个 Channel负责处理一种类型的消息。它是对数据的处理。3DynamicRouter它的作用类似于EventLoop,其主要是帮...
原创
发布博客 2022.05.18 ·
47 阅读 ·
0 点赞 ·
0 评论

缓冲区的搬运工——通道 Channel

一点睛通道用于数据的双向传输,即一个通道既可以用于读数据,又可以用于写数据。注意,这点不同于I/O中的Stream,Stream是单向的(只能是输入流或输出流)。在NIO中,就是使用“缓冲区+通道”进行数据的传输。具体地讲,就是使用通道对缓冲区、文件或套接字进行数据传输。可以把缓冲区理解为“池塘”,把通道理解为“排水管”。NIO中的Channel(通道)是一个接口,有以下几种常见的实现类。 FileChannel SocketChannel S...
原创
发布博客 2022.05.17 ·
73 阅读 ·
0 点赞 ·
0 评论

NIO 数据存储结构——缓冲区 Buffer

一点睛NIO,可以称为NewIO或NonBlockingIO,是在JDK 1.4 后提供的新API。传统的I/O是阻塞式的I/O、面向流的操作;而NIO是非阻塞I/O 、面向通道(Channel)和缓冲区(Buffer)的操作。此外,NIO还提供了选择器(Selector)全新的概念,这些都使NIO在传输数据时更加高效。下图为选择器、通道和缓冲区的关系图。二NIO数据存储结构——缓冲区BufferBuffer的底层是一个数组,用于存储数据。NI...
原创
发布博客 2022.05.17 ·
67 阅读 ·
0 点赞 ·
0 评论

Event-Driver Architecture 基础

一点睛EDA(Event-Driver Architecture)是一种实现组件之间松耦合、易扩展的架构方式。一个简单的EDA设计需要包含如下几个组件。Events:需要被处理的数据。 EventHandlers:处理Events的方式方法。 EventLoop:维护Events和Event Handlers之间的交互流程。如下图,Event A将被HandlerA处理,EventB将被HandlerB处理,这一切的分配都是由EventLoop...
原创
发布博客 2022.05.17 ·
23 阅读 ·
0 点赞 ·
0 评论

Event Bus 实战——监控目录变化

一点睛有这样一个场景,就是监控某个硬件设备的运行时数据,然后记录到数据库。可以这样做:该硬件设备在运行的过程中,将一些性能信息等写入特殊的数据文件中,需要做的就是监控文件的变化,读取最后一行数据,然后根据格式将其解析出来插入数据库,实现的思路大致是:在程序第一次启动时,获取文件的最后修改时间,并且做首次解析,然后每隔一段指定时间检查一次文件最后被修改的时间,如果与记录的时间相等则等待下次的采集,否则进行新一轮的采集并且更新时间。程序实现的思路比较简单,但是上述的实现方式还是存在诸多问题,比如在.
原创
发布博客 2022.05.16 ·
146 阅读 ·
0 点赞 ·
0 评论

I/O应用实战——远程传输文件

一点睛本篇介绍一个 I/O技术的典型应用——远程传输文件,本实战采用的是CS架构。当客户端成功连接服务端后,服务端立即向客户端发送一个文件。二实战1服务端package io;import java.io.IOException;import java.net.ServerSocket;import java.net.Socket;/** * @className: MyServer * @description: 服务端 * @date: 2022/5/14...
原创
发布博客 2022.05.16 ·
25 阅读 ·
0 点赞 ·
0 评论

装饰模式实战

一点睛装饰模式是指在不影响原有对象的情况下,动态地、无侵入地给一个对象添加一些额外的功能,如下这条 I/O语句。InpurStreamReaderiReader =newInputStreamReader(newFileInputStream(new File("D:\\abc.txt")));如果把 D:\\abc.txt看作被装饰的对象,以上语句就依次对该对象进行了以下3步的包装。new File("D:\\abc.txt")将字符串对象包装成了一个File对象,...
原创
发布博客 2022.05.14 ·
34 阅读 ·
0 点赞 ·
0 评论

通过底层技术实现 RMI

一点睛RMI:远程方法调用(RemoteMethodInvocation),只适用于Java语言。也就是说,各台计算上使用的语言都必须是Java。实现机制:在本地(客户端),直接操作的是服务端接口在本地的副本(称为stub),通过stub来充当服务端的接口。例如,如果客户端L对象药调用服务端接口R中method()方法,那么是无法在客户端直接写成L.method()。因此,就必须先将服务端的method()的接口R在本地复制一份(即stub),然后才能写成L.met...
原创
发布博客 2022.05.14 ·
198 阅读 ·
0 点赞 ·
0 评论
加载更多