Simple yet flexible configuration management of your application.
Javolution classes are simple to use, even simpler than most JDK classes. You don't need to guess the capacity of a TextBuilder, FastTable or a FastMap, their size expand gently without ever incurring expensive resize/copy or rehash operations (unlike StringBuilder, ArrayList or HashMap).
Developers may achieve true separation of concerns (e.g. logging, configuration) through Context Programming or by using classes such as Configurable.
Javolution classes are fast, very fast (e.g. Text insertion/deletion in O[Log(n)] instead of O[n] for standard StringBuffer/StringBuilder).
All Javolution classes are hard real-time compliant and have highly deterministic behavior (in the microsecond range). Furthermore (unlike the standard library), Javolution is RTSJ safe (no memory clash or memory leak when used with Java Real-Time extension).
Javolution makes it easy for concurrent algorithms to take advantage of multi-processors systems.
Javolution's real-time collection classes (map, list, table and set) can be used in place of most standard collection classes and provide numerous additional capabilities.
Any Java class can be serialized/deserialized in XML formatin any form you may want, also no need to implement Serializable or for the platform to support serialization
Javolution provides Struct and Union classes for direct interoperability with C/C++ applications.
Javolution runs on any platform from the simplest J2ME CLDC 1.0 with no garbage collector to the latest J2EE 5.0 with parameterized types.
Javolution is a pure Java Solution (no native code), small (less than 300 KBytes jar file) and free; permission to use, copy, modify, and distribute this software is freely granted, provided that copyright notices are preserved (BSD License).
Javolution Version 5.2.6 - October 12, 2007
The standard binary distribution (above) targets the J2SE 1.5+ platform. For others platforms, the library should be rebuilt from the sources using the provided Ant script. Here is a summary of the platforms supported:
Ant Target
Platform
Description
1.0
CLDC 1.0+
The library is built without floating point support. J2SE interfaces are in the j2me.* package.
1.1
CLDC 1.1+
The library includes floating point support. J2SE interfaces are in the j2me.* package.
1.4
J2SE 1.4+
J2SE interfaces are in the regular java.* package.
1.5
J2SE 1.5+
Parameterization of relevant classes (e.g. collections) javolution.lang.Appendable and javolution.lang.Enum are moved to the java.lang.* package.
1.6
J2SE 1.6+
Includes performance comparison with standard StAX
J2SE interfaces are in the regular java.* package. Includes org.xml.sax.* classes. Generates a native dynamic library ( javolution.so ).
Once built, the library can be used as a normal library (no bootclasspath necessary). The library is also self-executable for versioning, testing and benchmark purpose.
java -jar javolution.jar version (shows version information) java -jar javolution.jar test (performs self-tests) java -jar javolution.jar perf (runs benchmark)
Here are the benchmark results on Windows platforms.
The PoolContext (too generic) has been replaced by the StackContext whose implementation can be based on thread-local queues (default) or ScopedMemory (RTSJ).
The RealtimeObject base class is superceeded by the Realtime interface.
New ValueType interface for immutable objects which can be referenced by copy and can always be allocated on the "stack"!
New ArrayFactory to allocates/recycle variable sizes arrays. "Stack" allocation is independent from the array's size and significantly faster than "heap" allocation.
Optimized self-balancing tree structure for Text [4.2.2]
Simplified context support (PoolContext, ConcurrentContext...)
New interface ConcurrentExecutor for concurrency [4.2.0]
Added Index class (facilitates mapping between primitive types and Object) [4.2.0]
November 30, 2006: Javolution 4.1 Lossless formatting/parsing of floating point numbers in TypeFormat [4.1.0] Immediate recycling capability for reusable classes (e.g. collections, TextBuilder, ...) [4.1.0]
September 18, 2006: Javolution 4.0 Classes renamed as per coding standard (e.g. XmlFormat => XMLFormat) [4.0.0]
May 1, 2006: Javolution 3.7 Added sorting capabilities (quick sort) to FastTable [3.7.8] Shared FastMap are now valid to substitute to ConcurrentHashMap (see util FAQ) [3.7.7] Javolution is now the first library to be fully integrated with the RTSJ Memory Model. If any container (collection, context, etc.) is allocated in a non-heap memory area and its capacity increases, the extension part is allocated in the same memory area (see also Reusable) [3.7.0]
September 26, 2005: Javolution 3.6 Added StandardLog class to leverage java.util.logging capabilities [3.6.9] [3.6.10] Class initialization at start-up to avoid initialization delays at runtime [3.6.7] [3.6.8]