小编Cra*_*ava的帖子

在jdk 1.5中序列化对象并将其反序列化为jdk 1.6

我计划进行研究,请告知我是否尝试混合使用java 1.5和1.6.例如,我有一个java 1.5,我已经在c:\驱动器中的一个文件中序列化了一个java对象,然后尝试在java 1.6中打开将有任何异常,如果我反之亦然..?

java

5
推荐指数
1
解决办法
489
查看次数

关于不可变类防御性复制

我有一个关于创建Immutable类的查询.以下是我考虑的要点:

  1. 让课程最终
  2. 使所有成员最终,在静态块或构造函数中显式设置它们
  3. 让所有成员都私密
  4. 没有修改状态的方法
  5. 要非常小心地限制对可变成员组件的访问(请记住该字段可能是最终的,但对象仍然可以是可变的.即私有最终日期imStillMutable) - 请参阅防御性复制或其表兄复制构造函数以获取更多信息.


但是我根本不完全理解这一点,你能告诉或给我一个例子,其中5点在这个例子中是清楚的吗?

java immutability defensive-copy

3
推荐指数
1
解决办法
970
查看次数

从性能的角度来选择缓冲读卡器或扫描仪

从性能优化的角度来看:用Java读取文件 - 更好的是缓冲读取器还是扫描器?

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.logging.Level;
import java.util.logging.Logger;


public class BufferedReaderExample {   

    public static void main(String args[]) {

        //reading file line by line in Java using BufferedReader       
        FileInputStream fis = null;
        BufferedReader reader = null;

        try {
            fis = new FileInputStream("C:/sample.txt");
            reader = new BufferedReader(new InputStreamReader(fis));

            System.out.println("Reading File line by line using BufferedReader");

            String line = reader.readLine();
            while(line != null){
                System.out.println(line);
                line = reader.readLine();
            }           

        } catch (FileNotFoundException ex) {
            Logger.getLogger(BufferedReaderExample.class.getName()).log(Level.SEVERE, …
Run Code Online (Sandbox Code Playgroud)

java io

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

关于抽象工厂模式的不可动摇

我正在经历下面的抽象工厂设计模式是那个UML图. 在此输入图像描述

请建议我这个paatern的最佳例子,因为我尝试过最好,但我正在寻找容易学习的例子,并希望让我对抽象工厂模式的理解100%清晰.请告知

java design-patterns

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

关于java中的生产者和消费者模式与阻塞队列方法

我正在研究与 Java 中的线程有关的生产者和消费者设计模式,我最近在 Java 5 中进行了探索,介绍了 Java 5 中引入 BlockingQueue 数据结构 现在更简单了,因为 BlockingQueue 通过引入阻塞方法隐式地提供了这种控制put() 和 take()。现在您不需要使用等待和通知在生产者和消费者之间进行通信。在有界队列的情况下,如果队列已满,则 BlockingQueue put() 方法将阻塞,如果队列为空,则 take() 将阻塞。在下一节中,我们将看到生产者消费者设计模式的代码示例。我已经开发了以下程序,但也请让我知道 waut() 和 notify() 的旧式方法,我也想用旧式方法开发相同的逻辑

人们请告知如何实现这一点,经典方式是使用 wait() 和 notify() 方法在生产者和消费者线程之间进行通信,并在单独的条件(如满队列和空队列)下阻塞它们中的每一个......?

    import java.util.concurrent.BlockingQueue;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.logging.Level;
import java.util.logging.Logger;

public class ProducerConsumerPattern {

    public static void main(String args[]){

     //Creating shared object
     BlockingQueue sharedQueue = new LinkedBlockingQueue();

     //Creating Producer and Consumer Thread
     Thread prodThread = new Thread(new Producer(sharedQueue));
     Thread consThread = new Thread(new Consumer(sharedQueue));

     //Starting producer and Consumer thread
     prodThread.start();
     consThread.start();
    } …
Run Code Online (Sandbox Code Playgroud)

java concurrency multithreading

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