自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(97)
  • 收藏
  • 关注

转载 Java实现二叉树的前序、中序、后序、层序遍历(非递归方法)

Java实现二叉树的前序、中序、后序、层序遍历(非递归方法)  在上一篇博客中,实现了Java中二叉树的四种遍历方式的递归实现,接下来,在此实现Java中非递归实现二叉树的前序、中序、后序、层序遍历,在非递归实现中,借助了栈来帮助实现遍历。前序和中序比较类似,也简单一些,但是后序遍历需要两个栈来进行辅助,稍微复杂一些,层序遍历中借助了一个队列来进行实现。  同样是那棵二叉树

2017-09-17 11:07:32 490

转载 如何测试一个网页登陆界面

如何测试一个网页登陆界面 具体需求: 有一个登陆页面, (假如上面有2个textbox, 一个提交按钮。 请针对这个页面设计30个以上的test case.)此题的考察目的: 面试者是否熟悉各种测试方法,是否有丰富的Web测试经验, 是否了解Web开发,以及设计Test case的能力这个题目还是相当有难度的, 一般的人很难把这个题目回答好。首先,你要了

2017-09-16 21:53:42 380

转载 JAVA的运行机制

1.高级语言的运行机制我们编程都是用的高级语言(写汇编和机器语言的大牛们除外),计算机不能直接理解高级语言,只能理解和运行机器语言,所以必须要把高级语言翻译成机器语言,计算机才能运行高级语言所编写的程序。翻译,其实翻译的方式有两种,一个是编译,一个是解释。两种方式只是翻译的时间不同。 1.1编译型语言    (如C、C++、Objective-C)使用专门的

2017-09-16 21:30:48 365

转载 进程和线程的区别

1.定义进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位.线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源.2.关系

2017-09-16 21:21:48 240

转载 数据结构与算法常见笔试题

1.数据结构与算法常见笔试题   第一章 数据结构与算法一.算法的基本概念计算机解题的过程实际上是在实施某种算法,这种算法称为计算机算法。1.算法的基本特征:可行性,确定性,有穷性,拥有足够的情报。2.算法的基本要素:算法中对数据的运算和操作、算法的控制结构。3.算法设计的基本方法:列举法、归纳法、递推、递归、减半递推技术、回溯法。4.算法设计的要求:正确性、可读性

2017-09-10 11:03:57 37620 8

转载 23.有向图和无向图

无向图的邻接表有向图的邻接表无向图的邻接矩阵有向图的邻接矩阵

2017-09-04 20:29:24 6971

转载 22.HTTP和HTTPS

什么是 HTTPS?HTTPS (基于安全套接字层的超文本传输协议 或者是 HTTP over SSL) 是一个 Netscape 开发的 Web 协议。你也可以说:HTTPS = HTTP + SSLHTTPS 在 HTTP 应用层的基础上使用安全套接字层作为子层。为什么需要 HTTPS ?超文本传输协议 (HTTP) 是一个用来通过互联网传输和接收信息的

2017-09-04 20:13:49 1630

转载 堆排序

堆排序算法介绍堆是一种重要的数据结构,为一棵完全二叉树, 底层如果用数组存储数据的话,假设某个元素为序号为i(Java数组从0开始,i为0到n-1),如果它有左子树,那么左子树的位置是2i+1,如果有右子树,右子树的位置是2i+2,如果有父节点,父节点的位置是(n-1)/2取整。分为最大堆和最小堆,最大堆的任意子树根节点不小于任意子结点,最小堆的根节点不大于任意子结点。所谓堆排序就是利用堆

2017-09-04 19:44:58 189

转载 Linux题(1)

1.下列关于管道(Pipe)通信的叙述中,正确的是()    正确答案: C   A.一个管道可以实现双向数据传输B.管道的容量仅受磁盘容量大小限制C.进程对管道进行读操作和写操作都可能被阻塞D.一个管道只能有一个读进程或一个写进程对其操作 2.下面有关内核线程和用户线程说法错误的是?  正确答案: C   A.用户线程因 I/O 而处于等待状态时,整个进程就会被调度程

2017-09-03 22:15:07 5307

转载 软件测试题(1)

1.有关"测试驱动开发",下列说法正确的有?正确答案: A B C D   A.TDD的原理是在开发功能代码之前,先编写单元测试用例代码,测试代码确定需要编写什么产品代码B.TDD的基本思路就是通过测试来推动整个开发得进行,但测试驱动开发并不只是单纯的测试工作,而是把需求分析,设计,质量控制量化的过程。C.TDD的重要目的不仅仅是测试软件,测试工作保证代码质量仅仅是其中一部分,而且是在

2017-09-03 20:29:08 2499

转载 Struts1和Struts2区别

Action 类:  • Struts1要求Action类继承一个抽象基类。Struts1的一个普遍问题是使用抽象类编程而不是接口,而struts2的Action是接口。  • Struts 2 Action类可以实现一个Action接口,也可实现其他接口,使可选和定制的服务成为可能。Struts2提供一个ActionSupport基类去 实现 常用的接口。Action接口不是必须的,任何

2017-09-03 11:12:10 161

转载 13.java和c++区别(补充)

JAVA没有指针的概念,被封装起来了,而C++有;JAVA不支持类的多继承,但支持接口多继承,C++支持类的多继承;C++支持操作符重载,JAVA不支持;JAVA的内存管理比C++方便,而且错误处理也比较好;C++的速度比JAVA快。C++更适用于有运行效率要求的情况,JAVA适用于效率要求不高,但维护性要好的情况。

2017-09-03 11:06:39 194

转载 (21)Bugzilla使用手册及解决方案(2)

Bugzilla 是一个开源的缺陷跟踪系统(Bug-Tracking System),它可以管理软件开发中缺陷的提交(new),修复(resolve),关闭(close)等整个生命周期。  Bugzilla是一个搜集缺陷的数据库。它让用户报告软件的缺陷从而把它们转给合适的开发者。开发者能使用bugzilla保持一个要做事情的优先表,还有时间表和跟踪相关性。不是所有的"bugs"都是软件缺陷

2017-08-30 10:13:13 490

转载 21.缺陷管理工具(1)

缺陷管理工具:1.  Bugzilla2.  Bugfree3.  TestDirector (Quality Center)4.  ClearQuest5.  JIRA6.  Mantis7.  Bugzero8. BugTracker9. URTracker10.KisTracker11.TestLink12、JTrac13、BugNet

2017-08-30 10:01:08 475

转载 20.软件缺陷管理流程(2)

管理过程/缺陷管理 编辑处于CMM第一级(或称为初始级)的软件组织,对软件缺陷的管理无章可循。工程师们只是在发现缺陷后,修改相应的软件。通常,没有人会去记录自己发现的缺陷。也没有人知道在新的软件版本里,究竟纠正了哪些缺陷,还有哪些缺陷未被纠正。而且,只有在下一轮测试中才有可能知道那些所谓已被纠正了的缺陷是否真的被纠正了,更重要的是纠正过程是否引入了新的缺陷。所以这样的软件组织的项目

2017-08-30 08:55:36 2927

转载 16.java中的框架

一、springSpring是一个解决了许多在J2EE开发中常见的问题的强大框架。 Spring提供了管理业务对象的一致方法并且鼓励了注入对接口编程而不是对类编程的良好习惯。Spring的架构基础是基于使用JavaBean属性的Inversion of Control容器。然而,这仅仅是完整图景中的一部分:Spring在使用IoC容器作为构建完关注所有架构层的完整解决方案方面是独一无二

2017-08-29 20:45:53 443

原创 17.java中集合的底层实现

Collection(List+Set)|--List 有序,可重复  |--ArrayList    底层数据结构是数组,查询快,增删慢。    线程不安全,效率高  |--Vector    底层数据结构是数组,查询快,增删慢。    线程安全,效率低  |--LinkedList    底层数据结构是链表,查询慢,增删快。   线程不安全,效率高

2017-08-29 20:42:25 680

转载 18.进程间通信方式

# 管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。# 有名管道 (named pipe) : 有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。# 信号量( semophore ) : 信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一种锁机制,防止某进程正在访问共

2017-08-29 20:27:30 300

转载 14.路由表中存的是什么

路由表中包含:destination 目的地址 mask 网络掩码 pre 标识路由加入ip路由表的优先级cost 路由开销 nexthop 下一条ip地址 interface 输出接口

2017-08-29 20:23:53 2499

转载 13.java和c++最大的区别

Java并不仅仅是C++语言的一个变种,它们在某些本质问题上有根本的不同:  (1)Java比C++程序可靠性更高。有人曾估计每50行C++程序中至少有一个BUG。姑且不去讨论这个数字是否夸张,但是任何一个C++程序员都不得不承认C++语言在提供强大的功能的同时也提高了程序含BUG的可能性。Java语言通过改变语言的特性大大提高了程序的可靠性。  (2)Java语言不需要程序对内存进行分配

2017-08-29 20:20:33 3971

转载 11.cookie和session的区别

cookie机制Cookies是服务器在本地机器上存储的小段文本并随每一个请求发送至同一个服务器。IETF RFC 2965 HTTP State Management Mechanism 是通用cookie规范。网络服务器用HTTP头向客户端发送cookies,在客户终端,浏览器解析这些cookies并将它们保存为一个本地文件,它会自动将同一服务器的任何请求缚上这些cookies 。

2017-08-29 20:16:04 266

转载 12.B/S和C/S架构的区别(1)

一、C/S 架构1、 概念C/S 架构是一种典型的两层架构,其全程是Client/Server,即客户端服务器端架构,其客户端包含一个或多个在用户的电脑上运行的程序,而服务器端有两种,一种是数据库服务器端,客户端通过数据库连接访问服务器端的数据;另一种是Socket服务器端,服务器端的程序通过Socket与客户端的程序通信。C/S 架构也可以看做是胖客户端架构。因为客户端需要实现绝大多

2017-08-29 20:15:55 309

转载 20.软件缺陷管理流程(1)

软件缺陷管理流程软件缺陷(Bug)能够引起软件运行时产生的一种不希望或不可接受的外部行为结果,而软件测试的过程简单来说就是围绕缺陷进行的。而为了有效的的跟踪、管理Bug的处理情况,指导测试团队和开发人员有效的处理相关Bug,有必要采用一套完整的方法、手段对其进行管理,也就是本文将介绍的缺陷管理流程。  一、缺陷产生的原因  通常开发及测试人员所讲述的软件错误和软件缺陷是

2017-08-29 20:10:51 465

转载 19.软件生命周期(2)

软件生命周期的模型  任何软件都是从最模糊的概念开始的:为某个公司设计办公的流程处理;设计一种商务信函打印系统并投放市场。这个概念是不清晰的,但却是最高层的业务需求的原型。这个概念都会伴随着一个目的,例如在一个“银行押汇系统”的目的是提高工作的效率。这个目的将会成为系统的核心思想,系统成败的评判标准。1999年政府部门上了大量的OA系统(办公自动化系统),学过一点Lotus Not

2017-08-29 15:03:19 618

转载 19.软件生命周期(1)

软件的生命周期,亦称软件的生存周期。它是按开发软件的规模和复杂程度,从时间上把软件开发的整个过程(从计划开发开始到软件报废为止的整个历史阶段)进行分解,形成相对独立的几个阶段,每个阶段又分解成几个具体的任务,然后按规定顺序依次完成各阶段的任务并规定一套标准的文档作为各个阶段的开发成果,最后生产出高质量的软件。 1、问题的定义及规划 此阶段是软件开发方与需求方共同讨论

2017-08-29 15:02:13 221

转载 9.java内存泄漏(2)

Java语言的一个关键的优势就是它的内存管理机制。你只管创建对象,Java的垃圾回收器帮你分配以及回收内存。然而,实际的情况并没有那么简单,因为内存泄漏在Java应用程序中还是时有发生的。下面就解释下什么是内存泄漏,它为什么会发生,以及我们如何阻止它的发生。1. 什么是内存泄漏?内存泄漏的定义:对象已经没有被应用程序使用,但是垃圾回收器没办法移除它们,因为还在被引用着。

2017-08-28 15:20:20 120

转载 9.java内存泄漏(1)

一:垃圾回收机制的意义java  语言中一个显著的特点就是引入了java回收机制,是c++程序员最头疼的内存管理的问题迎刃而解,它使得java程序员在编写程序的时候不在考虑内存管理。由于有个垃圾回收机制,java中的额对象不在有“作用域”的概念,只有对象的引用才有“作用域”。垃圾回收可以有效的防止内存泄露,有效的使用空闲的内存; 内存泄露:指该内存空间使用完毕后未回收,在不涉及复杂

2017-08-28 15:19:57 238

转载 8.java回收机制

概念:Java的垃圾回收机制是Java虚拟机提供的能力,用于在空闲时间以不定时的方式动态回收无任何引用的对象占据的内存空间。我们用System.gc()或者Runtime.getRuntime().gc()  来通知垃圾回收机(JVM)回收垃圾。很多人说垃圾回收回收的是没有用的对象,这里不准确的。垃圾回收的作用: 1,定期发现那些对象不再被引用,并把这些对象占据的堆空间

2017-08-28 15:16:56 150

转载 7.TCP和UDP的区别和应用场景

TCP UDPTCP与UDP基本区别  1.基于连接与无连接  2.TCP要求系统资源较多,UDP较少;   3.UDP程序结构较简单   4.流模式(TCP)与数据报模式(UDP);   5.TCP保证数据正确性,UDP可能丢包   6.TCP保证数据顺序,UDP不保证   UDP应用场景:  1.面向数据报方式  2.网络数据大多为短消息   3

2017-08-28 15:08:21 2688

转载 6.软件测试工作流程

一、测试各个阶段测试计划阶段:产品立项之后,确定测试负责人,开始制定测试计划;测试准备阶段:测试用例,测试样机和配件,测试工具,测试人员全部到位。测试执行阶段:负责人对测试任务分工,按计划执行测试过程,提交并跟踪缺陷。测试总结阶段:项目测试结束,负责人输出测试报告。二.测试对产品质量的控制和推进测试报告中包含Bug数量和状态,并且对测试结果作专业的结论。测试可推进项

2017-08-28 15:04:41 275

转载 5.DNS劫持原理

DNS的工作原理DNS分为Client和Server,Client扮演发问的角色,也就是问Server一个Domain Name,而Server必须要回答此Domain Name的真正IP地址。而当地的DNS先会查自己的资料库。如果自己的资料库没有,则会往该DNS上所设的的DNS询问,依此得到答案之后,将收到的答案存起来,并回答客户。DNS服务器会根据不同的授权区(Zone),记录所属

2017-08-28 15:01:34 905

转载 4.解决Hash冲突的几种方法

开放地址法:1.线性探测法:ThreadLocalMap       线性再散列法是形式最简单的处理冲突的方法。插入元素时,如果发生冲突,算法会简单的从该槽位置向后循环遍历hash表,直到找到表中的下一个空槽,并将该元素放入该槽中(会导致相同hash值的元素挨在一起和其他hash值对应的槽被占用)。查找元素时,首先散列值所指向的槽,如果没有找到匹配,则继续从该槽遍历hash

2017-08-28 14:56:32 348

转载 3.数组和链表的区别及优缺点

概述  数组 是将元素在内存中连续存放,由于每个元素占用内存相同,可以通过下标迅速访问数组中任何元素。但是如果要在数组中增加一个元素,需要移动大量元素,在内存中空出一个元素的空间,然后将要增加的元素放在其中。同样的道理,如果想删除一个元素,同样需要移动大量元素去填掉被移动的元素。如果应用需要快速访问数据,很少插入和删除元素,就应该用数组。  链表 中的元素在内存中不是顺序存储的,而

2017-08-28 14:51:52 1205

转载 2.HTTP中get和post的区别

GET和POST是HTTP的两个常用方法。 什么是HTTP?超文本传输协议(HyperText Transfer Protocol -- HTTP)是一个设计来使客户端和服务器顺利进行通讯的协议。HTTP在客户端和服务器之间以request-response protocol(请求-回复协议)工作。 GET - 从指定的服务器中获取数据POS

2017-08-28 14:49:14 389

转载 1.TCP的拥塞控制

1.概述     所谓的流量控制就是让发送方的发送速率不要太快,让接收方来得及接受。利用滑动窗口机制可以很方便的在TCP连接上实现对发送方的流量控制。TCP的窗口单位是字节,不是报文段,发送方的发送窗口不能超过接收方给出的接收窗口的数值。     如图所示,说明了利用可变窗口大小进行流量控制。设主机A向主机B发送数据。双方确定的窗口值是400.再设每一个报文段为100字节长

2017-08-28 14:43:27 420

转载 linux chmod

在 Linux 下用电脑经常会用到 chmod 命令。 chmod 只有管理员才能执行。 普通用户可以通过 sudo chmod 执行。Linux 的文件权限可以分成三段, 通常 ls -l 出来的第一列就是文件权限信息。每个文件(任意类型的文件或者文件夹)的属性都用10个字符表示。举个简单的例子, 看下面这行权限信息:drwxr-xr-x第一字符是 d , 说明它是一个文件夹. 文件

2017-03-13 16:02:42 253

转载 Ubuntu 安装ibus

安装语言包System Settings–>Language Support–>Install/Remove Languages选中chinese,点击Apply应用即可,等待下载安装完成。安装ibus框架sudo apt-get install ibus ibus-clutter ibus-gtk ibus-gtk3 ibus-qt4启动ibus框架:im-c

2017-03-07 15:29:29 1075

转载 每天一个linux命令(1):ls命令

ls命令是linux下最常用的命令。ls命令就是list的缩写,缺省下ls用来打印出当前目录的清单。如果ls指定其他目录,那么就会显示指定目录里的文件及文件夹清单。 通过ls 命令不仅可以查看linux文件夹包含的文件,而且可以查看文件权限(包括目录、文件夹、文件权限),查看目录信息等等。ls 命令在日常的linux操作中用的很多!1. 命令格式:ls [选项] [目录名]

2017-03-06 21:51:33 282

转载 Python 对文件内容迭代 按行处理

def process(string): print 'Processing: ',stringf=open(r'D:\\ruanjian\\Python\\程序\\1.txt')while True: line=f.readline() if not line:break process(line)f.close()Processing:  th

2016-12-19 21:41:14 3046

转载 Python 对文件内容迭代 按字节处理

def process(string): print 'Processing: ',stringf=open(r'D:\\ruanjian\\Python\\程序\\1.txt')while True: char=f.read(1) if not char:break process(char)f.close()Processing:  tPr

2016-12-19 21:39:05 2538

空空如也

空空如也

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

TA关注的人

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