自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Docker理解

文章目录Docker什么是DockerDocker基本架构Docker元素镜像容器DockerfileDockerfile命令从Dockfile命令看镜像分层修改时复制策略 copy-on-write (CoW)Copying makes containers efficient参考链接Docker什么是DockerDocker is an open platform for developing, shipping, and running applications. Docker enables

2021-11-10 16:43:51 507

原创 Spring设计模式

Spring设计模式工厂模式服务定位模式工厂模式BeanFactory就是利用工厂模式设计的,org.springframework.beans和org.springframework.context包是Spring框架的IoC容器的基础。该 BeanFactory 接口提供了一种能够管理任何类型对象的高级配置机制。 ApplicationContext 是 的子接口BeanFactory服务定位模式维护一个ConcurrentHashMap对bean进行管理,增加删除查找bean对象,以实现对be

2021-06-28 17:02:18 116

原创 基于Netty的分布式设备TCP长连接映射解决方案

基于Netty的分布式设备TCP长连接映射解决方案主旨在于解决TCP设备与管道的映射问题。在使用平台时能很方便的找到指定设备。实际运作中平台会链接多个节点,一个节点会保持若干个设备的TCP连接,用户输入若干筛选信息,平台从筛选信息中找到对应设备ID, 先所有节点下发设备ID, 而节点会维护设备ID-管道连接映射Map,从而通过该管道映射下发相关指令。管道连接断开,Map自动删除相关映射。实现方案:解决多线程下Map数据共享问题使用ConcurrentHashMap作为构造参数传入Server监

2021-03-26 09:02:17 1248 2

原创 golang slices使用和原理

Go Slices: 切片的使用和原理简介Go的slice类型提供了一种方便有效的方式来处理键入数据序列。 切片类似于其他语言中的数组,但具有一些不同寻常的属性。 本文将研究什么是切片以及如何使用它们。数组ArrayGo语言中切片是对数组的封装和抽象,所以再理解slice之前必须先理解数组类型。数组类型定义需要指定长度和数据类型,有趣的是,Go语言中[3]int跟[4]int并不相同var temp [4]intGo语言中数组是值类型。 数组变量表示整个数组; 它不是指向第一个数组元素的指针

2020-12-21 22:10:11 538

原创 多人聊天室BIO

为了熟练运用BIO, NIO, AIO。先使用BIO实现一个控制台上的多人聊天室。主要的实现方法就是客户端发送消息到服务端,再由服务端进行消息的转发(转发到服务端所监听到的客户端)目录结构clientChatClientUserInputHandlerserverChatHndlerChatServerclient部分ChatClient这部分主要是Socket交互功能的实现public class ChatClient { private final Stri

2020-12-19 23:48:20 300 2

原创 查漏补缺

文章目录C/S和B/S结构优势与劣势C/S和B/S结构优势与劣势1、C/S架构(Client-Server)优势: 数据的储存管理功能较为透明。劣势: C/S架构的劣势是高昂的维护成本且投资大。2、B/S架构(Browser-Server)优势: 维护和升级方式简单。成本降低,选择更多。劣势:应用服务器运行数据负荷较重。...

2020-12-15 16:54:29 139

原创 抽象工厂模式

抽象工厂模式什么是抽象工厂模式?怎么实现抽象工厂模式?抽象工厂模式有哪些优缺点?抽象工厂模式的应用有哪些?什么是抽象工厂模式?定义如下:Provide an interface for creating families of related or dependent obejcts without specifying their concrete classes;(为创建一组相关或者相互依赖的对象提供一个接口,而且无需指定他们的具体类)怎么实现抽象工厂模式?先看类图AbstractFacto

2020-12-12 23:06:20 66

原创 coding那些坑之MySQL

coding那些坑之MySQL为了防止以后遇到相同的坑再去重复消耗相同的时间解决问题,计划记录每次遇到的坑并找出原因以及解决方法。(1)报错:2020-12-05 17:06:48.361 [main] ERROR org.hibernate.engine.jdbc.spi.SqlExceptionHelper - Zero date value prohibited原因:MySQL中日期字段禁止插入0000-00-00,MySQL中最小日期为1900-01-01解决方案:插入数据或建表时设置日期默

2020-12-06 23:08:46 93

原创 工厂方法模式

工厂方法模式什么是工厂方法模式?如何使用工厂方法模式?使用工厂方法模式有什么好处?工厂方法模式的应用什么是工厂方法模式?Define an interface for creating an object, but let subclasses decide which to instantiate. Factory Method lets a class defer instantiation to subclasses.(定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例

2020-12-06 22:57:26 95

原创 单例模式

单例模式什么是单例模式?为什么要用单例模式?怎么使用单例模式?在什么时候使用?怎么解决线程不安全问题?单例模式出现性能问题,怎么解决?什么是单例模式?定义:Ensure a classes has only one instance, and provide a global point of access to it.确保一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。为什么要用单例模式?由于单例模式在内存中只有一个实例,当对一个对象频繁创建和销毁时作用明显减少系统的性能开销。当一

2020-12-05 23:36:22 171 2

原创 Spring 7种事务的传播机制

7种事务的传播机制(可通过spring配置或注解来设置)REQUIRED(默认):支持使用当前事务,如果当前事务不存在,创建一个新事务。SUPPORTS:支持使用当前事务,如果当前事务不存在,则不使用事务。MANDATORY:中文翻译为强制,支持使用当前事务,如果当前事务不存在,则抛出Exception。REQUIRES_NEW:创建一个新事务,如果当前事务存在,把当前事务挂起。NOT_SUPPORTED:无事务执行,如果当前事务存在,把当前事务挂起。NEVER:无事务执行,如果当前有事务则抛出

2020-11-23 17:41:05 275

原创 设计模式6大设计原则

设计模式6大设计原则1 单一职责原则1 单一职责原则单一职责原则英文名称为Single Responsibility Principle。原话为There should never be more than one reason for a class to change.一个接口或类只有一个原因引起变化。也就是一个接口或类只有一个职责,它只负责一件事。有时候一个过程引起变化的原因不止一个,可以通过实现两个或以上的类接口实现单一职责。优点:1,类的复杂性降低,实现什么职责都有清晰明确的定义2,

2020-11-19 15:55:10 97

转载 hash索引

https://www.cnblogs.com/igoodful/p/9361500.html

2020-11-19 02:12:40 551

原创 数据库查询优化

数据库查询优化查询处理步骤1 查询分析2 查询检查3 查询优化4 查询执行查询算法操作1 选择算法的实现简单的全表扫描算法索引扫描算法2 连接操作的实现嵌套循环算法(nested loop join)排序-合并算法(sort-merge join)索引连接(index join)hash join算法关系型数据库查询优化一般可分为代数优化(也称为逻辑优化)和物理优化(非代数优化)。代数优化是指关系代数表达式的优化,物理优化则是通过存取路径和底层操作算法的选择进行优化。查询处理步骤1 查询分析首先对查

2020-11-18 23:22:44 1731

原创 进程间的四种高级通信方式

进程间的四种高级通信方式共享存储器系统基于共享数据结构的通信方式基于共享存储区的通信方式管道(pipe)通信系统进程通信是指进程之间的信息交换。由于进程的互斥与同步,需要在进程间交换一定的信息,故称进程通信。但通过进程交换信息是一种低级进程通信,以信号量机制为例,原因如下:效率低。生产者每次只能向缓冲池投放一个产品(消息) ,消费者每次只能从缓冲池中得到一个消息。通信对用户不透明。OS为进程间通信提供了共享存储器。而关于进程间通信所需之共享数据结构的设置、数据的传送、进程的互斥与同步,都必须由程序员

2020-10-24 16:38:54 14579 1

原创 记昨天两点半金山一面

记录金山一面,太难了1, 说下Java堆栈2, 说下锁升级3,说下进程之间怎么通信4,浏览器输入一行url会发生什么5,说下tcp/ip三次握手,四次挥手6,怎么处理优化慢查询SQL7,说下MySQL索引8,说下哈希索引和b+树索引9,说下mq怎么,忘记了10,docker实现原理11,说说你读过的源码,并分享你最感兴趣的部分12,说说redis数据存储类型end没想到海投会受到金山一面,个人普二本表示很意外哈哈哈,总体来说面试我感觉很愉快,但是仍然很菜,很多问题不知道,再次把不知道的问题在本博客中抄

2020-10-23 11:12:14 242

原创 记今天一次二点半的面试

记今天一次二点半的面试MySQL中left join和right join的区别?SpringBoot内置了什么监听器?了解哪些MySQL锁?本博客主要记录今天没有回答出来的问题,用以巩固知识。MySQL中left join和right join的区别?left join: 左连接,以左表为主,关联右表,查询出所有左表的数据,和右表中与左表有交集的数据right join:与左连接恰恰相反join:内连接,表示交集表为主,其余没有关联就不额外显示。SpringBoot内置了什么监听器?手

2020-10-21 20:44:37 113 2

原创 JVM总结

ClassLoader总结ClassLoader的种类ClassLoader的种类BootStrapClassLoader: C++编写,加载Java核心库java.*ExtClassLoader: Java编写,加载扩展库javax.*AppClassLoader: Java编写,加载程序所在目录自定义ClassLoader: Java编写,定制化加载...

2020-10-10 20:44:31 58

原创 Redis持久化总结

Redis持久化Redis RDB持久化触发机制自动触发RBD持久Copy-on-WriteRedis AOF持久化日志重写如何解决AOF文件大小不断增大的问题?RDB和AOF混合持久化解决办法Redis支持RBD和AOF两种持久机制,持久化功能有效地避免了因进程退出造成的数据丢失问题,当下次重启时利用之前持久化的文件可实现数据恢复。Redis RDB持久化RDB持久化是把当前进程数据生成快照保存到硬盘的过程。缺点:内存数据的全量同步,数据量大会由于I/O严重影响性能可能会因为Redis挂掉而

2020-10-10 18:07:42 87

原创 Redis一些知识整理

Redis简介什么是Redis?为什么Redis这么快?什么是Redis?Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value、NoSQL数据库,并提供多种语言的API。它支持存储的value包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。它常用于高并发场景,能够访问访问海量数据,查询效率也非常高。为什么Redis这么快?Redis本身由C语言编写,而且完全

2020-10-07 22:03:51 53

原创 TCP三次握手与四次挥手

TCP三次握手与四次挥手TCP三次握手过程为什么没有四次握手?为什么不用两次握手?TCP四次挥手为什么A在TIME-WAIT状态必须等待2MSL的时间呢?TCP三次握手过程A向B发送一个SYN请求报文段B收到报文请求后向A发送SYN+ACK报文段,这时TCP服务器进入SYN-RCVD状态A收到B的确认后,还要向B给出确认。发送ACK报文段,A进入ESTABLISHEDZ状态,B收到A的确认后也进入ESTABLISHED状态。为什么没有四次握手?在B收到A报文请求中发送的SYN+ACK报文段

2020-10-07 18:28:02 49

原创 详解java string

java基础(3)--详解String为什么String是不可变序列String类用"=="进行比较的问题StringBuilder和StringBufferStringBuilder和StringBuffer的不同String,StringBuilder,StringBuffer的效率比较StringStringBuilderStringBuffer其实与八大基本数据类型一样,String也是...

2020-01-16 12:30:39 105

原创 深入理解java数据类型

深入理解java数据类型深入理解java数据类型1. 整型自动装箱与自动拆箱java整型对java跨平台的支持:2.浮点类型3.总结深入理解java数据类型java是一种强类型语言,这就意味着必须为每一个声明变量声明一种类型。在java中,一共有8种数据类型,其中4种整型,2种浮点类型,1种字符类型和一种表示真值的boolean类型。1. 整型整型用于表示没有小数部分的整数部分,java提...

2020-01-13 11:22:27 129

空空如也

空空如也

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

TA关注的人

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