小编Rav*_*abu的帖子

什么时候在Java中使用volatile关键字?

我读过" 什么时候在Java中使用'volatile'? "但我仍然感到困惑.我怎么知道何时应该标记变量volatile?如果我弄错了,要么在需要它的东西上省略volatile,要么在不需要的东西上放置volatile呢?在确定多线程代码中哪些变量应该是易变的时,有哪些经验法则?

java multithreading volatile

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

访客模式的目的与示例

我对访客模式及其用途感到困惑.我似乎无法想象使用这种模式或其目的的好处.如果有人可以用例子解释,如果可能的话会很好.

java design-patterns visitor

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

关于G1的Java 7(JDK 7)垃圾收集和文档

Java 7已经出现了一段时间了,但我找不到任何关于垃圾收集器配置的好资源,特别是新的G1收集器.

我的问题:

  1. G1是Java 7中的默认收集器,如果不是,我如何激活G1?
  2. g7在Java7中有哪些可选设置?
  3. 是否对Java 7中的其他收集器(如cms并行收集器)进行了更改?
  4. 在哪里可以找到有关Java 7中垃圾收集的好文档?

java garbage-collection heap-memory g1gc java-7

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

使用接受字符串参数的构造函数实例化一个类对象?

我想Class使用接受单个String参数的构造函数从其对象实例化一个对象.

这是一些接近我想要的代码:

Object object = null;
Class classDefinition = Class.forName("javax.swing.JLabel");
object = classDefinition.newInstance();
Run Code Online (Sandbox Code Playgroud)

但是,它实例化JLabel没有文本的对象.我想使用JLabel接受字符串作为初始文本的构造函数.有没有办法从Class对象中选择特定的构造函数?

html java reflection constructor

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

为什么我会在装饰师身上使用责任链?

我只是阅读了责任链模式,当我更喜欢使用装饰器时,我很难想象一个场景.

你怎么看?CoR是否有利基用途?

oop design-patterns decorator chain-of-responsibility

70
推荐指数
5
解决办法
3万
查看次数

为什么要使用接口,多重继承与接口,接口的好处?

我对这件事情仍然有些困惑.我到现在所发现的是

(这里已经提出了类似的问题,但我还有其他一些观点.)

  1. 接口是仅抽象方法和最终字段的集合.

  2. Java中没有多重继承.

  3. 接口可用于在Java中实现多重继承.

  4. 继承的一个优点是我们可以在派生类中使用基类代码而无需再次编写它.可能这是继承在那里最重要的事情.

现在..

Q1.由于接口只有抽象方法(没有代码)所以我们怎么说如果我们实现任何接口那么它是继承?我们没有使用它的代码.

Q2.如果实现接口不是继承,那么如何使用接口来实现多重继承?

Q3.无论如何使用Interfaces有什么好处?他们没有任何代码.我们需要在我们实现它的所有类中反复编写代码.

那么为什么要制作接口呢?

注意:我找到了一个接口有用的案例.它的一个例子就像在Runnable接口中我们有public void run()方法,我们在其中定义线程的功能,并且内置编码,该方法将作为单独的线程运行.所以我们只需要编写线程中的代码,Rest是预定义的.但是这个东西也可以用抽象类和所有东西来实现.

那么使用接口的确切好处是什么?我们使用Interfaces实现了多重继承吗?

java oop inheritance interface multiple-inheritance

63
推荐指数
6
解决办法
5万
查看次数

可能是RejectedExecutionException的原因

我在我的tomcat服务器上获得此异常(+ liferay)

java.util.concurrent.RejectedExecutionException
Run Code Online (Sandbox Code Playgroud)

我的课就是这样的:

public class SingleExecutor extends ThreadPoolExecutor {
  public SingleExecutor(){
    super(1, 1,0L, TimeUnit.MILLISECONDS,new LinkedBlockingQueue<Runnable>());
  }

  @Override
  public void execute(Runnable command) {
    if(command instanceof AccessLogInsert){
        AccessLogInsert ali = (AccessLogInsert)command;
        ali.setConn(conn);
        ali.setPs(ps);
    }
    super.execute(command);
  }
}
Run Code Online (Sandbox Code Playgroud)

我在行上遇到此异常super.execute(command); 当队列已满但LinkedBlockingQueue大小为2 ^ 31时,可能会发生此错误,我确信没有这么多命令等待.

一开始一切都很稳定,但在重新部署战争之后它就开始了.这个类不是战争的一部分,而是在tomcat/lib的jar中.

你知道为什么会发生这种情况以及如何解决这个问题吗?

java multithreading

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

年轻,终身和烫发一代

我对Heap,Young,Tenured和Perm一代感到困惑.

有人可以解释一下吗?

java garbage-collection jvm heap-memory

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

61
推荐指数
5
解决办法
3万
查看次数

如何在不关闭Executor的情况下等待ThreadPoolExecutor中的所有任务完成?

我无法使用shutdown(),awaitTermination()因为有可能在等待时将新任务添加到ThreadPoolExecutor中.

所以我正在寻找一种方法,等待ThreadPoolExecutor清空它的队列并完成所有任务而不停止在该点之前添加新任务.

如果它有任何区别,这适用于Android.

谢谢

更新:几周后重新访问后,我发现在这种情况下修改后的CountDownLatch对我来说效果更好.我会保留答案标记,因为它更适用于我的要求.

java multithreading android wait threadpoolexecutor

60
推荐指数
3
解决办法
6万
查看次数