HeadFirst 设计模式 - Chapter8 模板方法设计模式

2015-06-29
阅读 1 分钟
2.8k
是一种重要的代码复用的重要技巧。从实现的角度来说,这符合封装变化的思想。同时,钩子是被声明在抽象类中,但是只有空的或者默认的算法实现,由子类决定是否进行覆盖,对算法的不同点进行挂钩。当两个或多个类执行的操作可以抽象为统一的步骤算法,只是在每步细节的实现上有差异,则可以依赖模板方法构造一种继承体系...

计算机网络基础(3)

2015-06-28
阅读 5 分钟
3.7k
任何一个连接在因特网上的主机或路由器,都有一个唯一的层次结构的名字,即域名。 因特网的域名系统DNS被设计成一个联机分布式数据库系统,并采用CS方式。采用层次结构的命名树作为主机的名字。

计算机网络基础(2)

2015-06-25
阅读 3 分钟
3.6k
运输层主要功能 运输层为应用进程之间提供端到端的逻辑通信(但网络层是为主机之间提供逻辑通信)。 运输层还要对收到的报文进行差错检测。 运输层需要有两种不同的运输协议,即面向连接的 TCP 和无连接的 UDP。 运输层的两个主要协议 UDP 用户数据报协议 传送数据之前不需要建立连接,不需要给出任何确认。提供不可靠的...

HeadFirst 设计模式 - Chapte7 适配器模式/外观模式

2015-06-25
阅读 2 分钟
4.4k
explanation: 这个模式可以通过创建适配器进行接口转换,让不兼容的接口变得兼容。 1.适配器实现目标接口 2. 使用对象组合:适配器与被适配者的组合(turkey).

HeadFirst 设计模式 - Chapte5 单例模式

2015-06-23
阅读 2 分钟
2.9k
这样有利于我们协调系统行为。比如在数据库连接或者线程池,或者在某个服务器程序中,该服务器的配置信息存放在一个文件中,这些配置数据由一个单例对象统一读取,然后服务进程中的其他对象再通过这个单例对象获取配置信息。这种方式简化了在复杂环境下的配置管理。

HeadFirst 设计模式 - Chapte 4工厂设计模式

2015-06-22
阅读 6 分钟
3k
工厂方法模式定义了一个创建对象的接口,但由子类决定(“决定”是指在编写创建者类creator类时,不需要知道实际创建的product是哪一个。选择使用了哪个子类,自然就决定了实际创建的产品是什么)要实例化的类是哪一个。 工厂方法让类把实例化推迟到子类。ConcreteCreator负责创建一个或多个具体产品,只有ConcreteCreator...

HeadFirst 设计模式 - Chapter 3 装饰者

2015-06-08
阅读 3 分钟
2.6k
从代码实现的角度来说,就是希望在不修改任何底层代码的情况下为对象赋予新的功能。当系统需要添加新功能的时候,通过新的代码来装饰原有类的核心职责或主要行为。这些新加入的代码相当于对原有核心代码的修饰,只在特定的应用场景下出现。

计算机网络基础(1)

2015-06-05
阅读 10 分钟
5.8k
路由器:实现分组交换的关键构建,在路由器中的输入和输出端口之间没有直接连线 (并非面向连接)。 任务是转发收到的分组 -- 网络核心部分最重要的功能。路由器收到一个分组,先暂时存储下来,再检查其首部,查找转发表,按照首部的目的地址,找到合适的接口转发出去,把分组交给下一个路由器。这样一步一步地以存储转发...

TCP/IP详解 学习笔记 chapter 1概述

2015-06-01
阅读 2 分钟
3.5k
应用层:负责处理特定应用程序细节,使用端到端的协议, 协议:Telnet 远程登录,FTP文件传输协议,SMTP简单邮件传输协议,SNMP简单网络管理协议。应用程序通常是一个用户进程,而下三层通常在内核中进行。

MySQL 必知必会读书笔记 (3)

2015-05-29
阅读 6 分钟
3.8k
大型系统必须得要存储过程和触发器吗,from 知乎 一般情况下,Web 应用的瓶颈常在 DB 上,所以会尽可能的减少 DB 做的事情,把耗时的服务做成 Scale Out,这种情况下,肯定不会使用存储过程;

MySQL 必知必会读书笔记 (2)

2015-05-26
阅读 6 分钟
3.8k
基本表: 是本身独立存在的表,在SQL中一个关系就对应一个基本表。一个或多个基本表对应一个存储文件,一个表可以带若干索引,索引也存储在存储文件中。 视图是从一个或几个基本表导出的表。它本身不独立存储在数据库中,即数据库只存放视图的定义,而不存放视图对应的数据。这些数据仍然存放在导出视图的基本表中,因此...

Hive Driver源码执行流程分析

2015-05-18
阅读 11 分钟
36k
接着上一篇来说执行入口的分析,CliDriver最终将用户指令command提交给了Driver的run方法(针对常用查询语句而言),在这里用户的command将会被编译,优化并生成MapReduce任务进行执行。所以Driver也是Hive的核心,他扮演了一个将用户查询和MapReduce Task转换并执行的角色,下面我们就看看Hive是如何一步一步操作的。

并发学习笔记 (6)

2015-05-16
阅读 4 分钟
3.4k
每启动一个新线程都会有相应的性能开销(涉及到OS的交互:创建线程,销毁线程),而且每个线程都需要给栈分配一些内存等等。这种代价随着新线程不断的创建,将会大大降低性能甚至使JVM崩溃。

并发学习笔记(3)

2015-05-16
阅读 5 分钟
2.8k
虽是读书笔记,但是如转载请注明出处 [链接] .. 拒绝伸手复制党 Thread 线程的几种状态 线程具有新建、可运行、阻塞、等待、定时等待、死亡六种。线程的状态完全包含了一个线程从新建到运行,最后到结束的整个生命周期, 线程状态的具体信息如下: NEW(新建状态、初始化状态):线程对象已经被创建,但是还没有被启动时...

并发学习笔记 (5)

2015-05-16
阅读 5 分钟
2.9k
Locks (and other more advanced synchronization mechanisms) are created using synchronized blocks, so it is not like we can get totally rid of the synchronized keyword. 锁的实现是利用synchonized, wait(),notify()方法实现的。所以不可以认为锁可以完全脱离synchonized实现。

并发学习笔记 (4)

2015-05-16
阅读 1 分钟
2.4k
竞态条件(race condition),从多线程间通信的角度来讲,是指两个或多个线程对共享的数据进行读或写的操作时,最终的结果取决于这些线程的执行顺序的情况。 导致竞态条件的代码是关键区域

Hive 源码解析之 Hive 基本框架和执行入口

2015-05-14
阅读 9 分钟
19.5k
Hive 是建立在 Hadoop 上的数据仓库基础构架。它提供了一系列的工具,可以用来进行数据抽取,转化,加载(ETL),这是一种可以存储、查询和分析存储在 Hadoop 中的大规模数据的机制。Hive 定义了简单的类 SQL 查询语言,称为Hive QL,它允许熟悉 SQL 的用户查询数据。同时,这个语言也允许熟悉 MapReduce 开发者的开发自...

并发学习笔记(2)

2015-05-11
阅读 6 分钟
3.8k
避免代码块受到并发访问的干扰 java语言提供了两种机制实现这种功能 Synchonized 关键字(调用对象内部的锁) synchronized关键字自动提供一个锁以及相关的条件 引入了ReentrantLock类。(显示锁) 更好: JUC框架为这些基础机制提供了独立的类: 线程池,或者高级一点专门做并发的工具的支持 ReentrantLock类 - 锁 Lock ...

并发学习笔记(1)

2015-05-10
阅读 6 分钟
3.7k
JVM 的内存模型 可以分为调用栈,堆,方法区,寄存器,本地方法栈;其中主要组成是前二。 同一进程中的多条线程将共享该进程中的全部系统资源,如虚拟地址空间,文件描述符和信号处理等等。但同一进程中的多个线程有各自的调用栈(call stack),自己的寄存器环境(register context),自己的线程本地存储(thread-loca...

MySQL 必知必会读书笔记 (1)

2015-05-10
阅读 16 分钟
4.4k
表 table:某种特定类型数据的结构化清单。表可以保存顾客清单、产品目录或者其他信息清单。特定类型 表示存储在表中的数据是一种类型的数据或一个清单,功能专一。决不应该把两种类型的表混合在一起。

布隆过滤器 -- 空间效率很高的数据结构

2015-05-05
阅读 3 分钟
42.8k
一个应用是Hash table(散列表,也叫哈希表),是根据哈希值 (Key value) 而直接进行访问的数据结构。也就是说,它通过把哈希值映射到表中一个位置来访问记录,以加快查找的速度。下面是一个典型的 hash 函数 / 表示意图:

July 算法习题 - 字符串4(全排列和全组合)

2015-04-27
阅读 6 分钟
18.4k
设计一个算法,输出一个字符串字符的全排列。 比如,String = "abc" 输出是"abc","bac","cab","bca","cba","acb"

July 算法习题 - 字符串 3 + Leetcode - Add Binary,Palindromic Substring

2015-04-26
阅读 4 分钟
3.4k
Given a string S, find the longest palindromic substring in S. You may assume that the maximum length of S is 1000, and there exists one unique longest palindromic substring.

字符串处理文章outline

2015-04-24
阅读 1 分钟
3.5k
最近在看算法和语言,基本属于看知识 --> java实现 --> 整理blog 这个路线。 遇到问题查查stackoverflow,看看geeksforgeeks,july大神的讲解, 问问岛胖君... 下面是我最近整理出来的关于字符串的文章的outline,怎么翻译? 汇集?目录? P.S. 非常希望segmentfault强化博客的功能,比如分类,置顶。虽然你们说是想...

July 算法习题 - 字符串2 + Leetcode 8,9

2015-04-23
阅读 3 分钟
5.6k
输入一个由数字组成的字符串,把它转换成整数并输出。例如:输入字符串 "123",输出整数 123。 给定函数原型int StrToInt(const char *str) ,实现字符串转换成整数的功能,不能使用库函数 atoi。

July算法习题 - 字符串1

2015-04-21
阅读 5 分钟
6.5k
给定一个字符串,要求把字符串前面的若干个字符移动到字符串的尾部,如把字符串 “abcdef” 前面的 2 个字符'a'和'b'移动到字符串的尾部,使得原字符串变成字符串 “cdefab”。请写一个函数完成此功能,要求对长度为 n 的字符串操作的时间复杂度为 O(n),空间复杂度为 O(1)。

并发 - 生产者消费者的问题

2015-04-20
阅读 4 分钟
2.8k
AbstractQueuedSynchronizer 抽象类 AQS 是 java 中管理 “锁” 的抽象类,锁的许多公共方法都是在这个类中实现。 AQS 是独占锁 (例如,ReentrantLock) 和共享锁 (例如,Semaphore) 的公共父类。 1.1 独占锁 锁在一个时间点只能被一个线程锁占有。根据锁的获取机制,它又划分为 “ 公平锁 ” 和 “ 非公平锁 ”。 1.1.1 公平锁...

skyline 查询 和 验证索引数据结构MR-tree的构建

2015-04-19
阅读 2 分钟
2.7k
the skyline S is the set of all points p such that there is no other point q which dominates p

Leetcode20 - Valid Parentheses

2015-04-17
阅读 3 分钟
3k
Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid. The brackets must close in the correct order, "()" and "()[]{}" are all valid but "(]" and "([)]" are not.

浅谈 Java 字符串(String, StringBuffer, StringBuilder)

2015-04-17
阅读 9 分钟
16.3k
转载自飘过的小牛 我们先要记住三者的特征: String 字符串常量 StringBuffer 字符串变量(线程安全) StringBuilder 字符串变量(非线程安全) 一、定义 查看 API 会发现,String、StringBuffer、StringBuilder 都实现了 CharSequence 接口,内部都是用一个char数组实现,虽然它们都与字符串相关,但是其处理机制不同。...