=== [ The
Java FAQ Daily Tips, weekly publication ]
===
| Issue
No: 177
5 August
2003 |
| 14019 subscribers
|
Foreword: Excuse me for
possible mistakes. English is not native language for me.
In this issue:
Hello dear friends!
In one of my last newsletters was the answer to the
question: Why wait(), sleep(), notify(), notifyAll()
must be inside a synchronized block, otherwise it throws
java.lang.IllegalMonitorStateException: current thread not owner.
see newsletter No 175, tip 2, July 22
Harald M. Mueller from
Germany corrected me: "This is not true for sleep(). However, sleep() can
throw an InterruptedException. It is, in many cases, ok to write try
{ Thread.sleep(...); } catch (InterruptedException
ex) { // empty - ignore the
exception }
THIS IS THE ONLY SITUATION WHERE AN EXCEPTION MAY BE
IGNORED!!! In all other catch blocks, either * rethrow an exception *
show the problem in a GUI dialog * crash the program Writing an exception
to stdout or stderr with ex.printStacktrace() is NOT OK!! ... Regards
Harald M. Mueller Germany " Thanks for correction. Please always correct me
if I am wrong!
-- John
Question: When does garbage collection performance
matter to the user?
Answer: For many applications it doesn't. That is, the
application can perform within its specifications in the presence of garbage
collection with pauses of modest frequency and duration. An example where this
is not the case (when the default collector is used) would be a large
application that scales well to large number of threads, processors, sockets,
and a large amount of memory.
Java wimps please close your ears ... For
the Java programmer who thought he knew everything there was to know about
Java, have a look at the most advanced Java newsletter archived on the
website http://www.smotricz.com/kabutz Guess
what, it won't even cost you anything! Subscribe today - you won't be
disappointed.
Question: What is young generation in GC(Garbage
Collector)?
Answer: In the J2SE platform version 1.4.1 two new
garbage collectors were introduced to make a total of four garbage collectors
from which to choose. Beginning with the J2SE platform, version 1.2, the
virtual machine incorporated a number of different garbage collection algorithms
that are combined using generational collection. While naive garbage collection
examines every live object in the heap, generational collection exploits several
empirically observed properties of most applications to avoid extra work.
The default collector in
HotSpot has two generations: the young generation and the tenured generation.
Most allocations are done in the young generation. The young generation is
optimized for objects that have a short lifetime relative to the interval
between collections. Objects that survive several collections in the young
generation are moved to the tenured generation. The young generation is
typically smaller and is collected more often. The tenured generation is
typically larger and collected less often.
The young generation
collector is a copying collector. The young generation is divided into 3 spaces:
eden-space, to-space, and from-space. Allocations are done from eden-space and
from-space. When those are full a young generation is collection is done. The
expectation is that most of the objects are garbage and any surviving objects
can be copied to to-space. If there are more surviving objects than can fit into
to-space, the remaining objects are copied into the tenured generation. There is
an option to collect the young generation in parallel.
The tenured generation is
collected with a mark-sweep-compact collection. There is an option to collect
the tenured generation concurrently.
This tip is based on FAQ
about Garbage Collection in the HotSpot Java Virtual Machine http://java.sun.com/docs/hotspot/gc1.4.2/faq.html and
article "Tuning Garbage Collection with the 1.4.2 Java Virtual Machine" http://java.sun.com/docs/hotspot/gc1.4.2/
Sara Freder offering you a FREE Clairvoyance Horoscope and
she will reveal your lucky numbers, all FREE of charge. Click Here. http://mocda4.com/1/c/52983/97685/290270/290270
Question: Why SUN does not introduce dynamic policies
(for security)?
Answer: Support for dynamic policies has been added.
In Java 2 SDK releases prior to version 1.4, classes were statically bound with
permissions by querying security policy during class loading. The lifetime of
this binding was scoped by the lifetime of the class loader. In version 1.4 this
binding is now deferred until needed by a security check. The lifetime of the
binding is now scoped by the lifetime of the security policy.
Latest posts on our
message
board |
| JList in a JTable cell
Is it possible to render JList
into a JTable cell? If it is please provide a code sample. Thanks,
EML please help here
... | | |
| Object serialization
Hi all,
have a question
for you. I have a socket sock, I use ObjectStream to read/write objects on
the socket. If I write 2 or more times an object on the stream (the exactly same
object) on the other side I don't see its state (values of attributes) changes.
For example if I write a Dimension object 2 times and after the first
writeObject I change its state with setSize, the second time I do readObject it
return the SAME STATE as the first time, as I if never changed the size of
Dimension.
continues here
... | | |
| How to realize my project
Hi, I’m new on java and i
should do a project to create an application to design Workflow on thin client
(IE6) or a software and use Java Web Start. The design is base on the
state-chart diagram. All the information concerning items (position, size) will
be store under lotus Notes Documents. Each item (state, chart relations)
will have different values selected from list. Each list will be fill in with
informations descended from data contains under Lotus Notes documents. State
and chart max number: 99 We will use Lotus Domino R6 as HTTP server. In
fact the applet I should create will only be use to draw, all the information
are from and store under Lotus Notes
The software should contain a zoom
option, an export option(GIF,.. ) and a print option (PDF, printer)
I
found jgraph,
continues here
... | | |
| problem with JPopup
Hello,
i have following
problem. In a JTree i show a JPopup if i clicked with right mousebutton.
If something is select and action the Popup i will allow to move it. This
means i draw a ghost image of the selection on the position of the popup. I
draw this image if the method actionperformed of the Popup calls. And when
the mouse moves i draw it at the mouseposition. Now the problem. After the
popup action the image is not draw correctly. At the position of popup it draw
wight and the rest show correct. I have try to draw in following methods:
-popupMenuWillBecomeInvisible and
-propertyChange(PropertyChangeEvent e) {
if(e.getPropertyName().compareTo("visible")==0)
if((Boolean)e.getNewValue() == Boolean.FALSE) } continues here
... | | |
| Rounding Oval in a rect.
Hey everybody. Please help me
create a java applet of which the ball is rounding in a rectengular/square...
And otherone. There is bar getting longer as you press a key.
Please please please I need
you... | | |
| Limiting JTextArea
Basically all I want to do is
limit a JTextArea to, say, four lines max. I mean 4 physical lines, not 4
sentences. Now I know about PlainDocument and I know how to determine how many
carriage returns there are in the JTextArea. But sometimes there will be
carriage returns and sometimes there will just be linewraps at a word space.
Both create "new lines" in my situation.
So I'm struggling determining
how many lines are in the JTextArea when carriage returns aren't used and how to
limit the max number of lines. I have got as far as stopping entry when the
fourth line is at its maximum width but this also stops entry on previous lines
if the user moves the cursor back up a line.
At this point I'm going
around in circles and need a fresh approach. Any code examples or thoughts would
be sincerely appreciated. please help here ... | | |
8 comments | | Java Newsletters | Score: 0
|