It's not a secret anymore!
The moose likes Programmer Certification (SCJP/OCPJP) and the fly likes compile time constant Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Certification » Programmer Certification (SCJP/OCPJP)
Bookmark "compile time constant" Watch "compile time constant" New topic

compile time constant

R .sourav nayak
Ranch Hand

Joined: May 14, 2006
Posts: 67
what does it mean by compile time constant ? does it mean its a final variable?

thanks in advance
Keith Lynn
Ranch Hand

Joined: Feb 07, 2005
Posts: 2398
Not exactly.

This is the definition from the Java Language Specification 15.28.

A compile-time constant expression is an expression denoting a value of primitive type or a String that does not complete abruptly and is composed using only the following:

* Literals of primitive type and literals of type String (�3.10.5)
* Casts to primitive types and casts to type String
* The unary operators +, -, ~, and ! (but not ++ or --)
* The multiplicative operators *, /, and %
* The additive operators + and -
* The shift operators <<, >>, and >>>
* The relational operators <, <=, >, and >= (but not instanceof)
* The equality operators == and !=
* The bitwise and logical operators &, ^, and |
* The conditional-and operator && and the conditional-or operator ||
* The ternary conditional operator ? :
* Parenthesized expressions whose contained expression is a constant expression.
* Simple names that refer to constant variables (�4.12.4).
* Qualified names of the form TypeName . Identifier that refer to constant variables (�4.12.4).

Compile-time constant expressions are used in case labels in switch statements (�14.11) and have a special significance for assignment conversion (�5.2). Compile-time constants of type String are always "interned" so as to share unique instances, using the method String.intern.
megha joshi
Ranch Hand

Joined: Feb 20, 2007
Posts: 206
To add to the above,

A compile time constant is a final variable which is instantiated at the time of declaration itself(at compile time) .
Eg : final int x = 5; is a compile time constant.

Eg2 : final int x;
x = 5;
Now here x becomes a runtime constant .
I agree. Here's the link:
subject: compile time constant
jQuery in Action, 3rd edition