- 博客(20)
- 收藏
- 关注
原创 【PM】信息化系统软件开发流程
软件开发生命周期 建议采用迭代方式,即详细设计->测试的迭代,概要设计阶段会提取出所有需要开发的功能点,这些功能点将会按照优先级被划分为3-4个阶段,每个迭代阶段都会进行详细设计、编码和测试,然后与用户见面进行修正。所有迭代过程结束之后,再进入整体集成测试、实施以及最后的维护阶段。 1 需求调研和分析 最终出具《需求调研报告》。需求调研步骤一览:
2015-06-15 22:49:48 3860
原创 Java容器:容器一览
转载请注明出处:jiq•钦's technical Blog 一、Collection:存放独立元素Collection中的接口都是可选操作,其实现类 并不一定实现了其所有接口,这是为了防止“接口爆炸”。最常见的Unsupported Operation都源自于背后由固定尺寸的数据结构支持的容器,比如使用ArrayList.asList将数组转换成L
2015-06-30 00:27:18 2451 6
原创 Java基础:数组
转载请注明出处:jiq•钦's technical Blog 一、数组初始化无论如何,当你要实例化一个数组对象的时候,必须要指定其大小。不能在提供了initializer的情况下再去指定数组的维度!!! 正确的初始化方式有:方式1:Int[][] array =new int[][]{{1,2},{3,4},{5},{2,4,2,1}}; 方式2:Int[][
2015-06-29 22:36:59 1410
原创 Java基础:泛型及其擦除性、不可协变性
转载请注明出处:jiq•钦's technical Blog 1泛型语法:泛型类: class ClassName{}泛型方法:public void f(T x){}基本指导原则:如果使用泛型方法可以取代将整个类泛型化,那么就应该使用泛型方法,因为它可以让事情更加清楚。 2为什么使用泛型?在Java SE1.5之前,没有泛型的情况的下,通过对类型
2015-06-29 00:08:24 2881 1
原创 Java基础:动态代理在RPC框架中应用
RPC,远端过程调用。就是调用远端机器上的方法。原理其实很简单,就是客户端上运行的程序在调用对象方法时,底层将针对该方法的调用转换为TCP/HTTP请求,发送到远端服务器,远端服务器监听固定端口,收到这个TCP/HTTP请求后会解析出相关信息,包括客户端想要调用哪个类的哪个方法,参数是什么等,然后进行对应的调用,将调用结果再通过数据包发回即可。 RPC中一般会有一些“契约”的概念,即客
2015-06-28 01:21:50 5484
原创 Java基础:静态代理和动态代理
转载请注明出处:jiq•钦's technical Blog 一、静态代理:假设原来有一个实现了指定接口/抽象类的子类:class RealSubject implements Subject{ public void request(){ System.out.print("real request handling\n");
2015-06-28 01:15:59 1776
原创 Java基础:RTTI与反射
转载请注明出处:jiq•钦's technical Blog 1 Class文件:class文件全名称为Javaclass文件,主要在平台无关性和网络移动性方面使Java更适合网络。它在平台无关性方面的任务是:为Java程序提供独立于底层主机平台的二进制形式的服务。每一个类都有一个Class类型的对象,每当一个类被编译,就会产生一个Class对象(保存在同名的.class文
2015-06-24 23:58:37 1323
原创 Java基础:字符串
转载请注明出处:jiq•钦's technical Blog (1)String本质:String对象是不可改变的,任何看起来会修改String对象的操作实际上都是创建了一个全新的Sting对象,然后再该全新对象上修改。而效率更高的StringBuilder正好不同。(2)String和StringBuffer的区别:String 类型和 StringBuffe
2015-06-23 23:55:11 1113
原创 Java基础:异常捕获顺序
public voidtestException(){int a[] = {1,2,3};int q = 0;try{for(int i=0;i<a.length;i++){a[i] /= q;}}catch(ArithmeticException h){System.out.print("ArithmeticException\n"); //执行}catch(Excep
2015-06-22 23:55:57 2860
原创 Java基础:抽象类和接口
一、引言基于面向对象五大原则中的下面两个原则,我们应该多考虑使用接口和抽象类:里氏替换原则:子类可以通过实现父类接口来替换父类,所以父类应尽可能实现为接口/抽象类,方便拓展程序而不影响现有代码。依赖倒置原则:和结构化设计不同,我们要让底层依赖于高层,而不是相反。而设计接口和抽象类时尽量遵循面向对象五大原则中的“接口隔离原则”,即使用专门接口比使用单一接口好。这个准则和针对类
2015-06-22 23:54:26 1183
原创 Java基础:多态(重载和重写)
(1)域与静态方法记住“只有普通方法的调用是多态的”。对于域的访问,在编译期间就已经进行解析和绑定了。而如果某个方法是静态的,就不具备多态性。(2)编写构造器有一条准则: * 用尽可能简单的方法使得对象进入正常状态,尽量避免调用其他方法。 * 构造器内能够安全调用的方法只有那些final方法(private默认final),因为他们无法被覆盖。(3)多态概
2015-06-22 23:41:20 1295
原创 Java基础:初始化和清理
(1) 初始化:所以如果继承关系为:A导出B再导出C,在创建C对象的情况下的调用顺序是: * (1) A的静态域,B的静态域,C的静态域; * (2) A的非静态域,A的构造器,B的非静态域,B的构造器,C的非静态域,C的构造器(2)清理:销毁的顺序应该与初始化的顺序相反。(3)super/this在子类中可以通过super关键字调用父类的方法。也可以通
2015-06-22 23:33:22 1118
原创 Java基础:面向对象三大特征、五大原则
面向对象三大特征:(1)封装(Encapsulation)所谓封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。封装是面向对象的特征之一,是对象和类概念的主要特性。简单的说,一个类就是一个封装了数据以及操作这些数据的代码的逻辑实体。在一个对象内部,某些代码或某些数据可以是私有的,不能被外界访问。通过这种方式,对象对内部数
2015-06-22 13:57:20 15025
原创 Linux内核(五)虚拟内存
转载请注明出处:jiq•钦's technical Blog 内存管理单元(MMU)完成虚存地址到物理地址的转换。1什么是虚拟内存:虚拟内存两个关键技术:(1)页表(地址变换机构)。虚拟地址(连续的)到物理地址(不连续的页)的转换;(2)页面置换功能。将暂时不用的页面放到磁盘,让正在运行的进行获得更大的物理空间。虚拟内存是计算机系统内存管理的一种技术
2015-06-21 17:11:09 1474
原创 Linux内核(四)系统调用
转载请注明出处:jiq•钦's technical Blog 什么是系统调用?系统调用——内核和用户应用程序的桥梁,中间人。系统调用就是内核实现的一系列函数,这些函数提供了一套固定的接口,通过这套接口,用户程序可以访问系统硬件和操作系统的资源,即内核提供的服务。为什么提供系统调用?用户空间只能通过系统调用来访问内核提供的服务的根本原因是为了对系统进行“保
2015-06-21 16:57:43 1482
原创 Linux内核(三)进程调度
转载请注明出处:jiq•钦's technical Blog 数据结构:每个处理器维护一个运行队列,主要字段如图所示。每个运行队列有两个优先级队列,一个活跃的(时间片未完),另一个是过期的(时间片已完)。每个队列都有一个位图,用于快速寻找到当前队列中的最高优先级。 Schedule()函数执行步骤如下:(1)在活动优先级队列的位图数组中找到当前最高优先级
2015-06-21 16:55:00 1342
原创 Linux内核(二)中断基本概念
转载请注明出处:jiq•钦's technical Blog 首先解释一些容易混淆的概念: 中断上下文:正在执行ISR或者下半部。没有进程背景(只是暂停CPU去内存中其他地方执行一段快速代码),所以不能被切换(比如睡眠,被其他进程抢占等都不行)。进程上下文:非中断上下文(比如执行系统调用或者内核线程的时候)。此时内核代表线程在执行,所以允许睡眠,被抢占等(被切
2015-06-21 16:51:31 1348
原创 Linux内核(一)系统启动过程
转载请注明出处:jiq•钦's technical Blog (1) CPU自身初始化:CPU加电之后需要进行一系列的初始化工作;(2) CPU加载BIOS(Basic InputOutput System):CPU执行一个固定的位置(一般是0xFFFFFFF0)的指令。这是一条跳转指令,跳转到BIOS代码的首部。BIOS固化在主板上一个很小的ROM中,主要完
2015-06-21 16:41:38 1306
原创 【PM】测试阶段源码和测试环境版本控制
针对企业信息化系统,个人经验认为在集成测试过程中需要避免测试环境被更改,两个原因:(1)若修改是错误的,将影响测试,甚至中断测试;(2)若修改是正确的,测试人员提出的bug就无法重现,测试人员的工作就会被怀疑。而且你不能总保证修改是正确的吧。同时源码也不能被修改,因为不能测试结束后,发现源码和测试环境的系统不一致了!所以我们需要同时控制源码和测试环境的提交权限。(1
2015-06-15 22:23:00 1443
原创 CentOS7虚拟机桥接设置及问题
今天在VMWare WorkStation9中安装了CentOS7虚拟机。虚拟机与宿主机网络连接有三种方式:桥接模式、NAT模式和Host Only模式。具体三种模式的解释可以在网络上搜到很多。 1、桥接模式设置:我这里使用的是桥接模式,虚拟机Edit->Virtual Network Editor配置中可以看到桥接模式默认使用Vmnet0虚拟网卡,这里我们选择桥接网卡。(其实
2015-06-10 00:02:54 5943
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人