如何写好一个系统需求分析在做一个系统需求分析时,首先是确定角色,其次应该写好功能分析,在这里要让开发人员一目了然各个业务对象都有什么操作,这是宏观的概念,它有名称、描述、主要路径和前置条件,这是业务的开始,我认为在这里应对业务对象进行大的分类,例如在开发人员中可以分为java开发人员和.NET开发人员,那么这两类人员都有共同的操作,是否可以将他们化为一个大类,并且有一个主类,他们继承这个主类,我认为应该做出这样的描述,以便让开发人员一目了然系统中各个角色继承组合等关系,然后,是问题单处理流程描述,在这里要让开发人员一目了然各个角色的权限,这是一个具体问题的角色流程,这是业务的过渡,最后是问题流程分析,在这里要让开发人员一目了然在问题中有哪些操作和它们的流程,这是业务的过程,我认为在这里应将一些多次出现的业务对象找出来,这些业务对象我认为可以放入缓冲池(如图中的配件档案和技术档案),因为在开发中应特别注意时间和空间的协调问题。最后,我认为java在开发中应特别注意它的双亲委派模型,也就是在装载一个类型时需要从最顶层开始依次向下装载,如果层次较多恐怕会引起效率问题,以上是我的一些总结。用JVM知识解释几个简单的技术问题     例如,对象可以直接访问实例数据和局部变量,这是因为如果将实例数据单独放在对象池中,此时,一个对象引用,也就是一个指向句柄池的指针,可以通过“指向对象池的指针”来访问实例数据,如果实例数据和“指向类数据的指针”放在一起,此时,一个对象引用,也就是一个指向堆的指针,可以直接通过这个“指向堆的指针”来访问实例数据,堆用来存放程序在运行时创建的所有类实例或数组,在第一种设计中,句柄池和对象池都属于堆,因此可以看出,这两种方式在本质上是一样的,只是一种方式是将堆分开进行计算,而另一种方式没有分开,所以,无论是哪种设计,对象都可以直接访问实例数据和局部变量,但是,对于类数据和方法数据,无论是哪种设计,它们都存放于方法区中,只有“指向类数据的指针”才能访问方法区,所以,无论是哪种设计,对象都必须通过一个间接的方式去访问类数据和方法数据。 
    再比如,一个类实例要转换成另一个类实例,它不能是另一个类实例的父类,这是因为在Java虚拟机设计中,类的加载顺序是按照从本类、父类直到启动类的顺序依次向上加载上去的,如果一个类实例在转换成另一个类实例时它是另一个类实例的父类,那么,这种加载原则是必会减少所加载的类的个数,影响程序的访问权限,这显然是与程序设计的原则相违背的。 
    还有,假如当一个用户去点击一个提交按钮后,将产生一个线程,每一个用户去点击这个提交按钮就相当于这个线程多次去调用同一个Java方法,这就相当于每次在Java栈中压入一个新帧,而帧是用来存储参数、局部变量和中间运算结果的,因此,每次方法调用都不会相同,得到的结果,如果保存在对象中将放在堆上,如果保存在类变量中将放在方法区上,此时,无论是句柄池和对象池都属于堆还是实例数据和“指向类数据的指针”放在一起,都是一个对象指针去访问一个堆,再通过被访问的堆中指向类数据的指针去访问类数据,因此,有可能就会出现多线程下访问同一个堆的同步问题,一般采取对象锁机制去解决这样的问题,对象锁就相当于给同一个房子里的十个人只一把钥匙,而任意一个时刻只有一个人才能拥有这把钥匙进入房子,而其他人只能等待直到有钥匙的这个人将钥匙交给了下一人为止,对象锁正是通过这种将时间进行线性控制的方法来解决“多线程下访问同一个堆的同步问题”的,之所以要采用这种排队方式那是因为每当线程调用一个Java方法时虚拟机都会在该线程的Java栈中压入一个新帧,而Java栈只支持出栈和压栈操作。对Java程序底层原理的一点点认识例如,对象可以直接访问实例数据和局部变量,但必须通过一个间接的方式去访问类数据和方法数据,这是因为在Java虚拟机设计中,如果将实例数据单独放在对象池中,此时,一个对象引用,也就是一个指向句柄池的指针,可以通过“指向对象池的指针”来访问实例数据,如果实例数据和“指向类数据的指针”放在一起,此时,一个对象引用,也就是一个指向堆的指针,可以直接通过这个“指向堆的指针”来访问实例数据,堆用来存放程序在运行时创建的所有类实例或数组,在第一种设计中,句柄池和对象池都属于堆,因此可以看出,这两种方式在本质上是一样的,只是一种方式是将堆分开进行计算,而另一种方式没有分开,所以,无论是哪种设计,对象都可以直接访问实例数据和局部变量,但是,对于类数据和方法数据,无论是哪种设计,它们都存放于方法区中,只有“指向类数据的指针”才能访问方法区,所以,无论是哪种设计,对象都必须通过一个间接的方式去访问类数据和方法数据;再比如,一个类实例要转换成另一个类实例,它不能是另一个类实例的父类,这是因为在Java虚拟机设计中,类的加载顺序是按照从本类、父类直到启动类的顺序依次向上加载上去的,如果一个类实例在转换成另一个类实例时它是另一个类实例的父类,那么,这种加载原则是必会减少所加载的类的个数,影响程序的访问权限,这显然是与程序设计的原则相违背的。曾在一家创业公司待过。我是一个喜欢钻研的人。[email protected](信箱我每天都会看)

解决方案 »

  1.   

    没有项目经验?用JVM知识解释几个简单的技术问题 
    这些属于入门ABC的问题
      

  2.   

    更多的公司要的是你对业务的熟练对框架的熟练对面向对象思想的理解对常用API的熟练以及建立在这些基础上的快速适应环境和开展工作而不是你是否熟悉Java虚拟机你是否明白原理这些是你工作之余的消遣爱好老板关心的是你能不能完成你的任务从而给他创造效益
      

  3.   

    自己的理解?还是Google,baidu的,如果是自己的那恭喜你可以去大学教书去了。外面公司招人看中的是你能否给公司带了自己经济效益。能不能帮他做事。你说你有过工作经验,那项目经验呢?项目经验和对行业规则的理解更重要。