wood burning stoves 2.0*
The moose likes Beginning Java and the fly likes static reference Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Murach's Java Servlets and JSP this week in the Servlets forum!
JavaRanch » Java Forums » Java » Beginning Java
Bookmark "static reference" Watch "static reference" New topic
Author

static reference

Ricky Martaputra
Ranch Hand

Joined: Apr 04, 2005
Posts: 42
hi..
i'd like to ask about static object reference.
i have a class like this:


and the other one as a main class:

when i executed the TestMain class, the output is Size = 1 and when i excuted in other console, the output is still Size = 1.

Can you tell me how to make ouput Size = 2 while i execute in other console and always increase the size value if i execute in other window?

thanks in advance
Ricky Martaputra
Ranch Hand

Joined: Apr 04, 2005
Posts: 42
I'm sorry, there is a little mistake in my first code, the first class name should be TStaticImpl, not Test.
Ulf Dittmer
Marshal

Joined: Mar 22, 2005
Posts: 41060
    
  43
It sounds like you are executing the program and then -when it quits- start it again in the same (or another) terminal window. That means you're creating different JVMs. Variables (static or not) are only kept alive within a JVM, meaning you need to keep the JVM running, and then -when you repeatedly add values- will the number of objects increase.
If you want to persist objects between JVM invocations, have a look at serialization. If you want to keep the JVM up and running, some kind of application server would be required.


Ping & DNS - my free Android networking tools app
Ernest Friedman-Hill
author and iconoclast
Marshal

Joined: Jul 08, 2003
Posts: 24183
    
  34

Static variables are shared among all instances of a class within a single Java virtual machine (JVM). If you run the same program twice in two different console windows, you're running two separate, unrelated JVMs, and each has its own copy of that static variable. There's no way to make multiple JVMs share the same variable. What you would have to do is make multiple JVMs communicate with one JVM that "owns" the variable. This is called "distributed computing." There are many different ways to do this in Java -- RMI, CORBA, HTTP, raw sockets. You can learn about all of them in the Java Tutorial.


[Jess in Action][AskingGoodQuestions]
Ricky Martaputra
Ranch Hand

Joined: Apr 04, 2005
Posts: 42
hm..
i see...

thanks for your help...
 
It is sorta covered in the JavaRanch Style Guide.
 
subject: static reference
 
Similar Threads
Why oh why do I even Try??
passing class name rather then object
Using import static problem
About args to main()
From main method to contractor, it is possible?