Java
文章平均质量分 67
哦嗨哟思密达
欲戴皇冠,必承其重!
展开
-
MySQL数据库 Java实体类 java.util.Date属性 时间保存
Java 通过java.util.Date属性保存时间入库mysql原创 2023-01-16 09:23:27 · 505 阅读 · 1 评论 -
Kafka如何发送自定义消息对象
Kafka如何实现发送自定义消息 对象原创 2023-01-12 09:00:04 · 1106 阅读 · 0 评论 -
Netty中WorkerGroup分配客户端通道机制
在Netty中BossGroup负责客户端的连接请求事件,当客户端连接事件处理完毕后,便将该客户端对应的通道注册到WorkerGroup中,在WorkerGroup中有多个NIOEventLoop事件循环,该NIOEventLoop本身就是一个线程,WorkerGroup会按照命名如同nioEventLoopGroup-3-1的方式分配一个NIOEventLoop给该客户端,而注册到WorkerGroup中的通道也就添加到该NIOEventLoop中,后面就负责与该客户端的通信。这个是我个人所学所感,哪里原创 2022-03-21 16:45:26 · 575 阅读 · 0 评论 -
网络套接字发送数据-->理解零拷贝
1、传统的IO模型:4次拷贝和3次状态切换案例说明:通过套接字发送一份文件,用户没有其他操作4次拷贝分别是:DMA拷贝(将文件从硬盘读取到内核空间)–>CPU拷贝(将内核空间中的数据拷贝到用户空间中)–>CPU拷贝(将用户空间中的数据拷贝到socket buffer中)–>DMA拷贝(socket缓冲区中的数据拷贝到TCP/IP协议栈中进行数据的封装)3次切换分别是:应用程序需要发送数据那么就需要从1用户态切换到内核态,内核态便将硬盘中的数据加载到内核空间中,然后再从2内核态切换原创 2022-03-20 17:33:59 · 911 阅读 · 0 评论 -
Netty 群聊系统全面解析
案例说明:群聊系统1、服务端代码package com.atguigu.nio.groupchat;import java.io.IOException;import java.net.InetSocketAddress;import java.nio.ByteBuffer;import java.nio.channels.*;import java.util.Iterator;/** * 整个监听的核心就是:在每个通道上都会有一种事件检查机制,当通道上面有事件(连接、读写)发生时,原创 2022-03-20 11:59:49 · 421 阅读 · 0 评论 -
彻底搞懂同步,异步,阻塞,非阻塞
标题下面是我从几篇好评的文章中截取出来一些容易理解的部分1、同步:是应用程序要直接参与 IO 读写的操作对于一个socket上的输入操作,第一步就是通常涉及等待数据从网络中到达,当所等待的分组到达的时候,它就被复制到内核中的某个缓冲区中,这个时候便是我们常说的数据已经准备好了。第二步就是把数据从内核的缓冲区拷贝到应用进程的缓冲区中。这一步往往是我们进程阻塞的原因,因为用户进行需要等待去获取内核中的数据。所以socket的一次输入操作就涉及到两次的IO操作:操作系统IO和应用程序IO。所谓的同步在这里原创 2022-03-18 11:56:56 · 1284 阅读 · 0 评论 -
Java8新特性-Optional
一、简介Optional类是Java8为了解决null值判断问题,借鉴google guava类库的Optional类而引入的一个同名Optional类,使用Optional类可以避免显式的null值判断(null的防御性检查),避免null导致的NPE(NullPointerException)。我们来看一段代码: public static String getGender(Student student) { if(null == student)转载 2021-10-23 23:41:00 · 221 阅读 · 0 评论 -
彻底搞懂深拷贝和浅拷贝
深拷贝和浅拷贝只对引用数据类型而言的!,基本数据类型不存在深浅拷贝浅拷贝如果被拷贝对象的成员变量为基本数据类型,那么浅拷贝将会进行值传递,赋值给新对象的成员变量,两者互不关联。如果被拷贝对象的成员变量是引用数据类型,那么浅拷贝只会将该变量的地址赋值给新对象的成员变量,它们指向同一空间深拷贝如果被拷贝对象的成员变量为引用数据类型时,深拷贝将会为新对象的成员变量开辟新的内存空间,新旧对象的成员变量指向不同的内存空间上代码测试浅拷贝:成员变量为基本数据类型Father类需要实现Clon原创 2021-10-21 11:11:02 · 1178 阅读 · 0 评论 -
实战Java程序设计易忘知识点
一、数据类型和运算符1.1 成员变量(实例变量)的默认初始值数据类型初始值int0char‘\u0000’double0.0booleanfalse1.2 基本数据类型数值型:byte(1)、short(2)、int(4)、long(8)、float(4)、double(8)字符型:char(2)布尔型:boolean(1)...原创 2021-09-19 09:15:33 · 416 阅读 · 0 评论 -
最良心的Redis学习笔记
一、Redis简介1 Redis是什么?Redis是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。2 Redis的特征Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。Redis支持数据的备份,即master-slave模式的数据备份。3 Redis原创 2021-05-15 01:46:05 · 214 阅读 · 0 评论 -
保姆级Java设计模式
一、创建型模式1. 工厂方法2. 抽象工厂3. 生成器4. 原型5. 单例二、结构性模式1. 适配器2. 桥接3. 组合4. 装饰5. 外观6. 享元7. 代理三、行为模式1. 责任链2. 命令3. 迭代器4. 中介者5. 备忘录6. 观察者7. 状态8. 策略9. 模板方法10. 访问者...原创 2021-05-11 17:55:03 · 149 阅读 · 0 评论 -
2021年java重点面试题
1. ==与equals的的区别==作用:- 基本类型:比较值是否相等- 包装对象:两个同类型的包装对象比较地址是否相等。一个基本类型和对应包装类型比较值是否相等。- 引用类型:比较内存地址是否相等- 不能比较没有 父子关系的两个对象equals 作用- 如果没有重写equals方法,那么默认使用this=obj比较- 如果重写了equals方法,那么比较对象的值是否相等,一般equals与hashcode一起被重写,因为有些情况下 两个对象的值不相等的情况下hashcode值是相等,但真实原创 2021-04-17 22:00:12 · 257 阅读 · 0 评论