record 20120416

Traditionally,buttons have been created by the INPUT element used with a TYPE attribute of SUBMIT, RESET, or BUTTON.

http://www.informit.com/articles/article.aspx?p=26145&seqNum=5

遍历List
for(Iterator<A> it=new Iterator();it.hasNext();)
{
}
这种方式在循环执行过程中会进行数据锁定,    性能稍差,    同时,如果你想在寻欢过程中去掉某个元素,只能调用it.remove方法,    不能使用list.remove方法,    否则一定出并发访问的错误.  

for(A a:list)
{
}
内部调用第一种,    换汤不换药,    这种循环方式还有其他限制,    不建议使用它  

for(int i=0;i<list.size();i++)
{
}
内部不锁定,效率最高,但是当写多线程时要考虑并发操作的问题!

http://xiaooman07.iteye.com/blog/542875

可以参考一下:Effective Java
Item 45: Minimize the scope of local variables

一般要是Servlet代码修改了,或是xml配置文件修改了,重新发布一次不需要重启。

说明:部署文件中只要把reload属性设置为true就可以了。

具体方法:

打开Tomcat下conf目录下的web.xml文件,找到<servlet-name>jsp</servlet-name>其内容为:

      <servlet>
        <servlet-name>jsp </servlet-name>
        <servlet-class>org.apache.jasper.servlet.JspServlet </servlet-class>
        <init-param>
            <param-name>fork </param-name>
            <param-value>false </param-value>
        </init-param>
        <init-param>
            <param-name>xpoweredBy </param-name>
            <param-value>false </param-value>
        </init-param>
        <load-on-startup>3 </load-on-startup>
    </servlet>

添加子元素:

        <init-param>
            <param-name>reloading </param-name>
            <param-value>true </param-value>
        </init-param>

保存重启Tomcat就可以了。
http://www.informit.com/articles/article.aspx?p=26145&seqNum=5  BUTTON
ArrayList保存对象,保存的是对象的引用地址
http://blog.csdn.net/icesnows/article/details/4277522
《Java编程思想》之对象的集合(数组、List、Set、Map)一 ...


保存到文件是数据持久化最常用的方式,除此之外,还可以把数据保存到数据库,或者发送到其它机器,这都是持久化。不过保存在文件是最简单的方式。具体来说就是:选取需要保存的数据,按照一定的格式组织起来,然后写入文件。下面是一个简单的例子:

http://tech.ddvip.com/2009-04/1239339307114342.html
java数据保存的六个位置(2008-08-20 16:33:44)转载▼标签: java面试javait 分类: 学习类 
    当java程序运行时,我们最好对数据保存到什么地方做到心中有数。特别要注意的是内存的分配。有六个地方都可以保存数据.

  

(1) 寄存器。这是速度最快的地方,数据位于和其他所有方式都不同的一个地方:处理器的内部。不过,寄存器的数量十分有限,所以寄存器是根据需要由编译器分配。我们对此没有直接的控制权,也不可能在自己的程序里找到寄存器存在的任何迹象。

    (2) 堆栈。堆栈位于常规RAM(随机访问存储器)内,但可通过它的“堆栈指针”获得处理器的直接支持。堆栈指针若向下移,会创建新的内存;若向上移,则会释放那些内存。这是一种特别快、特别有效的数据保存方式,仅次于寄存器。创建程序时,Java编译器必须准确地知道堆栈内保存的所有数据的“长度”以及“存在时间”。这是由于它必须生成相应的代码,以便向上和向下移动指针。这一限制无疑影响了程序的灵活性,所以尽管有些Java数据要保存在堆栈里——特别是对象引用,但Java对象并不放到其中。

    (3) 堆(或“内存堆”)。一种常规用途的内存池(也在RAM内),所有Java对象都保存在里面。和堆栈不同,“内存堆”或“堆”(Heap)最吸引人的地方在于编译器不必知道要从堆里分配多少存储空间,也不必知道存储的数据要在堆里呆多长的时间。因此,用堆保存数据时会得到更大的灵活性。要创建一个对象时,只需用new命令编制相关的代码即可。执行这些代码时,就会在堆里自动进行数据的保存。不过,为了获得这种灵活性,我们也必然需要付出一定的代价——假如在内存堆里分配存储空间,和分配规格存储空间相比,前者要花掉更长的时间!(和C++不同,Java事实上是不允许在堆栈里创建对象的。这样说,只是为了进行理论上的一种比较)。

    (4) 静态存储。这儿的“静态”(Static)是指“位于固定位置”(尽管仍在RAM里)。程序运行期间,静态存储的数据将随时等候调用。可用static关键字指出一个对象的特定元素是静态的。但Java对象本身永远都不会置入静态存储空间。

    (5) 常数存储。常数值通常直接置于程序代码内部。这样做是安全的,因为它们永远都不会改变。有的常数需要严格地保护,所以可考虑将它们置入只读存储器(ROM)。

    (6) 非RAM存储。若数据完全独立于一个程序之外,那么即使程序不运行了,它们仍可存在,并处在程序的控制范围之外。其中两个最主要的例子便是“流式对象”和“持久性对象”。对于流式对象,对象会变成字节流,通常会发给另一台机器;而对于持久性对象,我们可把它们保存在磁盘或磁带中。即使程序中止运行,它们仍可保持自己的状态不变。之所以要设计这些类型的数据存储,最主要的一个考虑便是把对象变成可在其他媒体上存在的形式;以后一旦需要,还可重新变回一个普通的、存在于RAM里的对象。目前,Java只提供了有限的“持久性对象”支持。在未来的Java版本中,有望提供对“持久性”更完善的支持。


Servlet中Request的getAttribute getParameter 区别
.
分类: JAVA2010-06-06 09:31353人阅读评论(0)收藏举报


摘在网上:

1.从更深的层次考虑,request.getParameter()方法传递的数据,会从Web客户端传到Web服务器端,代表HTTP请求数据。 request.getParameter()方法返回String类型的数据。

        request.setAttribute()和getAttribute()方法传递的数据只会存在于Web容器内部,在具有转发关系的Web组 件之间共享。这两个方法能够设置Object类型的共享数据。

        request.getParameter()取得是通过容器的实现来取得通过类似post,get等方式传入的数据。
         request.setAttribute()和getAttribute()只是在web容器内部流转,仅仅是请求处理阶段。
       getAttribute是返回对象,getParameter返回字符串
         总的来说:request.getAttribute()方法返回request范围内存在的对象,而 request.getParameter()方法是获取http提交过来的数据。





2.request is something that comes from the user, attributes come from the session



3.Use request.getParameter() when u are planning to fetch values from a html/jsp page, and use requets.getAttribute() when u want to fetch attribute values which are set using request.setAttribute() IN A SERVLET.

猜你喜欢

转载自wwwjjq.iteye.com/blog/1487627