Tag: 计数器

初学Java计数器代码

我的教授要我这样: 使用下面的Counter接口编写多个可互换的计数器 public interface Counter { /** Current value of this counter. */ int value(); /** Increment this counter. */ void up(); /** Decrement this counter. */ void down(); } 开发以下内容: 一个接口ResetableCounter,除了Counter的那些外,还支持消息void reset()。 这是我做的: public interface ResetableCounter { void reset(); int value(); void up(); void down(); } ResetableCounter的一个实现,名为BasicCounter,从值0开始,分别向上和向下计数+1和-1。 这是我做的: public class BasicCounter implements ResetableCounter { […]

如何在Java中实现对象计数器

一位采访者问我这个问题 如何实现类Foo,您可以在其中计算该类的实例。 有更多的线程正在创建该类Foo的实例。 我用以下代码回复了这个问题 public class Foo { private static int count = 0; public Foo() { incrementCount(); } public void incrementCount() { synchronize (Foo.class) { count++; } } } 她再次问我这个问题 如果一个线程结束,计数器应该减少,你怎么能这样做? 我没有回答这个问题。 我知道finalize()方法,但它依赖于Garbage collector ,即使我们覆盖finalize() ,也会调用此方法。 我还没有解决方案,你能解释一下吗?

会话计数器具有HttpSessionListener和会话计数变量访问权限

我在Sun的“Core Servlets和JavaServer Pages vol 2”中看到了一个带会话计数器的例子。 Counter简单地构建在HttpSessionListener并使用sessionCreated / sessionDestroyed递增/递减会话计数: public class SessionCounter implements HttpSessionListener { private int currentSessionCount = 0; public void sessionCreated(HttpSessionEvent event) { currentSessionCount++; } … public int getTotalSessionCount() { return(totalSessionCount); } … // counter decrement, self registering in context attribute etc. 监听器在上下文中注册自己,因此servlets可以访问它并获得计数器值。 没有同步块。 是否安全, currentSessionCount volatile ? currentSessionCount可以缓存在CPU寄存器中,并且对于使用servlets提供请求的其他线程的精确值是不可见的?

如何在Java程序中创建一个计数器

/*This is a quiz program that will ask the user 10 questions. the user will answer * these questions and will be scored out of 10.*/ class Quiz { public static void main(String args[]) { // Instructions System.out.println(“instructions”); System.out.println(” “); System.out .println(“1. You wll be asked ten questions through out the quiz.”); System.out .println(“2. The […]

如何使用Java中的辅助数组从列表中删除重复项?

我试图通过创建一个临时数组来删除列表中的重复项,该数组存储重复项所在的索引,然后将原始数组复制到另一个临时数组中,同时将索引与我存储在第一个临时数组中的索引进行比较。 public void removeDuplicates() { double tempa [] = new double [items.length]; int counter = 0; for ( int i = 0; i< numItems ; i++) { for(int j = i + 1; j < numItems; j++) { if(items[i] ==items[j]) { tempa[counter] = j; counter++; } } } double tempb [] = new double [ […]