- 博客(28)
- 收藏
- 关注
原创 求二叉树中节点的最大距离 即二叉树中相距最远的两个节点之间的距离
public static int height(TreeNode t) // postcondition: returns height of tree with root t { if (t == null) { return 0; } else
2014-10-16 08:44:32
831
原创 进程与线程的区别
线程是指进程内的一个执行单元,也是进程内的可调度实体.与进程的区别:(1)地址空间:进程内的一个执行单元;进程至少有一个线程;它们共享进程的地址空间;而进程有自己独立的地址空间;(2)资源拥有:进程是资源分配和拥有的单位,同一个进程内的线程共享进程的资源(3)线程是处理器调度的基本单位,但进程不是.4)二者均可并发执行.进程和线程都是由操作系统所体会的程序运行的基本单元,系
2014-10-14 22:48:02
376
原创 Java异常机制
try…catch…finally恐怕是大家再熟悉不过的语句了,而且感觉用起来也是很简单,逻辑上似乎也是很容易理解。不过,我亲自体验的“教训”告诉我,这个东西可不是想象中的那么简单、听话。不信?那你看看下面的代码,“猜猜”它执行后的结果会是什么?不要往后看答案、也不许执行代码看真正答案哦。如果你的答案是正确,那么这篇文章你就不用浪费时间看啦。"background-co
2014-10-14 21:10:11
363
原创 简述MapReduce
1. MapReduce是干啥的因为没找到谷歌的示意图,所以我想借用一张Hadoop项目的结构图来说明下MapReduce所处的位置,如下图。Hadoop实际上就是谷歌三宝的开源实现,Hadoop MapReduce对应Google MapReduce,HBase对应BigTable,HDFS对应GFS。HDFS(或GFS)为上层提供高效的非结构化存储服务,HBase(
2014-10-13 14:38:17
1676
原创 java 的深拷贝浅拷贝
一、引言 对象拷贝(Object Copy)就是将一个对象的属性拷贝到另一个有着相同类类型的对象中去。在程序中拷贝对象是很常见的,主要是为了在新的上下文环境中复用对象的部分或全部数据。Java中有三种类型的对象拷贝:浅拷贝(Shallow Copy)、深拷贝(Deep Copy)、延迟拷贝(Lazy Copy)。二、浅拷贝 1、什
2014-10-13 10:22:37
473
原创 数据库的基本知识
但是存储过程处理比较复杂的业务时比较实用。比如说,一个复杂的数据操作。如果你在前台处理的话。可能会涉及到多次数据库连接。但如果你用存储过程的话。就只有一次。从响应时间上来说有优势。也就是说存储过程可以给我们带来运行效率提高的好处。另外,程序容易出现 BUG 不稳定,而存储过程,只要数据库不出现问题,基本上是不会出现什么问题的。也就是说从安全上讲,使用了存储过程的系统更加稳定。数
2014-10-11 16:06:53
369
原创 TCP/IP三次握手协议,四次挥手协议
TCP(Transmission Control Protocol) 传输控制协议TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接:位码即tcp标志位,有6种标示:SYN(synchronous建立联机) ACK(acknowledgement 确认) PSH(push传送) FIN(finish结束) RST(reset重置) URG(urge
2014-10-08 21:21:03
461
原创 Java 垃圾回收机制
Java平台的垃圾收集机制显著提高了开发者的效率,但是一个实现糟糕的垃圾收集器可能过多地消耗应用程序的资源。在Java虚拟机性能优化系列的第三部分,Eva Andreasson向Java初学者介绍了Java平台的内存模型和垃圾收集机制。她解释了为什么碎片化(而不是垃圾收集)是Java应用程序性能的主要问题所在,以及为什么分代垃圾收集和压缩是目前处理Java应用程序碎片化的主要办法(但不是最有新意的
2014-09-24 14:55:58
376
原创 Java 内存泄漏总结
尽管java虚拟机和垃圾回收机制治理着大部分的内存事务,但是在java软件中还是可能存在内存泄漏的情况。的确,在大型工程中,内存泄漏是一个普遍问题。避免内存泄漏的第一步,就是要了解他们发生的原因。
2014-09-24 14:05:11
445
原创 高效寻找素数
问题:寻找1-10000以内所有的质数(素数) 由于挨个判断质数的时间复杂度很高,故需要一种高效的算法,其实算法真正在逻辑上优化的还是比较少数的,一般都是用时间去换空间,或是以空间去换时间 所以这道题的改进的思路就用挨个打表的方法,从2到根n,把每个数的倍数都置为false,例如,对已2,则2的倍数4,6,8。。。置为false,最后差表为true的就是素数
2014-09-17 09:34:00
494
原创 经典排序算法(希尔排序,归并排序,快速排序,插入排序)
public static void main(String[] args){ int[]a={13,50,6,9,8,7,12,15,100,4}; //insertSort(a); //shellSort(a); //quickSort1(a,0,a.length-1); int []temp=new int[a.length]; mergeSort(a,0,a.len
2014-09-10 11:08:23
352
原创 两个栈实现一个队列
入队时,将元素压入s1。出队时,将s1的元素逐个“倒入”(弹出并压入)s2,将s2的顶元素弹出作为出队元素,之后再将s2剩下的元素逐个“倒回”s1。见下面示意图: 上述思路,可行性毋庸置疑。但有一个细节是可以优化一下的。即:在出队时,将s1的元素逐个“倒入”s2时,原在s1栈底的元素,不用“倒入”s2(即只“倒”s1.Count()-1个),可直接弹出作为出队元素返回。这
2014-09-04 23:01:35
357
原创 二叉树最大路径和
问题给出一个二叉树,找到其中的最大路径和。路径可以从树中任意一个节点开始和结束。例如:给出如下二叉树, 1 / \ 2 3返回6。
2014-09-02 22:22:42
777
原创 Tir( 字典树)入门及实现
Trie树,又称单词查找树或键树,是一种树形结构,是一种哈希树的变种。 典型应用是用于统计和排序大量的字符串(但不仅限于字符串), 所以经常被搜索引擎系统用于文本词频统计。它的优点是: 利用字符串的公共前缀来节约存储空间,最大限度的减少无谓的字符串比较,查询效率比哈希表高。 比如说我们想储存3个单词,sky、skyline、skymoon。如果只是单纯的按照以前的字符数组存
2014-09-02 13:47:09
616
转载 Linux面试及基础知识
一.填空题:1. 在Linux系统中,以 文件 方式访问设备 。2. Linux内核引导时,从文件 /etc/fstab 中读取要加载的文件系统。3. Linux文件系统中每个文件用 i节点 来标识。4. 全部磁盘块由四个部分组成,分别为引导块 、专用块 、 i节点表块 和数据存储块。5. 链接分为: 硬链接 和 符号链接 。6. 超级块包含了i节点表 和 空闲块表 等重要
2014-08-30 23:11:28
586
原创 堆排序算法
堆排序利用了大根堆(或小根堆)堆顶记录的关键字最大(或最小)这一特征,使得在当前无序区中选取最大(或最小)关键字的记录变得简单。(1)用大根堆排序的基本思想① 先将初始文件R[1..n]建成一个大根堆,此堆为初始的无序区② 再将关键字最大的记录R[1](即堆顶)和无序区的最后一个记录R[n]交换,由此得到新的无序区R[1..n-1]和有序区R[n],且满足R[1..n-1]
2014-08-30 22:51:52
286
原创 去石子游戏之博弈与最优策略
有一种很有意思的游戏,就是有物体若干堆,可以是火柴棍或是围棋子等等均可。两个人轮流从堆中取物体若干,规定最后取光物体者取胜。这是我国民间很古老的一个游戏,别看这游戏极其简单,却蕴含着深刻的数学原理。下面我们来分析一下要如何才能够取胜。(一)巴什博奕(Bash Game):只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个。最后取光者得胜。
2014-08-27 17:32:35
1695
转载 面试中所有二叉树题目总结(java版)
package BinaryTreeSummary;import java.util.ArrayList;import java.util.Iterator;import java.util.LinkedList;import java.util.List;import java.util.Queue;import java.util.Stack;/** * http://bl
2014-08-27 16:48:45
374
原创 递归算法总结java版
1、给出一个数据A={a_0,a_1,a_2…a_n}(其中n可变),打印出该数值元素的所有组合 因为题目要求n可变,所以不可能是n层for循环的方式,可以采用递归的方式来实现,每次取一个元素,在剩下元素的数组中递归,要注意递归结束的条件。
2014-08-27 16:16:40
549
原创 观察者模式的java实现
观察者模式在Java语言中的地位非常重要。在JDK的java.util包中,提供了Observable类以及Observer接口,它们构成了JDK对观察者模式的支持。如图22-5所示:图22-5 JDK提供的Observable类及Observer接口结构图 (1) Observer接口 在java.util.Observer接口中只声明一个方
2014-08-25 13:55:43
2305
原创 工厂方法模式java实现
工厂方法模式提供一个抽象工厂接口来声明抽象工厂方法,而由其子类来具体实现工厂方法,创建具体的产品对象。工厂方法模式结构如图
2014-08-21 22:44:01
522
转载 UML类图符号的含义
UML类图符号简介 1.类(Class):使用三层矩形框表示。第一层显示类的名称,如果是抽象类,则就用斜体显示。第二层是字段和属性。第三层是类的方法。注意前面的符号,‘+’表示public,‘-’表示private,‘#’表示protected。2.UML类图符号之接口:使用两层矩形框表示,与类图的区别主要是顶端有>显示。第一行是接口名称。第二行是接口方法。3.
2014-08-20 22:06:49
1849
1
原创 对SAP的mobility产品SMP的一点认识
Product Task FlowUse SAP® Mobile Platform to develop mobile applications, and to manage the production environment. Understanding the end-to-end product task flow enables you to use SAP Mobile Pla
2014-08-20 14:32:44
648
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人