自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 多线程高效合作之master-warker模式

对于高并发的任务,有些任务是相互独立的,任务与任务之间没有依赖关系,因此可以采用 master - worker 模式。master 用于接受任务和分发任务给 worker,并将 worker 返回的结果组装返回给调用方。因此该模式是异步的。要用到组件有:任务队列、任务和worker线程映射、任务和结果集映射private ConcurrentLinkedQueue&lt...

2019-09-28 14:23:00 232

转载 mysql 添加时间自动添加更新时间自动更新

在数据库使用中经常使用到时间字段。常用的有创建时间和更新时间。然而在使用中想要创建时间在创建的时候自动设置为当前时间,更新时间在更新时自动更新为当前时间。创建表 stuCREATE TABLE `stu` ('id' int NOT NULL AUTO_INCREMENT,'createTime' timestamp DEFAULT CURRENT_TIMESTAMP...

2019-09-27 13:33:00 283

转载 代码整洁之道读书笔记 1

1 函数的第一条规则:短小。2 函数应该只做一件事。做好这件事。只做这一件事。3 每个函数一个抽象层级。函数内部使用的方法应该在同一抽象层。4 长而具有描述性的名称要比短而令人费解的名称好。长而具有描述性的名称要比描述性的长注释好。5 如果要对输入参数进行转换,应该将结果反映在返回值上。6 给函数起一个好名字,能较好的解释函数的意图以及参数的顺序。7 函数要么做什...

2019-09-24 19:06:00 203

转载 web服务器请求代理方式

1 通信数据转发程序:代理、网关、隧道代理:是一种有转发功能的应用程序,他扮演了位于服务器和客户端“中间人”的角色,接收客户端发送的请求并转发给服务器;同时也接收服务器返回的响应并转发给客户端。使用代理服务器不会改变请求的URI。代理服务器特性:利用缓存技术减少网络带宽的流量组织内部针对特定网站的访问控制网关:转发其他服务器通信数据的服务器,自...

2019-09-01 10:51:00 255

转载 计算机网络分层以及常见状态码

1 TCP/IP 协议簇按层次分为应用层、网络层、传输层、数据链路层1.1 应用层:为用户提供服务。比如 FTP(file transfer protocol)和 DNS(domain name system)1.2 传输层:提供出于网络连接中的两台计算机之间的数据传输。传输层有两个协议 TCP(transmission control protocol)传输控制协议 和 UD...

2019-08-30 09:59:00 209

转载 disruptor 组件理解

disruptor 中核心组件包括 RingBuffer、Event 、EventHandler、Sequence、Sequence Barrier、 WaitStrategy、WorkProcessorEvent 类类似于要处理的消息,监听事件类用于处理消息,实例化 Disruptor 组件,编写生产者组件,向 disruptor 投递消息。多线程模式1)Fut...

2019-08-15 22:11:00 92

转载 spring4.x企业应用开发读书笔记1

第一章 概述1 spring 以 ioc 和 aop 为内核,提供了展现层 springMVC、持久层SpringJDBC及业务层事务管理等一站式企业级应用技术。2spring的特性方便解耦,简化开发。通过IOC容器,用户可以将对象之间的依赖关系交由spring进行控制,避免硬编码所造成的的过度程序耦合。可以让用户更关注更上层的应用。AOP 编程支持。方便进行面向切面...

2019-08-13 07:00:00 72

转载 现代操作系统读书笔记 2

第一章1 计算及主要部件多数计算机有两种运行模式:内核态和用户态。内核态:操作系统具有对所有硬件的完全访问权限,可以执行机器能够运行的任何指令。在用户态下,只使用了机器指令中的一个子集。用户接口程序:允许用户运行其他程序,诸如:音乐播放器等操作系统处于硬件之上,为所有其他软件提供基础的运行环境。在内核态中运行的必然是操作系统的一部分,但一些内核外运行的程序也有...

2019-08-07 16:39:00 65

转载 java8 中 ImageIO 读取 tiff 格式的图片失败

在java8 及之前版本中,jdk 中的 ImageIO 读取图片内容会失败,解决办法使用 java9 或者使用第三方插件。插件可以使用 TwelveMonkeys ImageIO,地址:https://github.com/haraldk/TwelveMonkeys使用方法,在maven中添加依赖<dependency> <g...

2019-08-07 14:26:00 3025

转载 操作系统精髓与设计读书笔记1

1 在设计IO机制时,两个重要的目标:效率和通用性。效率很重要,因为IO操作通常是计算机系统瓶颈。通用性:出于简单和避免错误的考虑,人们希望能用一种统一的处理方式处理所有设备。两个方面表现出统一:1)处理器看待IO设备的方式2)操作系统管理IO设备和操作IO的方式目前使用一种层次化、模块化的方法设计IO功能,隐藏了大部分IO设备底层细节,使得用户进程和操作系统高层可以通过...

2019-07-23 09:07:00 95

转载 卡耐基经典读书笔记1

1 成功的人际关系在于你能捕捉对方观点的能力;还有,看一件事须兼顾你和对方的不同角度。2 天底下只有一种方法可以影响他人,那就是提出他们的需要,并让他们知道怎样去获取。3 能设身处地的为他人着想,了解别人心理想些什么的人,永远不用担心未来。4 自我表现是人类天性中最主要的需求。当我们想出一个好主意的时候,别让其他人以为那是我们的专利。5 外交的秘诀“我要喜欢你”。人们经常...

2019-07-18 08:30:00 129

转载 现在操作系统读书笔记1

1 多数计算机有两种运行模式:内核态、用户态2 软件中最基础的部分是操作系统,它运行在内核态,在该模式中,操作系统具有所有硬件的安全访问权限,可以执行机器能够运行的任何指令。 软件的其余部分运行在用户态,在用户态下,只是用了机器指令中的一个子集。那些会影响机器控制或可进行IO操作的指令,在用户态是禁止的。3 操作系统,不太精确的定义,运行在内核态的软件。4 操作系统是为应...

2019-07-16 06:29:00 70

转载 linux 中 scp 命令

scp命令用于Linux 之间复制文件和目录。如果想在windows 环境中使用需要安装 linux 命令环境,比如 cmderscp是 secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。语法:scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file]...

2019-07-10 13:47:00 776

转载 ThreadPoolExecutor 定制线程池参数

在 java 开发中经常需要执行一些“规格化”的任务,此时可以使用 java 线程池。节省创建线程时间,任务来时即可执行,高效。java 包是 java.util.concurrent 。创建线程池的常用方法Executors.newCachedThreadPool()Executors.newFixedThreadPool()Executors.newSingleT...

2019-07-01 14:15:00 120

转载 习惯养成记

节制饭不可吃胀酒不可喝高缄默于人于己不利的话不谈。避免闲言碎语秩序放东西各归其位,办事情各按其时决心决心去做的事情,就做到心想事成节俭不花于人于己没有好处的钱,杜绝浪费勤奋珍惜时光,手里总忙有益之事。剪除一切无畏之举诚信不害人,不欺诈思想坦荡,说话实事求是中庸避免走极端,忍让化冤仇。清洁身体、衣着、居所,不许不干不净平静不可为小事、常事、难免之事搅乱了方寸。贞洁...

2019-06-20 09:07:00 84

转载 springboot rabbitMQ 死信对列 实现消息的可靠消费

1 引入 maven 依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId> ...

2019-06-13 09:10:00 118

转载 java类型 jdbcType类型 mysql类型关系

java类型 jdbcType类型 mysql类型关系Java类型JdbcTypeMysql类型备注StringVARCHARVARCHAR变长字符串StringLONGVARCHARlongtext...

2019-06-04 16:18:00 247

转载 disruptor 单生产者多消费者

demo1 单生产者多消费者创建。maven 依赖<!-- https://mvnrepository.com/artifact/com.lmax/disruptor --> <dependency> <groupId>com.lmax</groupId> &...

2019-06-04 09:06:00 636

转载 disruptor 核心链路应用场景

核心链路一般比较复杂并且需要考虑:服务之间相互依赖性、流程能够走完、人员的变动等情况要考虑:兜底、补偿。常见解决方案是:1)完全解耦 2)模板模式其他解决方案:1)有限状态机框架:spring-stateMachine 2)disruptor转载于:https://www.cnblogs.com/zhaopengcheng/p/10903953.html...

2019-05-22 09:31:00 277

转载 RabbitMQ 消息的可靠投递

mq 提供了两种方式确认消息的可靠投递confirmCallback 确认模式returnCallback 未投递到 queue 退回模式在使用 RabbitMQ 的时候,作为消息发送方希望杜绝任何消息丢失或者投递失败场景。RabbitMQ 为我们提供了两个选项用来控制消息的投递可靠性模式。rabbitmq 整个消息投递的路径为:producer->r...

2019-05-15 18:12:00 113

转载 聪明的投资者2

1 特定需要必须安排专用资金提供资金支持假设一对20多岁的年轻夫妇正力图逐渐积累起一笔退休储蓄金,那么它就可以将一笔专用金投入到高风险高收益的股票指数中。2 认清自己的风险忍受度3 禁止的行为反复无常不从别人身上吸取明显的成功或失败的教训遭遇多次失败时,就意志消沉、一蹶不振。勇气是不断倒下的时候还依然站起来4 优美的诗歌《如果》如果你能保持冷静,...

2019-05-13 09:24:00 100

转载 mybatis 中一对多、多对一、多对多、父子继承关系

mybatis 中处理一对多、多对一、多对多、父子继承关系的有关键词:association 、collection 、discriminatorid – 一个 ID 结果;标记出作为 ID 的结果可以帮助提高整体性能result – 注入到字段或 JavaBean 属性的普通结果association – 一个复杂类型的关联;许多结果将包装成这种类型嵌套结果映射...

2019-04-23 13:50:00 288

转载 spring 中单例 bean 初始化之后和销毁之前执行指定动作 postconstruct 和 preDestroy

1 生命周期方法,在指定bean 创建完成后执行初始化动作或销毁之前做一些善后动作。有 3 种方法 1)实现接口 InitializingBean 然后实现 afterPropertiesSet 方法, 实现 DisposableBean 接口然后实现 destroy 方法。 不推荐,耦合性大。2) xml 文件配置 3)使用注解 @PostConstruct / @PreDest...

2019-04-11 10:04:00 129

转载 RabbitMQ 特性

1RabbitMQ 特点与 SpringAMQP 完美整合、API 丰富。集群模式丰富,表达式配置,HA 模式,镜像队列模型。保证数据不丢失的前提做到高可靠性、可用性。转载于:https://www.cnblogs.com/zhaopengcheng/p/10596787.html...

2019-03-25 21:25:00 56

转载 在 java 开发接口中需要注意的问题

1 在开发过程中免不了对接上游或下游,有合作就要保证入参、出参的准确性。一个接口一般只能处理有限情况下的情况,因此在逻辑处理前要对入参进行校验。2 在自己的逻辑处理过程中,要时刻持有怀疑的态度。假设每一步骤出问题了,在生产上如何快速的捕获问题所在。此时,就显露出日志的重要性了!!!在必要的地点一定打日志。对于异常记录,一定要记录堆栈信息,方便日后查找问题。转载于:https...

2019-03-25 14:02:00 451

转载 操作系统精髓读书笔记

1 用户级线程相对于内核级线程3个优点?1)所有线程数据结构都在一个进程的用户地址空间中,线程切换不需要内核模式特权,因此进程不需要为了管理线程而切换到内核模式,进而节省了两次状态转换开销。2)可以选择适用应用程序的调度算法,例如、轮转调度算法、优先级调度算法3)用户线程可在任何系统中运行,不需要对底层内核进行修改。线程库是供所有应用程序共享的一组应用级函数。2 用...

2019-03-20 20:49:00 152

转载 springboot 项目中读取资源文件内容 如图片、文档文件

1 问题描述:在 springboot 项目中有时候会需要读取一些资源文件,例如 office的 docx 文档或者 png、jpg的图片。在多模块项目中资源文件需要放到启动项目的 Resources 文件夹示例代码如下:InputStream pngInStream = Thread.currentThread().getContextClassLoader().getRe...

2019-03-15 22:17:00 1729

转载 重构-改善既有代码的设计读书小结

1 重复代码。要将重复的代码提炼出来成小的函数或类供调用,避免重复。因为重复代码是“坏味道”的开始。2 过长函数、过大的类。将函数或类进行合理的分解,便于代码的阅读。名字很关键,要尽量看名知意。3 过长参数、数据泥团。对于参数过长可以考虑将参数进行封装成数据对象。数据泥团,对于好多字段经常一起出现,可以考虑将他们封装成数据对象,在一处处理。4 过多的相同 switch 语句。...

2019-02-26 17:04:00 134

转载 投资中最简单的事读书笔记

1 逆向投资中,当公司发生不好的影响时可以经常思考的问题该产品有无替代产品,如若替代品比较多,则要谨慎。若无替代品,则积极。是个股问题还是行业问题,若是个股问题,则避开涉事个股,重点研究其竞争对手。即使是行业问题,也可关注受影响相对较小的个股。是主动添加违规成分还是 “被动躺枪” ,前者要谨慎,后者可积极。问题是否容易解决?若容易解决则积极;若难以解决,影响时间长并且...

2019-02-20 23:23:00 278

转载 公司的行业差异

1 行业的状况可以影响企业的财务数据,另一方面,企业的毛利率、应收账款、存货、应付账款、固定资产、总资产周转率等财务数据其实也很能很好地刻画出两个行业的状况。比如:毛利率反应了整个行业的竞争环境;应收账款和存货反应了企业和它下游购买方的关系;而应付账款从侧面反映出企业上游供应商的谈判能力;固定资产在总资产的占比反映了这个行业的基本特征;总资产周转率让我们了解了企业的管理状况。一个...

2019-02-15 10:58:00 305

转载 maven project 报错解决方法

1 maven 在添加包后出错,project 处有红线的解决办法Maven默认会使用本地缓存的库来编译工程,对于上次下载失败的库,maven会在~/.m2/repository/<group>/<artifact>/<version>/目录下创建xxx.lastUpdated文件,一旦这个文件存在,那么在直到下一次nexus更新之前都不会更新这个...

2019-02-13 15:57:00 4098

转载 redis 的消息订阅和消息队列的功能比较

消息队列常用的有 rabitMQ、kafka等。缓存服务器 redis 也可以做消息队列使用,他们的特点对比如下消息协议: 消息队列支持包括AMQP,MQTT,Stomp等,并且支持 JMS 规范,但Redis没有提供对这些协议的支持;持久化:Redis无法对消息持久化存储,一旦消息被发送,如果没有订阅者接收,那么消息就会丢失;消息保障:消息队列提供了消息传输保障,当客...

2019-02-13 07:59:00 219

转载 分析公司盈利能力的方法

1 同型分析。各个项目在总数量中的比重。从上表中固定资产占比 60% 可以看出该公司是一个重资产的公司。从流动负债占比 62% 可以看出该公司同类竞争压力比较大。资产负债表的同型分析:资产负债表的每个项目除以总资产;利润表的同型分析为利润表的每个项目除以营业收入。2 使用比率来区分公司的盈利能力强弱毛利润率 = 毛利润 / 收入毛利润:是营业收入和营业成本...

2019-02-12 23:03:00 1293

转载 springboot 中打印 sql 语句

在配置文件中 application.yml 配置如下其一即可方式一:logging: level: com.xxx.com.dao.mapper: DEBUG //包路径为mapper文件包路径打印出来的形式如下:2019-01-24 08:02:14.245 [http-nio-8060-exec-2] DEBUG c.s.a.m....

2019-01-24 11:21:00 312

转载 springboot 项目中获取默认注入的序列化对象 ObjectMapper

在 springboot 项目中使用 @SpringBootApplication会自动标记 @EnableAutoConfiguration 在接口中经常需要使用时间类型,Date ,如果想要格式化成指定格式需要在 application.yml 配置文件中配置spring: jackson: date-format: yyyy-MM-dd HH:m...

2019-01-21 18:18:00 733

转载 ubuntu 16 安装 openjdk 8

apt-get install openjdk-8-jdk -y进行验证即可转载于:https://www.cnblogs.com/zhaopengcheng/p/10194383.html

2018-12-29 10:39:00 135

转载 redis 过期键删除策略

redis 的过期键的过期时间都保存在过期字典中,过期键的删除策略有3种定时删除:在设置键的过期时间的同时,创建一个定时器,让定时器在键的过期时间来临时,立即删除对键的删除操作。惰性删除:放任键过期不管,但每次从键空间中获取键时,都检查取得的键是否过期,如果过期的话,就删除该键。如果没有过期,就返回该键。定期删除:每隔一段时间,程序对数据库进行一次检查,删除里面的过期键。...

2018-12-18 14:10:00 74

转载 java 内存模型

1 平台的内存模型在共享内存的多处理器体系架构中,每个处理器都拥有自己的缓存,并且定期的与主内存进行协调。串行一致性:程序只存在唯一的执行顺序,而不考虑这些操作在何种处理器上执行,并且在每次读取变量时,都能获取执行序列中(任何处理器)最近一次写入该变量的值。在现代支持共享内存的多处理器中,当跨线程共享数据时,会出现奇怪的情况,在java中需要使用适当的同步方法。在底层是使用内...

2018-12-12 15:06:00 57

转载 显式锁

1 ReentrantLock 实现了 Lock 接口,并提供了与 synchronized 相同的互斥性和内存可见性。还提供了可重入的加锁寓意。内置锁中,死锁是一个严重的问题,主要原因是多个获取锁的顺序形成了一个环,恢复程序的唯一方法是重启程序,而防止死锁的唯一方法就是在构造程序时避免出现不一致的锁顺序。可定时的或可轮训的锁提供了另外的解决方法。2 锁的公平性:是否按...

2018-12-11 14:50:00 90

转载 多线程性能与可伸缩性

1 单线程程序不需要线程调度也不需要同步开销,而且不需要使用锁来保证数据结构的一致性。在多线程的调度和协调中都需要一定的性能开销。对于为了性能而引入多线程的程序,并行带来的性能提升必须要超过并发导致的开销。2 上下文切换如果可运行的线程数大于 CPU 的数量,那么操作系统最终会将某个正在运行的线程调度出来,从而使其他线程能够使用 CPU。这将导致一次上下文切换,在这个过程中...

2018-12-10 10:15:00 137

空空如也

空空如也

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

TA关注的人

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