Java fail-fast机制
在JDK的Collection中我们时常会看到类似于这样的话: 例如,ArrayList: 注意,迭代器的快速失败行为无法得到保证,因为一般来说,不可能对是否出现不同步并发修改做出任何硬性保证。快速失败迭代器会尽最大努力抛出 ConcurrentModificationException。因此,为提高这类迭代器的正确性而编写一个依赖于此异常的程序是错误的做法:迭代器的快速失败行为应该仅用于检测 b…
在JDK的Collection中我们时常会看到类似于这样的话: 例如,ArrayList: 注意,迭代器的快速失败行为无法得到保证,因为一般来说,不可能对是否出现不同步并发修改做出任何硬性保证。快速失败迭代器会尽最大努力抛出 ConcurrentModificationException。因此,为提高这类迭代器的正确性而编写一个依赖于此异常的程序是错误的做法:迭代器的快速失败行为应该仅用于检测 b…
Quartz是一个强大任务调度框架,应用场景例如 餐厅系统会在每周四晚上的22点自动审核并生成报表 人事系统会在每天早晨8点给有待办的人员自动发送Email提醒 一、简单使用(重复执行) 1.引入quartz框架pom依赖 <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>…
java语言具有哪些特点? Java 为纯面向对象的语言。它能够直接反应现实生活中的对象。 具有平台无关性。Java 利用 Java 虚拟机运行字节码,无论是在 Windows、Linux 还是 MacOS 等其它平台对 Java 程序进行编译,编译后的程序可在其它平台运行。 Java 为解释型语言,编译器把 Java 代码编译成平台无关的中间代码,然后在 JVM 上解释运行,具有很好的可移植性。…
今天遇到一个bug.前端传过去一个空值(非必填项数值),发现有值的时候能正常修改,传空值过去,修改不了,还是原来的东西。 查看后端代码发现,实体类用的是包装类: Java Service层用的框架生成的update语句: 解决办法: @TableField(value="building_scale", updateStrategy = FieldStrategy.IGNORED) 后续猜想及搜索…
问题描述 HashMap键存放的是对象的哈希码,当调用put的时候,将哈希码记录进了底层的数组中,取的时候先拿传入对象的hashCode与数组中的hashCode比较,如果hashCode相同再进行equals比较。 出现题目中这类问题一般是在键存入后,又对对象进行了更改,不巧的是导致了hashCode发生了变化,导致取不出对象,问题代码如下: import java.util.*; class …
最近在部署工程,启动Tomcat服务器的时候一直提示启动失败,具体错误提示如下: Sep 07, 2017 9:58:41 PM org.apache.catalina.startup.Catalina start INFO: Server startup in 21415 ms Sep 07, 2017 9:58:42 PM org.apache.catalina.loader.WebappCl…
在main方法中,我们经常用以下代码: public class ArrayTest { public static void main(String[] args) { main方法由JVM负责调用,我们通过测试发现String数组的长度为0;说明传入String[ ]数组的长度为0。 现在,我们通过String[]数组,将用户账户与密码传入,通过调用String方法的equals方法,实现对传…
Uid是一封邮件的唯一标识,我们在使用IMAP协议获取一封邮件时一般会这样写: Session session =generSession(); URLName urln = new URLName("imap", mailHost,Integer.valueOf(mailPort), null, "333", "213"); IMAPStore store = (IMAPStore) sessi…
Java中的字符串也是一连串的字符。但是与许多其他的计算机语言将字符串作为字符数组处理不同,Java将字符串作为String类型对象来处理。将字符串作为内置的对象处理允许Java提供十分丰富的功能特性以方便处理字符串。 一,下面是一些使用频率比较高的函数及其相关说明。 (1)substring()。它有两种形式, 第一种是:String substring(int startIndex) 第二种是…