File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes Beginning Java and the fly likes compile time constants Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Beginning Java
Bookmark "compile time constants" Watch "compile time constants" New topic

compile time constants

Ravi Bansal
Ranch Hand

Joined: Aug 18, 2008
Posts: 86
Can anyone tell me what is compile time constant.

if i declare a final variable like this

final int i=5;

This is a compile time constant

and if i declare like this
final int i;

this is not a compile time constant

I want to understand what is a difference between above two intialization of final variables.

SCJP 5.0 94%
fred rosenberger
lowercase baba

Joined: Oct 02, 2003
Posts: 11955

The compiler is dumb. It has a hard time connecting things across multiple lines. Consider that legally, there could be 800 lines of code between those two lines you posted in your second example.

There are only two hard things in computer science: cache invalidation, naming things, and off-by-one errors
Campbell Ritchie

Joined: Oct 13, 2005
Posts: 46360
The official definition of a "constant" is in the Java Language Specification (I think, here).

Do a search through this forum for "compile time constant" because that sort of question comes up regularly here. Some people say "runtime constant" but that does not appear to be an official Java term. You should find out about that from your search as well. Good luck with it
I agree. Here's the link:
subject: compile time constants
It's not a secret anymore!