04 2018 档案
【算法】单源最短路——Dijkstra
摘要:对于固定起点的最短路算法,我们称之为单源最短路算法。单源最短路算法很多,最常见的就是dijkstra算法。 dijkstra主要用的是一种贪心的思想,就是说如果i...s...t...j是最短路,那么i和j之间的任意两点s,t之间也一定是最短路,非常好证,如果s,t之间不是最短路,那么必然存在最短路 阅读全文
posted @ 2018-04-24 10:05 做个快乐的自己 阅读(511) 评论(0) 推荐(0) 编辑
海量数据处理之top K问题
摘要:题目: CVTE笔试题https://www.1024do.com/?p=3949 搜索引擎会通过日志文件把用户每次检索使用的所有检索串都记录下来,每个查询串的长度为1-255字节。 假设目前有一千万个记录(这些查询串的重复度比较高,虽然总数是1千万,但如果除去重复后,不超过3百万个。一个查询串的重 阅读全文
posted @ 2018-04-24 09:53 做个快乐的自己 阅读(3656) 评论(0) 推荐(0) 编辑
高性能场景下,HashMap的优化使用建议
摘要:1. HashMap 在JDK 7 与 JDK8 下的差别 顺便理一下HashMap.get(Object key)的几个关键步骤,作为后面讨论的基础。 1.1 获取key的HashCode并二次加工 因为对原Key的hashCode质量没信心,怕会存在大量冲突,HashMap进行了二次加工。 JD 阅读全文
posted @ 2018-04-23 15:32 做个快乐的自己 阅读(787) 评论(0) 推荐(0) 编辑
Java中的值传递与引用传递
摘要:1.基本类型和引用类型在内存中的保存 Java中数据类型分为两大类,基本类型和对象类型。相应的,变量也有两种类型:基本类型和引用类型。 基本类型的变量保存原始值,即它代表的值就是数值本身; 而引用类型的变量保存引用值,”引用值”指向内存空间的地址(存放对象(数据)的首地址),代表了某个对象的引用,而 阅读全文
posted @ 2018-04-16 10:26 做个快乐的自己 阅读(292) 评论(0) 推荐(0) 编辑
Java的三种代理模式
摘要:https://blog.csdn.net/goskalrie/article/details/52458773 1.代理模式 代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象 阅读全文
posted @ 2018-04-10 21:40 做个快乐的自己 阅读(741) 评论(0) 推荐(0) 编辑
垃圾收集器(GC)
摘要:堆分区:所有new的对象都会存放在堆中 > 新生代(Young Generation):存放生命周期短的对象,具体还分为Eden和Survivor两个区,其中Survivor分为From Space和To Space; > 旧生代(Old Generation):存放生命周期长的对象 > 持久代(P 阅读全文
posted @ 2018-04-10 21:07 做个快乐的自己 阅读(223) 评论(0) 推荐(0) 编辑
线程池的执行原则及配置参数详解
摘要:池是一种非常优秀的设计思想,通过建立池可以有效的利用系统资源,节约系统性能。Java 中的线程池就是一种非常好的实现,从 JDK 1.5 开始 Java 提供了一个线程工厂 Executors 用来生成线程池,通过 Executors 可以方便的生成不同类型的线程池。但是要更好的理解使用线程池,就需 阅读全文
posted @ 2018-04-10 21:06 做个快乐的自己 阅读(450) 评论(0) 推荐(0) 编辑
java 创建string对象机制 字符串缓冲池 字符串拼接机制 字符串中intern()方法
摘要:字符串常量池:字符串常量池在方法区中 为了优化空间,为了减少在JVM中创建的字符串的数量,字符串类维护了一个字符串池,每当代码创建字符串常量时,JVM会首先检查字符串常量池。如果字符串已经存在池中,就返回池中的实例引用。如果字符串不在池中,就会实例化一个字符串并放到池中。Java能够进行这样的优化是 阅读全文
posted @ 2018-04-10 20:30 做个快乐的自己 阅读(372) 评论(0) 推荐(0) 编辑
深入剖析Java中的装箱和拆箱(缓存池技术)
摘要:以下是本文的目录大纲: 一.什么是装箱?什么是拆箱? 简单一点说,装箱就是 自动将基本数据类型转换为包装器类型;拆箱就是 自动将包装器类型转换为基本数据类型。 二.装箱和拆箱是如何实现的 1:反编译class文件:javap -c 类名 2:装箱过程是通过调用包装器(Integer)的valueOf 阅读全文
posted @ 2018-04-10 11:41 做个快乐的自己 阅读(3015) 评论(1) 推荐(3) 编辑
单例模式
摘要:单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该 阅读全文
posted @ 2018-04-09 13:56 做个快乐的自己 阅读(200) 评论(0) 推荐(0) 编辑
【深入理解Java集合框架】红黑树讲解(上)
摘要:作者:CarpenterLee(转载已获得作者许可,如需转载请与原作者联系) 文中所有图片点击之后均可查看大图! 史上最清晰的红黑树讲解(上) 本文github地址 本文以Java TreeMap为例,从源代码层面,结合详细的图解,剥茧抽丝地讲解红黑树(Red-Black tree)的插入,删除以及 阅读全文
posted @ 2018-04-08 21:18 做个快乐的自己 阅读(252) 评论(0) 推荐(0) 编辑
红黑树( Red-Black Tree ) - 笔记
摘要:1. 红黑树属性:根到叶子的路径中,最长路径不大于最短路径的两倍。 2. 红黑树是一个二叉搜索树,并且有 a. 每个节点除了有左、右、父节点的属性外,还有颜色属性,红色或者黑色。 b. ( 根属性 ) 红黑树的根只能是黑色 c. ( 红色属性 ) 红色节点的子节点只能是黑色 d. ( 黑色属性 ) 阅读全文
posted @ 2018-04-08 21:03 做个快乐的自己 阅读(166) 评论(0) 推荐(0) 编辑
TreeMap - 源代码学习笔记
摘要:TreeMap 实现了 NavigableMap 接口,而NavigableMap 接口继承于 SortedMap接口。 所有本文还会记录 SortedMap 和 NavigableMap 的阅读笔记。 SortedMap 1. 排序的比较应该和 equals(Object) 保持一致 2. 应该提 阅读全文
posted @ 2018-04-08 16:42 做个快乐的自己 阅读(173) 评论(0) 推荐(0) 编辑
我的心曾悲伤七次
摘要:The first time when I saw her being meek that she might attain height. 第一次,当它本可进取时,却故作谦卑; The second time when I saw her limping before the crippled. 阅读全文
posted @ 2018-04-08 15:37 做个快乐的自己 阅读(132) 评论(0) 推荐(0) 编辑
我相信,青春没有地平线
摘要:或许,“青春是道明媚的忧伤。” --题记 听着那首熟悉的旋律,唱着那些熟悉的字句:“想飞上天,和太阳肩并肩,世界等着我去改变,想做的梦,从不怕别人看见,在这里我都能实现,大声欢笑让你我肩并肩,何处不能欢乐无限,抛开烦恼,勇敢的大步向前,我就站在舞台中间。我相信我就是我,我相信明天,我相信青春没有地平 阅读全文
posted @ 2018-04-08 15:36 做个快乐的自己 阅读(484) 评论(0) 推荐(0) 编辑
太容易失去的东西,往往本来就不属于你。
摘要:http://www.360doc.com/content/14/0307/08/1720781_358410387.shtml 太容易失去的东西,往往本来就不属于你。 http://www.360doc.com/content/14/0307/08/1720781_358410387.shtml 阅读全文
posted @ 2018-04-08 15:35 做个快乐的自己 阅读(377) 评论(0) 推荐(0) 编辑
生活的悲欢离合远在地平线以外,而眺望是一种青春的姿态
摘要:生活的悲欢离合远在地平线以外,而眺望是一种青春的姿态。 生活的悲欢离合远在地平线以外,而眺望是一种青春的姿态。 ☉那时我们还年轻。穿过残垣断壁苍松古柏,我们来到山崖上。沐浴着夕阳,心静如水,我们向云雾飘荡的远方眺望。其实啥也看不到,生活的悲欢离合远在地平线以外,而眺望是一种青春的姿态。——北岛《青灯 阅读全文
posted @ 2018-04-08 15:31 做个快乐的自己 阅读(901) 评论(0) 推荐(0) 编辑
顺便谈谈对于Java程序猿学习当中各个阶段的建议
摘要:引言 其实本来真的没打算写这篇文章,主要是LZ得记忆力不是很好,不像一些记忆力强的人,面试完以后,几乎能把自己和面试官的对话都给记下来。LZ自己当初面试完以后,除了记住一些聊过的知识点以外,具体的内容基本上忘得一干二净,所以写这篇文章其实是很有难度的。 但是,最近问LZ的人实在是太多了,为了避免重复 阅读全文
posted @ 2018-04-08 14:08 做个快乐的自己 阅读(247) 评论(0) 推荐(0) 编辑
Memcached内存管理模型分析
摘要:Memcached 是一个高性能的分布式内存对象缓存系统,它通过在内存中缓存数据和对象来减少读取数据库的次数,从而减轻RDBMS的负担,提高服务的速度、提升可扩展性。本文将基于memcached1.4.15版本源码,对其内存模型进行分析。 首先从业务需求出发。我们通过一条命令(如set)将一条键值对 阅读全文
posted @ 2018-04-08 13:40 做个快乐的自己 阅读(168) 评论(0) 推荐(0) 编辑
内存管理和GC算法以及回收策略
摘要:JVM内存组成结构 JVM栈由堆、栈、本地方法栈、方法区等部分组成,结构图如下所示: JVM内存回收 Sun的JVMGenerationalCollecting(垃圾回收)原理是这样的:把对象分为年青代(Young)、年老代(Tenured)、持久代(Perm),对不同生命周期的对象使用不同的算法。 阅读全文
posted @ 2018-04-08 13:16 做个快乐的自己 阅读(281) 评论(0) 推荐(0) 编辑
JVM内存模型
摘要:什么是Java虚拟机 此处涉及到两个概念: Java虚拟机,相当于我们定义的Java类 Java虚拟机实例,相当于new一个Java类 注意:Java虚拟机通过java.exe或javaw.exe来启动一个Java虚拟机实例 JVM生命周期 Java虚拟机中存在两种线程: 守护线程,例GC线程 非守 阅读全文
posted @ 2018-04-08 11:56 做个快乐的自己 阅读(138) 评论(0) 推荐(0) 编辑
分布式与集群的区别是什么?
摘要:http://blog.csdn.net/cutesource/article/details/5811914 在IDF05(Intel Developer Forum 2005)上,Intel首席执行官Craig Barrett就取消4GHz芯片计划一事,半开玩笑当众单膝下跪致歉,给广大软件开发者 阅读全文
posted @ 2018-04-03 10:02 做个快乐的自己 阅读(142) 评论(0) 推荐(0) 编辑
去哪儿网2018春招软件开发工程师、前段开发工程师编程题 - 题解
摘要:不难,都是常规的操作,故题解写得简单点。 软件开发工程师编程题 第一题:在字典中找自己的逆序 题目 有一个单词列表,一个初始单词,初始单词需要通过单词列表逐步变换得到自己的逆序,求变换所需的最短变换路径长度。 变换规则:每次只能变动1个字母,每次变换只能从单词列表中选取。 例如:初始单词hot,其逆 阅读全文
posted @ 2018-04-02 18:39 做个快乐的自己 阅读(308) 评论(0) 推荐(0) 编辑