What Is A Compile Time Constant

Jul 16, 2009

"Because X is a compile time constant, the compiler will Y"... But what exactly is a compile time constant? And how can we determine whether something is treated as such?Obviously, a compile time constant is a constant value that is known at compile time... ... Literals are, by definition, compile time constants -- as they are constants, known at compile time.

But the definition of a compile time constant is a bit more complex. To start, let's examine section 15.28 of the Java language specification.A compile-time constant expression is an expression denoting a value of primitive type or a String that is composed using only the following:

Literals of primitive type and literals of type String Casts to primitive types and casts to type StringThe 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 ? : Simple names that refer to final variables whose initializers are constant expressions Qualified names of the form TypeName . Identifier that refer to final variables whose initializers are constant expressions

This is the full definition of a compile time constant. And as you can see, it contains more than just literals. In fact, literals are merely the first bullet point on the list. Also, note that a compile time constant can apply to any literal that is of primative or String type.The next few bullet points are the operations that can be applied to a constant at compile time. This list is actually pretty long, as it is possible to apply most of the operations at compile time. It may actually be easier to remember what can't be apply at compile time -- pre and post increment and decrement, instanceof operator, or any method calls, are not on the list.

The last few bullets are the most interesting. It is possible to use a variable in the expression -- provided that the variable is a compile time constant variable. So... what is a constant variable? Going back to the JLS (section 4.12.4 to be exact)..4.12.4 final Variables.A variable can be declared final. A final variable may only be assigned to once. It is a compile time error if a final variable is assigned to unless it is definitely unassigned (§16) immediately prior to the assignment.

We call a variable, of primitive type or type String, that is final and initialized with a compile-time constant expression (§15.28) a constant variable. Whether a variable is a constant variable or not may have implications with respect to class initialization (§12.4.1), binary compatibility (§13.1, §13.4.9) and definite assignment (§16).The last part of the definition is the relevant part (I still find it amazing that this is that well hidden in the specification). To be a variable that is a compile time constant, the variable needs to be...declared as finalhave a primative or String typeinitialized (on the same line as the declaration)assigned to a compile time constant expression.

View Replies


ADVERTISEMENT

What Happens With Imported Packages From API At Compile Time

Aug 26, 2014

I was wondering what happens to the API packages I've imported at compile time. Are they compiled to classes and placed In the same file as the class containing the Import command ?

The reason I'm asking Is because I've noticed the src.zip file Is not In the JRE and since the JRE Is all that's needed to run an app , I'd like to understand what the import command does.

View Replies View Related

Java Web App Compile Time With Tomcat Server

Nov 25, 2014

I keep getting this error when compiling the code . I think its got to do with the Tomcat server not working well with the textpad app...I'm using windows 8.1(for the course I have to use Textpad 4.7.3 & Apache Tomcat 5.5.7 Server) :

C:UsersReignDownloadsIntec - Codecourse technology59850dChapter 12WorkWebStocks.java:20: package javax.servlet does not exist
import javax.servlet.*;
^
C:UsersReignDownloadsIntec - Codecourse technology59850dChapter 12WorkWebStocks.java:21: package javax.servlet.http does not exist
import javax.servlet.http.*;

[code]....

tom cat is running as a service it shows started in the tom cat app and as a running service in windows services !!!

View Replies View Related

Compile Time Error - Cannot Invoke Read On Primitive Data Type Int

Jul 10, 2014

I have a code in which I am reading input from System.in and Destination is some where else

Here is my code

File file=new File("D:/output.txt");
OutputStream os=new java.io.FileOutputStream(file);
Scanner scanner=new Scanner(System.in);
System.out.println("Enter Data to write on File");
String text=scanner.nextLine();
int c=Integer.parseInt(text);
int a;
while((a=c.read())!=-1)
os.write(a);
System.out.println("File Written is Successful");

In the line while((a=c.read())!=-1)

a compile time error is shown "cannot invoke read on primitive data type int"

Where I am going wrong?

View Replies View Related

Runtime Classpath And Compile Time Classpath?

Jan 9, 2014

I compiled a program with a JAR in the classpath. Also ran it with the JAR passed with classpath. For instance I used MySQL .jar.

So I feel it was required in both classpath. I have heard the Servlet API jar is also an example of what is needed at compile time.

View Replies View Related

Why Add Static To Make A Constant

Oct 30, 2014

public static final String NAME="JAVATAR";

"final" makes sure the constant has the same value and prevents it from being changed. So why add "static" to make it a constant. I figured the reason a few weeks back but don't remember it now.

View Replies View Related

How To Get Java Equivalent Of C++ Constant

Jun 10, 2014

How to make sure that a variable passed to a method isn't altered by the method? I know in C++ you can do something like

void aMethod(const Object &item) {
........
}

I know that you can stop a variable from being reinitialized in java by doing this

void aMethod(final Object item) {
.........
}

However, that won't stop it from calling a setter on the item or changing something in it. Is there some other keyword out there that can do this? I just found that java DOES recognize the const keyword but that it really is useless.

So, any practical way that const can be further approximated in java beyond using final?

View Replies View Related

Final Declaration Statement - How To Use Named Constant

Feb 27, 2014

I'm new to Java and have been stuck on how to use a final declaration statement once it's made. Below is a class I'm creating with the intention of calling it under a main method. I don't understand if I'm supposed to do anything else, like do some sort of get/set, or if the final static line is all I need. And, I don't know how I call it to the main method once I do.

public class Shirt//class name.
{
int collarSize;//data field.
int sleeveLength;//data field.
public final static String MATERIAL = "cotton";//final data field for material.

[Code] ....

View Replies View Related

Java Program That Prints Out Taylor Series For Mathematical Constant E

May 10, 2015

I am trying to write a java program that prints out the number that is the mathematical constant e. As you input a number, the larger it gets , the closer it comes to 2.71828 . Here is my code:

//taylor series that prints out e^1=1+1/1!+1/2!+1/3!+.....
import java.util.Scanner;
public class taylor_1
{
public static void main(String args[]) {
 Scanner input=new Scanner(System.in);
int factorial =1;

[Code] .....

Here is the output of my code:

enter n
9
Taylor series is 9.0

View Replies View Related

Military Time - Adding Minutes Displaying Correct Time

Feb 9, 2015

I am working on an assignment that I can't seem to figure out the final part to. The program takes in course data such as the time the class starts and how long it lasts. The time is in military time (0000 - 2400)

I need the output time to be the time the class started, plus the length of the class, and displayed in military time.

for example,

Start Time = 0930
Length = 50 minutes
Endtime = 1020

I can't for the life of me figure out how to do this. I have gotten a program that works for this time and minutes, and displays the correct 1020. But when I change the information to say

Start time: 0700
Length = 90 minutes

I get:

Endtime = 90

90 is technically correct, the way the formula is setup, but I need it to display 0900 not 90.

Here is the code that I have. Be easy, I'm still learning, and this is just the file I created to get the formula to work. Also, the verbose in here is just for my own debugging to make sure values should be what I'm expecting them to be.

public class calc
{
public static void main(String[] args) {
double hours, minutes, length;
double temp;
int time = 2400;
hours = time / 100;
System.out.println("Hours are: " + hours);

[Code] ....

View Replies View Related

Converting Military Time To Standard Time?

Jan 29, 2014

I have two classes. time_runner is used for testing my code.

This is what I'm using to test my code:
 
class time_runner
{
 public static void main(String str[]) throws IOException {
 Time time1 = new Time(14, 56);
System.out.println("time1: " + time1);
System.out.println("convert time1 to standard time: " + time1.convert());
System.out.println("time1: " + time1);
System.out.print("increment time1 five times: ");
time1.increment();

[code]....

The two constructors are "Time()", which is the default constructor that sets the time to 1200, and "Time(int h, int m)" Which says If h is between 1 and 23 inclusive, set the hour to h. Otherwise, set the hour to 0. If m is between 0 and 59 inclusive, set the minutes to m. Otherwise, set the minutes to 0. Those are my two constructors that I pretty much have down. The three methods however I'm having trouble with. The "String toString()" Returns the time as a String of length 4. The "String convert()" Returns the time as a String converted from military time to standard time. The "void increment()" Advances the time by one minute.

public class Time {
private int hour;
private int minute;
  public Time(int h, int m) {
if(h > 1 && h < 23)
hour = h;

[code]....

View Replies View Related

GUI Project Won't Compile

May 6, 2014

I'm doing a project and my code won't compile.

import javax.swing.*;
import java.awt.event.*;
public class BookStore extends JFrame{
private JPanel panel;
private JLabel question; //This will be where the question is.
private JTextField NumofBooks; //this is where the user will enter the number of books
private JButton OKButton,ClearButton,ExitButton; //Will give the user the points, cancel the points, and exit
private final int WINDOW_WIDTH = 310; //Need to make it visible
private final int WINDOW_HEIGHT = 100;

[code]....

View Replies View Related

What Does Exactly Do The Command Mvn Compile

Mar 5, 2015

i would like to ask what does exactly do the command mvn compile. What is happening with the code, when i write this command? And why is it necessary for running the code?

View Replies View Related

JSP :: Not Able To Compile TagHandler Class

May 15, 2014

This is my TagHandler class

package foo;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.SimpleTagSupport;
import java.io.IOException;

[Code] ....

But it is not able to find all the classes referenced in the code. While compiling I am mentioning the servlet-api.jar

My compilation statement is this

C:Tomcat 7.0webappsSimpleCustomTagsWEB-INF>javac -cp "C:Tomcat 7.0libservlet-api.jar;.;" classesfoo*.java

It says package javax.servlet.jsp.JspException and javax.servlet.jsp.tagext.SimpleTagSupport does not exist.

View Replies View Related

Cannot Compile A Program With Jar File

Apr 1, 2015

I created Myproject folder. Inside I have 3 folders:

/lib
/src
/bin

Inside src there is a .java file:

public class hello_world{
public static void main(String[] args){
System.out.println("Hi, from hello_world");
seba.st.hello_world_package test1 = new seba.st.hello_world_package();
test1.packFunc();
}
}

inside lib is a packEx.jar file which I created from this .java file:

package seba.st;
 public class hello_world_package{
  public void packFunc(){ 
System.out.println("hi from pack_func!");
}
}

I am trying to run this program from terminal with this command

javac -d bin -sourcepath src -cp lib/packEx.jar src/hello_world.java

and I get this error:

src/hello_world.java:11: error: cannot find symbol
test1.packFunc();
^
symbol: method packFunc()
location: variable test1 of type hello_world_package
1 error

What am I doing wrong ? How can I compile and run this program from terminal?

View Replies View Related

Why For Loop Doesn't Compile

Nov 20, 2014

if(false){}

but this is not

for(;false;){}

both will in theory never go in more interestingly this will compile

for(;false == false;){}

To me it seems like this is a parsing issue that could have been solved by the people who originally wrote the parser but they made a decision that there must be a relational operator in the condition declaration.

View Replies View Related

Calendar Code Will Not Compile

Nov 15, 2014

import java.util.Calendar;
import java.util.GregorianCalendar;
public class CalendarCalc {
public CalendarCalc (){}
private static void printCalendarMonthYear (int month, int year)

[Code] .....

IDE is telling me this:

Exception in thread "main" java.lang.Error: Unresolved compilation problem:

The method printCalendarMonthYear(int, int) is undefined for the type CalendarDisplay

at CalendarDisplay.main(CalendarDisplay.java:46)

Btw, I have a main class. This is just the class responsible for doing calculations.

View Replies View Related

JSP :: Unable To Compile Class

Jul 5, 2014

i am trying to work through the Murach's Java Servlets and JSP book. I am stuck however. I keep getting a HTTP Status 500 - Unable to compile class for JSP.

I am using Eclipse Kepler, JDK 1.7, and Tomcat v7.0 server.

Its a fairly simple program that takes in user information, first name, last name, and an email and processes the information, saving the data to a text file.

------------------------------------------------
I have two Java classes: User and UserIO
-------------------------------------------------

//User.java
package business;
public class User {
private String firstName;
private String lastName;
private String emailAddress;
public User(String firstName, String lastName, String emailAddress){

[code]....

View Replies View Related

How To Compile A File That Contains Errors

Mar 19, 2014

I am making a simple mod/hack for a game programmed in Java. I located the .class file I needed and deobfuscated it and then decompiled it. After that I went in and made a very simple adjustment that I wanted to make. Unfortunately I can across a problem when trying to compile the file! The file won't compile because there are errors. The reason there are errors is because this is just one file out of an entire game. I know this my seem weird, but is there some way I can compile the file with the errors.

View Replies View Related

MyCircle Class Won't Compile

Jan 17, 2015

The MyCircle class won't compile.

QUESTION: A class called MyCircle, which models a circle with a center (x, y) and a radius, is designed as shown in the class diagram. The MyCircle class uses an instance of MyPoint class (created in the previous exercise) as its center.
The class contains:
-Two private instance variables: center (an instance of MyPoint) and radius (int).
-A constructor that constructs a circle with the given center's (x, y) and radius.
-An overloaded constructor that constructs a MyCircle given a MyPoint instance as center, and radius.
-Various getters and setters.
-A toString() method that returns a string description of this instance in the format "Circle @ (x, y) radius=r".
-A getArea() method that returns the area of the circle in double.

Write the MyCircle class. Also write a test program (called TestMyCircle) to test all the methods defined in the class.

My code:

public class MyCircle{
private MyPoint center;
private int radius=1;

public MyCircle(int x, int y, int radius){
this.x = x;
this.y = y;
this.radius = radius;

[code]....

View Replies View Related

Compile Error Using HashMap

Feb 9, 2015

I am a C# developer but need to do some java development. The code produces the following error.

import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
...
HashMap<String, String > myMap = new HashMap<String, String>(){{
put("a","b");
}};
myMap.put("foo", "bar");
myMap.put("Sna", "foo");
...

Generates this error

C:/FSC/apache-tomcat-6.0.41/webapps/aspen/temp/x2_8656248460570782763/x2_5214718769032742331/StudentExport.java:47: error: <identifier> expected
myMap.put("foo", "bar");
^

What am I missing?

View Replies View Related

CMD Won't Compile JAVA FILES

Oct 10, 2014

I'v tried everything, i'v tried to create new path in enviornment variables i tried adding this path -->(C:Program FilesJavajdk1.8.0_20bin) to the end of the default path doesnt work i uninstalled and reinstalled and did the same thing over and it didnt work am i editing the files wrong ? what i do is write the hello world program in eclipse to make sure there arent any errors then copy and paste in note pad++ save it as a .java file and it doesnt work i tried save it in regular notepad as .java laso and it doesnt work iv done every thing i could possibly find on youtube is this stuff outdated ? is there a new way? this one one of the errors ill get

C:javat>javac helloworld.java
helloworld.java:1: error: '{' exp
public class helloworld.java {
^

And this is the code for that file im trying to compile

public class helloworld.java {
public static void main (String args[]){
System.out.println("hello world");
}
}

View Replies View Related

How To Compile Servlets In Command Prompt

Apr 14, 2014

I have set the CLASSPATH

(C:Program FilesApache-Tomcat-7apache-tomcat-7.0.53libservlet-api.jar,
PATH(C:Program FilesJavajdk1.7.0_51in)

and JAVA_HOME

(C:Program FilesJavajdk1.7.0_51) environmental variable on my windows XP.

I installed tomcat server and its running fine. I made my first servlet(DemoServlet.java) in

C:Program FilesApache-Tomcat-7apache-tomcat-7.0.53webappsDEMOWEB-INFclasses folder.

I made the XML file (web.xml) in C:Program FilesApache-Tomcat-7apache-tomcat-7.0.53webappsDEMOWEB-INF folder. In command prompt I went to the classes folder

(C:Program FilesApache-Tomcat-7apache-tomcat-7.0.53webappsDEMOWEB-INFclasses).

And tried to compile my servlet(javac DemoServlet.java) but it is showing file not found error. I am new to servlets.

View Replies View Related

Head First Java BeatBox - Won't Compile

May 1, 2011

I am totally new to programming in every way, shape or form, and I'm working my way through the Head First Java book (2nd ed). I have just finished copying the code for the initial BeatBox app, the one starting on page 420. When I try to compile it, I get these errors:

BeatBox.java:36: cannot find symbol
symbol : constructor Box(int)
location: class Box
Box buttonBox = new Box(BoxLayout.Y_AXIS);
^
BeatBox.java:40: cannot find symbol
symbol : method add(javax.swing.JButton)
location: class Box
buttonBox.add(start);

[code]....

I doubt that this is relevant, but I'm running Mac OS X, coding in TextWrangler and compiling with Terminal. Java version is 1.6.0_24.

View Replies View Related

Cannot Find Symbol Compile Error

Jul 23, 2014

programming altogether and after almost reaching half way in the 'Head first java' book I decided to try and apply some of what I've learnt so far and write my first 'Object orientated' program. As this is pretty much the first program I've ever written, I decided to write a program to ask for two integers and add them both together and then present them to the user (the goal eventually being a basic fully working command line calculator with +,-,* and /. I'm expecting many compile errors but not the following errors below.

I have three .java files contained within a folder and after trying to figure out how to compile all three files (as they use one another) all at once, I came across this ---> javac *.java

so I typed this in the command line whilst in the directory containing the three files assuming *.java is the best approach and then I receive the following errors:

inputOutput.java:10: error: cannot find symb
c.addition() = intIn.nextInteger();
^
symbol: variable c
location: class inputOutput

[Code].....

View Replies View Related

Compile Error In Line Bufferedreader

Sep 24, 2014

import java.util.*;
import java.lang.*;
class Bank {
String name;
float acc_no,balance;
void accept(String str, float no, float bal)

[code]....

View Replies View Related







Copyrights 2005-15 www.BigResource.com, All rights reserved