When multiple thread access the same object concurrently , there are two methods to do it: access the original object every time or keep a local private copy of the object. The second way surely faster because access shared memory need some extra works.
But there is a problem: what if the original object changed? In other words, the second method may cause shared variable inconsistent. But for some shared variables , we only read it, never change it or occasionally change it, under this circumstance , its safe to use private local copy and gain the performance.But there is a problem: what if the original object changed? In other words, the second method .
Suppose you want to monitor 100 websites and check whether there are updates. You don't have to check them one by one, you can do it simultaneously with multi-thread. Thus, for A website your thread my open connection and wait for the network to return data, at the same time the thread deal with B website may start to .
The standard way to launch a thread is through extending java.lang.Thread class. In this example we use java.lang.Thread to wrap member function of the main class.
First lets define a simple class:
Hi, Please confirm.. I face this question a lot in my interviews.
How many object of string objects are created.
Suppose we have a method DoSomething() will read user input and the input should be a number. If user did not input a number, the method fail to finish its job, so the other code rely on the job should not execute and program should do something about it like show a message to the user, in software programming .
I always have the question: How the interface find its implementation ? In the calling code we always declare object with the interface name, Never need to declare the implementation class. We never explicitly tell the compiler which implementation to use.
The answer is , compiler don't know which implementation to use. When you declare a interface , there is no instance created, you have to new something and assign that instance to the interface. And the instance can be anything that implement the interface.The answer is , compiler don't know which implementation to use. When you declare a interface , there is no .
In java extends declaration syntax we often see something like this:
The question mark also show up on other place, inside an angle bracket. It means any class, its a wildcard. Its the Generic of Java. It called bounded wildcard.
An immutable object in Java is the objects that can not be changed. For example String object is immutable because you can not change String object's content. when you write str = "Hello"; and then str ="World"; you didn't erase the "Hello" String object, you create another object "World" and assign the address to str variable.