- 博客(25)
- 收藏
- 关注
原创 装饰者模式和代理模式的区别
学习AOP时,教材上面都说使用的是动态代理,可是在印象中代理模式一直都是控制访问什么的,怎么又动态增加行为了,动态增加行为不是装饰器模式吗?于是 找了很多资料,想弄清楚这两者之间到底有什么区别。结果发现这一篇英文文章讲的很清晰,就翻译一下,供参考。 首先,让我们先看一下下面的这两个UML类图,他们分别描述了装饰器模式和代理模式的基本实现。...
2019-10-27 15:46:34
283
原创 普通项目转maven项目
第一:maven项目:其实就是一种目录结构的规范和构建集成管理:web版的目录结构:第二:改造重要节点:构建maven项目的目录结构,建立POM文件;可以自动生成详情见:https://blog.csdn.net/Fickle_actor/article/details/82564231关于构建:第三:遍历libs生成依赖教程:https://blog...
2019-06-09 16:33:55
499
转载 操作系统的几种IO方式
目前IO模型主要经历了以下五种:1)阻塞IO2)非阻塞IO3)IO复用(select和poll)4)信号驱动IO(sigio)5)异步IO(aio_)内核空间和用户空间:由于操作系统都包括内核空间和用户空间(或者说内核态和用户态),内核空间主要存放的是内核代码和数据,是供系统进程使用的空间。而用户空间主要存放的是用户代码和数据,是供用户进程使用的空间。目前Linux系统简化了分段...
2019-05-21 09:47:27
1595
转载 动态语言和静态语言的区别
本文转自:https://www.cnblogs.com/zy1987/p/3784753.html?utm_source=tuicool编译型语言和解释型语言1、编译型语言需通过编译器(compiler)将源代码编译成机器码,之后才能执行的语言。一般需经过编译(compile)、链接(linker)这两个步骤。编译是把源代码编译成机器码,链接是把各个模块的机器码和依赖库串连...
2019-05-07 07:43:08
239
转载 装饰者模式(最清晰的没有之一)
定义能够动态的给对象增加行为职责的一种模式,灵活性远胜于继承。主要组成抽象组件(Component): 定义抽象行为接口。具体组件(Concrete component): 定义具体实现行为接口的类,继承自抽象组件,也做被装饰者,用于被附加各种行为。抽象装饰者(Decorator):持有一个Component的引用,并继承自Component,提供其一致的接口。这边继承自Com...
2019-01-06 20:54:21
433
转载 领域模型驱动设计(Domain Driven Design)入门概述
软件开发要干什么: 反映真实世界要自动化的业务流程 解决现实问题 领域Domain Domain特指软件关注的领域 在不能充分了解业务领域的情况下是不可能做出一个好的软件 领域建模领域模型驱动设计} 分层架构} 实体} 值对象} 服务} 模块} 聚合} 工厂} 资源库 分层架构:}...
2018-08-28 21:33:59
416
转载 Bug的严重程度、优先级如何定义
Priority()和Severity(严重程度)是的两个重要属性。很多新人经常混淆这两个概念。通常,人员在提交Bug时,只定义Bug的Severity, 即该Bug的严重程度,而将Priority交给Project Leader 或Team Leader来定义,由他们来决定该Bug被修复的优先等级。某种意义上来说,Priority的定义要依赖于Severity,在大多数情况下,Severity越...
2018-08-22 22:56:47
2958
转载 jvm工具介绍
JDK本身提供了很多方便的JVM性能调优监控工具,除了集成式的VisualVM和jConsole外,还有jps、jstack、jmap、jhat、jstat等小巧的工具,本博客希望能起抛砖引玉之用,让大家能开始对JVM性能调优的常用工具有所了解。 现实企业级Java开发中,有时候我们会碰到下面这些问题:OutOfMemoryError,内存不足内存泄露线程死锁锁争用(Lock Content...
2018-07-11 20:33:00
236
转载 24种设计模式与6大原则
Longronglin之设计模式:Christopher Alexander 说过:“每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复劳动”。模式描述为:在一定环境中解决某一问题的方案,包括三个基本元素--问题,解决方案和环境。阅读类图和对象图请先学习UML创建模式 结构模式 行为模式创建模式:对类的实例化过程的抽象。一...
2018-06-25 18:11:43
321
转载 MySQL InnoDB事务隔离级别脏读、可重复读、幻读(推荐理由,措辞准确)
1、MySQL InnoDB事务隔离级别脏读、可重复读、幻读MySQL InnoDB事务的隔离级别有四级,默认是“可重复读”(REPEATABLE READ)。· 1).未提交读(READUNCOMMITTED)。另一个事务修改了数据,但尚未提交,而本事务中的SELECT会读到这些未被提交的数据(脏读)( 隔离级别最低,并发性能高 )。· 2).提交读(READCOMM...
2018-06-20 00:08:29
419
转载 mysql的共享锁和排他锁
mysql锁机制分为表级锁和行级锁,本文就和大家分享一下我对mysql中行级锁中的共享锁与排他锁进行分享交流。共享锁又称为读锁,简称S锁,顾名思义,共享锁就是多个事务对于同一数据可以共享一把锁,都能访问到数据,但是只能读不能修改。排他锁又称为写锁,简称X锁,顾名思义,排他锁就是不能与其他所并存,如一个事务获取了一个数据行的排他锁,其他事务就不能再获取该行的其他锁,包括共享锁和排他锁,但是获取排他锁...
2018-06-19 23:07:25
292
转载 AbstractQueuedSynchronizer源码分析
AbstractQueuedSynchronizer是concurrent工具包的核心抽象类,也是lock,Semaphore、CountDownLatch的基础。(CyclicBarriar内部是通过reentrantlock实现)一.源码分析1.继承AbstractQueuedSynchronizer继承AbstractOwnableSynchronizerpublic abstract cl...
2018-06-18 11:01:47
822
原创 mysql 获取当前日期周一和周日
1、大中华的周的习惯:select subdate(curdate(),if(date_format(curdate(),'%w')=0,7,date_format(curdate(),'%w'))-1)//获取当前日期在本周的周一 select subdate(curdate(),if(date_format(curdate(),'%w')=0,7,date_format(curdate()...
2018-06-17 18:28:13
1068
原创 关于在AtomicInteger的static块中unsafe.objectFieldOffset干什么用的简介
sun.misc.Unsafe是JDK内部用的工具类。它通过暴露一些Java意义上说“不安全”的功能给Java层代码,来让JDK能够更多的使用Java代码来实现一些原本是平台相关的、需要使用native语言(例如C或C++)才可以实现的功能。该类不应该在JDK核心类库之外使用。JVM的实现可以自由选择如何实现Java对象的“布局”,也就是在内存里Java对象的各个部分放在哪里,包括对象的实例字段和...
2018-06-12 23:07:51
10132
2
转载 Java泛型 - 通配符以及原始类型(Raw Type)
参考 & 推荐Effective Java(2nd Edition)December, 2017 马上就要出版第三版了, 这本书真的非常经典, 强烈推荐!Time To Really Learn Generics: A Java 8 Perspective张拭心 - 深入理解 Java 泛型推荐阅读:Going wild with generics, Part 1如何理解List<?...
2018-06-10 21:04:50
1565
转载 分布式系统CAP理论
引言CAP是分布式系统、特别是分布式存储领域中被讨论最多的理论,“什么是CAP定理?”在Quora 分布式系统分类下排名 FAQ 的 No.1。CAP在程序员中也有较广的普及,它不仅仅是“C、A、P不能同时满足,最多只能3选2”,以下尝试综合各方观点,从发展历史、工程实践等角度讲述CAP理论。希望大家透过本文对CAP理论有更多地了解和认识。 CAP定理CAP由Eric Brewer在2000年PO...
2018-06-10 20:54:14
227
原创 无状态服务器与有状态服务器
定义:是指两个来自相同发起者的请求在服务器端是否具备上下文关系,具有上下文关系则为有状态服务器,没有则为无状态服务器; 状态化请求,那么服务器端一般都要保存请求的相关信息,每个请求可以默认地使用以前的请求信息,发送的信息量较少; 无状态请求,服务器端所能够处理的过程必须全部来自于请求所携带的信息,以及其他服务器端自身所保存的、并且可...
2018-06-09 19:54:09
1320
转载 句柄的定义及作用
<<Microsoft Windows 3 Developer's Workshop>>(Microsoft Press,by Richard Wilton)一书中句柄的概念是这样的:在Windows环境中,句柄是用来标识项目的,这些项目包括:模块(module)、任务(task)、实例(instance)、文件(file)、内存块(block of memory)、菜单(...
2018-06-07 08:57:14
7582
2
原创 mysql让主键id重新排序
//新增辅助字段tidALTER TABLE `table`ADD COLUMN `tid` bigint(20) NULL AFTER `id`;//将辅助字段tid按照原有id的升序,从1自增UPDATE table a,(select @rownum:=@rownum+1 tid,a.id FROM ( SELECT id FROM table order by id) a,(sele...
2018-06-07 08:35:57
2163
原创 CAS非阻塞算法及ABA问题
独占锁:是一种悲观锁,synchronized就是一种独占锁,会导致其它所有需要锁的线程挂起,等待持有锁的线程释放锁。乐观锁:每次不加锁,假设没有冲突去完成某项操作,如果因为冲突失败就重试,直到成功为止。一、CAS 操作乐观锁用到的机制就是CAS,Compare and Swap。CAS有3个操作数,内存值V,旧的预期值A,要修改的新值B。当且仅当预期值A和内存值V相同时,将内存值V修改为B,否则...
2018-05-27 11:49:08
1034
1
原创 canal搭建及消费日志过程中的遇到的问题《亲测版》
一、部署canal:3.1开启MySQL的binlog功能,并配置binlog模式为row。通过set global * = *, 立即生效,重启后重新读取配置文件my.cnf ,想永久生效记得修改配置文件log-bin = mysql-binbinlog-format=Rowserver-id=1(和canal的slaveId不重复即可,canal默认1234,一般不用修改)3.2在mysq...
2018-05-26 12:59:01
6825
转载 Kafka基本原理
简介Apache Kafka是分布式发布-订阅消息系统。它最初由LinkedIn公司开发,之后成为Apache项目的一部分。Kafka是一种快速、可扩展的、设计内在就是分布式的,分区的和可复制的提交日志服务。Kafka架构它的架构包括以下组件:话题(Topic):是特定类型的消息流。消息是字节的有效负载(Payload),话题是消息的分类名或种子(Feed)名。生产者(Producer):是能够发...
2018-05-26 12:30:38
143
原创 insert的语句的三种方式
一、建议使用目标表列与插入的数据列形成映射关系的写法,保险;二、常见用法// 明确只插入一条Value方式1、 INSERT INTO t1(field1,field2) VALUE(v001,v002); //在插入批量数据时方式2优于方式、 方式2、INSERT INTO t1(field1,field2) VALUES(v101,v102),(v201,v202),(v...
2018-05-09 01:01:11
29039
转载 otter从安装到入门测试
一、Otter目前支持了什么 1. 单向同步, mysql/oracle互相同步 2. 双向同步,无冲突变更 3. 文件同步,本地/aranda文件 4. 双A同步,冲突检测&冲突补救 5. 数据迁移,中间表/行记录同步 导历史表还需要程序代码实现吗? 还在用mysql的主从复制吗? Otter都能为你解决...
2018-05-07 22:53:54
2547
原创 java中set集合:有序set集合,集合中的对象存储注意事项
1、LinkedHashSet(有序)通过链表的形式保证有序;2、TreeSet(有序),可以使用比较器:Comparable(内部)与Comparator(外部),通过Collections.sort()进行排序;内部比较器-对应类上面实现comparable的接口,重写compare的方法; 例如:Collections.sort(set);外部比较器--对应类上面,编写内部静态类-比较器,实...
2018-05-05 17:10:20
31418
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人