编程技巧 - 文章列表

  • 在JUnit中如果你要测试不同的参数

      当我给那些有经验的开发者上课时,我发现只有40%左右的人写测试。大约还有40%的人甚至从来没听说过JUnit,这其中更有一般人完全没有单元测试的概念。开发者通常处于在项目经理制定的紧促计划的压力中——而那些项目经理同样处于客户的压力之下,客户希望他们的软件能够被快速的开发出。不幸的是,测试是项目中的一个重要部分而很多人却轻易的将它砍掉。真是目光短浅,那种做法只会让你的应用成为bug的乐园而且会大大超出你的计划时间。  为什么会这样?因为写自动测试实际上省下了大量的运行时间。每个开发者都会出错而通过测试可以帮助找到这些错误。可能手工测试在某些方面要比自

  • 这些请求都进入服务器

    一、前言在软件开发过程中,总会遇到一些瓶颈。开发效率瓶颈,人员技术瓶颈,运行效率瓶颈,服务器瓶颈,磁盘IO瓶颈,CPU、内存瓶颈。这些都限制了我们的软件无法尽善尽美。我们的目的就是为了克服和改善这些难题,使软件比想象中更完美。二、具体问题在数据库或者是流程工作时,很多操作都是由于最初软件设计的原因,或者是当初一些产品设计的原因,或者因为时间紧迫,或者逼不得已必须如此做,然后被设计成同步操作,导致工作效率产生瓶颈,没有充分发挥CPU和内存的功能,但是软件工作起来慢的要死。这时候就需要重构代码了。三、解决方案在CPU和内存还有磁盘IO并没有充分利用的时候,就

  • 每个线程对共享数据的操作方法也分配到那个对象身上去完成

    (1)如果每个线程执行的代码相同,可以使用同一个Runnable对象,这个Runnable对象中有那个共享数据,例如,买票系统就可以这么做。(2)如果每个线程执行的代码不同,这时候需要用不同的Runnable对象,有如下两种方式来实现这些Runnable对象之间的数据共享: 1、将共享数据封装在另外一个对象中,然后将这个对象逐一传递给各个Runnable对象。每个线程对共享数据的操作方法也分配到那个对象身上去完成,这样容易实现针对该数据进行的各个操作的互斥和通信。 2、将这些Runnable对象作为某一个类中的内部类,共享数据作为这个外部类中的成员变量,

  • 这与以前的文件结构还是有些差距的

    1. 首先新建一个 Dynamic Web Project. 配置容器为 Apache Tomcat v5.5 Project 建成后,文件结构如下图,这与以前的文件结构还是有些差距的,不过大同小异 在 Java Resources:src 下先建一个 package , test ,在 test 下新建 java 文件 WebServiceTest.java ,代码如下 Java代码

  • Java :ArrayList和LinkedList的大致区别

      一般大家都知道ArrayList和LinkedList的大致区别:1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。  2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。  3.对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。  ArrayList 和LinkedList是两个集合类,用于存储一系列的对象引用(references)。例如我们可以用ArrayList来存储一系列的Stri

  • Java构造函数中显示的调用父类A的有参构造函数

    class Personpublic Person}class Student extends Personpublic Studentpublic Student}class Test}/=======================================输出如下:E:“JavaWorkjava Testst1:person无参数构造函数student 无参数的构造函数---------------------------st2:person无参数构造函数student 3 参数的构造函数---------------------------

  • 高响比优先是根据公式计算出优先权选出优先权最高的执行

    首先我们先介绍一下这三个算法,先来先服务是指按照进程到来的时间,谁先来谁执行。短作业优先是指作业服务时间短的先执行。高响比优先是根据公式计算出优先权选出优先权最高的执行,计算高响比优先权的公式:优先权=(等待时间+服务时间)/服务时间。计算中用到的三个公式:完成时间=上一个进程的执行时间+服务时间。程序中上一个服务时间是preFinished。周转时间=完成时间-到达时间。带权周转时间=周转时间/服务时间。下面是程序的代码:下面的是另一个类:\n

  • 对Java类加载器(Class Loader)认识

    本文主要总结一下我对Java类加载器(Class Loader)认识,如有不准确之处还望大侠不吝赐教!关键字:Java,类加载器(Class Loader)主要从如下几个部分进行介绍:类加载的过程 类加载器的层级 类加载器的操作原则 为什么要个性化类加载器 其它相关问题类加载的过程类加载器的主要工作就是把类文件加载到JVM中。如下图所示,其过程分为三步:加载:定位要加载的类文件,并将其字节流装载到JVM中; 链接:给要加载的类分配最基本的内存结构保存其信息,比如属性,方法以及引用的类。在该阶段,该类还处于不可用状态; 验证:对加载的字节流进行验证,比如格

  • windows xp下配置JDK环境变量

    windows xp下配置JDK环境变量: 1.安装JDK,安装过程中可以自定义安装目录等信息,例如我们选择安装目录为D:/java/jdk1.5.0_08;  2.安装完成后,右击“我的电脑”,点击“属性”; 3.选择“高级”选项卡,点击“环境变量”; 4.在“系统变量”中,设置3项属性,JAVA_HOME,PATH,CLASSPATH(大小写无所谓),若已存在则点击“编辑”,不存在则点击“新建”; 5.JAVA_HOME指明JDK安装路径,就是刚才安装时所选择的路径D:/java/jdk1.5.0_08,此路径下包括lib,bin,jre等文件

  • Java-栈与堆都是Java用来在Ram中存放数据的地方

    栈与堆都是Java用来在Ram中存放数据的地方。与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆。 Java的堆是一个运行时数据区,类的(对象从中分配空间。这些对象通过new、newarray、anewarray和multianewarray等指令建立,它们不需要程序代码来显式的释放。堆是由垃圾回收来负责的,堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,因为它是在运行时动态分配内存的,Java的垃圾收集器会自动收走这些不再使用的数据。但缺点是,由于要在运行时动态分配内存,存取速度较慢。 栈的优势是,存取速度比堆要快,仅次于