HttpSession session =  request.getSession(); List<Product> list = session.getAttribute("productCart"); myService.save(list); // 保存购物车数据到数据库 这个对象会被多次使用,也会被同一个用户的多个页面使用,所以他对于系统来说是线程不安全的。 呵呵。偷窥无罪比如用户在从产品列表里面选择产品,这面选择3种,他点了查看购物车 该用户还开了另一个页面,继续 ...
ThreadLocal与synchronized Java良好的支持多线程。使用java,我们可以很轻松的编程一个多线程程序。但是使用多线程可能会引起并发访问的问题。synchronized和ThreadLocal都是用来解决多线程并发访问的问题。大家可能对synchronized较为熟悉,而对ThreadLocal就要陌生得多了。 并发问题。当一个对象被两个线程同时访问时,可能有一个线程会得到不可预期的结果。 一个简单的java类Studnet Java代码 public class Student {    &nbs ...
首先,ThreadLocal 不是用来解决共享对象的多线程访问问题的,一般情况下,通过ThreadLocal.set() 到线程中的对象是该线程自己使用的对象,其他线程是不需要访问的,也访问不到的。各个线程中访问的是不同的对象。 另外,说ThreadLocal使得各线程能够保持各自独立的一个对象,并不是通过ThreadLocal.set()来实现的,而是通过每个线程中的new 对象 的操作来创建的对象,每个线程创建一个,不是什么对象的拷贝或副本。通过ThreadLocal.set()将这个新创建的对象的引用保存到各线程的自己的一个map中,每个线程都有这样一个map,执行ThreadLocal ...
摘要: JAXP (全称Java API for XML Parsing)的可插拔性(pluggability)在开发社区里引起很大的轰动。这点也是JAXP的精华所在。开发人员可以编写自己的xml处理器,只要它符合JAXP的APIs,这样底层不同的xml处理器可以任意切换而不用改应用程序的代码。 JAXP的演进作者:Rahul Srivastava版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明作者:Rahul Srivastava;SJTUer原文地址:http://www.xml.com/pub/a/2005/07/06/jaxp ...
 Lucene不是一个完整的全文索引应用,而是是一个用Java写的全文索引引擎工具包,它可以方便的嵌入到各种应用中实现针对应用的全文索引/检索功能。为了更快的体验lucene.本文作者写了一个比较简单的类.大家可以上http://www.bt285.cn BT下载 或是http://www.5a520.cn 小说520网看看其效果.   public class BtLucene {            private& ...
http://www.5a520.cn 小说520网 下面的讨论以Windows平台的Sun MicroSystem实现的java5虚拟机为蓝本,其他操作系统或其他公司实现的虚拟机参数会有部分不同,但大部分含义都和Windows上的类似。 Java5与以前版本相比,虚拟机参数大部分保持了向前兼容,同时也增加了一些新的参数,本文将对这些参数的作用作详细描述,使虚拟机能更符合运行环境的 需要,获得更好的性能和稳定性。 Java 在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOME\bin\java –option 来启动,-op ...
数据库方面: 1. 存储过程和函数的区别 存储过程是用户定义的一系列sql语句的集合,涉及特定表或其它对象的任务,用户可以调用存储过程,而函数通常是数据库已定义的方法,它接收参数并返回某种类型的值并且不涉及特定用户表。 2. 事务是什么? 事务是作为一个逻辑单元执行的一系列操作,一个逻辑工作单元必须有四个属性,称为 ACID(原子性、一致性、隔离性和持久性)属性,只有这样才能成为一个事务: 原子性 事务必须是原子工作单元;对于其数据修改,要么全都执行,要么全都不执行。 一致性 事务在完成时,必须使所有的数据都保持一致状态。在相关数据库中,所有规则都必须应用于事务的修改,以保持所有数据的完整性。 ...
一、J2EE提出的背景 1、 企业级应用框架的需求 在许多企业级应用中,例如数据库连接、邮件服务、事务处理等都是一些通用企业需求模块,这些模块如果每次再开发中都由开发人员来完成的话,将会造成开发周期长和代码可*性差等问题。于是许多大公司开发了自己的通用模块服务。这些服务性的软件系列统称为中间件。 2、 为了通用必须要提出规范,不然无法达到通用 在上面的需求基础之上,许多公司都开发了自己的中间件,但其与用户的沟通都各有不同,从而导致用户无法将各个公司不同的中间件组装在一块为自己服务。从而产生瓶颈。于是提出标准的概念。其实J2EE就是基于JAVA技术的一系列标准。 注:中间件的解释 ...
一、Java基础知识1.Java有那些基本数据类型,String是不是基本数据类型,他们有何区别。2.字符串的操作:  写一个方法,实现字符串的反转,如:输入abc,输出cba  写一个方法,实现字符串的替换,如:输入bbbwlirbbb,输出bbbhhtccc。3.数据类型之间的转换  如何将数值型字符转换为数字(Integer,Double)  如何将数字转换为字符  如何取小数点前两位,并四舍五入。4.日期和时间  如何取得年月日,小时分秒  如何取得从1970年到现在的毫秒数  如何获取某个日期是当月的最后 ...
4. 多线程:在同一应用程序中,有多个顺序流同时执行。同步和异步有和异同,在什么情况下分别使用他们?临界资源问题线程都是独立的,而且异步执行,也就是说每个线程都包含了运行时所需要的数据或方法,而不需要外部的资源或方法,也不必关心其它线程的状态或行为。但是经常有一些同时运行的线程需要共享数据,此时就需考虑其他线程的状态和行为,否则就不能保证程序的运行结果的正确性。我们需要做的是允许一个线程彻底完成其任务后,再允许下一个线程执行。必须保证一个共享的资源一次只能被一个线程使用。实现此目的的过程称为同步。同步是用于确保资源一次只能被一个线程使用的过程。同步对于单线程程序没有任何好处。使用同步比非同步的 ...
应聘Java笔试时可能出现问题Java基础方面: 1、作用域public,private,protected,以及不写时的区别 Public、Protected、Private是成员访问修饰符;final、abstract、transient、synchronized、native、strictfp是非访问成员修饰符。可见性PublicProtectedDefaultPrivate同一个类是是是是同一个包中的类是是是否同一个包中的子类是是是否同一包外的子类是是否否同一包外的非子类是否否否Java的基本包java.lang 其中包含有:接口:Comparable、Cloneable、Runabl ...
wangdei
搜索本博客
最近加入圈子
存档
最新评论