摘要:
Why ThreadLocal? 无论如何,要编写一个多线程安全(Thread-safe)的程序是困难的,为了让线程共享资源,必须小心地对共享资源进行同步,同步带来一定的效能延迟,而另一方面,在处理同步的时候,又要注意对象的锁定与释放,避免产生死结,种种因素都使得编写多线程程序变得困难。 尝试从另一 阅读全文
摘要:
我有几点不太明白的,望各位大侠指教下。1、j2ee的应用中,有一个用户请求就会启动一个线程。而如果我们把connection放在Threadlocal里的话,那么我们的程序只需要一个connection连接数据库就行了,每个线程都是用的connection的一个副本,那为什么还有必要要数据库连接池呢 阅读全文
摘要:
1.jdbc连接数据库,就这样子 Class.forName("com.mysql.jdbc.Driver"); java.sql.Connection conn = DriverManager.getConnection(jdbcUrl); 2.通过传入jdbc url用Drivermanager 阅读全文
摘要:
工程->右键properties->add external jars 阅读全文
摘要:
1.经常用到的方法,可以声明为static,这样省去了每次new对象的内存空间,因为非static方法,需要new对象才能调用此方法。但因此也产生多线程访问线程安全问题 比如: 2.当一个方法或者变量需要在类加载器加载类的时候,就需要初始化时,声明为static。Static变量在项目启动时就分配内 阅读全文
摘要:
1.锁,保证的是被锁的代码,一次执行完毕才能被其他线程执行,锁保证了一个线程执行过程中不被其他线程打断。以保证数据的准确性。 2。数据的读写过程,是有冲突的,当一个线程正在读数据,另一个线程正在写同一个数据,就有可能导致数据不准确,造成脏数据。就要保证读写分开时间段。即加锁。 3.如果想要保证共享对 阅读全文
摘要:
本实验主要考察多线程对单例模式的操作,和多线程对同一资源的读取,两个知识。实验涉及到三个类: 1)一个pojo类Student,包括set/get方法。 2)一个线程类,设置student的成员变量age和name的值为111和111 3)另一个线程类,设置student的成员变量age和name的 阅读全文
摘要:
1.preparestatement预编译,预编译指的是DB的编译器,会对此sql语句提前编译。然后将预编译的结果缓存到数据库中,下次执行时替换参数直接执行编译过的语句。 记住:数据库也是有编译器的,编译的是sql执行命令啊 。 所以每次执行sql语句时,如果每次都要数据库编译器编译sql语句,当然 阅读全文
摘要:
1.对象可以携带更多信息 2.对象的方法不占用堆的存储空间 3.对象的状态指的是成员变量的值 4.对象的方法操作的也都是成员变量信息,最后返回的结果也都赋值给成员变量。 5.所以,new对象时,就会在堆中创建内存空间,创建的空间包括各个成员变量类型所占用的内存空间 6.关于成员变量初始值问题,设不设 阅读全文
摘要:
阅读全文