Java Glossary

Last updated by Roedy Green ©1996-1999 Canadian Mind Products.

Stuck in a frame? Click here to break out.

M

Mach J
A Java virtual machine for mission critical applications. See JVM.
Macho
a dissassemble/decompiler. See dissassembler.
magic number
a numerical identifier for the class file. It should always be CAFEBABE, in hex, stored in the first 4 bytes of the class file. The easiest way to corrupt a class file's magic number is to upload it to your website with FTP failing to turn on the binary option.
main
Standalone applications don't necessarily have init and start methods. They must have a public static void main routine to start things off. The main routine typically creates some object of the master class. It can't use any non-static variables or methods in the class with the implied this, since there is no this object. It typically quickly returns. Then the event loop processing starts. Even the static main method must live inside some class. There are no such thing as standalone static methods in Java.
mangle
See shroud.
manifest
A file part of a JAR file describing the contents of the JAR archive. It always has the name /META-INF/MANIFEST.MF. It contains entries like this:
Manifest-Version: 1.0

Name: business/awt/SillyBean.ser
Java-Bean: True
Depends-On: coffee.gif

Name: business/awt/FormattedTextField.class
Java-Bean: True
Depends-On: showit.gif
Depends-On: business/Misc.class
Digest-Algorithms: SHA MD5
SHA-Digest: mCQyjwVWo0+9PNad2fk43Y1slBE=
MD5-Digest: 1yipVh1g10c25ngRmDob+A==

The specification document is very loose about the format of a manifest file. Here are the rules I have gleaned from experimentation: It might be wise to review the MANIFEST.MF file generated by examining the JAR file with WinZip 6.3 or later. Unfortunately WinZip there are several problems in using WinZip to create jar files or to add files to them. See Jar file, Java Cannery.
Marímba
The makers of the Bongo visual interface builder and widget library and Castanet a system for distributed objects. See Bongo, Castanet.
mark
"Mark" is modem jargon for "one". See space.
marshal
The technique of passing procedure parameters and results for a remote procedure call. This is similar to the general process of serialisation. See RMI.
MassMail
Craig Manley's email program available with free source.
matrix
In Java, a matrix is an array of arrays. Each row of the array can even have a different number of columns. See matrix in the gotchas section to see how to intialise them. See array, gotchas.
Maui
Lotus's codename for a project to port its SmartSuite project to Java.
MD5
a message-digest algorithm developed by RSA Laboratories used for creating unforgeable digital signatures. MD5 produces an 128-bit message digest. Most existing software applications that handle certificates only support MD5. It is also used in signing jar files. See certificate, digital signatures, SHA-1, manifest.
MDI
Multiple Document Interface. Microsoft's windowing paradigm for a word processor having windows open on many different documents.
mediator
See design patterns.
megabyte
A megabyte is 2^20 = 1024 * 1024 = 1,048,576 bytes. Unfortunately hard disk makers usually short change you by 5%. Their megabytes typically have only 1,000,000 bytes them. The floppy disk makers cheat even more. A 2 mb diskette contains only 1.44 megabytes.
member variables
Variable part of a class or object, i.e. class or instance variables. Does not include local variables. See variables.
memento
See design patterns.
menu
pulldown list of actions the user can select across the top of a window.
menubar
a row of pulldown menus.
MerzScope
MerzCom's MerzScope is a mapping and navigating tool that allows you to produce dynamic graphical relational maps of any collection of Web pages and links. Surfers can navigate with a mouse click.
Metamata Parse
A parser that grew out of JavaCC. It has a cleaner syntax. Like JavaCC it is free. See parser, JavaCC.
method
In other languages methods are called functions, subroutines or procedures. A method make take 0 or more parameters and may or may not produce a result. Java methods never return more than one result. All methods in Java are part of some class. There are no stand-alone methods, not even main.
method verification error
The compiler generates JVM byte codes. Before these are executed, the byte codes are verified both to make sure the compiler did its job correctly and to block malicious attempts to crash or bypass the security of the JVM interpreter. The verification analyses the code flow to ensure for example that you don't try to use an integer op code on a floating point operand, and that you consume all the stack items you create. It detects any attempts to forge pointers out of integers. If you get a method verification error, chances are your compiler has a bug. The other cause is that the *.class file has been corrupted.
metric
A decimal system of measures used nearly everywhere but in the USA. Even in the USA, it is used in medicine, scientific and engineering work, and for international trade. It is based on standard prefixes. e.g gram (the mass of about a sugar cube of water), kilogram (a 100 grams), milligram (one thousandth of a gram) or metre (a little longer than a yardstick), kilometre (1000 metres, 5/8 mile), millimetre (one thousandth of a metre).

Because RAM necessarily comes in modules sizes of even powers of two, the prefix scheme was modified for measuring bytes by even powers of two. Unfortunately, vendors use the binary scheme for measuring RAM capacity but the decimal scheme for measuring hard disk capacity. I suspect they do this primarily to inflate the apparent disk capacity by 7%, and because their competitors also do this, rather than as protest against the heretic binary RAM byte measuring prefix convention.
prefixAmerican EnglishStandard Decimal
Multiplier
Power of 10Byte Measure
Multiplier
Byte Measure
Power of 2
exaquintillion
(British trillion)
1,000,000,000,000,000,00010181,152,921,504,606,846,976260
petaquadrillion1,000,000,000,000,0001015 1,125,899,906,842,624250
teratrillion
(British billion)
1,000,000,000,00010121,099,511,627,776240
gigabillion1,000,000,0001091,073,741,824230
megamillion1,000,0001061,048,576220
kilothousand10001031024210
hectohundred100102
decaten10100
decitenth1/1010-1
centihundredth1/10010-2
millithousandth1/100010-3
micromillionth1/1,000,00010-6
nanobillionth1/1,000,000,00010-9
picotrillionth
(British billionth)
1/1,000,000,000,00010-12
femtoquadrillionth1/1,000,000,000,000,000 10-15
attoquintillionth
(British trillionth)
1/1,000,000,000,000,000,00010-18

metrics
the amount of space each letter of the character set takes up horizontally and vertically so that you can precisely compute how much space needed to display a given string of text. It also refers to measurement of object-oriented technology and its use. "Measurement" is interpreted widely to include such matters as cost estimation, test management, surveys of uptake of OO and industrial experience, provided these are to any extent quantitative.
MFJ
Media Framework for Java. See Intel Media Framework, Java Edition.
Microsoft
A large computer monopoly that makes a Java-like product called J++. If you are interested in Microsoft-only platforms you might like to read: Java Programming for Windows: Using Microsoft AFC, WFC, and XML (ISBN: 1-55860-516-9) by Mark Watson. Microsoft is sometimes used cheekily as a verb. It refers to claiming to have invented technology that was developed long before by others.
MIDI
Java does not officially support MIDI music files, but on some browsers this trick will work:
getAppletContext().showDocument(new URL(getCodeBase(),"test.mid"));
They would need a Midi player like Crescendo installed. The music must exist in a file accessible via URL. You can't use this trick to play some music you have sitting in a byte array.
MIME
Multipurpose Internet Mail Extension. A technique for attaching files to Internet mail by converting raw binary files to printable ASCII. It is also a way of specifying the format of web documents and attached email documents. An ISP must set up the HTTP web server to send the MIME type along with a document. It usually derives this by looking at the file extension. If the web server fails to do this, often the file contents are just displayed as gibberish rather than properly acted on. Here are some common MIME types:
Extension Mime Type Notes
aif aiff aifc audio/x-aiff sound
au snd audio/basic standard Internet/Java wave sound
avi video/x-msvideo avi movie
bas text/plain Basic source
bin exe application/octet-stream executable program
bmp image/bmp Windows image
doc application/msword Microsoft Word document formatted.
etx text/x-setext
evy application/envoy Envoy
gif image/gif standard Internet icon image
gz application/x-gzip tar gzip
html htm text/html HTML, web browser
ief image/ief image
jpeg jpg jpe image/jpeg stardard Internet photo image
js application/x-javascript JavaScript
mid audio/midi Crescendo MIDI sound
mov qt video/quicktime Quicktime movie player
movie video/x-sgi-movie movie
mpg mpeg mpe video/mpeg mpeg movie player
oda application/oda
pbm image/x-portable-bitmap bitmap image
pdf application/pdf Adobe Acrobat Portable Document Format
pgm image/x-portable-graymap grayscale image
ppm image/x-portable-pixmap pixel image
ps eps ai application/postscript Adobe PostScript, encapsulated PostScript
ra rm ram audio/x-pn-realaudio Real Audio
rgb image/x-rgb image
rtf application/rtf rich text format
rtx text/richtext rich text
ssi shtml
(htm html)
text/x-server-parsed-html server side includes; web server expands embedded commands. Sometimes htm and html files are parsed for embedded commands too.
tar application/x-tar Unix tar archive
tiff tif image/tiff image
tsv text/tab-separated-values tab separated list
txt text text/plain text
vew application/groupwise Novell GroupWise
w61 application/wordperfect6.1 WordPerfect
wav audio/wav Microsoft wave sound
wav audio/x-wav Microsoft wave sound
wp wpd wp5 application/wordperfect WordPerfect 5
w60 application/wordperfect6.0 Worderfect 6
zip application/x-zip-compressed WinZip
Mind-It
NetMind Mind-It is a service that will send you email if a web pages changes or goes 404.
MIPS
Mobile Internet Phone Services. A standard for Java to run in mobile phones, giving them access to specialised applications.
MNP
MNP stands for Microcom Network Protocol. In 1983 Microcom built error detection and correction into its modems. Many other brands of modems, to this day, are still incapable of detecting or correcting errors caused by static. Then Microcom magnanimously allowed other companies to use the same method. At present there are nine levels of MNP protocol, the bigger the number the better. If a level 5 modem and a level 9 modem talk, after negotiation, they will settle on using the level 5 protocol -- the highest level common to both. MNP is tricky. Sometimes you must manually assist the modems to find a common level. Most of Tymnet/BIX uses MNP level 4 modems. In some parts of the USA Tymnet is now supporting MNP level 5. If you connect with a MNP level 5 modem, its compression features will be wasted, but the error-correcting features will be activated. Datapac (Canada's packet net) does not use MNP at all. If you were to use your MNP modem on Datapac, none of its MNP error correction features could be activated. CCITT V.42 formalizes the MNP levels 1 to 4.
MNP Class 1
Lowest level of MNP performance. You will never see a modem with just MNP class 1. Level 1 uses an asynchronous byte-at-a-time half-duplex (ping pong back and forth, but never send-receive at the same time) method. The protocol efficiency is about 70%. A 2400 BPS modem will realize a throughput of about 1700 BPS.
MNP Class 10
An enhancement to MNP that allows for cellular phone connections or other especially hostile transmission environments. MNP Class 10 modems can withstand crossing a cell boundary, and automatically adjust to changes in transmission quality dynamically during a call.
MNP Class 2
Nearly all MNP modems have at least class 2 level support. Here the modems use an asynchronous byte-at-a-time, full-duplex (simultaneous send-receive) method. The protocol efficiency is about 84%. A 2400 BPS modem will realize a throughput of about 2000 BPS.
MNP Class 3
Here the modems use a synchronous bit-oriented full-duplex exchange. Synchronous implies longer bursts with the overhead of the start-stop bits removed. The protocol efficiency is about 108%. A 2400 BPS modem will realize a throughput of about 2600 BPS.
MNP Class 4
Here the modems improve on class 3 by adapting the size of the packets exchanged to suit the cleanliness of the line and the burstiness of the traffic. The cleaner the line, the bigger the packets. The protocol efficiency is about 120% on a clean line. A 2400 BPS modem will realize a throughput of about 2900 BPS. Tymnet/BIX uses MNP level 4. MNP-4 is the alternate error correcting protocol in CCITT V.42.
MNP Class 5
Here the modems improve on class 4 by compressing the data. The compression achieved will run from about 1.3:1 to 2:1. Pkzipped files will not compress at all. The protocol efficiency will average about 200%. A 2400 BPS modem will realize a throughput of about 4800 BPS. MNP-5 is not part of V.42bis.
MNP Class 6
These modems know how to switch over to V.29 or V.22 bis standard protocols when needed.
MNP class 7
These modems use a cleverer form of compression than class 5.
broken_linkMoajar
Set of classes for editing jar files. See jar file.
Mobile Agents
Programs that can wander from machine to machine executing, taking state information along with them. Compare this with RMI where programs sit still, and object parameters and results are passed around.
Mocha is a Java disassembler for reverse engineering. Unfortunately the young Dutch author Hanpeter van Vliet died of cancer. See disassembler, Creama.
Mocha
modal
A dialog box can be either modal or non-modal. A dialog box is modal if the user must first dismiss it before clicking elsewhere. Unfortunately, the code that invokes a dialog box does not automatically wait for the user to finish, the way it does in most other GUI interfaces.
Modern Minds
a company that makes Java tools, e.g. an animation Applet that makes it look as though the image is being reflected off a moving water surface.
modulus

In Java you take the remainder with the % operator. In Java, the sign of the remainder follows the dividend, not the divisor. Be especially careful when corralling random numbers into a smaller range. Java division does have the Euclidean property. When you multiply the quotient by the divisor and add the remainder you get back to the dividend. Java division is truncated division.

Floored division is what you normally want when trying to figure out which bin an item belongs in. You can compute floored division as:

if (dividend >= 0) ? (dividend / divisor) : ((dividend-divisor+1) / divisor);

For computing how many fixed-size bins you need to contain N items, you want ceiled division, also known as the covered quotient. You can compute the covered quotient as:

if (dividend >= 0) ? ((dividend+divisor-1) / divisor) : (dividend / divisor);

Signs Division Modulus
+ + +7/+4=+1 +7%+4=+3
- + -7/+4=-1 -7%+4=-3
+ - +7/-4=-1 +7%-4=+3
- - -7/-4=+1 -7%-4=-3
See Bali.
monitor
Java uses monitors to co-ordinate threads to make sure they don't trip over each other accessing the same data. With monitors, you either lock objects, critical sections of code or you lock entire methods by declaring them synchronised. Monitors have hardware test and set support behind them to ensure a thread checks to see if a monitor is already locked and if not, seize the lock all in one non-interruptible atomic operation. Without atomicity, a thread might check see if the monitor is unlocked, and have some other thread grab the monitor before it gets a chance to lock it. Purists will point out that a monitor is not actually the lock, but rather the way that lock is used to protect critical sections of code. See semaphore, mutex, synchronized, condition variable.
Monmouth
a shrouder for Java to prevent disassembly. See shroud.
MOSAIC
The original hypertext browser for viewing text and graphics over the Internet. It has largely been replaced by Netscape.
Mozilla
The Netscape browser had a mascot, a Godzilla-like lizard called Mozilla. The company that distributes Netscape source code is called Mozilla.
MRJ
Apple's Macintosh Runtime for Java, the Java runtime for MacOS computers. Equivalent of the JRE on other platforms. Comes with MacOS system CD as of MacOS 8. Version numbers are a bit screwy: MRJ 1.0 implements JDK 1.0.2, MRJ 2.0 implements JDK 1.1, MRJ 2.1 implements JDK 1.1.6. MRJ is a runtime only -- for development tools, you need the MRJ SDK.
MRU
Maximum Receive Unit. (PPP Only) The Maximum Receive Unit sets the maximum number of bytes that we are capable of receiving in one PPP packet. Generally, the bigger the better. Typically set to 1576 bytes. Setting it smaller helps if there a large number of scrambled packets, or if you need fast response time to single keystroke packets. See PPP, MRU.
MTU
Maximum Transmit Unit. (SLIP Only) is similar to MRU, except instead of setting receive packet size, it sets the maximum size of transmitted packages. See SLIP, MRU
MUD
Multi-User Dungeon. A game or virtual world where various players interact remotely. I believe it also refers to creating programs that act as your proxy in the virtual world while you are not present.
multicasting
Instead of sending an individual packet over the Internet to each interested party, you send a single packet to a group of listeners. Oddly, RealAudio broadcasting and bulk mail don't make use of this feature.
multiple dispatch
The OO term for dynamic overloading, selecting which particular version of the method will be invoked depending on the types of several parameters at run time. Java overloading is handled purely at compile time. See single dispatch.
multiple inheritance
Java does not support multiple inheritance, allowing a class to extend more than one base class. It does however support implementing multiple "interfaces", which is similar to multiple inheritance but simpler and safer. See also interface.
MultiView
In dbAnywhere, a MultiView is the collection of all current RelationViews. See RelationView, dbAnywhere.
mutex
Mutually Exclusive. A alternate term for a monitor. See monitor, semaphore, synchronized.
broken_linkmysticism
"Any sufficiently advanced technology is indistinguishable from magic." Arthur C. Clarke. This site explores the tenuous connection between Java and western mysticism.



CMP_home HTML Checked! award
CMP_home Canadian Mind Products You can get an updated copy of this page from http://mindprod.com/jglossm.html The Mining Company's
Focus on Java
Best of the Net Award