我在实体类中找到了代码:
@Id
@NotNull
@Column(name = "ID")
private Long id;
Run Code Online (Sandbox Code Playgroud)
是@NotNull标注有值时@Id已经设置?
我需要打印小数字(直方图上的百分比),但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) 看来太阳网址终于破了: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/ - 保留错误号码!
今天我收到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) 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
在开发过程中,我发现数据库有大量活动连接:
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 下,但网络层次结构未知。
我尝试查找哪些应用程序使用我的表(几个应用程序服务器,我不知道所有这些)。其中一些过度使用连接,需要修复。但首先应该确定它们...
我们的企业维基是Mediawiki.将iframe放入我的网站以引用wiki上的一些文章我没有问题.
但我自己的网站有很多小部件和自己的风格.我不想包含Mediawiki导航/搜索/登录小部件,徽标图像.
是否有可能以及如何在没有小部件的情况下获取Mediawiki页面内容(仅限文章正文)?
我有一些实体,其中一些字段标记为LAZY
.为了LAZY
在会话打开时加载 字段只是访问getter,所以ORM代理执行select
子查询.
但是,当你需要完全解析的对象作为获取的渴望关系时,这是次优的join
.
如何将某些字段标记EAGER
为仅用于一个查询的临时字段?
这可能是JPA标准还是只有像Hibernate这样的专有扩展?
默认情况下,Gradle ~/.gradle/cache
用作Maven工件的缓存。
我也使用Maven并在其中设置代理和存储库URL,~/.m2/settings.xml
并且不想将此设置复制到Gradle。
官方解决方案是添加:
repositories {
mavenCentral()
mavenLocal() # <== THIS
}
Run Code Online (Sandbox Code Playgroud)
给你build.gradle
。这需要更改项目构建脚本,这是不可接受的。
是否可以在整个项目范围内或项目外部设置此设置系统(无需编辑项目自己的文件)?
我阅读了http://www.cubrid.org/blog/tags/Garbage%20Collection/文章,该文章给出了 Java 中 GC 的高级图片。它说:
压缩任务是通过压缩内存来消除内存碎片,从而消除分配的内存区域之间的空白空间。
是否应该将物体移动到花药位置以填补漏洞?
我认为物体是移动的。如果是这样,则意味着地址已更改,因此对该对象的引用也应该更新吗?
找到所有反向引用并更新它们似乎太复杂了......