自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(22)
  • 资源 (8)
  • 问答 (1)
  • 收藏
  • 关注

原创 【综合知识】系分综合知识总结

https://wenku.baidu.com/view/789092eeb8f67c1cfad6b887.html

2017-03-31 15:22:14 379

原创 【容器】并发队列ConcurrentLinkedQueue和阻塞队列LinkedBlockingQueue用法

并发队列ConcurrentLinkedQueue和阻塞队列LinkedBlockingQueue用法在Java多线程应用中,队列的使用率很高,多数生产消费模型的首选数据结构就是队列(先进先出)。Java提供的线程安全的Queue可以分为阻塞队列和非阻塞队列,其中阻塞队列的典型例子是BlockingQueue,非阻塞队列的典型例子是ConcurrentLinkedQueue,在实际应用中要

2017-03-29 11:26:13 434

转载 微服务时代 怎么看华为软件开发云实现DevOps落地

【51CTO.com原创稿件】 云计算改变了服务构建和交付的模式,从最初饱受争议到万千宠爱,扮演着越来越重要的角色,为业务创新和价值交付奠定了基础。以此同时,在软件行业中,随着移动、社交、大数据、IoT、人工智能等众多新技术的快速发展,颠覆式创新和跨界竞争加剧,企业急需快速而且持续的创新能力,传统研发能力越来越难于满足新型研发的要求,软件生产力正在6个方面发生巨大变革:· 研发场景...

2017-03-29 09:52:31 2001

原创 【详解设计模式】工厂模式

工厂模式工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。介绍意图:定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。

2017-03-27 20:13:31 875

原创 【详解设计模式-简介】设计模式简介

 设计模式简介设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了重用代码、让代码更容易被他人理解、保证...

2017-03-27 20:12:24 367

转载 【设计模式】Java开发中的23种设计模式详解(转)

http://www.cnblogs.com/maowang1991/archive/2013/04/15/3023236.html设计模式(Design Patterns)                                  ——可复用面向对象软件的基础设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模...

2017-03-27 18:06:37 739

原创 【容器】深入理解HashMap原理

HashMap的工作原理是近年来常见的Java面试题。几乎每个Java程序员都知道HashMap,都知道哪里要用HashMap,知道HashTable和HashMap之间的区别,那么为何这道面试题如此特殊呢?是因为这道题考察的深度很深。这题经常出现在高级或中高级面试中。投资银行更喜欢问这个问题,甚至会要求你实现HashMap来考察你的编程能力。ConcurrentHashMap和其它同步集合的引入...

2017-03-25 11:11:24 441

转载 【并发】ConcurrentHashMap原理分析

 集合是编程中最常用的数据结构。而谈到并发,几乎总是离不开集合这类高级数据结构的支持。比如两个线程需要同时访问一个中间临界区(Queue),比如常会用缓存作为外部文件的副本(HashMap)。这篇文章主要分析jdk1.5的3种并发集合类型(concurrent,copyonright,queue)中的ConcurrentHashMap,让我们从原理上细致的了解它们,能够让我们在深度项目开发中获...

2017-03-24 17:26:18 411

原创 【并发】ThreadLocal可能引起的内存泄露

threadlocal里面使用了一个存在弱引用的map,当释放掉threadlocal的强引用以后,map里面的value却没有被回收.而这块value永远不会被访问到了. 所以存在着内存泄露. 最好的做法是将调用threadlocal的remove方法.  在threadlocal的生命周期中,都存在这些引用. 看下图: 实线代表强引用,虚线代表弱引用.    每个thread中都存...

2017-03-23 16:44:12 540

转载 【集合】深入理解WeakHashmap

(一) 查看API文档,WeakHashmap要点如下:1. 以弱键 实现的基于哈希表的 Map。在 WeakHashMap 中,当某个键不再正常使用时,将自动移除其条目。更精确地说,对于一个给定的键,其映射的存在并不阻止垃圾回收器对该键的丢弃,这就使该键成为可终止的,被终止,然后被回收。丢弃某个键时,其条目从映射中有效地移除2. WeakHashMap 类的行为部分取决于垃圾回收

2017-03-23 15:26:32 406

原创 【并发学习】名博好文记录

1、并发编程博客-海子

2017-03-23 14:09:45 300

原创 【https】九个问题从入门到熟悉HTTPS

Q1: 什么是 HTTPS?BS: HTTPS 是安全的 HTTP HTTP 协议中的内容都是明文传输,HTTPS 的目的是将这些内容加密,确保信息传输安全。最后一个字母 S 指的是 SSL/TLS 协议,它位于 HTTP 协议与 TCP/IP 协议中间。 Q2: 你说的信息传输安全是什么意思BS: 信息传输的安全有三个方面: 1、客户端和服务器直接的通信只2、...

2017-03-22 22:33:11 504

转载 【Netty】Netty 高性能之道

NettyNetty 系列之 Netty 高性能之道1. 背景1.1. 惊人的性能数据最近一个圈内朋友通过私信告诉我,通过使用 Netty4 + Thrift 压缩二进制编解码技术,他们实现了 10 W TPS(1 K 的复杂 POJO 对象)的跨节点远程服务调用。相比于传统基于 Java 序列化 +BIO(同步阻塞 IO)的通信框架,性能提升了8倍多。事实上,我对这个数据并不...

2017-03-18 20:48:55 360

原创 【并发】并发-不可变对象

一个对象如果在创建后不能被修改,那么就称为不可变对象。在并发编程中,一种被普遍认可的原则就是:尽可能的使用不可变对象来创建简单、可靠的代码。  在并发编程中,不可变对象特别有用。由于创建后不能被修改,所以不会出现由于线程干扰产生的错误或是内存一致性错误。  但是程序员们通常并不热衷于使用不可变对象,因为他们担心每次创建新对象的开销。实际上这种开销常常被过分高估,而且使用不可变对象所

2017-03-17 17:23:29 335

原创 【操作系统】信号量与P、V操作

知识点:信号量机制主要有整形信号量、记录性信号量、信号量集机制。信号量是一个整形变量,根据控制对象的不同赋不同的值。信号量可分为公用信号量和私用信号量两类。公用信号量:实现进程间的互斥,初值=1或资源的数目私用信号量:实现进程间的同步,初值=0或某个整数信号量S的物理意义:S>=0时表示某资源的可用数,s<0时其绝对值表示阻塞队列中等待该资源的进程数。P、V操作是实...

2017-03-17 12:15:14 12368 3

原创 【并发】volatile是否能保证数组中元素的可见性?

 问题 一个线程向volatile的数组中设置值,而另一个线程向volatile的数组中读取。比如seg.setValue(2),随后另一个线程调用seg.getValue(2),前一个线程设置的值对读取的线程是可见的吗?我看书上说volatile的数组只针对数组的引用具有volatile的语义,而不是它的元素。 对一个共享变量使用Volatile关键字保证了线程间对该数...

2017-03-16 14:53:53 6024 3

转载 【并发】volatile详解

一、不得不提的volatilevolatile是个很老的关键字,几乎伴随着JDK的诞生而诞生,我们都知道这个关键字,但又不太清楚什么时候会使用它;我们在JDK及开源框架中随处可见这个关键字,但并发专家又往往建议我们远离它。比如Thread这个很基础的类,其中很重要的线程状态字段,就是用volatile来修饰,见代码 /* Java thread status for tools,/* J...

2017-03-16 01:45:19 345

原创 【OS】虚拟存储器,虚拟存储器的工作过程,调度方式,Cache的异同点

所谓虚拟存储器(Virtual Memory),就是采用一定的方法将一定的外存容量模拟成内存,同时对程序进出内存的方式进行管理,从而得到一个比实际内存容量大得多的内存空间,使得程序的运行不受内存大小的限制。虚拟存储区的容量与物理主存大小无关,而受限于计算机的地址结构和可用磁盘容量。目录虚拟存储器的工作过程 虚拟存储器的调度方式 虚拟存储器和Cache的异同点 虚拟存储器地址变换算法 ...

2017-03-07 20:35:55 3692 1

转载 【Spring Cloud】Spring Cloud构建微服务架构

文章汇总Spring Cloud构建微服务架构(一)服务注册与发现 Spring Cloud构建微服务架构(二)服务消费者 http://bbs.springcloud.cn/d/1-dd-spring-cloud欢迎关注公众号:...

2017-03-04 22:26:28 329

转载 【并发】java使用volatile的场景

Java 语言中的 volatile 变量可以被看作是一种 “程度较轻的 synchronized”;与 synchronized 块相比,volatile 变量所需的编码较少,并且运行时开销也较少,但是它所能实现的功能也仅是synchronized 的一部分。本文介绍了几种有效使用 volatile 变量的模式,并强调了几种不适合使用 volatile 变量的情形。锁提供了两种主要特性:互斥...

2017-03-04 11:33:57 504

原创 【并发】java线程内存模型,线程、工作内存、主内存

java线程内存模型线程、工作内存、主内存三者之间的交互关系图: key edeas所有线程共享主内存每个线程有自己的工作内存refreshing local memory to/from main memory must  comply to JMM rules 产生线程安全的原因线程的working memory是cpu的寄存器和高速缓存的抽象描述:现在...

2017-03-04 11:13:36 514

原创 【并发】java并发之可见性与原子性

 一、定义1.可见性在多核处理器中,如果多个线程对一个变量(假设)进行操作,但是这多个线程有可能被分配到多个处理器中运行,那么编译器会对代码进行优化,当线程要处理该变量时,多个处理器会将变量从主存复制一份分别存储在自己的片上存储器中,等到进行完操作后,再赋值回主存。(这样做的好处是提高了运行的速度,因为在处理过程中多个处理器减少了同主存通信的次数);同样在单核处理器中这样由于“备份”造...

2017-03-03 18:11:16 448

算法第四版-扫描版-Robert Sedgewick

算法第四版 目录:第1章 基 础 ....................... . ..........................1 1.1 基础编程模型 ..................................... 4 1.1.1 Java程序的基本结构 ................. 4 1.1.2原始数据类型与表达式 ............. 6 1.1.3 语句.........................................8 1.1.4 简便记法 ..................................9 L1.5 数组.......................................10 1.1.6 静态方法................................12 1.1.7 API.........................................16 1.1.8 字符串....................................20 1.1.9 输入输出................................21 1.1.10 二分查找 .............................. 28 1.1.11 展望 ..................................... 30 1.2 数据抽象...........................................38 1.2.1 使用抽象数据类型 .................. 38 1.2.2抽象数据类型举例 .................. 45 1.2.3抽象数据类型的实现 ............... 52 1.2.4更多抽象数据类型的实现 ........ 55 1.2.5 数据类型的设计......................60 1 .3 背包、队列和栈 ................................ 74 1.3.1 API.........................................74 1.3.2 集合类数据类型的实现 ........... 81 1.3.3 链表 .......................................89 1.3.4 综述.......................................98 1 .4 算法分析.........................................108 1.4.1 科学方法 .............................. 108 1.4.2 观察 ..................................... 108 1.4.3 数学模型 .............................. 112 1.4.4增长数量级的分类 ................ 117 1.4.5设计更快的算法 .................... 118 1.4.6 倍率实验 .............................. 121 1.4.7 注意事项 .............................. 123 1.4.8 处理对于输入的依赖 ............. 124 1.4.9 内存 ..................................... 126 L4.10 展望....................................129 1 .5 案例研究:union-find算法................136 1.5.1 动态连通性 ........................... 136 1.5.2 实现 ..................................... 140 1.5.3 展望 ..................................... 148 第2章 排 序 ...............................................152 2 .1 初级排序算法 ..................................153 2.1.1 游戏规则 .............................. 153 2.1.2 选择排序 .............................. 155 2.1.3 插入排序 .............................. 157 2.1.4排序算法的可视化 ................ 159 2.1.5 比较两种排序算法 ................ 159 2.1.6 希尔排序 .............................. 162 2.2 归并排序 .............................. .......... 170 2.2.1原地归并的抽象方法 ............. 170 2 .2 .2 自顶向下的归并排序 ............. 171 2 .2 .3 自底向上的归并排序 ............. 175 2.2.4排序算法的复杂度 ................ 177 2 .3 快速排序.........................................182 2.3.1 基本算法 .............................. 182 2.3.2 性能特点 .............................. 185 2.3.3 算法改进 .............................. 187 2.4 优先队列.........................................195 2.4.1 API .......................................195 2.4.2 初级实现 .............................. 197 2.4.3 堆的定义 .............................. 198 2.4.4 堆的算法 .............................. 199 2.4.5 堆排序 ..................................205 2.5 应用................................................214 2.5.1 将各种数据排序 .................... 214 2.5.2我应该使用哪种排序算法 ...... 218 2.5.3 问题的归约 ........... • ............... 219 2.5.4排序应用一览 ....................... 221 第3章 查 找 ...............................................227 3.1 符号表 ............................................ 228 3.1.1 API .......................................228 3.1.2 有序符号表...........................230 3.1.3 用例举例 .............................. 233 3.1.4 无序链表中的顺序查找 ......... 235 3.1.5 有序数组中的二分查找 ......... 238 3.1.6 对二分查找的分析 ................ 242 3.1.7 预览 ..................................... 244 3.2 二叉查找树 ..................................... 250 3.2.1 基本实现 .............................. 250 3.2.2 分析 ..................................... 255 3.2.3 有序性相关的方法与删除 操作 ..................................... 257 3 .3 平衡查找树 ..................................... 269 3.3.1 2-3 查找树 ............................. 269 3.3.2 红黑二叉查找树 .................... 275 3.3.3 实现 ..................................... 280 3.3.4 删除操作 .............................. 282 3.3.5 红黑树的性质 ....................... 284 3.4 散列表 ............................................ 293 3.4.1 散列函数 ............ . ................. 293 3.4.2 基于拉链法的散列表 ............. 297 3.4.3 基于线性探测法的散列表 ...... 300 3.4.4 调整数组大小 ....................... 304 3.4.5 内存使用 .............................. 306 3.5 应用................................................312 3.5.1 我应该使用符号表的哪种 实现 .. . ... ...............................312 3.5.2 集合的 API.............................313 3.5.3 字典类用例...........................315 3.5.4 索引类用例...........................318 3.5.5 稀疏向量 .............................. 322 第4章 图 .................................................. 329 4.1 无向图 ............................................ 331 4.1.1 术语表..................................331 4.1.2 表示无向图的数据类型 ......... 333 4.1.3 深度优先搜索 ....................... 338 4.1.4 寻找路径 .............................. 342 4.1.5 广度优先搜索 ....................... 344 4.1.6 连通分量 .............................. 349 4.1.7 符号图..................................352 4.1.8 总结 ..................................... 358 4.2 有向图 ............................................ 364 4.2.1 术语 ..................................... 364 4.2.2有向图的数据类型 ................ 365 4.2.3 有向图中的可达性 ................ 367 4.2.4 环和有向无环图 .................... 369 4.2.5 有向图中的强连通性 ............. 378 4.2.6 总结 ..................................... 385 4.3 最小生成树 ..................................... 390 4.3.1 原理 ..................................... 391 4.3.2 加权无向图的数据类型 ......... 393 4.3.3 最小生成树的API和测试 用例 ..................................... 396 4.3.4 Prim 算法 .............................. 398 4.3.5 Prim算法的即时实现 ............. 401 4.3.6 Kruskal 算法 .......................... 404 4.3.7 展望 ..................................... 407 4.4 最短路径.........................................412 4.4.1 最短路径的性质 .................... 413 4.4.2 加权有向图的数据结构 ......... 414 4.4.3 最短路径算法的理论基础 ...... 420 4.4.4 Dijkstra 算法 .......................... 421 4.4.5 无环加权有向图中的最短 路径算法 .............................. 425 4.4.6 一般加权有向图中的最短 路径问题 .............................. 433 4.4.7 展望 ..................................... 445 第5章 字 符 串 ........................................... 451 5 .1 字符串排序 ..................................... 455 5.1.1 键索引计数法 ....................... 455 5.1.2低位优先的字符串排序 ......... 458 5.1.3 尚位优先的字符串排序 ..........461 5.1.4三向字符串快速排序 ............. 467 5.1.5字符串排序算法的选择 ......... 470 5 .2 单词查找树 ..................................... 474 5.2.1 单词查找树 ...........................475 5.2.2单词查找树的性质 ................ 483 5.2.3 三向单词查找树 .................... 485 5.2.4三向单词查找树的性质 ......... 487 5.2.5 应该使用字符串符号表的 哪种实现 .............................. 489 5 .3 子字符串查找..................................493 5.3.1 历史简介 .............................. 493 5.3.2暴力子字符串查找算法..........494 5.3.3 Knuth-Morris-Pratt子字符串 查找算法 .............................. 496 5.3.4 Boyer-Moore字符串查找算 法 .........................................502 5.3.5 Rabin-Karp指纹字符串金找 算法 ..................................... 505 5.3.6 总结 ..................................... 509 5 .4 正则表达式 ..................................... 514 5.4.1 使用正则表达式描述模式 ...... 514 5.4.2 缩略写法 .............................. 516 5.4.3 正则表达式的实际应用 ......... 517 5.4.4 非确定有限状态自动机 ......... 518 5.4.5 模拟NFA的运行 .................... 520 5.4.6构造与正则表达式对应的 NFA ..................................... 522 5 .5 数据压缩.........................................529 5.5.1 游戏规则 .............................. 529 5.5.2 读写二进制数据 .................... 530 5.5.3 局限 ..................................... 533 5.5.4 热身运动:基因组 ................ 534 5.5.5 游程编码 .............................. 537 5.5.6 霍夫曼压缩 ...........................540 第6章 背 景 ...............................................558 胃弓I............................................................611 --------------------- 欢迎关注公众号:程序员面试经验分享(jobbible)

2018-11-11

java与opencv结合,进行人脸检测

java与opencv结合,进行人脸检测,在我的博客有详细说明 博客地址:http://blog.csdn.net/moshenglv

2015-01-05

java抓包需要的包

java抓包程序,使用jpcpa.jar包 java的JPCAP.jar,不过一直调用的都是winpcap(jpcap.dll)实现的许多接口。 压缩包包含 jpcap.jar和jpcap.dll

2014-12-30

湖南大学操作系统实验报告

湖大操作系统实验报告,附源代码,一共五个实验,中断处理, 银行家算法,CPU调度, 页面置换算法, 生产者消费者算法,

2013-01-12

C++课件 985

C++课件 很详细

2012-12-18

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

TA关注的人

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