1.notifyAll有什么不好?
如果调用notify,多个线程中只会有一个线程从休眠转入阻塞状态,这个线程会参与争夺那个被synchronized的资源,而如果调用notifyAll,那么所有休眠的线程都会转入阻塞状态去争夺资源。
2. java事务代码的书写
Class.forName("com.mysql.jdbc.Driver");
try{
Connection con=DriverManager.getConnection("jdbc:mysql://localhost/dbtest", "root", "root");
Statement stmt=con.createStatement();
System.out.println("开启事务");
con.setAutoCommit(false); //关闭自动提交开启事务
stmt.executeUpdate("insert into student values (’sw1’,’事务1’,’男’)");
stmt.executeUpdate("insert into student values (’sw2’,’事务2’,’女’)");
con.rollback();
stmt.executeUpdate("insert into student values (’sw3’,’事务3’,’男’)");
stmt.executeUpdate("insert into student values (’sw4’,’事务4’,’女’)");
con.commit(); //如果你不提交那么本次操作不会对数据库造成任何
System.out.println("事务提交");
}catch(SQLException e){
System.out.println("数据库操作出现异常");
}
3.自己用java实现观察者模式
可参考:http://www.cnblogs.com/mengdd/archive/2013/02/07/2908929.html
java中Observable、Observer使用方法可参考
http://blog.csdn.net/hfhwfw/article/details/38044381
4. java中的SHA的使用
try{
String msg = "hello world";
System.out.println("明文是:" + msg);
MessageDigest md5 = MessageDigest.getInstance("SHA");
byte[] srcBytes = msg.getBytes();
md5.update(srcBytes);
byte[] resultBytes=
md5.digest();
String result = new String(resultBytes);
System.out.println("密文是:" + result);
String result1 = new String(
Hex.encode(resultBytes));
System.out.println("16进制密文是:" + result1);
} catch(
NoSuchAlgorithmException e){
e.printStackTrace();
}
5. 业务数据每天有2tb解决方案
6. 结构化数据库与非结构化数据库
在信息社会,信息可以划分为两大类。一类信息能够用数据或统一的结构加以表示,我们称之为结构化数据,如数字、符号;而另一类信息无法用数字或统一的结构表示,如文本、图像、声音、网页等,我们称之为非结构化数据。结构化数据属于非结构化数据,是非结构化数据的特例。
随着网络技术的发展,特别是Internet和Intranet技术的飞快发展,使得非结构化数据的数量日趋增大。这时,主要用于管理结构化数据的关系数据库的局限性暴露地越来越明显。因而,数据库技术相应地进入了“后关系数据库时代”,发展进入基于网络应用的非结构化数据库时代。所谓非结构化数据库,是指数据库的变长纪录由若干不可重复和可重复的字段组成,而每个字段又可由若干不可重复和可重复的子字段组成。简单地说,非结构化数据库就是字段可变的数据库。