Java如何给Java传数据
数据传输方式
通过方法参数传递
在Java中,可以直接将数据作为参数传递给方法。调用方法时,实参会传递给形参,适用于基本数据类型和对象引用。
public void processData(String data) {
System.out.println("Received: " + data);
}
// 调用
processData("Hello Java");
通过返回值传递
方法可以通过返回值将数据传递回调用者。适用于需要计算结果或状态反馈的场景。
public int add(int a, int b) {
return a + b;
}
// 调用
int result = add(3, 5);
对象成员变量共享
类内部共享数据
通过类的成员变量,不同方法可以共享同一数据。需注意线程安全问题。
public class DataHolder {
private String sharedData;
public void setData(String data) {
this.sharedData = data;
}
public void printData() {
System.out.println(sharedData);
}
}
集合与容器传递
使用集合类
通过List、Map等集合容器传递批量数据。适合需要动态增删数据的场景。
public void processList(List<String> items) {
for (String item : items) {
System.out.println(item);
}
}
// 调用
processList(Arrays.asList("A", "B", "C"));
文件或网络传输
文件读写
通过文件系统传递数据,适合持久化或跨进程通信。
// 写入文件
Files.write(Paths.get("data.txt"), "content".getBytes());
// 读取文件
String content = new String(Files.readAllBytes(Paths.get("data.txt")));
Socket网络通信
通过TCP/IP协议传输数据,适用于分布式系统。
// 服务端
ServerSocket server = new ServerSocket(8080);
Socket client = server.accept();
BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));
String data = in.readLine();
// 客户端
Socket socket = new Socket("localhost", 8080);
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
out.println("Data from client");
序列化与反序列化
对象序列化
将对象转换为字节流传输,适用于RPC或缓存场景。需实现Serializable接口。
// 序列化
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(bos);
oos.writeObject(myObject);
byte[] bytes = bos.toByteArray();
// 反序列化
ByteArrayInputStream bis = new ByteArrayInputStream(bytes);
ObjectInputStream ois = new ObjectInputStream(bis);
MyClass restoredObject = (MyClass) ois.readObject();
回调机制
接口回调
通过定义接口实现异步数据传递,常见于事件监听模式。

public interface DataCallback {
void onDataReceived(String data);
}
public class Processor {
public void process(DataCallback callback) {
callback.onDataReceived("Processed data");
}
}
// 调用
new Processor().process(data -> System.out.println(data));






