如何迭代正则表达式

假设我有以下字符串: name1=gil;name2=orit; 我想找到name=value所有匹配项,并确保整个字符串与模式匹配。 所以我做了以下事情: 确保整个模式符合我的要求。 Pattern p = Pattern.compile(“^((\\w+)=(\\w+);)*$”); Matcher m = p.matcher(line); if (!m.matches()) { return false; } 迭代模式name=value Pattern p = Pattern.compile(“(\\w+)=(\\w+);”); Matcher m = p.matcher(line); while (m.find()) { map.put(m.group(1), m.group(2)); } 有没有办法用一个正则表达式做到这一点?

为什么线程会自动从wait()中唤醒?

我想知道为什么线程会自动从java中的wait()中唤醒。 这是一个设计决定吗? 这是妥协吗? 编辑:(来自Java Concurrency in Practice,p.300) wait甚至被允许返回“虚假” – 不响应任何调用通知的线程。 作者进一步指出: 这就像一个连接器松动的烤面包机,当烤面包准备好时,铃铛会关闭,有时候还没有准备好。 这就是为什么你总是需要像 synchronized(this){ while(!condition) wait(); } } 永不 synchronized(this){ if(!condition){ wait(); } } 即使条件仅从false转换为true 。

Hibernate + PostgreSQL +网络地址类型(inet,cdir)

我已经用Hibernate 4.2.7和PostgreSQL 9.3.1开始了我的示例项目,一切进展顺利。 目前我想使用INET PostgreSQL类型,但我无法使用Hibernate进行映射。 我得到了这个hibernate错误: 无法确定类型:inet,在表:DEVICE_IP_ADDRESS,对于列… 我使用org.hibernate.dialect.PostgreSQLDialect和hbm.xml配置文件。 我的hibernate映射文件: 我问谷歌,但我找不到任何有用的解决方案。 你可以帮帮我吗? 谢谢! 编辑:如果我想使用’额外’postgresql类型和PostGIS类型,你认为我需要使用什么样的ORM实现? 或者我需要使用简单的JDBC?

如何在Java中查看堆中的内容?

我设法在我正在开发的java应用程序中获得内存“泄漏”。 运行我的JUnit测试套件时,我会随机出现内存exception(java.lang.OutOfMemoryError)。 我可以使用哪些工具来检查我的java应用程序的堆,以查看我的所有堆的使用情况,以便我可以找出保留对应该能够被垃圾收集的对象的引用。

如何在Java中复制HashMap(不是浅拷贝)

我需要复制HashMap<Integer, List >但是当我在副本中更改某些内容时,我希望原始内容保持不变。 即,当我从副本中删除List中的某些内容时,它将保留在原始List中的List中。 如果我理解正确,这两个方法只会创建浅层副本,这不是我想要的: mapCopy = new HashMap(originalMap); mapCopy = (HashMap) originalMap.clone(); 我对吗? 有没有比这更好的方法来迭代所有键和所有列表项并手动复制它?

使用new运算符的多少String对象

当我们使用new运算符创建一个String对象时,我读到创建了两个对象,一个Object是字符串常量池,第二个是堆内存。 我的问题是我们正在使用new运算符,因此只应在Heap中创建一个对象。 为什么然后必须在String Constant池中创建另外一个对象。 我知道只要我们不使用new运算符来创建String,Java就会存储String对象。 例如: String s = “abc” . 在这种情况下,它只会在String常量池中创建。 String s2 = new String(“abc”) 只有一个对象可以在堆中创建,而不是在常量池中创建。 请解释我在这里错的原因。

如何在spring / hibernate / jpa中创建自动表创建?

使用hibernate / jpa时,我无法在spring中自动创建表。 这是我的配置文件: org.hibernate.ejb.HibernatePersistence xxx … 的context.xml 任何想法可能有什么不对? 谢谢你的帮助 :)。

X509TrustManager覆盖而不允许所有证书?

我目前正在重写X509TrustManager以允许所有证书作为临时“解决方案”(此时不安全)。 我试图弄清楚我将如何添加,所以它只接受我遇到问题的特定证书,直到可以进行适当的修复(目前不在我的手中)。 这是当前的代码。 TrustManager[] trustAllCerts = new TrustManager[]{new X509TrustManager() { @Override public java.security.cert.X509Certificate[] getAcceptedIssuers() { return null; } @Override public void checkClientTrusted(java.security.cert.X509Certificate[] certs, String authType) { } @Override public void checkServerTrusted(java.security.cert.X509Certificate[] certs, String authType) { } }}; try { SSLContext sc = SSLContext.getInstance(“SSL”); sc.init(null, trustAllCerts, new java.security.SecureRandom()); HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory()); } catch (GeneralSecurityException e) { System.out.println(e.getStackTrace()); }

优雅地处理EJB / JPA环境中的约束违规?

我在Glassfish v3应用服务器上使用EJB和JPA。 我有一个实体类,我强迫其中一个字段与@Column注释是唯一的。 @Entity public class MyEntity implements Serializable { private String uniqueName; public MyEntity() { } @Column(unique = true, nullable = false) public String getUniqueName() { return uniqueName; } public void setUniqueName(String uniqueName) { this.uniqueName = uniqueName; } } 当我尝试将此字段设置为非唯一值的对象持久化时,当EJB容器管理的事务提交时,我得到exception(如预期的那样)。 我有两个问题需要解决: 1)我得到的exception是无用的“javax.ejb.EJBException:Transaction aborted”。 如果我递归调用getCause()足够多次,我最终会得到更有用的“java.sql.SQLIntegrityConstraintViolationException”,但是这个exception是EclipseLink实现的一部分,我不太愿意依赖它的存在。 有没有更好的方法来获取JPA的详细错误信息? 2)EJB容器坚持记录此错误,即使我抓住它并处理它。 有没有更好的方法来处理这个错误,这将阻止Glassfish使用无用的exception信息混乱我的日志? 谢谢。

如何在ColdFusion(Java)中在CMYK和RGB之间转换图像?

我需要将图像从CMYK转换为RGB – 不一定要再回来了,但是嘿,如果可以的话…… 随着ColdFusion 8的发布,我们获得了CFImage标签,但它不支持这种转换; Image.cfc或Alagad的图像组件也没有。 但是,应该可以用Java; 我们可以通过CF来利用它。 例如,以下是创建Java线程以hibernate进程的方法: 我猜可以使用类似的方法来利用java来进行这种图像转换,但不是Java开发人员,我不知道从哪里开始。 有人可以帮忙吗?