小编sto*_*ito的帖子

什么是java对象头文件

你能给我一些关于对象标题中存储内容的信息吗?我知道,它可能依赖于JVM,但至少可能对HotSpot有用吗?我正在寻找第一行的具体描述.

我已经阅读了一些我无法用我发现的信息验证的信息.也许你有一个指向OpenJDK维基的链接?

java jvm java-memory-model object-layout jol

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

如何在Android上的内存中放置Java对象?

我非常熟悉HotSpot中堆上对象的布局,但对于Android来说并不是那么多.

例如,在32位HotSpot JVM中,堆上的对象实现为8字节头,后跟对象的字段(一个字节用于boolean引用,四个字节用于引用,其他所有内容按预期方式),布局以某种特定的顺序(对超类中的字段有一些特殊规则),并填充为8个字节的倍数.

我做了一些研究,但我找不到任何特定于Android的信息.

(我有兴趣优化一些极其广泛使用的数据结构,以最大限度地减少Android上的内存消耗.)

java android jol

21
推荐指数
1
解决办法
1503
查看次数

JDK 8 - "类型java.util.Map $ Entry无法解析"

我试图使用HashMap但得到错误:

"java.util.Map $ Entry类型无法解析.它是从所需的.class文件间接引用的"

我正在使用JDK 8和Eclipse.

谁知道为什么?

我的代码

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.util.Map;
import java.util.HashMap;

public class Analyser {

    public void analyse() throws FileNotFoundException {

        HashMap<String, Integer> candyMap = new HashMap<String, Integer>();

        BufferedReader br = new BufferedReader(new FileReader("Candy.txt"));

        for(String s=br.readLine(); s!=null; s=br.readLine()) {
            System.out.println(s);
        }       

    }
}
Run Code Online (Sandbox Code Playgroud)

java eclipse migration hashmap java-8

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

如何使用默认区域解析ZonedDateTime?

如何解析ZoneDateTime不包含的字符串zone和其他字段?

这是Spock中的测试重现:

import spock.lang.Specification
import spock.lang.Unroll

import java.time.ZoneId
import java.time.ZoneOffset
import java.time.ZonedDateTime
import java.time.format.DateTimeFormatter

@Unroll
class ZonedDateTimeParsingSpec extends Specification {
    def "DateTimeFormatter.ISO_ZONED_DATE_TIME parsing incomplete date: #value #expected"() {
        expect:
        ZonedDateTime.parse(value, DateTimeFormatter.ISO_ZONED_DATE_TIME) == expected
        where:
        value                           | expected
        '2014-04-23T04:30:45.123Z'      | ZonedDateTime.of(2014, 4, 23, 4, 30, 45, 123_000_000, ZoneOffset.UTC)
        '2014-04-23T04:30:45.123+01:00' | ZonedDateTime.of(2014, 4, 23, 4, 30, 45, 123_000_000, ZoneOffset.ofHours(1))
        '2014-04-23T04:30:45.123'       | ZonedDateTime.of(2014, 4, 23, 4, 30, 45, 123_000_000, ZoneId.systemDefault())
        '2014-04-23T04:30'              | ZonedDateTime.of(2014, 4, 23, 4, 30, 0, 0, …
Run Code Online (Sandbox Code Playgroud)

java date java-8 java-time

13
推荐指数
2
解决办法
2万
查看次数

没有短划线/连字符的UUID是否有效?

我想编写简单的正则表达式来验证UUID,但我不确定这个小细节.

维基百科说:

UUID由32个小写十六进制数字表示,显示在由连字符分隔的五个组中,格式为8-4-4-4-12,总共36个字符(32个字母数字字符和4个连字符).

但是在RFC规范文档中找不到类似的东西.

所以问题仍然是这个UUID是否有效:f47ac10b58cc4372a5670e02b2c3d479?

uuid cryptography

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

Java是向后兼容的,但是当我们将jdk从1.6升级到1.8时,为什么我们需要升级许多库?

最近,我们将Jdk版本升级1.61.8我的一个Java项目中.但是有一些编译或运行时错误,所以我必须升级一些库:

  • gradle:1.9to1.10
  • 春天:3.x4.x

那是因为他们使用的是早期版本的ASM,但仅支持jdk 1.8 5.x

Java表示它是向后兼容的,但为什么原始版本的库无法直接与jdk 1.8一起使用?

java migration java-7 java-8

10
推荐指数
2
解决办法
5873
查看次数

Java8中的RoundingMode.HALF_DOWN问题

我使用的是jdk 1.8.0_45,我们的测试发现了一个错误.当决定舍入的最后一个小数为5时,RoundingMode.HALF_DOWN与RoundingMode.HALF_UP的工作方式相同.

我发现了RoundingMode.HALF_UP的相关问题,但它们在更新40中得到修复.我还在oracle中添加了一个bug,但根据我的经验,它们确实没有响应.

package testjava8;

import java.math.RoundingMode;
import java.text.DecimalFormat;

public class Formatori {

    public static void main(String[] args) {
        DecimalFormat format = new DecimalFormat("#,##0.0000");
        format.setRoundingMode(RoundingMode.HALF_DOWN);
        Double toFormat = 10.55555;
        System.out.println("Round down");
        System.out.println(format.format(toFormat));

        format.setRoundingMode(RoundingMode.HALF_UP);
        toFormat = 10.55555;
        System.out.println("Round up");
        System.out.println(format.format(toFormat));
    }
}
Run Code Online (Sandbox Code Playgroud)

实际结果:向下舍入10.5556向上舍入10.5556

预期结果(以jdk 1.7获得):向下舍入10.5555向上舍入10.5556

java migration rounding java-8

8
推荐指数
2
解决办法
1994
查看次数

Java 的货币和货币操作 - JSR 354

我只是好奇是否有人知道 JSR 354 是否会作为任何未来 JDK 的一部分正式实现。

当我在线搜索 JDK 11 文档时 - 它看起来不像Monetary并且MonetaryAmount不包含类。但是在 jsr354-ri 下的 Github 中存在 JSR 354 的实现。

如果我不想遵循参考实现,这是否意味着我可以编写自己的实现?我的目的是支持其他货币,例如没有官方 ISO 认可但众所周知的中国人民币(离岸)CNH。

谢谢,

jsr354 java-money

7
推荐指数
2
解决办法
1822
查看次数

如何从Tapestry 4迁移到5?

我有一个用Taspestry 4编写的遗留应用程序.

如何将它从Tapestry 4升级到Tapestry 5.3.8?

不幸的是,我以前从未有过Tapestry的经验.

我找不到任何迁移指南.我在互联网上找到的所有东西都是

Tapestry 5甚至没有尝试向后兼容Tapestry 4.相反,它为真正的向后兼容性奠定了基础.

目前我刚发现注释:

import org.apache.tapestry.annotations.InjectObject;
import org.apache.tapestry.annotations.Persist;
Run Code Online (Sandbox Code Playgroud)

可以替换为

import org.apache.tapestry5.ioc.annotations.Inject;
import org.apache.tapestry5.annotations.Persist;
Run Code Online (Sandbox Code Playgroud)

另外我怎么摆脱hivemodule.xml

我会感谢任何链接,文档或建议.

java spring tapestry

6
推荐指数
1
解决办法
384
查看次数

minio etag是如何生成的

有谁知道当你PUT一个对象时minio etag是如何生成的?它是文件的哈希值吗?我们可以用它来防止同一文件上传两次吗?

非常感谢!

etag minio

6
推荐指数
1
解决办法
6927
查看次数