I am writing a multi-thread program in Java, where i am creating a seperate thread to handle each new client connection. I have:

```
Socket s;

while(true)
{
    s = server.accept();
    ClientHandler ch = new ClientHandler(s);
    Thread servingThread = new Thread(ch);
    servingThread.start();
}

```

In the ClientHandler thread i have:

```
public class ClientHandler implements Runnable
{
    private Socket s;

public ClientHandler(Socket _Socket, boolean _accepted, BaseStation _bs)
{
    this.s = _Socket;
}

```

If in Java i can't pass an object but only a reference to it, isn't that going to cause a problem, to the `s` instance inside ClientHandler whenever `server` accepts a new connection?
Is it not going to change inside `ClientHandler` too and corrupt it? If so, what's the correct way to do it?