自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

yrlovelr的专栏

为老婆奋战的程序猿

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

转载 线程池java.util.concurrent.ThreadPoolExecutor总结

线程池java.util.concurrent.ThreadPoolExecutor总结博客分类: 多线程   线程池还具有提高系统性能的优点,因为创建线程和清除线程的开销比较大。 有两种不同类型的线程池:一是固定线程数量的线程池;二是可变数量的线程池。  对于固定数量的线程池,可以使用Executors的静态方法 new

2014-05-08 21:30:38 1369

转载 红黑树(红黑树研究记录-代码实现)

代码可以根据《红黑树研究记录-实例》那篇文章的图来验证main.cpp#include #include "RBTree.h"using namespace std;int main(int argc, char *argv[]){ int arr[20] = {12, 1, 9, 2, 0, 11, 7, 19, 4, 15, 18, 5, 14, 13, 1

2014-04-23 11:59:11 781

转载 红黑树(红黑树研究记录-实例)

插入过程插入顺序为:12 1 9 2 0 11 7 19 4 15 18 5 14 13 10 16 6 3 8 17插入节点12:为根节点  插入节点1:父节点为黑色,结束插入节点9:父节点为红色,叔父节点为黑色,LR,case2+case3插入节点2:父节点为红色,叔节点为红色,case1插入节点0:父节点为黑色,结束插入节点11:父节点为黑色,

2014-04-23 11:57:33 2090

转载 红黑树(红黑树研究记录-理论)

一、     什么是红黑树?红黑树,是二叉查找树的一种,相对于AVL树,通过放弃绝对的平衡而提高了插入的速度,它可以不要求节点的左右子树高度差小于2,但保证一颗子树的高度绝对小于另一颗子树高度的2倍。一棵拥有n个内部结点的红黑树的树高h红黑树性质:1. 每个结点或红或黑。2. 根结点为黑色。3. 每个叶结点(实际上就是NULL指针)都是黑色的。4. 如果一个结点是红色的

2014-04-23 11:55:55 814

转载 理解一般指针和指向指针的指针

理解一般指针和指向指针的指针在说指向指针的指针之前,不得不说指向变量的指针。先看如下示例:1. 指向整型指针先看如下示例: 1 #include iostream> 2 using namespace std; 3  4 int main() 5 { 6     int a = 5; 7     int * p =

2014-04-22 16:22:05 712

原创 linux 常用(一点点积累)

ubuntu 图形界面与终端界面切换图形界面->终端界面Ctrl+Alt+F1终端界面->图形界面Ctrl+Alt+F7ubuntu下c/c++开发环境配置1.安装build-essential,你可以在新立得搜索然后安装或者在终端里输入:sudo apt-get install build-essential2.在终端中输入 sudo apt-ge

2014-04-21 14:41:44 894

原创 好的技术分享网址

MySQL索引背后的数据结构及算法原理

2014-04-18 15:14:13 778

转载 c++ 基础 指针

这是一篇我所见过的关于指针的最好的入门级文章,它可使初学者在很短的时间内掌握复杂的指针操作。虽然,现在的Java、C#等语言已经取消了指针,但作为一个C++程序员,指针的直接操作内存,在数据操作方面有着速度快,节约内存等优点,仍是很多C++程序员的最爱。指针就像是一把良剑,就看你怎么去应用它! 什么是指针?  其实指针就像是其它变量一样,所不同的是一般的变量包含的是实际的真实的数据,而

2014-04-18 14:43:37 689

转载 银行家算法

银行家算法目的:避免死锁的产生。算法思想:       1、假分配检测:Request                             Request        2、安全序列检测算法 实例列举:  某系统有R1,R2,R3共3中资源,在T0时刻P0,P1,P2,P3和P4这5个进程对资源的占用和需求情况如下表1,此时系统的可用资源向量为(3,3,2)。试

2014-04-17 20:17:02 1569

原创 Java日期工具类

import java.text.DecimalFormat;import java.text.NumberFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.u

2014-04-16 16:45:53 794

转载 ECLIPSE java.lang.OutOfMemoryError: PermGen space 错误

ECLIPSE 最近一段时间经常报错,看了日志,有如下错误信息: Java代码  ENTRY org.eclipse.ui 4 0 2010-08-10 09:56:43.763  !MESSAGE Unhandled event loop exception  !STACK 0  org.eclipse.swt.SWTException: Failed t

2014-04-16 13:13:13 937

原创 java 用户线程与守护线程

package util;import java.util.Scanner;import java.util.Timer;import java.util.TimerTask;public class TimerTest {     public static void main(String []args){     Timer timer = new Timer(t

2014-04-14 11:09:01 945

转载 分布式缓存系统Memcached简介与实践

缘起: 在数据驱动的web开发中,经常要重复从数据库中取出相同的数据,这种重复极大的增加了数据库负载。缓存是解决这个问题的好办法。但是ASP.NET中的虽然已经可以实现对页面局部进行缓存,但还是不够灵活。此时Memcached或许是你想要的。Memcached是什么?Memcached是由Danga Interactive开发的,高性能的,分布式的内存对象缓存系统,用于在动态应用中减少

2014-04-11 13:51:53 658

转载 TCP为何需要3次握手与4次挥手

为什么需要“三次握手”            在谢希仁著《计算机网络》第四版中讲“三次握手”的目的是“为了防止已失效的连接请求报文段突然又传送到了服务端,因而产生错误”。在另一部经典的《计算机网络》一书中讲“三次握手”的目的是为了解决“网络中存在延迟的重复分组”的问题。这两种不用的表述其实阐明的是同一个问题。            谢希仁版《计算机网络》中的例子是这样的,“已失效的连接请求

2014-04-11 11:40:02 810

转载 TCP协议三次握手过程分析

TCP协议三次握手过程分析TCP(Transmission Control Protocol) 传输控制协议TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接:位码即tcp标志位,有6种标示:SYN(synchronous建立联机) ACK(acknowledgement 确认) PSH(push传送) FIN(finish结束) RST(rese

2014-04-01 20:20:11 1228

转载 TCP的三次握手/四次挥手

大家对netstat -a命令很熟悉吧,但是,你有没有注意到STATE一栏呢,基本上显示着established,time_wait,close_wait等,这些到底是什么意思呢,在这篇文章,我将会详细的阐述。大家很明白TCP初始化连接三次握手吧:发SYN包,然后返回SYN/ACK包,再发ACK包,连接正式建立。但是这里有点出入,当请求者收到SYS /ACK包后,就开始建立连接了,而被

2014-04-01 20:19:01 996

原创 生产者-消费者问题

1.一个生产者,一个消费者,一个缓冲池emptySemaphore(空信号量),fullSemaphore(满信号量) buffer[](缓冲区);produce(){      wait(emptySemaphore);      buffer 数量增加      signal(fullSemaphore);}customer(){      wait(ful

2014-04-01 19:11:11 1126

原创 读者-写者问题(多进程共享一个资源)

1.多个进程共享一个资源①读者优先读者:a.新读者进,无读、写者,新读者读b.新读者进,无写者,新读者读c.新读者进,有写者,新读者等待写者:a.新写者进,无写者,新写者写b.新写者进,有写者,新写者等待readCount:读进程数  readCountMutex:读进程数信号量(读进程互斥访问readCount)rwMutex:读写互斥信号量 

2014-04-01 18:28:13 2338

转载 avl 树旋转

AVL樹旋轉圖解AVL樹是一顆平衡樹,其左右子樹的高度差不會超過一層。爲了保持這一性質,採用旋轉節點的方式來降低高度。如下圖,紅色表示新插入的節點,一共4种情況:左左:節點1插入到左子樹的左節點,導致節點5不平衡。實際上我們只需要關心節點1、3、5,根據二叉搜索樹的性質(左  右右:和左左類似,可以通過一次右旋來實現平衡,如下圖: 左右:這种

2014-04-01 09:39:27 903

转载 HashSet中equals()与hashCode()方法的重写

hashCode是散列码,用来快速查询用的 你看到的那一串的格式如下,比如一个String@4e57de "@ "前面的是你的类名,后面的就是散列码的16进制表示。hashCode的查询原理:先有很多个数组,然后你要往容器里面放东西,比如hashSet,如放一个String=“Hello”,那么计算机会先计算散列码,然后放入相应的数组中,数组的索引就是从散列吗计算来的,然后再装入数组里的容器里,比

2014-03-27 10:08:01 1137

转载 迭代(iteration)和递归

ImportNew注: 本文是ImportNew编译整理的Java面试题系列文章之一。你可以从这里查看全部的Java面试系列。Q.请写一段代码来计算给定文本内字符“A”的个数。分别用迭代和递归两种方式。A.假设给定文本为”AAA rating”。迭代方式就很直观,如下:123456789

2014-03-07 18:42:41 968

原创 java去哪儿笔试解决方案四

请使用自己实现的stack,实现一个整型表达式求值的函数,表示式支持的运算符有()*/+-具体说明如下1.*/优先级高于+-2.表达式中相同优先级的操作符自左向右计算3.函数输入字符串"1+(4-3)*5/5",函数返回结果为2使用api中stack将前缀转为后缀/** * 中缀表达式 转 后缀表达式 */import java.util.Arr

2014-03-07 14:57:58 1556

转载 java 中缀转后缀表达式(查阅别人资料后整理)

package calculator;/** * 中缀表达式 转 后缀表达式 */import java.util.ArrayList;import java.util.Iterator;import java.util.List;import java.util.Stack;public class ExpressConvert {    

2014-03-07 14:26:23 1013

原创 java final

final是最终的意思1.final修饰类被final修饰的类不能被继承,所以abstract 类不能被定义成final,因为abstract类的存在就是为了子类去实例化,抽象类不能被实例化2.final修饰的方法被final修饰的方法不能被重载,所以在抽象类中,是不能把抽象方法定义为final型但是在抽象类中非抽象方法可以被定义为final型例如:public

2014-03-07 14:18:59 1017

转载 高类聚与低耦合(初步认识)

低耦合和高内聚是我们所追求的,低耦合是指一个程序中各个模块之间的联系少和相互依赖程度低,一个模块实现具体实现一个功能,各个类之间联系越少,相互依赖程度越低、共用或者传输的参数越少,则它们之间的耦合度越低,这样如果改动了一个类中一部分内容,就不需用改动其它类的内容或者只需要改动很少的一部分。便于程序的修改和升级。高类聚是指一个模块内部各个元素之间关系紧密,争取用最少的元素和方法实现相应的功能

2014-03-07 14:07:00 4818

原创 HashMap 与 HashTable的区别

1.线程安全HashMap是线程不安全的,HashTable是线程安全的在多线程下使用HashTable不用考虑线程同步,而HashMap要进行线程同步处理,使用synchronized关键字当然Collections类(不能实例化,因为Collections类的构造方法是private的,对外部是不可见的)的静态方法Collections.synchronizedMap(new

2014-03-07 13:50:52 921

转载 进程的三种状态及转换

1.进程的三种基本状态    进程在运行中不断地改变其运行状态。通常,一个运行进程必须具有以下三种基本状态。 就绪(Ready)状态    当进程已分配到除CPU以外的所有必要的资源,只要获得处理机便可立即执行,这时的进程状态称为就绪状态。 执行(Running)状态当进程已获得处理机,其程序正在处理机上执行,此时的进程状态称为执行状态。 阻塞(Bloc

2014-03-06 21:46:39 1452

原创 去哪儿2014笔试三(java)

* 一个文件里有10万个随机正整数,按照以下规则能组合出一份新的数据 * A.如果当前数字能被3整除,那么它和文件中所有数字(包括自己)两两相加后生成一组数字替代自己的位置 * B.如果不能被3整除,则它只需要乘以二,生成一个数字替代自己的位置.例如:[3,7,6]会组合出[6,10,9,14,9,13,12] * 再如:[5,12,9,6,2]会组合出[10,17,24,21,18,

2014-03-05 15:23:38 1409

转载 Java实现基数排序

在众多的排序方法中基数排序比较特殊,它是一种不需要进行关键字之间比较的排序方法,利用多关键字的划分,逐渐将待排序列排好序。举个例子:现在有数组:278,109,63,930,589,184,505,269,8,83第一次根据各位数将数组划分为10个队列(当然其中的某些队列可能不含有元素)0:9301:2:3:63,834:184

2014-03-05 15:10:00 1058

原创 去哪儿笔试解决方案二(java)

已知字母序列【d, g, e, c, f, b, o, a】,请实现一个函数针对输入的一组字符串 input[] = {"bed", "dog", "dear", "eye"},按照字母顺序排序并打印。本例的输出顺序为:dear, dog, eye, bed。代码:class Test2{public char []chr={'d','g','e', 'c'

2014-03-05 13:55:21 1513

原创 去哪儿笔试解决方案

有两个文件context.txt和words.conf,请尝试将他们合并成为一段文字,并打印出来。 这两个文件内容如下: context.txt “并不是每个人都需要$(qunar)自己的粮食,$(flight.1)每个人都需要做自己穿的$(flight.2),我们说着别人发明的$(hotel),使用别人发明的数学......我们一直在$(tuan)别人的成果。使用人类的已有经验和知识$(tr

2014-03-04 22:41:00 1283

转载 计算机网络 Tcp

TCP连接中的TIME_WAIT状态 一、TIME_WAIT状态的必要性上述四次握手描述的是客户段主动关闭,服务器被动关闭的流程,其一般过程如下:1、 客户端发送FIN报文段,进入FIN_WAIT_1状态。2、 服务器端收到FIN报文段,发送ACK表示确认,进入CLOSE_WAIT状态。3、 客户端收到FIN的确认报文段,进入FIN_WAIT_2状态。4、 服务

2014-03-04 13:14:29 1196

原创 java 传值与传引用

public class Test {  String str = "goods";public void change(String str2){str2="goods";}public static void main(String args[]){  Test t = new Test();String str2 = "aaaa";t.change(str

2014-02-26 13:46:33 984

转载 Java的内存泄漏

Java的一个重要优点就是通过垃圾收集器(Garbage Collection,GC)自动管理内存的回收,程序员不需要通过调用函数来释放内存。因此,很多程序员认为Java不存在内存泄漏问题,或者认为即使有内存泄漏也不是程序的责任,而是GC或JVM的问题。其实,这种想法是不正确的,因为Java也存在内存泄露,但它的表现与C++不同。问题的提出Jav

2014-02-21 14:23:44 966

原创 jvm 内存管理(初见)

java内存泄露即是:对象可达,但是对象没有使用,gc不会回收该对象,但是对象又会占用内存,所以会造成内存不够,如果对象没有被引用,即对象没用,则会被gc在不定时间进行垃圾回收java jvm内存管理大概分为两种情况,1.有向图的方式进行内存管理(即对象是否可达)。大多数情况下通过main函数能够访问到对象即为有效对象,gc不会回收,如果不能访问到的对象,即会被gc回收。特点:效率

2014-02-21 14:21:27 881

转载 栈的java实现和栈的应用举例

[例子和习题出自数据结构(严蔚敏版), 本人使用java进行实现.  转载请注明作者和出处,  如有谬误, 欢迎在评论中指正. ]栈的实现栈是一种先进后出的数据结构, 首先定义了栈需要实现的接口:Java代码  public interface MyStack {      /**      * 判断栈是否为空      */      

2014-02-20 16:49:48 860

原创 java 执行顺序

public class Test {                                                                  行1public static Test t = new Test("a");                             行2public int i = print(2);

2014-02-20 11:37:20 1018

原创 对集合进行排序

public class Test {public static void main(String []args){List list = new ArrayList();People p1 = new People("zs","32");People p2 = new People("ls","20");People p3 = new People("ww","22"

2014-02-18 19:18:28 907

原创 java return finally 问题

代码public class Test { static int printt(){int i = 1;try{return i;}finally{System.out.print(++i);}}public static void main(String []args){System.out.print(Test .printt());

2014-02-18 18:27:47 979

原创 get与post的区别

1.post比get安全性高post方式是把参数放到http 的header中,对用户不可见,get方式是将参数放到url中,对用户可见。2.post传递的数据量比get多post方式原则上不受数据量大小的限制,get方式最多只能传递2kb数据3.post方式效率没有get高选择:1.对安全性要求高,数据量大则选择post2.对效率要求高,比如查询选择get,数

2014-02-18 11:53:10 779

ext简单例子

初学ext的例子,包含树,form,grid,日期框,消息框,combox,button

2012-02-09

强大的搜索软件

一款很好的搜索软件,双击搜索的内容,即可用迅雷下载,非常方便,且资源丰富

2012-01-18

空空如也

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

TA关注的人

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