小编Ste*_*Kuo的帖子

Windows XP上的Java最大内存

我总是能够为在32位Windows XP(Java 1.4,1.5和1.6)上运行的Java SE分配1400兆字节.

java -Xmx1400m ...
Run Code Online (Sandbox Code Playgroud)

今天我在使用Java 1.5_16和1.6.0_07的新Windows XP机器上尝试了相同的选项并得到错误:

Error occurred during initialization of VM
Could not reserve enough space for object heap
Could not create the Java virtual machine.
Run Code Online (Sandbox Code Playgroud)

通过反复试验,我可以在这台机器上分配1200兆字节.

任何想法为什么一台机器将允许1400和另一台只有1200?

编辑:该机器有4GB的RAM,大约3.5GB,Windows可以识别.

java memory windows

102
推荐指数
6
解决办法
14万
查看次数

Java:如何根据cpu核心扩展线程?

我不是一个优秀的java程序员,这只是我的爱好,但我渴望知道的不仅仅是普通的东西.

我想解决java中多线程的数学问题.我的数学问题可以分成工作单元,我想在几个线程中解决.

但是我不希望有一定数量的线程处理它,而是相应的线程数量与cpu核心量相对应.我的问题是,我在互联网上找不到一个简单的教程.我找到的只是固定线程的例子.

那么你能帮助我找到一个好的tuturial的链接或者能给我一个简单而好的例子吗?那会非常好:)

java multithreading cpu-cores

101
推荐指数
5
解决办法
8万
查看次数

为什么enum的构造函数不能访问静态字段?

为什么enum的构造函数不能访问静态字段和方法?这对于类非常有效,但不允许使用枚举.

我要做的是将我的枚举实例存储在静态Map中.考虑这个允许通过abbreivation查找的示例代码:

public enum Day {
    Sunday("Sun"), Monday("Mon"), Tuesday("Tue"), Wednesday("Wed"), Thursday("Thu"), Friday("Fri"), Saturday("Sat");

    private final String abbreviation;

    private static final Map<String, Day> ABBREV_MAP = new HashMap<String, Day>();

    private Day(String abbreviation) {
        this.abbreviation = abbreviation;
        ABBREV_MAP.put(abbreviation, this);  // Not valid
    }

    public String getAbbreviation() {
        return abbreviation;
    }

    public static Day getByAbbreviation(String abbreviation) {
        return ABBREV_MAP.get(abbreviation);
    }
}
Run Code Online (Sandbox Code Playgroud)

这不起作用,因为枚举不允许在其构造函数中使用静态引用.然而,如果实现为类,它只能找到:

public static final Day SUNDAY = new Day("Sunday", "Sun");
private Day(String name, String abbreviation) {
    this.name = name;
    this.abbreviation = abbreviation;
    ABBREV_MAP.put(abbreviation, …
Run Code Online (Sandbox Code Playgroud)

java enums

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

如何使用JPA和Hibernate以UTC时区存储日期/时间和时间戳

如何配置JPA/Hibernate将数据库中的日期/时间存储为UTC(GMT)时区?考虑这个带注释的JPA实体:

public class Event {
    @Id
    public int id;

    @Temporal(TemporalType.TIMESTAMP)
    public java.util.Date date;
}
Run Code Online (Sandbox Code Playgroud)

如果日期是太平洋标准时间(PST)的2008年2月3日上午9:30,那么我希望将数据库中存储的2008年2月3日下午5:30的UTC时间.同样,当从数据库中检索日期时,我希望它被解释为UTC.所以在这种情况下530pm是在UTC时间下午5点.当它显示时,它将被格式化为太平洋标准时间上午9:30.

java timezone datetime hibernate jpa

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

eclipse无法启动 - 没有找到java虚拟机

Eclipse昨天运行正常(自从我在大约一年前安装它以来).现在突然间我在启动时遇到以下错误:

"A Java Runtime Environment (JRE) or Java Development Kit (JDK) must be available in order to run Eclipse. No Java virtual machine was found after searching the following locations:
C:\Program Files\eclipse\jre\bin\javaw.exe
javaw.exe in your current PATH"
Run Code Online (Sandbox Code Playgroud)

我没有在我的机器上更改任何相关的Eclipse/Java,但昨天我的机器上应用了Windows更新,所以也许这与它有关(但我没有看到任何会影响Java的东西).我查看了有关向PATH添加内容或向Eclipse ini添加-vm选项(无法使其工作)或将jre文件夹复制到eclipse\jre的所有其他帖子(这有效但不看起来像是一个很好的长期解决方案).所以我真的想弄清楚如何让事情回到"默认"设置而不会弄乱东西.

我在跑 Windows 7, Eclipse Helios and Java 1.6.0_26.

java eclipse

88
推荐指数
6
解决办法
37万
查看次数

Grails值得吗?

这是半咆哮,半问题.

是否值得使用Grails?我正在尝试开发一个相对简单的数据库驱动的Web应用程序.我的专长是Java,所以Grails自然是个不错的选择.起初我想过使用Spring,JPA和Hibernate,但我之前已经使用过它,并且遇到了各种繁琐的配置和编码工作.Grails称自己为解决这个问题.

我对Grails最大的挫败感是所有不起作用的小事.我的意思是,它不会像人们直觉认为的那样起作用.边缘非常粗糙.我经常遇到问题.有时这是我缺乏Grails的理解 - 有时候我发现了合法的Grails错误.

一个主要问题是缺乏良好的Eclipse集成.有一个Groovy和Grails插件,但除了语法高亮之外它没有什么作用.从Java调用Groovy,反之亦然,配置非常痛苦.没有良好的IDE支持是一个主要的失败.

发生的事情是我坐下来尝试开发我的Web应用程序.在一天结束时,我意识到我花了大约85%的时间调试与Grails相关的问题.如果不是Eclipse的问题,那么它的预先加载,在视图中获取,一个一对多的关系,怪异的空文件的错误行为,怪异的财产/消气错误 -它只是不停去.这只是我今天遇到的问题的一个例子.我与Grails的最后一次坐下来产生了许多不同的问题.

我有时想知道它是否值得.我很好奇其他人是否经历过这种情况.是否有人真正使用Grails来高效地创建Web应用程序?是否还有其他我需要考虑的快速Web开发框架?

java grails

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

EL通过Integer键访问映射值

我有一个由Integer键入的Map.使用EL,我如何通过其键访问值?

Map<Integer, String> map = new HashMap<Integer, String>();
map.put(1, "One");
map.put(2, "Two");
map.put(3, "Three");
Run Code Online (Sandbox Code Playgroud)

我认为这会有效,但它没有(地图已经在请求的属性中):

<c:out value="${map[1]}"/>
Run Code Online (Sandbox Code Playgroud)

跟进:我追查了问题.显然${name[1]},使用数字进行地图查找Long.我想通了这一点,当我换HashMapTreeMap和收到的错误:

java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Long
Run Code Online (Sandbox Code Playgroud)

如果我将地图更改为:

Map<Long, String> map = new HashMap<Long, String>();
map.put(1L, "One");
Run Code Online (Sandbox Code Playgroud)

然后${name[1]}返回"一".那是什么?为什么<c:out>将数字视为一个长数.对我来说似乎违反直觉(因为int比长期更常用).

所以我的新问题是,是否有EL符号通过Integer值访问地图?

java jsp jstl el

85
推荐指数
3
解决办法
15万
查看次数

Jackson JSON针对某些领域的自定义序列化

有没有办法使用Jackson JSON处理器进行自定义字段级序列化?例如,我想要上课

public class Person {
    public String name;
    public int age;
    public int favoriteNumber;
}
Run Code Online (Sandbox Code Playgroud)

序列化为以下JSON:

{ "name": "Joe", "age": 25, "favoriteNumber": "123" }
Run Code Online (Sandbox Code Playgroud)

注意,age = 25被编码为数字而favoriteNumber = 123被编码为字符串.开箱即用杰克逊编组int了一个号码.在这种情况下,我希望favoriteNumber被编码为字符串.

java serialization json jackson

85
推荐指数
5
解决办法
9万
查看次数

JPA Multiple Embedded字段

JPA实体类是否可以包含两个嵌入(@Embedded)字段?一个例子是:

@Entity
public class Person {
    @Embedded
    public Address home;

    @Embedded
    public Address work;
}

public class Address {
    public String street;
    ...
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,一个Person可以包含两个Address实例 - 家庭和工作.我正在使用JPA和Hibernate的实现.当我使用Hibernate Tools生成模式时,它只嵌入一个Address.我想要的是两个嵌入式Address实例,每个实例的列名都有区别或预先设置了一些前缀(例如家庭和工作).我知道@AttributeOverrides,但这要求每个属性都被单独覆盖.如果嵌入的object(Address)变大,因为每个列需要单独重写,这会很麻烦.

java hibernate jpa java-ee

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

关系数据库中的空值是否正常?

有一种观点认为在关系数据库中不应该允许空值.也就是说,表的属性(列)不应该允许空值.来自软件开发背景,我真的不明白这一点.似乎如果null在属性的上下文中有效,那么应该允许它.这在Java中非常常见,其中对象引用通常为null.没有广泛的数据库经验,我想知道我是否在这里遗漏了一些东西.

oop null database-design

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