Difference between revisions of "Java home"

(clonen)
Ms (talk)
(Thread Dumps)
 
(7 intermediate revisions by 2 users not shown)
Zeile 2: Zeile 2:
 
=== Links ===
 
=== Links ===
 
*http://java.sun.com/j2se/codenames.html
 
*http://java.sun.com/j2se/codenames.html
  +
*http://java.sun.com/products/archive/
   
 
== Tips and Tricks ==
 
== Tips and Tricks ==
Zeile 28: Zeile 29:
 
== JUnit ==
 
== JUnit ==
 
=== Version Info ===
 
=== Version Info ===
Manchmal möchte man die Version einer junit-JAR herausbekommen. Das manifest enthält nichts und die Klasse Version keine Main-Methode.
+
Manchmal möchte man die Version einer junit-JAR herausbekommen.
  +
Das manifest enthält keine Versionskennzeichnung und die Klasse Version besitzt keine Main-Methode.
  +
Also braucht man eine kleine Klasse, die die Version auslesen kann.
   
 
<pre>
 
<pre>
Zeile 38: Zeile 41:
 
}
 
}
 
</pre>
 
</pre>
  +
  +
== Thread Dumps ==
  +
Zum Erzeugen eines Thread Dumps muss man seit JDK 1.5 kein SIGQUIT (kill -3 ...) an die JavaVM schicken, sondern es gibt ein eigenes Kommando daf+r
  +
  +
jstack <pid> >stack.txt
  +
  +
=== Links ===
  +
*http://rfeest.blogspot.com/2008/02/thread-dumps-erzeugen.html
  +
*[https://tda.dev.java.net/ Thread Dump Analyzer]
  +
*[http://www.tagtraum.com/gcviewer.html free open source tool to visualize garbage collector data]
  +
*[https://visualvm.dev.java.net/ All-in-One Java Troubleshooting Tool]
   
 
== Exceptions ==
 
== Exceptions ==
Zeile 43: Zeile 57:
 
*http://www.mindview.net/Etc/Discussions/CheckedExceptions
 
*http://www.mindview.net/Etc/Discussions/CheckedExceptions
   
== Clonen von Objekten ==
+
== Klonen von Objekten ==
  +
Um bitweise Kopien von Objekten zu erzeugen, kann man die clone-Methode der Klasse Object verwenden.
  +
Dafür muss die zu klonende Klasse das Interface Clonable implementieren.
  +
<pre>
  +
public class MyClass implements Cloneable {
  +
}
  +
</pre>
  +
 
<pre>
 
<pre>
 
/** Objekt clonen (unter Verwendung von Object.clone()).
 
/** Objekt clonen (unter Verwendung von Object.clone()).
Zeile 49: Zeile 70:
 
* @return Clone oder null, falls Object.clone() CloneNotSupportedException lieferte
 
* @return Clone oder null, falls Object.clone() CloneNotSupportedException lieferte
 
*/
 
*/
public BkaEingabeDatensatzKopfsatz clone() {
+
public MyClass clone() {
 
try {
 
try {
return (BkaEingabeDatensatzKopfsatz) super.clone();
+
return (MyClass) super.clone();
 
} catch (CloneNotSupportedException e) {
 
} catch (CloneNotSupportedException e) {
 
return null;
 
return null;

Latest revision as of 19:40, 16 Februar 2009

Runtime Environments

Links

Tips and Tricks

Rules Engines

Overview

Business Rules Management Systems (BRMS), decision tables (Entscheidungstabellen)

Links

JUnit

Version Info

Manchmal möchte man die Version einer junit-JAR herausbekommen. Das manifest enthält keine Versionskennzeichnung und die Klasse Version besitzt keine Main-Methode. Also braucht man eine kleine Klasse, die die Version auslesen kann.

import junit.runner.Version;
public class JUnitVersion {
	public static void main(String[] args) {
		System.out.println(Version.id());
	}
}

Thread Dumps

Zum Erzeugen eines Thread Dumps muss man seit JDK 1.5 kein SIGQUIT (kill -3 ...) an die JavaVM schicken, sondern es gibt ein eigenes Kommando daf+r

 jstack <pid> >stack.txt

Links

Exceptions

Links

Klonen von Objekten

Um bitweise Kopien von Objekten zu erzeugen, kann man die clone-Methode der Klasse Object verwenden. Dafür muss die zu klonende Klasse das Interface Clonable implementieren.

public class MyClass implements Cloneable {
}
    /** Objekt clonen (unter Verwendung von Object.clone()).
     * @see java.lang.Object#clone()
     * @return Clone oder null, falls Object.clone() CloneNotSupportedException lieferte
     */
    public MyClass clone() {
        try {
            return (MyClass) super.clone();
        } catch (CloneNotSupportedException e) {
            return null;
        }
    } 

Links