自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 UML(二)——面向对象的基本概念

1、对象的基本特征每个对象都有自己的唯一标识。对象之间通过消息进行通信。对象总是处于一定的状态。对象有若干种行为,分为三类:创建新对象,与其他对象通信,改变自身状态。对象的状态只能被自身的行为所改变。某个对象的状态可以又多个其他对象的状态构成。2、对象的不同抽象层次     1)类:静态,在程序中定义。     2)对象:动态,存在与进程中。     3)抽

2015-08-31 10:52:59 2970 1

原创 UML(一)——面向对象方法与软件过程模型

1、软件的实质:程序+数据+文档。2、软件工程的三维空间观:过程+方法+工具。3、面向对象方法之于软件工程的意义:     从软件工程三维空间观看面向对象方法:属于软件工程空间的方法维不是方法维的唯一4、面向对象方法与软件过程模型     1)基本模型线性顺序模型:瀑布模型迭代模型:原型法模型基于构件的开发模型     2

2015-08-31 10:46:40 4750 1

原创 华为OJ(二)——图片整理

/** * 功能:图片整理 * 题目描述:Lily上课时使用字母数字图片教小朋友们学习英语单词,每次都需要把这些图片按照大小(ASCII码值从小到大)排列收好。 * 输入: Lily使用的图片包括"A"到"Z"、"a"到"z"、"0"到"9"。输入字母或数字个数不超过1024。 * 输出: Lily的所有图片按照从小到大的顺序输出 * 样例输入: Ihave1nose2hand

2015-08-28 10:45:16 773

原创 华为OJ(一)——字符串最后一个单词的长度

/** * 功能:计算字符串最后一个单词的长度,单词以空格隔开。 * 输入: 一行字符串,长度小于128。 * 输出: 整数N,最后一个单词的长度。 * 样例输入: hello world  * 样例输出: 5           * */两种方法:方法一: public int getFinalWordLen(){

2015-08-28 09:10:07 586

原创 计算机网络——计算机网络和因特网

1、通信网络1)电路交换:通信前先拨号,构建直通通路2)分组交换(不是包交换):不用拨号,存储转发交换3)虚拟电路交换:介于两者间,中间设备ATM存储后再转发,本质存储转发 2、网络架构(Internet是瘦内核,胖端系统;电话、手机是胖内核,瘦端系统)1)内核:路由器(构成mesh),交换机 2)边缘:应用,所有服务都位于边缘 3)通信链路 3、通信模式

2015-08-25 22:06:20 754

原创 数据库SQL Server2012笔记(八)——Statement与PreparedStatement的区别,JDBC方式操作数据库

1、Statement与PreparedStatement的区别1)都可用于  把sql语句从java程序中发送到制定数据库,并执行sql语句。2)区别直接使用Statement,驱动程序一般不会对sql语句做处理,而直接交给数据库。使用PreparedStatement,形成预编译的过程,并且会对语句做字符集的转换(至少在sql  server中如此)。好处:对于多次重复执行

2015-08-25 09:45:12 1094

原创 数据库SQL Server2012笔记(七)——java 程序操作sql server

1、crud(增删改查)介绍:create/retrieve/update/delete2、JDBC介绍1)JDBC(java database connectivity,java数据库连接)2)是一种用于执行SQL语句的java  API,可为多种关系数据库提供统一访问。由一组用Java语言编写的类和接口组成。3)JDBC为工具/数据库开发人员提供了一个标准的API,据此

2015-08-25 09:35:40 888

原创 数据库SQL Server2012笔记(六)——修改表、数据的备份和恢复

1、修改表添加一个字段:alter  table  distributors2、数据的备份和恢复1)使用企业管理器完成备份和恢复(2种方式)分离/附加分离完成后,到sql  server 安装的目录下找两个文件(数据库名.mdf)和(数据库名.ldf)。这两个文件即分离后的文件,数据库分离后,该数据库不可再用。附加:当用户需要重新使用某个分离的数

2015-08-24 17:40:41 1262

原创 数据库SQL Server2012笔记(五)——维护数据的完整性——约束

1、概念1)约束用于确保数据库数据满足特定的商业规则。2)在sql server中,约束包括:not null,unique,primary key,foreigh key,check五种。2、not  null(非空)如果在列上定义了not null,那么当插入数据时,必须为列提供数据。3、unique(唯一)当定义了唯一约束后,该列值是不

2015-08-24 17:31:59 1280

原创 数据库SQL Server2012笔记(四)——多表查询、子查询、分页查询、用查询结果创建新表和外连接

1、多表查询1)笛卡尔集:select  *  from  表名1,表名2select  *  from  表名1,表名2  where   表名1.字段名=表名2.字段名注:若有两张表有相同名字的字段,则使用时需带表名(别名)。order  by  置于where 条件之后。2)自连接:同一张表的连接查询,将一张表视为两张表或多张表。eg:显示公司

2015-08-24 17:20:34 991

原创 数据库SQL Server2012笔记(三)——表的复杂查询

1、数据分组——max/min/avg/sum/countselect  avg(字段名),sum(字段名)  from  表名select  count(*)  from  表名select  字段1,字段2  from  表名  where  字段=(select  avg(字段名)  from  表名)注:SQL语句执行,从右向左。select语句优化原则:尽量把

2015-08-24 17:08:40 916

原创 数据库SQL Server2012笔记(二)——表的管理

1、表名和列的命名规则1)必须字母、下划线开头2)长度不能超过128个字符3)不要使用sql server 保留字4)只能使用字符:A~Z,a~z,0~9,$,#,_等。2、常用编码1)Unicode码:可表示英文字母和汉字,用两个字节i宝石一个字符(英文、汉字)。2)非Unicode码:用一个字节表示一个英文字母,两个字节表示一个汉字。3)big54)

2015-08-24 16:32:08 859

原创 数据库SQL Server2012笔记(一)——简要介绍

1、目标:1)使用企业管理器2)使用查询分析器2、文件保存数据的特点:1)安全性问题2)不利于数据的查询和管理3)不利于存放海量数据4)在程序中控制不方便3、数据库1)定义:按照数据结构来组织、存储和管理数据的仓库。2)基本结构:物理数据层数据库的最内层物理存储设备上实际存储的数据的集合。原始数据:是用户加工的对象,由

2015-08-24 11:26:55 2762

原创 9.12测试(五)——测试ATM机

在一个分布式银行系统中,如何测试一台ATM机解答1、确定Who/What/When/Where/Why/How2、确定测试工具,确定是否可以查看源码3、将问题分解:登录取款存款查询余额转账4、确保涵盖所有错误情况(余额不足、新开账户、不存在的账户等)5、安全性和可靠性。

2015-08-24 10:24:33 1587

原创 9.12测试(四)——测试笔

如何测试一支笔首先,确定Who/What/When/Where/Why/How。然后,确定测试的计划:事实核查预期用途安全性非预期用途

2015-08-24 10:19:37 574

原创 9.12测试(三)——网页的负载测试

不借助任何测试工具,该如何对网页进行负载测试解答:负载测试:不仅有助于定位Web应用性能的瓶颈,还能确定其最大连接数。同样,还能检查应用如何响应各种负载情况。带测量对象包括:1)响应时间2)吞吐量3)资源利用率4)系统所能承受的最大负载。若缺少正规的测试工具:可以创建成千上万的虚拟用户,模拟并发用户。编写多线程的程序,新建成千上万个线程,

2015-08-24 10:18:07 653

原创 9.12测试(二)——国际象棋

有个国际象棋游戏程序使用了放法:boolean canMoveTo(int x,int y),这个方法是Piece类的一部分,可以判断某个棋子能否移动到位置(x,y)。说明如何测试该方法。解答:测试类型1:极限情况测试(错误输入或异常输入)1)测试x和y为负数的情况2)测试x大于棋盘宽度的情况3)测试y大于棋盘高度的情况4)测试一个满是棋子的棋盘5)测试一个空或

2015-08-24 10:17:30 939

原创 9.12测试(一)——应用程序一运行就崩溃,且每次崩溃的位置都不一样

有个应用程序一运行就崩溃,现在你拿到了源码。在调试器中运行10次之后,发现该应用每次崩溃的位置都不一样。这个应用只有一个线程,并且只调用C标准库函数。究竟是什么样的编程错误导致程序崩溃?该如何逐一测试每种错误?解答随机崩溃的常见原因:1)随机变量:某个随机变量或可变分量,程序每次执行时取值不定。包括:用户输入、程序生成的随机数或当前时间等。2)未初始化变量:在某些语言中,该

2015-08-24 10:14:42 1531

原创 9.11排序与查找(八)——找出数字x的秩(小于或等于x的值的数目)

/** * 功能:假设你正在读取一串整数。每隔一段时间,你希望能找出数字x的秩(小于或等于x的值的数目)。 * 实现track(int x)方法,没读入一个数字就会调用该方法;以及getRankOfNumber( int x)方法,返回值为小于或等于x的元素个数(不包括x本身)。 */ /** * 思路:采用二叉查找树 * 执行中序遍历,并在访问结点时利用计数器记录

2015-08-24 09:30:27 850

原创 9.11排序与查找(七)——叠罗汉

/** * 功能:有个马戏团正在设计叠罗汉的表演节目,一个人要站在另一个人的肩膀上。出于实际和美观的考虑,在上面的人一定要比下面的人矮一点、轻一点。 * 已知马戏团每个人的身高和体重,计算叠罗汉最多能够叠几个人。 */ /** * 思路:去掉细枝末节,真正的题目是:给定一个列表,每个元素由一对项目组成。找出最长的子序列,其中第一项和第二项均以非递减的顺序排列。 * 1、子问

2015-08-23 21:29:55 1021 11

原创 LeetCode258:Add Digits

Given a non-negative integer num, repeatedly add all its digits until the result has only one digit.For example:Given num = 38, the process is like: 3 + 8 = 11, 1 + 1 = 2. Since 2 has only one

2015-08-21 16:20:36 578

原创 LeetCode263:Ugly Number

Write a program to check whether a given number is an ugly number.Ugly numbers are positive numbers whose prime factors only include 2, 3, 5. For example, 6, 8 are ugly while 14 is not ugly since it

2015-08-21 15:53:22 440

原创 9.11排序与查找(六)——给定M*N矩阵,每一行、每一列都按升序排列,找出某元素

/** * 功能:给定M*N矩阵,每一行、每一列都按升序排列,找出某元素。 */两种方法:方法一: /** * 思路:若列的末端大于x,那么x位于该列的左边;若行的开头小于x,那么x位于列的下边。从矩阵中的子矩阵中查找元素。 * @param matrix * @param elem * @return */ public static b

2015-08-21 10:50:13 4492

原创 9.11排序与查找(五)——有个排序后的字符串数组,其中散布着一些空字符串,找出给定字符串的位置

/** * 功能:有个排序后的字符串数组,其中散布着一些空字符串,找出给定字符串的位置。 */ /** * 思路:对二分查找法做修改,与mid比较的地方,如果mid为空字符串,则将mid换到离它最近的非空字符串的位置。 * @param strings * @param str * @return */ public static int search(Strin

2015-08-21 10:03:15 882

原创 9.11排序与查找(四)——20GB的文件,每一行一个字符串,说明如何将这个文件进行排序

设想有一个20GB的文件,每一行一个字符串。说明如何将这个文件进行排序。思路:外部排序,将部分数据载入内存。将整个文件划分成许多块,每个块xMB,其中x是可用的内存大小。每个块各自进行排序,然后存回文件系统。各个块一旦完成排序,便将这些块逐一合并在一起,最终就能得到全部排好序的文件。

2015-08-20 18:11:32 1296

原创 9.11排序与查找(三)——给定一个排序后的数组,包含n个整数,但这个数组已被旋转过多次,找出数组中的某个元素

/** * 功能:给定一个排序后的数组,包含n个整数,但这个数组已被旋转过多次,次数不详。找出数组中的某个元素。 * 可以假定数组元素原先是按从小到大的顺序排列的。 */ /** * 思路:数组被旋转过了,则寻找拐点。 * @param a * @param left * @param right * @param x:要搜索的元素 * @return

2015-08-20 18:07:42 1989

原创 9.11排序与查找(二)——对字符串数组进行排序,将所有的变位词排在相邻的位置

/** * 功能:对字符串数组进行排序,将所有的变位词排在相邻的位置。 */两种方法:方法一: /** * 思路:套用排序算法,并修改比较器。这里比较器用来指示两个字符串胡伟变位词就是相等的。 * @param array */ public static void sort(String[] array){ Arrays.sort(array, ne

2015-08-20 17:43:25 938

原创 9.11排序与查找(一)——给定两个排序后的数组A和B,其中A的末端有足够的缓冲空间容纳B。将B合并入A并排序

/** * 功能:给定两个排序后的数组A和B,其中A的末端有足够的缓冲空间容纳B。将B合并入A并排序。 */ /** * 问题:如果将元素插入数组A的前端,就必须将原有的元素向后移动,以腾出空间。 * 思路:将元素插入数组A的末端。 * * 注意:在处理完B的元素之后,不需要复制A的剩余元素,因为那些元素原本就在A中。 * @param a * @pa

2015-08-20 17:42:19 1560 1

原创 排序算法小结

1、冒泡排序冒泡排序的基本思想:两两比较相邻记录的关键字,如果反序则交换,知道没有反序的记录为止。 //冒泡排序,升序 public static void bubbleSort0(int[] array){ for(int i=0;i<array.length-1;i++){ for(int j=i+1;j<array.length;j++){ if(array[

2015-08-19 09:05:36 551

转载 循序渐进学java 13种核心技术

java的大方向就是j2eej2ee不仅仅是socket编程,具体包括13中核心技术。 J2EE的核心API与组件   J2EE平台由一整套服务(Services)、应用程序接口(APIs)和协议构成,它对开发基于Web的多层应用提供了功能支持,下面对J2EE中的13种技术规范进行简单的描述(限于篇幅,这里只能进行简单的描述):   1. JDBC(Java Datab

2015-08-16 15:56:25 592

转载 软件开发人员角色定位和分工

模块设计师:对与系统分析师和架构师所划分的模块进一步细化,保障各模块按既定的标准和要求的完成。需求分析师:通俗一点讲需求分析师就是跟客户交流,准确获取客户需要。需求分析师是项目前期与客户方打交道最多的人,对于客户来说,他可以代表整个项目组,对与项目组成员来说他的意见可以代表客户方的意见,项目组内所有与客户需求相关的事情必需得到他的认可。数据库设计师:又称DBA,是项目组中唯一能对数据库进行

2015-08-16 15:53:57 1838

原创 9.10扩展性与存储限制(三)——若只有4KB内存可用,该如何打印数组中所有重复的元素

/** * 功能:给定一个数组,包含1到N的整数,N最大为32000,数组可能含有重复的值,且N的取值不定。 * 若只有4KB内存可用,该如何打印数组中所有重复的元素。 */ /** * 思路:4KB最多殉职8*4*2^10个比特。比32000大。创建含有32000个比特的位向量,其中每个比特代表一个整数。 * 遇到重复元素,打印出来。 * @param array

2015-08-15 12:00:18 814

原创 9.10扩展性与存储限制(二)——给定一个输入文件,包含40亿个非负整数。产生一个不在该文件中的整数。内存限制:1GB

/** * 功能:给定一个输入文件,包含40亿个非负整数。产生一个不在该文件中的整数。内存限制:1GB * 进阶:内存限制10MB。 */ /** * 思路: * * 1)创建包含40个亿个比特的位向量。 * 位向量(BV,bit vector)其实就是数组,利用整数(或另一种数据类型)数组紧凑地储存布尔值。每个整数可存储一串32比特或布尔值。

2015-08-15 11:38:18 1011

原创 9.10扩展性与存储限制(一)——对于超大型的社交网站,展示两个人之间的“连接关系”或“社交路径”

/** * 功能:/** * 思路: * 1)针对每个朋友ID,找出所在机器的位置:int machine_index=getMachineIDForUser(personID); * 2)转到编号为#machine_index的机器。 * 3)在那台机器上,执行:Person friend=getPersonWithID(person_id)。 * * 定义一个Server类,

2015-08-15 11:35:53 687

原创 9.9递归和动态规划(十二)——小鸡吃米

/** * 功能:小鸡吃米。 * 小鸡一次可以吃n颗米(n>0),总共有m颗米(m>0),在不考虑小鸡最大能力的情况下,小鸡共有多少种吃法。(m与n之间无大小限定) */ /** * 思路:自上而下的方式。 * 小鸡最后一次吃米,可能吃1颗米,2颗米,……,n颗米。因此,最后一次吃米的吃法,就是之前的总和。 * @param m * @param n

2015-08-14 16:12:03 952

原创 9.9递归和动态规划(十一)——算出有几种括号的放法可使该表达式得出result值

/** * 攻略:给定一个布尔表达式,由0、1、&、|和^等符号组成,以及一个想要的布尔结果result,实现一个函数,算出有几种括号的放法可使该表达式 * 得出result值。 */两种方法:方法一: /** * 思路:迭代整个表达式,将每个运算符当作第一个要加括号的运算符。 * @param exp * @param result * @param s:

2015-08-14 15:55:36 826

原创 9.9递归和动态规划(十)——堆箱子

/** * 功能:给你一堆n个箱子,箱子宽wi,高hi,深di。箱子不能翻转,将箱子堆起来时,下面箱子的宽度、高度和深度必须大于上面的箱子。 * 实现方法:搭出最高的一堆箱子,箱子堆的高度为每个箱子高度的总和。 */两种方法:方法一:递归发 //递归法 public static ArrayList createStackR(Box[] boxes,Box bot

2015-08-14 14:39:39 3521

原创 9.9递归和动态规划(九)——N皇后

/** * 功能:打印八皇后在8*8棋盘上的各种摆法,其中每个皇后都不同行、不同列,也不在对角线上。 * 这里的“对角线”指的是所有的对角线,不只是平分整个棋盘的那两条对角线。 */ static int GRID_SIZE=8; /** * 思路:每一行只能摆放一个皇后,因此不需要将棋盘存储为完整的8*8矩阵,只需一维数组,其中columns[r]=c表示有个皇后

2015-08-14 14:37:28 2685

原创 9.9递归和动态规划(八)——给定数量不限的硬币,币值为25分,10分,5分,1分,计算n分有几种表示法

/** * 功能:给定数量不限的硬币,币值为25分,10分,5分,1分,计算n分有几种表示法。 */ public static int makeChange(int n){ return makeChange(n,25); } /** * 递归的终止条件:完全简化为1分。 * @param n * @param denom * @return

2015-08-12 13:23:33 1964

原创 9.9递归和动态规划(七)——实现许多图片编辑软件都支持的“填充颜色”功能

/** * 功能:实现许多图片编辑软件都支持的“填充颜色”功能。 * 给定一个屏幕(以二维数组表示,元素为颜色值)、一个点和一个新的颜色值,将新颜色填入这个店的周围区域,知道原来的颜色值全都改变。 */ /** * 思路:假设要对一个像素(比如红色)调用paintFill,即对周围的像素逐一调用paintFill, * 向外扩张,一旦碰到非红色的像素就停止填充。

2015-08-12 13:22:05 928

空空如也

空空如也

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

TA关注的人

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