小编Hea*_*ren的帖子

如何处理"java.lang.OutOfMemoryError:Java堆空间"错误?

我正在Java 5上编写一个客户端Swing应用程序(图形字体设计器).最近,我遇到了错误,因为我对内存使用情况并不保守.用户可以打开无限数量的文件,程序将打开的对象保存在内存中.经过快速研究后,我在5.0 Java虚拟机中找到了人体工程学,其他人在Windows机器上说JVM默认最大堆大小为.java.lang.OutOfMemoryError: Java heap space64MB

鉴于这种情况,我该如何处理这种约束?

我可以使用java的命令行选项增加最大堆大小,但这需要找出可用的RAM并编写一些启动程序或脚本.此外,增加到一些有限的最大值并不能最终摆脱这个问题.

我可以重写我的一些代码来经常将对象持久化到文件系统(使用数据库是一回事)来释放内存.它可以工作,但它可能也很重要.

如果您可以向我指出上述想法的细节或某些替代方案,如自动虚拟内存,动态扩展堆大小,这将是很好的.

java jvm heap-memory out-of-memory java-ee

395
推荐指数
21
解决办法
123万
查看次数

不可变的意思是什么?

这可能是有史以来最愚蠢的问题,但我认为这对新手来说完全是一个混乱.

  1. 有人可以澄清不可变的含义吗?
  2. 为什么是String不可改变的?
  3. 不可变对象有哪些优点/缺点?
  4. 为什么一个可变对象StringBuilder比首字母和副词更受欢迎?

一个很好的例子(在Java中)将非常感激.

java string immutability

383
推荐指数
11
解决办法
17万
查看次数

"java -server"和"java -client"之间的真正区别?

"java -server"和"java -client"之间有什么实际的区别吗?我在Sun的网站上找到的只是一个模糊的" - 服务器启动较慢但应该运行得更快".有什么真正的区别?(目前使用JDK 1.6.0_07.)

java jvm jvm-hotspot

380
推荐指数
8
解决办法
23万
查看次数

Java:静态vs内部类

静态和非静态嵌套类有什么区别?

java static inner-classes

355
推荐指数
5
解决办法
27万
查看次数

JVM,JDK,JRE和OpenJDK有什么区别?

JVM,JDK,JREOpenJDK有什么区别?

我是用Java编程的,我遇到了这些短语,它们之间有什么区别?

java jvm difference

322
推荐指数
9
解决办法
38万
查看次数

如果可以使用synchronized(this),为什么要使用ReentrantLock?

我试图理解是什么让并发锁如此重要,如果可以使用synchronized (this).在下面的虚拟代码中,我可以做到:

  1. 同步整个方法或同步易受攻击的区域(synchronized(this){...})
  2. 或者使用ReentrantLock锁定易受攻击的代码区域.

码:

    private final ReentrantLock lock = new ReentrantLock(); 
    private static List<Integer> ints;

    public Integer getResult(String name) { 
        .
        .
        .
        lock.lock();
        try {
            if (ints.size()==3) {
                ints=null;
                return -9;
            }   

            for (int x=0; x<ints.size(); x++) {
                System.out.println("["+name+"] "+x+"/"+ints.size()+". values >>>>"+ints.get(x));
            }

        } finally {
            lock.unlock();
        } 
        return random;
}
Run Code Online (Sandbox Code Playgroud)

java concurrency multithreading synchronize reentrantlock

306
推荐指数
5
解决办法
14万
查看次数

Java堆术语:年轻,古老和永久的世代?

我试图理解Java堆术语中年轻,一代永久世代的概念,更具体地说是三代之间的相互作用.

我的问题是:

  • 什么是年轻一代?
  • 什么是老一代?
  • 什么是永久世代?
  • 三代人如何相互作用/相互联系?

java garbage-collection jvm heap-memory

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

如何设置JVM使用的代理

很多时候,Java应用程序需要连接到Internet.最常见的示例发生在读取XML文件并需要下载其架构时.

我在代理服务器后面.如何设置JVM以使用代理?

java proxy jvm

291
推荐指数
12
解决办法
57万
查看次数

OSGi解决了什么?

我已经在维基百科和其他网站上阅读过关于OSGi的内容,但我并没有真正看到全局.它说它是一个基于组件的平台,您可以在运行时重新加载模块.另外,给出的"实际示例"是Eclipse插件框架.

我的问题是:

  1. OSGi的清晰简单定义是什么?

  2. 它解决了哪些常见问题?

"常见问题"我指的是我们每天面临的问题,例如"OSGi可以做些什么来提高我们的工作效率/乐趣/简单?"

java components osgi

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

Class JavaLaunchHelper is implemented in both ... libinstrument.dylib. One of the two will be used. Which one is undefined

I upgraded to the latest Java 7 u40 on MacOS X and started getting the following message on the console when launching my application using Eclipse. The app works fine but I would like to find out the cause of the problem and hopefully a fix for it.

objc[10012]: Class JavaLaunchHelper is implemented in both /Library/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/Contents/Home/bin/java and /Library/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/Contents/Home/jre/lib/libinstrument.dylib. One of the two will be used. Which one is undefined.
Run Code Online (Sandbox Code Playgroud)

Does anyone know why this message is printed and how to …

java eclipse macos jvm jvm-hotspot

271
推荐指数
6
解决办法
12万
查看次数