Java集合类中,某个线程在 Collection 上进行迭代时,通常不允许另一个线性修改该 Collection。通常在这些情况下,迭代的结果是不确定的。如果检测到这种行为,一些迭代器实现(包括 JRE 提供的所有通用 collection 实现)可能选择抛出此异常。执行该操作的迭代器称为快速失败 迭代器,因为迭代器很快就完全失败,而不会冒着在将来某个时间任意发生不确定行为的风险。 因此,当一
线程同步,严格来说,是程序通过专用的机制来保证多个并行执行的线程在同一时刻不会执行指定的程序段。 代码的线程安全,指的是多线程以安全执行的方式操作共享数据结构。或者简单的说,就是程序在多线程环境下运行而不会引发数据错误。有多种策略实现线程安全的数据结构。 线程同步是现实线程安全的一种手段。 不实现线程同步在某些场合下也是能保证线程安全,比如2个线程都读取同一个数据结构,但都不修改这个数据,那
JDBC数据库编程的时候,通常使用ResultSet的话,但数据库连接关闭后,就不能读取值了。为了使得数据库连接关闭后依然能够读取值,就需要吧ResultSet中的值转到一变量中。本文提供2种方式。 一种是使用类型List<Map<String, Object>> 代码如下: rs = pstmt.executeQuery(); &n
PreparedStatement 接口继承了Statement,因此PreparedStatement比Statement功能更强大,有人主张,在JDBC应用中,应该始终以PreparedStatement代替Statement。也就是说,在任何时候都不要使用Statement。 大部分关系型数据库通过JDBC进行SQL查询,分以下4步。 1.转换SQL。 2.编译SQL。 3.优化数据
Java的类装载器是JRE的一部分,它动态的将类装载到JVM中。通常当类有需求的时候才会装载,属于延迟加载。由于存在类装载器,Java Runtime不需要知道文件和文件系统。 Java的类型系统包含4种类型,原始类型(primitive),数组类型(array),null类型,和class类型,class即描述对象类型的类型。 其中最重要的类型是Class。类装载器负责定位类库,读取类信息,
抽象类是不能被实例化的,抽象必须被继承,也就是只能实例化抽象类的子类。 但是Java中有一段有趣的功能。 比如: public abstract class MyAbstractclass {} MyAbstractclass是一个抽象类。可以在Main方法中实例化这个抽象类。 MyAbstractclass my=new MyAbstractclass() {}; 其实这
由于使用java,javac,jar等工具进行编译打包,即繁琐低效又容易出错,因此Ant出现了。 Ant的出现就是专门为了打包编译java代码的,使用之前得稍微学一下。Ant的运行起来主要是依靠配置文件(XML格式),通常命名为build.xml。 使用ant之前当然先装好Java的JDK,JRE,该设的环境变量都弄好。 然后在cmd窗口中输入ant.bat。如果设置好ant_home的话,
Copyright © 2005-2023 51CTO.COM 版权所有 京ICP证060544号