- 博客(59)
- 收藏
- 关注
原创 计算机是怎么跑起来的?
01在学习工作中,经常会遇到些让我脑子短路无法回血的问题?你去评估下这项目需要几台机器能维持稳定性,CPU要几核,内存要多大?X模块偶发出现内存飙升的情况,你追查下原因顺便想想如何优化?瞬间,鸦雀无声甚至气氛一度及其尴尬。作为一个CURD男孩,写代码就是一把梭复制粘贴,那能管那么宽?仔细一想,我也是学过计算机组成原理、操作系统原理的男孩,岂能说怂就怂?这时,冯·诺依曼、寄存...
2020-02-10 16:58:00 416
原创 3年,从双非到百度的学习经验总结
01近年来,有些读者会问我一些形形色色的问题,让我很难去回答,甚至给不出建设性的意见。举个例子:我学习什么能进入优秀的互联网公司工作?我想做研发我应该学习什么?众所周知,这问题就像你问学霸说你这么厉害一样让人难以回答。我作为一个双非软工本科学生,经过大学自己摸索和不断试错,毕业开始在百度从事研发工作。其实,我当时也有很多的疑惑,在这里给大家讲讲我的踩坑历程。记忆中,我当...
2019-11-10 14:35:00 317 1
原创 桥接模式:探索JDBC底层实现
一、目录概要二、问题探究需求:假设要设计一个电脑商场管理系统的某个模块设计,电脑分为品牌和类型两个纬度,我们应该怎么解决?按照初学者的思路,利用继承就能简单粗暴的实现,那我们来看下这种思路的设计类图。从电脑纬度划分package com.aaron.bridge;public interface Computer { public void sale();}clas...
2019-06-29 17:39:00 161
原创 桥接模式:探索JDBC底层实现
一、目录概要二、问题探究需求:假设要设计一个电脑商场管理系统的某个模块设计,电脑分为品牌和类型两个纬度,我们应该怎么解决?按照初学者的思路,利用继承就能简单粗暴的实现,那我们来看下这种思路的设计类图。从电脑纬度划分package com.aaron.bridge;public interface Computer { public void sale();}cl...
2019-06-29 16:49:20 194
原创 并发编程(三):从AQS到CountDownLatch与ReentrantLock
并发编程(三):从AQS到CountDownLatch与ReentrantLock 一、目录1、AQS简要分析2、谈CountDownLatch 3、谈ReentrantLock4、谈消费者与生产者模式(notfiyAll/wait、signAll/await、condition)二、AQS...
2017-07-01 16:52:00 342
原创 并发编程(四):ThreadLocal从源码分析总结到内存泄漏
并发编程(四):ThreadLocal从源码分析总结到内存泄漏一、目录 1、ThreadLocal是什么?有什么用? 2、ThreadLocal源码简要总结? 3、ThreadLocal为什么会导致内存泄漏?二、ThreadLocal是什么?有什么用?引入话题:在并发条件下,如何正确获得共享数据?举例:假设有多个用户需要获取用户信息,一个线程对应一个...
2017-06-28 21:20:00 205
原创 Zookeeper:分布式程序的基石
Zookeeper:分布式程序的基石 一、目录1、zookeeper是什么?2、安装、配置、启动、监控3、javaApi基础用法4、应用场景5、CAP理论/paxos算法二、zookeeper简介官方版:zookeeper是一个分布式的,开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于...
2017-06-26 19:01:00 139
原创 观察者模式:探索消息推送与注册中心
观察者模式:探索消息推送与注册中心 一、引入话题-发散思考1、如果你是安卓开发工程师,是否经常遇到给所有的用户或者特定的用户推送消息的业务场景呢?例如:我曾经做的一款APP就是用极光推送一个消息,下载该APP的用户都能收到消息提示。2、如果你了解zookeeper分布式调节框架?假设一个集群有1000台机器Master-Slave结构...
2017-06-26 12:43:00 216
原创 并发编程(二):全视角解析volatile
并发编程(二):全视角解析volatile 一、目录 1、引入话题-发散思考 2、volatile深度解析 3、解决volatile原子性问题 4、volatile应用场景二、引入话题-发散思考public class T1 { /*volatile*/ boolean running=true;...
2017-06-23 20:44:00 70
原创 并发编程(一):从头到脚解读synchronized
并发编程(一):从头到脚解读synchronized 一、目录 1、多线程启动方式 2、synchronized的基本用法 3、深度解析synchronized 4、同步方法与非同步方法是否能同时调用? 5、同步锁是否可重入(可重入锁)? 6、异常是否会导致锁释放? 7、锁定某对象,对象属性改变是否会影响锁...
2017-06-23 11:04:00 84
原创 Hadoop化繁为简(三)—探索Mapreduce简要原理与实践
Hadoop化繁为简(三)—探索Mapreduce简要原理与实践 目录-探索mapreduce 1、Mapreduce的模型简介与特性?Yarn的作用? 2、mapreduce的工作原理是怎样的? 3、配置Yarn与Mapreduce、演示Mapreduce例子程序 4、javaApi开发Mapreduce程序发散思考-...
2017-06-06 09:36:00 165
原创 Windows平台开发Mapreduce程序远程调用运行在Hadoop集群—Yarn调度引擎异常
Windows平台开发Mapreduce程序远程调用运行在Hadoop集群—Yarn调度引擎异常 共享原因:虽然用一篇博文写问题感觉有点奢侈,但是搜索百度,相关文章太少了,苦苦探寻日志才找到解决方案。遇到问题:在windows平台上开发的mapreduce程序,运行迟迟没有结果。Mapreduce程序public class Tes...
2017-06-05 12:57:00 180
原创 hadoop安全模式
hadoop安全模式 遇见问题:org.apache.hadoop.dfs.SafeModeException: Cannot delete/user/hadoop/input. Name node is in safe mode解决办法:$bin/hadoop dfsadmin -safemode leave 如果配置了环境变量h...
2017-06-05 12:50:00 91
原创 建造者模式:设计角度重温游戏中的角色
建造者模式:设计角度重温游戏中的角色 应用场景 假设现在我们要设计DNF中的人物角色(鬼剑士、神枪手、魔法师、圣骑士、格斗家)。然而,利用面对对象的思想,必须先从实体入手,每一个角色都包含各种装备、武器、配饰,这些就当做要建造的零件,然后把装备零件组装起来,那么就是最终人物角色的能量值,然后它就将造成不同的伤害。 回忆过程:假设要创建一...
2017-05-30 17:44:00 185
原创 工厂模式:工厂方法与抽象工厂的战争
工厂模式:工厂方法与抽象工厂的战争 概述什么是工厂方法?什么是抽象工厂?工厂方法是指工厂生产产品,而抽象工厂是生产产品系列。例如,工厂方法是只生产运输工具比如马车、公共汽车、自行车,而抽象工厂生产轮胎、螺丝钉交通工具零件。工厂方法模式定义了一个创建对象的接口,但由子类决定实例化的类是哪一个。工厂方法让类把实例化推迟到子类。抽象工厂模...
2017-05-29 20:21:00 105
原创 原型模式(克隆模式):浅谈浅克隆与深克隆
原型模式(克隆模式):浅谈浅克隆与深克隆 克隆是什么?它的产生背景?当new的对象是多例的时候,new对象将会不断占据内存。特别是消耗内存的大对象,比如数据库连接等。平时运用的不多,只在spring等容器有见过,此处不多赘述,了解即可。浅克隆与深克隆是什么意思?通过案例逐步探讨。public class Star impleme...
2017-05-29 14:22:00 147
原创 单例模式:层层剖析寻找最高效安全的单例
单例模式:层层剖析寻找最高效安全的单例 问题来源 什么是单例?它的运用场景是什么? 单例模式是指保证在系统中只存在某类唯一对象。运用场景随处可见,例如工具类、Spring容器默认new对象等。 单例模式有几种实现方式? 饿汉式、懒汉式、双重检查锁式、内部类式、枚举式。 推荐使用方式? 饿汉式、内部类式。饿汉式...
2017-05-29 12:52:00 118
原创 24种设计模式和7大设计原则
24种设计模式和7大设计原则 创建型模式1、抽象工厂模式(Abstract factory pattern): 提供一个接口, 用于创建相关或依赖对象的家族, 而不需要指定具体类.2、生成器模式(Builder pattern): 使用生成器模式封装一个产品的构造过程, 并允许按步骤构造. 将一个复杂对象的构建与它的表示分离, 使得同样的构建过...
2017-05-17 20:41:00 93
原创 浅谈图的存储结构与遍历
浅谈图的存储结构与遍历 简述图的存储结构 图的存储结构分为:邻接矩阵与邻接表 邻接矩阵分为顶点、边表(1代表存在边、0代表不存在)。 邻接链表分为顶点(顶点信息、第一个边结点)、边表(顶点序号、下一个边结点)。 领结链表数据结构:public class VertexNode { private S...
2017-05-12 08:35:00 199
原创 彻底理清二叉排序树的插入、查找、删除
彻底理清二叉排序树的插入、查找、删除 二叉排序树的概述 二叉排序树也被成为二叉查找树或者二叉搜索树。它或者是一棵空的二叉树。它具备以下性质。 若它的左子树不空,则左子树上所有结点的值均小于根结点的值。 若它的右子树不空,则右子树上所有结点的值均大于根结点的值。 它的左右子树也都是二叉排序树。简述二叉排序树原理与实现 ...
2017-05-11 19:39:00 198
原创 浅谈顺序、折半查找
浅谈顺序、折半查找 线性表查找的实现原理 1、线性表查找:顺序查找、折半查找。 2、顺序查找的实现思想 遍历全表,判断值是否相等,俗称蛮力法。 3、折半查找 步骤一:设置初始查找取件:left=0;right=n; 步骤二:测试查找区间[left,right]是否存在,若不存在,则查找失败,否则 ...
2017-05-11 18:13:00 155
原创 Hadoop化繁为简(二)—层层递进轻松入门hdfs
Hadoop化繁为简(二)—层层递进轻松入门hdfs 层层递进-解开hdfs的面纱 1、hdfs是什么?它与普通服务器的文件系统有什么区别?它的特性有什么? 2、hdfs的工作原理是怎样的? 3、每台机器都单独启动有什么弊端?假设有1000台机器需要启动?该怎么解决呢? 4、hdfs配置与使用 5、利用javaApi充...
2017-05-06 21:54:00 111
原创 Hadoop化繁为简(一)-从安装Linux到搭建集群环境
Hadoop化繁为简(一)-从安装Linux到搭建集群环境 简介与环境准备 hadoop的核心是分布式文件系统HDFS以及批处理计算MapReduce。近年,随着大数据、云计算、物联网的兴起,也极大的吸引了我的兴趣,看了网上很多文章,感觉还是云里雾里,很多不必要的配置都在入门教程出现。通过思考总结与相关教程,我想通过简单的方式传递给同样想入门...
2017-05-06 14:18:00 151
原创 VirtulBox虚拟机搭建Linux Centos系统
VirtulBox虚拟机搭建Linux Centos系统 简要说明 该文章目的是基于搭建hadoop的前置文章,当然也可以搭建Linux的入门文章。那我再重复一下安装准备软件。 环境准备:http://pan.baidu.com/s/1dFrHyxV 密码:1e9g(建议自己去官网下环境,要原生原味的,不要二手货) CentO...
2017-05-06 10:21:00 135
原创 表达树—构建表达式树、获取表达式(二)
表达树—构建表达式树、获取表达式(二) 回顾二叉树的递归遍历 前序遍历:访问根结点-->前序遍历根结点的左子树-->前序遍历根结点的右子树。 中序遍历:中序遍历根结点的左子树-->访问根结点-->中序遍历根结点的右子树。 后序遍历:后序遍历根结点的左子树-->后序遍历根结点的右子树-->访问...
2017-05-01 13:05:00 292
原创 表达式树—中缀表达式转换成后缀表达式(一)
表达式树—中缀表达式转换成后缀表达式(一) 前缀、中缀、后缀表达式的转换举例前缀表达式:/+A*BCD。中缀表达式:A+B*C/D。后缀表达式:ABC*+D/。中缀表达式转换后缀表达式算法将栈初始化为空栈;从左到右扫描表达式的每一个字符,执行下面操作: 2.1 遇到操作数:直接输出(添加到后缀表达...
2017-04-30 20:23:00 466
原创 线索二叉树
线索二叉树 浅谈线索二叉树的诞生 二叉树的存储结构的类型有:顺序存储、二叉链表存储、三叉链表存储、线索链表存储(树结构如图所示)。 1、顺序结构 假设是顺序结构,它将为上述节点按照层序编号。 在二叉树中,设I为结点的层序编号存在如下性质。 若I>1,则它的双亲的编号为I/2,否则它就是根结点。 若2I&...
2017-04-30 18:06:00 150
原创 常用Linux命令集锦-ls命令
常用Linux命令集锦-ls命令 1、命令格式:ls [选项] [目录名]2、常用参数 -a:列出该目录下所有文件(包含隐藏文件)。 -A:列出该目录下除了隐藏文件的所有文件。 -l:以行显示目录下的所有文件。输出信息从左到右分别是文件名、文件类型、权限模式、硬连接数、所有者、组、文件大小、文件最后修改时间。 -m:目录...
2017-04-19 20:20:00 96
原创 Redis-用思维导图二天搞定Redis用法。
Redis-用思维导图二天搞定Redis用法。 Redis整体面貌Redis基本数据结构1、String 1.1 数据结构 long len byte数组长度 long free 可用数组长度 char buff[] 数据内容 1.2 ...
2017-04-13 21:27:00 154
原创 Redis-环境搭建、创建服务、搭建主从复制-Windows版本
Redis-环境搭建、创建服务、搭建主从复制-Windows版本 一、搭建Redis环境 1、链接:http://pan.baidu.com/s/1boKAzzL 密码:sh2r 2、不赘述:执行redis-server、再执行redis-cli即可、redis环境就搭建完毕。 二、图形化界面三、搭建主从复制...
2017-04-13 19:49:00 88
原创 Java实现-2016百度秋招(颜色反转、相似字符串)
Java实现-2016百度秋招(颜色反转、相似字符串) 1、颜色反转题目描述:在 Web 开发中,通常使用 16 进制 RGB 表示一个颜色。例 如 #0000FF 表示蓝色,#FF7F50 表示珊瑚红。在这道题中,我们要求把给定的一种颜色取反,方法是把 RGB 的每个位转换成十进制 rgb,再用 255 减去,再转换成 16 进制。例如蓝...
2017-04-10 21:01:00 159
原创 Redis-Linux安装
Redis-Linux安装 简介 redis是一个开源项目,一种基于hash存储于内存的nosql数据库。和Memcached类似,但很大程度补偿了memcached的不足,它支持存储的value类型相对更多,包括string、list、set、zset和hash。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更...
2017-04-09 10:28:00 64
原创 Java实现-每天三道剑指Offre(2-4)
Java实现-每天三道剑指Offre(2-4) 实现一个单例模式 1 /** 2 * 面试题2:实现单例模式 3 * 4 * @author qiuyong 饿汉式 5 */ 6 public class Singleton01 { 7 private Singleton01() { 8 ...
2017-04-06 21:24:00 69
原创 二叉树遍历-JAVA实现
二叉树遍历-JAVA实现 二叉树遍历分为前序、中序、后序递归和非递归遍历、还有层序遍历。 1 //二叉树节点 2 public class BinaryTreeNode { 3 private int data; 4 private BinaryTreeNode left; 5 private Bin...
2017-04-06 21:16:00 69
原创 Java容器-引入Guava类库
Java容器-引入Guava类库 目录1、只读设置2、函数式编程+组合式编程3、约束条件4、集合操作(并集、差集、交集)代码实现1、只读设置public static void main(String [] args){ //只读设置 List ls=new ArrayList()...
2017-03-18 19:43:00 370
原创 Java容器-引用分类与部分Map用法
Java容器-引用分类与部分Map用法 目录1、引用分类2、了解WeakHashMap、IdentityHashMap、EnumMap3、同步控制与只读设置代码实现1、引用分类(面试) 强引用(StrongReference):引用指向对象,gc运行时,不回收。 弱引用(SoftReference):gc运行时可能回...
2017-03-18 18:49:00 80
原创 Java容器-引用数据类型排序+TreeSet、TreeMap底层实现
Java容器-引用数据类型排序+TreeSet、TreeMap底层实现 目录1、冒泡排序的实现2、比较接口(普通数据类型、引用数据类型) 普通数据类型:冒泡排序 引用数据类型:包装类(Integer、String、Character、Date) 自定义类型:实体类:implements Comparable+compare...
2017-03-18 18:16:00 249
原创 JAVA容器-重点总结与深度解析
JAVA容器-重点总结与深度解析 重点内容总结问题思考问题思考解析 posted @ 2017-03-16 20:43 邱勇Aries 阅读(...) 评论(...) 编辑 收藏 ...
2017-03-16 20:43:00 69
原创 JAVA容器-浅谈HashMap的实现原理
JAVA容器-浅谈HashMap的实现原理 概述 HashMap是通过数组+链表的方式实现的,由于HashMap的链表也是采用数组方式,我就修改直接利用LinkedList实现,简单模拟一下。 1、Key、Value的存取方式。 2、HashMap与HashTable的区别 HashMap线程不安全、K、V可以为空,效率...
2017-03-16 20:06:00 104
原创 JAVA容器-模拟LinkedList实现(双链表)
JAVA容器-模拟LinkedList实现(双链表) 概述 LinkedList实质上就是双向链表的拓展的实现,我们将关注一下问题。LinkedList 1、双向链表怎么来实现插入、删除、查询? 2、利用二分法提高查询效率。 3、不同步,线程不安全,需要使用Collections.synchronizedList()达到线程...
2017-03-16 19:33:00 149
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人