小编gav*_*koa的帖子

是否有理由将@NotNull注释放在Java实体类的@Id字段中

我在实体类中找到了代码:

@Id
@NotNull
@Column(name = "ID")
private Long id;
Run Code Online (Sandbox Code Playgroud)

@NotNull标注有值时@Id已经设置?

java jpa bean-validation

5
推荐指数
1
解决办法
6720
查看次数

Java DecimalFormat,是否可以按小数部分分组?

我需要打印小数字(直方图上的百分比),但java.text.DecimalFormat做了一些奇怪的事情。为了:

System.out.println((new DecimalFormat("#,##0.######")).format(123456.000123));
System.out.println((new DecimalFormat("#,##0.######")).format(0.000123));
System.out.println((new DecimalFormat("#,##0.###x###x###x###")).format(0.001));
Run Code Online (Sandbox Code Playgroud)

我有:

123,456.000123
0.000123
0.001xxx
Run Code Online (Sandbox Code Playgroud)

似乎java.text.DecimalFormat专为格式化货币而设计......

是否可以使用java.text.DecimalFormat将小数部分分组?

或者建议任何其他格式化库...

我期望这样或类似的:

GoodFormater("0.123456") === "0.123'456"
Run Code Online (Sandbox Code Playgroud)

java floating-point decimalformat

5
推荐指数
1
解决办法
323
查看次数

Java Sun/Oracle Bug数据库:新的URL?

看来太阳网址终于破了:http://bugs.sun.com/

虽然它仍然提到:

http://www.oracle.com/technetwork/java/javase/community/index.html

我仍然可以在以下网址提交错误:http://bugreport.sun.com/bugreport/

但即使是邮件中的链接也提到:http://bugs.sun.com/

有没有人找到新的链接?

更新使用此链接:https://bugs.openjdk.java.net/ - 保留错误号码!

java

5
推荐指数
1
解决办法
1139
查看次数

在容器环境中优雅地停止Logback

今天我收到PermGen OutOfMemory错误.

显示,分析最近的GC根WebappClassLoader是的logback螺纹:

this     - value: org.apache.catalina.loader.WebappClassLoader #4
  <- contextClassLoader (thread object)     - class: java.lang.Thread, value: org.apache.catalina.loader.WebappClassLoader #4
Run Code Online (Sandbox Code Playgroud)

这是:

java.lang.Thread#11 - logback-1
Run Code Online (Sandbox Code Playgroud)

来自此线程的堆转储的线程转储:

"logback-1" daemon prio=5 tid=34 WAITING
at sun.misc.Unsafe.park(Native Method)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:458)
at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:359)
   Local Variable: java.util.concurrent.SynchronousQueue$TransferStack$SNode#1
   Local Variable: java.util.concurrent.SynchronousQueue$TransferStack#6
at java.util.concurrent.SynchronousQueue.take(SynchronousQueue.java:925)
   Local Variable: java.util.concurrent.SynchronousQueue#6
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1068)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
   Local Variable: java.util.concurrent.ThreadPoolExecutor#34
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
   Local Variable: java.util.concurrent.ThreadPoolExecutor$Worker#11
at java.lang.Thread.run(Thread.java:745)
Run Code Online (Sandbox Code Playgroud)

我使用具有热重新部署功能的Tomcat 8 reloadable="true"CLASSPATH通过PreResources以下方式外部化:

<Context docBase="/home/user/devel/app/src/main/webapp"
         reloadable="true">
    <Resources> …
Run Code Online (Sandbox Code Playgroud)

tomcat out-of-memory logback permgen redeploy

5
推荐指数
1
解决办法
1923
查看次数

Java静态多态(重载)和泛型之间的继承

Java 11(可能无关紧要):

public static String toString(Object obj) {
    return ReflectionToStringBuilder.toString(obj, ToStringStyle.SHORT_PREFIX_STYLE);
}

public static String toString(Collection<Object> collection) {
    return collection.stream()
            .map(SaLogUtils::toString)
            .collect(Collectors.joining(", ", "[", "]"));
}

public static void main(String[] args) {
    List<Integer> list = List.of(Integer.valueOf(1));
    System.out.println(SaLogUtils.toString(list));
    System.out.println(SaLogUtils.toString(List.of(Integer.valueOf(1))));
}
Run Code Online (Sandbox Code Playgroud)

令人惊讶的输出:

// from toString(Object)
ImmutableCollections.List12[e0=1,e1=<null>]
// from toString(Collection<Object>)
[Integer[value=1]]
Run Code Online (Sandbox Code Playgroud)

为什么Java静态选择不同的方法?

java generics overload-resolution static-polymorphism java-11

5
推荐指数
1
解决办法
94
查看次数

获取已建立的 Oracle 11 连接的 IP 地址

在开发过程中,我发现数据库有大量活动连接:

SELECT username, COUNT(*) FROM v$session GROUP BY username;
Run Code Online (Sandbox Code Playgroud)

为了找到真正保持连接的人,我想获取 IP 地址列表。

在一般网络搜索和阅读官方文档期间,我构建查询:

SELECT username, seconds_in_wait, machine, port, terminal, program, module, service_name
  FROM v$session
  WHERE type = 'USER';
Run Code Online (Sandbox Code Playgroud)

其中machine最重要的部分是select. 但不幸的是,machine字段显示客户端操作系统已知的主机名

互联网上充斥着使用UTL_INADDR.GET_HOST_ADDRESS 的建议,但这不适用于我的情况。首先是因为ORA-24247: 网络访问被访问控制列表 (ACL) 拒绝,其次是因为客户端操作系统主机名通常在/etc/hostname中定义,并且不可用于我们 Intranet 中的 DNS 服务器...

任何其他方式检索 Oracle DB 的打开会话的 IP(数据库实例在任何情况下都保存有关其套接字的信息...)。

更新

我在受信任的 Intranet 下,但网络层次结构未知。

我尝试查找哪些应用程序使用我的表(几个应用程序服务器,我不知道所有这些)。其中一些过度使用连接,需要修复。但首先应该确定它们...

oracle sqlplus ora-24247

4
推荐指数
1
解决办法
4万
查看次数

如何将MediaWiki页面内容嵌入我的网站?

我们的企业维基是Mediawiki.将iframe放入我的网站以引用wiki上的一些文章我没有问题.

但我自己的网站有很多小部件和自己的风格.我不想包含Mediawiki导航/搜索/登录小部件,徽标图像.

是否有可能以及如何在没有小部件的情况下获取Mediawiki页面内容(仅限文章正文)?

html mediawiki mediawiki-api

4
推荐指数
1
解决办法
3369
查看次数

在运行时临时将FetchType.LAZY更改为FetchType.EAGER(Hibernate/JPA)

我有一些实体,其中一些字段标记为LAZY.为了LAZY在会话打开时加载 字段只是访问getter,所以ORM代理执行select子查询.

但是,当你需要完全解析的对象作为获取的渴望关系时,这是次优的join.

如何将某些字段标记EAGER为仅用于一个查询的临时字段?

这可能是JPA标准还是只有像Hibernate这样的专有扩展?

spring hibernate jpa

4
推荐指数
2
解决办法
4289
查看次数

如何在整个Maven系统范围内强制gradle使用/共享〜/ .m2 /存储库?

默认情况下,Gradle ~/.gradle/cache用作Maven工件的缓存。

我也使用Maven并在其中设置代理和存储库URL,~/.m2/settings.xml并且不想将此设置复制到Gradle。

官方解决方案是添加:

repositories {
  mavenCentral()
  mavenLocal()  # <== THIS
}
Run Code Online (Sandbox Code Playgroud)

给你build.gradle。这需要更改项目构建脚本,这是不可接受的。

是否可以在整个项目范围内或项目外部设置此设置系统(无需编辑项目自己的文件)?

gradle

4
推荐指数
1
解决办法
2149
查看次数

Java GC 中的压缩是什么?

我阅读了http://www.cubrid.org/blog/tags/Garbage%20Collection/文章,该文章给出了 Java 中 GC 的高级图片。它说:

压缩任务是通过压缩内存来消除内存碎片,从而消除分配的内存区域之间的空白空间

是否应该将物体移动到花药位置以填补漏洞?

我认为物体是移动的。如果是这样,则意味着地址已更改,因此对该对象的引用也应该更新吗?

找到所有反向引用并更新它们似乎太复杂了......

java garbage-collection

4
推荐指数
1
解决办法
4269
查看次数