小编Gar*_*eth的帖子

烫发空间与堆空间

首先,Perm空间和堆空间之间有什么区别(JVM选择使用每个内存空间的内容和方式)?

其次,但最重要的是,对于标准MVC类型的Java应用程序,建议使用什么样的比率?

java performance memory-management

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

使用队列的生产者/消费者线程

我想创建一些Producer/Consumer线程应用程序.但我不确定在两者之间实现队列的最佳方法是什么.

所以我有两个想法(两者都可能是完全错误的).我想知道哪个更好,如果它们都吮吸那么什么是实现队列的最佳方式.这主要是我在这些例子中实现的队列,我很关心.我正在扩展一个内部类的Queue类,并且是线程安全的.以下是两个示例,每个示例包含4个类.

主类 -

public class SomeApp
{
    private Consumer consumer;
    private Producer producer;

    public static void main (String args[])
    {
        consumer = new Consumer();
        producer = new Producer();
    }
} 
Run Code Online (Sandbox Code Playgroud)

消费者类 -

public class Consumer implements Runnable
{
    public Consumer()
    {
        Thread consumer = new Thread(this);
        consumer.start();
    }

    public void run()
    {
        while(true)
        {
            //get an object off the queue
            Object object = QueueHandler.dequeue();
            //do some stuff with the object
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

制片人类 -

public class …
Run Code Online (Sandbox Code Playgroud)

java queue multithreading producer-consumer

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

Java中的真正随机生成

我正在阅读Math.random()javadoc并看到随机只是伪随机.

是否有一个库(特别是java)根据随机变量生成随机数,如环境温度,CPU温度/电压或类似的东西?

java random

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

String.format不允许int

我正在寻找一种快速简单的方法来将int格式化为带有两个前导零的字符串.我发现这个/sf/answers/306413621/答案,它看起来像我需要的.所以我这样实现了它

int i = 34; //could be any value but you get the idea   
String.format("%03d", i);
Run Code Online (Sandbox Code Playgroud)

但是,Eclipse似乎对于String.format需要Object[]第二个参数这一事实感到呻吟.这里发生了什么?

java eclipse string-formatting

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

正则表达式,用于在括号或逗号之前获取字符

我用这个把头发拉了一下.

说我有一个字符串 7f8hd::;;8843fdj fls "": ] fjisla;vofje]]} fd)fds,f,f

我想现在提取这种7f8hd::;;8843fdj fls "":基于的前提下字符串,字符串以无论是终止}],),但所有这些字符可能是目前我只需要第一个.

我试过用Matcher和Pattern类创建一个正则表达式但没有成功,但我似乎无法正确使用它.

我能想到的最好的是下面,但我的reg exp似乎并没有像我认为的那样工作.

String line = "7f8hd::;;8843fdj fls "": ] fjisla;vofje]]} fd)fds,f,f";
Matcher m = Pattern.compile("(.*?)\\}|(.*?)\\]|(.*?)\\)|(.*?),").matcher(line);
while (matcher.find()) {
    System.out.println(matcher.group());
}
Run Code Online (Sandbox Code Playgroud)

我显然不能正确理解reg exp.任何帮助都会很棒.

java regex

2
推荐指数
1
解决办法
7882
查看次数