编程技巧 - 文章列表

  • 类分层结构java.io.DataInput

      类分层结构  java.lang.Object java.io.File (implements java.lang.Comparable T, java.io.Serializable )  java.io.FileDescriptor java.io.InputStream (implements java.io.Closeable )  java.io.ByteArrayInputStream java.io.FileInputStream java.io.FilterInputStream java.io.BufferedInputStrea

  • 最大空间(-Xmx)是物理内存的1/4

    Java的内存溢出,主要是两方面的异常:堆内存溢出、非堆内存溢出。一、 java.lang.OutOfMemoryError: Java heap space。 Heap size 设置 JVM堆的设置是指java程序运行过程中JVM可以调配使用的内存空间的设置.JVM在启动的时候会自动设置Heap size的值,其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4。可以利用JVM提供的-Xmn -Xms -Xmx等选项可进行设置。Heap size 的大小是Young Generation 和Tenured Genera

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

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

  • abstractclass在Java语言中表示一种继承关系

    abstract class和interface是Java语言中对于抽象类定义进行支持的两种机制,正是由于这两种机制的存在,才赋予了Java强大的面向对象能力。abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进行抽象类定义时对于abstract class和interface的选择显得比较随意。其实,两者之间还是有很大的区别的,对于它们的选择甚至反映出对于问题领域本质的理解、对于设计意图的理解是否正确、合理。本文将对它们之间的区别进行一番剖析,试图给开发者提供一个在二者之间

  • 这些请求都进入服务器

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

  • 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等文件