Recent Notes

Displaying keyword search results 101 - 110
Created by alfa on June 03, 2011 12:36:14    Last update: June 03, 2011 12:36:14
Thread local storage is typically used to associate state with a thread (e.g., a user ID or Transaction ID). This example, coming from Java API doc , assigns a unique id to each thread that calls getCurrentThreadId() . The actual usage is demonstrated with the Java concurrency package. import java.util.concurrent.Future; import java...
Created by alfa on June 03, 2011 12:07:52    Last update: June 03, 2011 12:07:52
import java.util.Random; public class Rando...
Created by alfa on June 03, 2011 09:41:03    Last update: June 03, 2011 09:41:03
Dynamic proxy can be used to eliminate the need to stub out unused interface methods. This is an example for a simple SAX content handler for XML parsing. The org.xml.sax.ContentHandler interface requires 11 methods be implemented but we only need three: import java.io.IOException; import java.util.Ar... With a dynamic proxy, we don't need the empty blocks for the unused methods: import java.io.IOException; import java.util.Ar... Equivalently (with anonymous inner class): import java.io.IOException; import java.util.Ar... demo.xml : <breakfast-menu> <food> <name>Belgian W...
Created by alfa on June 03, 2011 09:08:52    Last update: June 03, 2011 09:08:52
import java.util.Arrays; public class Array...
Created by alfa on June 02, 2011 15:49:26    Last update: June 02, 2011 15:51:08
Facts: Dynamic proxy classes are generated by the Java runtime, from a list of interfaces given by the user. The generated proxy class implements all interfaces given by the user. The dynamic proxy class is not synthetic . The dynamic proxy class is useless without a user supplied InvocationHandler class, since there's only one constructor for the proxy class and it takes a InvocationHandler as parameter. Example code: import java.lang.reflect.Constructor; import ja... Output: Class: $Proxy0 isSynthetic: false Constructo...
Created by alfa on June 02, 2011 15:26:37    Last update: June 02, 2011 15:26:37
While doing some Java reflection code, I noticed the method Class.isSynthetic() , which the JavaDoc says returns " true if and only if this class is a synthetic class as defined by the Java Language Specification". However, there's no definition of "synthetic class" in the JLS ! The only thing that I can find that remotely resembles a definition is in the JVM spec , where it defines the synthetic attribute : "The Synthetic attribute is a fixed-length attribute in the attributes table of ClassFile (§4.1), field_info (§4.5), and method_info (§4.6) structures. A class member that does not appear in the source code must be marked using a Synthetic attribute." By this definition, a default constructor, which does not appear in the source code, should...
Created by alfa on May 26, 2011 21:16:22    Last update: June 02, 2011 14:39:57
Given a class A : class A { public int doWork(String s, int i... it is OK to call method doWork with both primitive types and the corresponding wrapping object types: new A().doWork("Hello", 1, false); new A().doWo... However, if you find method by parameter types with Java reflection, the types must match exactly, i.e., Class<?> c = Class.forName("A"); // This call f... This is a utility to find methods with compatible parameter types: import java.lang.reflect.*; import java.util.*;... Example usage: Method m = ReflectionUtil.getCompatibleMethod(c, "...
Created by alfa on June 02, 2011 13:51:41    Last update: June 02, 2011 13:51:41
This may be helpful in debugging reflection code. import java.lang.reflect.Modifier; public c...
Created by alfa on June 02, 2011 13:04:18    Last update: June 02, 2011 13:04:18
Some javap usage examples. Start from HelloWorld.java : @Deprecated public class HelloWorld { pu... javap -c HelloWorld outputs: Compiled from "HelloWorld.java" public class He... javap -v HelloWorld outputs ( -v for verbose mode): Compiled from "HelloWorld.java" public class He... The output consists of: " Compiled from... " header Class attributes. For the HelloWorld example, there are two: SourceFile and Deprecated . Minor and major class file version Constant pool Disassembled code LineNumberTable for debugging purposes. javap by default only prints package/protected/public members. To display all members including private, use the -p switch. javap -v -p HelloWorld
Created by alfa on June 01, 2011 13:08:36    Last update: June 01, 2011 13:08:36
Code: public class SplitTest { public static void... Output: Split 1: 'a' ' b ' ' c ' 'd ' S...
Previous  6 7 8 9 10 11 12 13 14 15 Next