自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

刘越洋子

真正优秀的人不是比别人强,而是比昨天的自己更优秀!

  • 博客(88)
  • 资源 (2)
  • 收藏
  • 关注

原创 PHP 工作环境配置及Xdebug配置

PHP7 工作环境配置及Xdebug配置1,工作环境及版本系统 windows10php 版本 php-7.1.29-Win32-VC14-x64下载线程安全的 windows 搭建Php 环境 与VC版本相关,注意自己的电脑VC版本下载地址 https://windows.php.net/download#php-7.1apache版本 httpd-2.4.39-o102r-x64...

2019-05-29 21:28:41 1066

原创 2019年随笔

2019年随笔今年是职业生涯转折点的一年,今年32岁了,作为一个程序员来说,也算是高龄程序员了,是时候该想想后路了。做研发的如果还想继续混这行无非就是两条路,一条是转项目经理,另一条是继续做技术,找一个自己擅长的领域深入学习,成为资深或者专家级别。这样在公司里才能混的下去。今年3月份在北京辞去了工作,回大连生活。7年的北漂生活就这样结束了,从12年毕业一直在北京工作,虽然没去过什么大公司,...

2019-04-01 16:59:56 505 3

原创 JVM学习笔记- 6 Java内存模型与线程

JVM学习笔记- 6 Java内存模型与线程1 Java内存模型Java内存模型的主要目标是定义程序中各个变量的访问规则,即在虚拟机中将变量存储到内存和从内存中取出变量这样的底层细节。此处的变量(Variables)与Java编程中所说的变量有所区别,它包括了实例字段、静态字段和构成数组对象的元素,但不包括局部变量与方法参数,因为后者是线程私有的 ,不会被共享,自然就不会存在竞争问题。Ja...

2019-02-21 11:17:12 275

原创 JVM学习笔记-2 对象的创建

JVM学习笔记-2 对象的创建1 new指令虚拟机遇到一条new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没有,那必须先执行相应的类加载过程。在类加载检查通过后,接下来虚拟机将为新生对象分配内存。对象所需内存的大小在类加载完成后便可完全确定,为对象分配空间的任务等同于把一块确定大小的内存从Java...

2019-02-20 14:05:58 213

原创 python中一切皆对象

python中一切皆对象1,python中一切皆对象首先,对象应该是某一个类型的实例,也就是模板刻出来的模型其次,对象应该在内存中有一块区域用于存放它,应该有存放它的内存地址最后,对象应该有具体的值,也就是它肚子里的东西也就是说 一个对象应该具有 类型 内存地址 和值python中一切皆对象包括( 类 具体对象 方法 函数 模块 io … )1.1 类和方法也是对象py...

2018-12-27 15:03:28 1415

原创 Java基础、进阶、高级到架构的知识集合

Java基础、进阶、高级到架构的知识集合一、基础篇1.1 JVM相关JVM内存结构堆、栈、方法区、直接内存、堆和栈区别Java内存模型内存可见性、重排序、顺序一致性、volatile、锁、final垃圾回收内存分配策略、垃圾收集器(G1)、GC算法、GC参数、对象存活的判定JVM参数及调优Java对象模型oop-klass、对象头HotSpot即时编译器、编译优化类加载...

2018-12-26 11:58:25 456

原创 Mysql ACID 隔离级别 到底什么是幻读

Mysql ACID 隔离级别 到底什么是幻读1 事物的ACIDACID表示原子性(atomicity)、一致性(consistency)、隔离性(isolation)和持久性(durability)。一个很好的事务处理系统,必须具备这些标准特性:1.1 原子性(atomicity)一个事务必须被视为一个不可分割的最小工作单元,整个事务中的所有操作要么全部提交成功,要么全部失败...

2018-07-25 12:25:14 750

转载 postman中 form-data、x-www-form-urlencoded、raw、binary操作

RD一般在测试接口时优先会选择谷歌得postman工具postman的Body里有:form-data、x-www-form-urlencoded、raw、binary类型具体时说明意思呢?一:form-data就是http请求中的multipart/form-data,它会将表单的数据处理为一条消息,以标签为单元,用分隔符分开。既可以上传键值对,也可以上传文件。当上传的字段是文件时...

2018-06-01 22:27:14 494

原创 Netty学习 HelloWorld

Netty学习 HelloWorld1.Netty简介Netty是一个高性能、异步事件驱动的NIO框架,它提供了对TCP、UDP和文件传输的支持,作为一个异步NIO框架,Netty的所有IO操作都是异步非阻塞的,通过Future-Listener机制,用户可以方便的主动获取或者通过通知机制获得IO操作结果。作为当前最流行的NIO框架,Netty在互联网领域、大数据分布式计算领域、游...

2018-05-28 11:34:06 281

转载 浅谈tcp socket的backlog参数

浅谈tcp socket的backlog参数最近看netty源码碰到ChannelOption.SO_BACKLOG参数,通过跟踪代码发现其实是用于设置底层tcp socket的backlog参数,由于不了解这个参数,有必要彻底的理解一下。TCP三次握手底层实现backlog参数主要用于底层方法int listen(int sockfd, int backlog), 在解释back...

2018-05-25 14:39:43 4252 1

原创 Java 网络IO(BIO,NIO,AIO)

Java 网络IO(BIO,NIO,AIO)1.BIOBIO 全称Block-IO 是一种同步阻塞的通信模式。我们常说的Stock IO 一般指的是BIO。是一个比较传统的通信方式,模式简单,使用方便。但并发处理能力低,通信耗时,依赖网速。 BIO 设计原理: 服务器通过一个Acceptor线程负责监听客户端请求和为每个客户端创建一个新的线程进行链路处理。典型的一请求一应答模式。若客户...

2018-05-25 11:29:21 726

原创 Java并发编程十二 Disruptor框架RingBuffer

Java并发编程十二 Disruptor框架RingBuffer1. RingBuffer原理Disruptor整个框架的核心就是RingBuffer,也是为什么Disruptor为什么高效率的关键。 RingBuffer是一个首尾相连的环形数据结构,没有尾指针,只维护了一个指向下一个可用位置的序号。 详细原理查看 http://ifeve.com/dissecting-disrupt...

2018-05-22 17:30:49 1294

原创 Java并发编程十一 Disruptor框架HelloWorld

Java并发编程十一 Disruptor框架HelloWorld1.简介Disruptor是一个高性能的异步处理框架,或者可以认为是最快的消息框架(轻量的JMS),也可以认为是一个观察者模式的实现,或者事件监听模式的实现。 Disruptor能够在无锁的情况下实现网络的Queue并发操作。2. Disruptor 关键类RingBuffer: 被看作Disruptor最...

2018-05-22 13:26:10 603

转载 Java中CAS详解

Java中CAS详解在JDK 5之前Java语言是靠synchronized关键字保证同步的,这会导致有锁锁机制存在以下问题:(1)在多线程竞争下,加锁、释放锁会导致比较多的上下文切换和调度延时,引起性能问题。(2)一个线程持有锁会导致其它所有需要此锁的线程挂起。(3)如果一个优先级高的线程等待一个优先级低的线程释放锁会导致优先级倒置,引起性能风险。volatile是不错的...

2018-05-18 17:10:10 196

原创 Java并发编程十 重入锁ReentrantLock 读写锁ReentrantReadWriteLock

Java并发编程十 重入锁ReentrantLock 读写锁ReentrantReadWriteLockJava的concurrent并发包提供了一套与Synchronized关键字相同功能Lock,还有与wait()/notify()相同功能的Condition。Lock的功能比传统的Synchronized更加灵活。它具有嗅探锁定和多路分支等功能(一个lock对象可以创建多个Condi...

2018-05-17 18:19:54 238

原创 Java并发编程九 CountDownLatch、CyclicBarrier、Semaphore

Java并发编程九 CountDownLatch、CyclicBarrier、Semaphore1.CountDownLatchCountDownLatch允许一个或多个线程等待其他线程完成操作。2.CyclicBarrierCyclicBarrier,让一组线程到达一个同步点后再一起继续运行,在其中任意一个线程未达到同步点,其他到达的线程均会被阻塞。3.Semaphore...

2018-05-17 17:37:36 212

原创 Java并发编程八 线程池

Java并发编程八 线程池1.线程池作用1.降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。 2.提高响应速度。当任务到达时,任务可以不需要的等到线程创建就能立即执行。 3.提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。2. 线程池ThreadPoolExecutor...

2018-05-16 17:20:38 275

原创 Java并发编程七 生产者消费者模式

Java并发编程七 生产者消费者模式生产者-消费者模式是一个经典的多线程设计模式,它为多线程的协作提供了良好的解决方案。在生产者-消费者模式中,通常有两类线程,即若干个生产者线程和若干个消费者线程。生产者线程负责提交用户请求,消费者线程负责处理用户请求。生产者和消费者之间通过共享内存缓冲区进行通信。 生产者-消费者模式中的内存缓冲区的主要功能是数据在多线程间的共享。此外,通过该缓冲区,可以缓...

2018-05-15 16:05:44 321 1

原创 Java并发编程六 Master-Worker模式

Java并发编程六 Master-Worker模式Master-Worker是常用的并行计算模式。它的核心思想是系统由两类进程协作工作:Master进程和Worker进程。Master负责接收和分配任务,Worker负责处理子任务。当各个Worker子进程处理完成后,会将结果返回给Master,由Master作归纳总结。其好处就是能将一个大任务分解成若干个小任务,并行执行,从而提高系统的吞吐量...

2018-05-15 14:33:29 379

原创 Java并发编程五 Future模式

Java并发编程五 Future模式Future是并发编程中的一种设计模式,对于多线程来说,线程A需要等待线程B的结果,它没必要一直等待B,可以先拿到一个未来的Future,等B有了结果后再取真实的结果。 它的核心思想就是异步调用。当我们需要调用一个函数,但是这个函数执行很慢,如果我们不需要马上知道结果,我们可以立即返回,让它在后台慢慢处理这个请求,对于调用者来说,可以先处理一些其他任务,这...

2018-05-14 18:09:23 335

原创 Java并发编程四 并发容器

Java并发编程四 并发容器java.util.concurrent包提供了Java多线程情况下保证线程安全的一系列容器,包括Map,List,Set,Queue接口下的并发类实现。1.ConcurrentHashMapConcurrentMap接口下有两个实现,一个是ConcurrentHashMap和ConcurrentSkipListMap(支持并发排序)。 Concurren

2018-05-11 15:00:01 301

原创 Java并发编程三 线程间通信

Java并发编程三 线程间通信线程间通信:多个线程在处理同一个资源,并且任务不同时,需要线程通信来帮助解决线程之间对同一个变量的使用或操作。就是多个线程在操作同一份数据时, 避免对同一共享变量的争夺。1.wait/notify使用wait/notify方法实现线程间通信(wait/notify为Object方法)wait和notify必须配合synchronized关键字使用w

2018-05-10 11:11:24 239

原创 Java并发编程二 线程安全

Java并发编程二 线程安全线程安全概念: 当多个线程访问某一个类(对象或方法)时,这个对象始终都能表现出正确的行为,那么这个类(对象或方法)就是线程安全的。

2018-05-09 15:09:56 404

原创 Java并发编程一 多线程

Java并发编程一 多线程Java并发编程是一个很热点的话题,无论在面试时候还是在高并发的场景中。都会涉及到Java的并发编程相关的知识。Java的并发编程有两个主要的基础知识,一个是线程安全另一个是线程间通信。摘要 1,线程概念 2,Java线程的实现方式 3,Java线程状态流转介绍 4,Thread类中的常用方法分析

2018-05-04 16:36:30 2405 1

原创 23种设计模式总结

23种设计模式总结23种设计模式写了很长时间才全部写完。在这里写下总结以便以后查阅时候方便。1.创建型创建型:除了直接new来实例化对象外,提供了多种隐藏创建逻辑的生成对象的方法1.1 单例模式(Singleton)意图:保证一个类只有一个实例,并且提供全局的访问点。 特点: 1,私有,静态的类属性(instance) 2,私有的构造方法(保证其他类不能实例化此类) 3,公有,静态的访问实例

2018-04-17 15:59:03 324

原创 linux mint18 字体设置(微软雅黑)

linux mint18 字体设置(微软雅黑)最近这次重新装linux mint18.3系统,发现早先的系统字体怎么设置的忘记了。然后试试文泉译字体,发现很别扭,因为公司电脑用的windows。在公司看一天电脑回家在看文泉译字体 感觉差距特别大。所以尝试将linux mint 的字体设置成微软雅黑。这一切的前提是你得有微软雅黑字体,你可以通过自己的windows电脑上的C:\Windows...

2018-04-11 21:59:53 7202

原创 Python dict实现

Python dict实现上次写了Java的HashMap实现方式,Java和Python的实现方式是不同的Java用的是拉链法实现的稀疏数组,而Python用的是 开放定址法。1.散列表散列表其实是一个稀疏数组(总是有空白元素的数组称为稀疏数组),散列表里的单元通常叫作表元(bucket)。在 dict 的散列表当中,每个键值对都占用一个表元,每个表元都有两个部分,一个是对键的引用,另一个是对值的

2018-04-04 15:03:52 797

原创 访问者模式(Visitor)

访问者模式(Visitor)1.意图表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。 在下列情况下使用 Visitor模式: • 一个对象结构包含很多类对象,它们有不同的接口,而你想对这些对象实施一些依赖于其具体类的操作。 • 需要对一个对象结构中的对象进行很多不同的并且不相关的操作,而你想避免让这些操作“污染”这些对象的类。 Visi

2018-03-29 18:21:42 308

原创 模板方法模式(TemplateMethod)

模板方法模式(TemplateMethod)1.意图定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。 TemplateMethod使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 模板方法应用于下列情况: • 一次性实现一个算法的不变的部分,并将可变的行为留给子类来实现。 • 各子类中公共的行为应被提取出来并集中到一个公共父类中以避免代码重复。首先识别现有代码中的不同之处

2018-03-29 17:32:07 224

原创 策略模式(Strategy)

策略模式(Strategy)1.意图定义一系列的算法 ,把它们一个个封装起来 , 并且使它们可相互替换。本模式使得算法可独立于使用它的客户而变化。 当存在以下情况时使用 Strategy模式 • 许多相关的类仅仅是行为有异。“策略”提供了一种用多个行为中的一个行为来配置一个类的方法。 • 需要使用一个算法的不同变体。例如,你可能会定义一些反映不同的空间 /时间权衡的算法。当这些变体实现为一个算

2018-03-29 16:58:08 213

原创 状态模式(State)

状态模式(State)1.意图允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。 在下面的两种情况下均可使用 State模式: • 一个对象的行为取决于它的状态 , 并且它必须在运行时刻根据状态改变它的行为。 • 一个操作中含有庞大的多分支的条件语句,且这些分支依赖于该对象的状态。这个状态通常用一个或多个枚举常量表示。通常 , 有多个操作包含这一相同的条件结构。

2018-03-29 16:32:31 294

原创 备忘录模式(Memento)

备忘录模式(Memento)1.意图在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。 有时有必要记录一个对象的内部状态。为了允许用户取消不确定的操作或从错误中恢复过来,需要实现检查点和取消机制 , 而要实现这些机制,你必须事先将状态信息保存在某处,这样才能将对象恢复到它们先前的状态。

2018-03-29 15:23:53 158

原创 观察者模式(Observer)

观察者模式(Observer)1.意图定义对象间的一种一对多的依赖关系 ,当一个对象的状态发生改变时 , 所有依赖于它的对象都得到通知并被自动更新。 将一个系统分割成一系列相互协作的类有一个常见的副作用:需要维护相关对象间的一致性。我们不希望为了维持一致性而使各类紧密耦合,因为这样降低了它们的可重用性。 在以下任一情况下可以使用观察者模式 : • 当一个抽象模型有两个方面 , 其中一个方面依赖

2018-03-29 12:44:08 191

原创 中介者模式(Mediator)

中介者模式(Mediator)1.意图用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。 在下列情况下使用中介者模式 : • 一组对象以定义良好但是复杂的方式进行通信。产生的相互依赖关系结构混乱且难以理解。 • 一个对象引用其他很多对象并且直接与这些对象通信 ,导致难以复用该对象。 • 想定制一个分布在多个类中的行为

2018-03-29 11:25:15 202

原创 迭代器模式(Iterator)

迭代器模式(Iterator)1.意图提供一种方法顺序访问一个聚合对象中各个元素 , 而又不需暴露该对象的内部表示。 针对不同的需要,可能要以不同的方式遍历这个列表。但是即使可以预见到所需的那些遍历操作,你可能也不希望列表的接口中充斥着各种不同遍历的操作。有时还可能需要在同一个表列上同时进行多个遍历。 迭代器模式可用来: • 访问一个聚合对象的内容而无需暴露它的内部表示。 • 支持对聚合对象

2018-03-28 17:47:20 165

原创 解释器模式(Interpreter)

解释器模式(Interpreter)1.意图给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子. 如果一种特定类型的问题发生的频率足够高 , 那么可能就值得将该问题的各个实例表述为一个简单语言中的句子。这样就可以构建一个解释器 , 该解释器通过解释这些句子来解决该问题。

2018-03-28 16:56:13 769

原创 命令模式(Command)

命令模式(Command)1.意图将一个请求封装为一个对象,从而使你可用不同的请求对客户端进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。 例: 老板让员工刷碗,扫地等,如果用命令模式 老板类不需要关心哪个员工去干活,而是关心命令,老板只要发布命令,命令执行就可以了.

2018-03-13 17:29:24 220

原创 责任链模式(chain of responsibility)

责任链模式 (chain of responsibility)使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这 些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。

2018-03-13 15:32:29 231

原创 2017年度总结2018计划

2017总结2018计划2012年毕业到2018年,已经工作6年了,时间真快啊。今天是2018年第一天上班,回顾去年一年还是有很多收获的,无论在技术上还是工作中。再此写篇博客记录自己的生活点滴。2017工作收获在去年一年里经历过很多,在6月份时候提过涨薪,由于各种原因最后没有涨薪。和领导闹的很不愉快,感觉呆不下去了。然后考虑换工作。感觉自己技术应该没问题。想换个大公司。尝试过去丽兹行,...

2018-02-27 10:26:02 402

原创 Linux mint 安装步骤

Linux mint 安装步骤家里的笔记本以前一直用Deepin系统,但是Deepin系统的wifi实在是太慢了。还有就是启动软件是有时候总没响应,卡死机。 最近重装系统,选择了mint ,在这里记录下安装步骤。1.制作U盘启动盘下载iso文件,可以在官网下载或者找国内镜像站下载。官网下载地址:https://www.linuxmint.com/edition.php?id=246网易镜像下载

2018-02-02 12:55:27 57038 7

实战Java高并发程序设计(高清+带书签完整版)

《实战Java高并发程序设计》主要介绍基于Java的并行程序设计基础、思路、方法和实战。第一,立足于并发程序基础,详细介绍Java中进行并行程序设计的基本方法。第二,进一步详细介绍JDK中对并行程序的强大支持,帮助读者快速、稳健地进行并行程序开发。第三,详细讨论有关“锁”的优化和提高并行程 序性能级别的方法和思路。第四,介绍并行的基本设计模式及Java 8对并行程序的支持和改进。第五,介绍高并发框架Akka的使用方法。最后,详细介绍并行程序的调试方法。 在过去单核CPU时代,单任务在一个时间点只能执行单一程序,随着多核CPU的发展,并行程序开发就显得尤为重要。, 《实战Java高并发程序设计》主要介绍基于Java的并行程序设计基础、思路、方法和实战。第一,立足于并发程序基础,详细介绍Java中进行并行程序设计的基本方法。第二,进一步详细介绍JDK中对并行程序的强大支持,帮助读者快速、稳健地进行并行程序开发。第三,详细讨论有关“锁”的优化和提高并行程序性能级别的方法和思路。第四,介绍并行的基本设计模式及Java 8对并行程序的支持和改进。第五,介绍高并发框架Akka的使用方法。最后,详细介绍并行程序的调试方法。

2018-05-03

jquery-ui-1.11.4

jquery-ui-1.11.4.custom 很好用的ui插件

2015-08-18

空空如也

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

TA关注的人

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