0% found this document useful (0 votes)
112 views11 pages

Java Program Structure and Types

The document discusses the basics of variables in Java including the different types (local, instance, static), data types (primitive and non-primitive), and provides examples of adding variables, type casting, overflow, and widening/narrowing. It defines a variable as a name of a memory location that can hold values and change, and explains the three variable types in Java - local, instance, and static - with examples.

Uploaded by

Anjana Rajan
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
112 views11 pages

Java Program Structure and Types

The document discusses the basics of variables in Java including the different types (local, instance, static), data types (primitive and non-primitive), and provides examples of adding variables, type casting, overflow, and widening/narrowing. It defines a variable as a name of a memory location that can hold values and change, and explains the three variable types in Java - local, instance, and static - with examples.

Uploaded by

Anjana Rajan
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

Class Simple{

Public static void main(String args[]){

[Link](“Hello Java”);

o class keyword is used to declare a class in Java.

o public keyword is an access modifier that represents visibility. It


means it is visible to all.

o static is a keyword. If we declare any method as static, it is known as


the static method. The core advantage of the static method is that
there is no need to create an object to invoke the static method. The
main() method is executed by the JVM, so it doesn't require creating
an object to invoke the main() method. So, it saves memory.

o void is the return type of the method. It means it doesn't return any
value.

o main represents the starting point of the program.

o String[] args or String args[] is used for command line argument. We


will discuss it in coming section.

o [Link]() is used to print statement. Here, System is a class,


out is an object of the PrintStream class, println() is a method of the
PrintStream class. We will discuss the internal working
of [Link]() statement in the coming section.

To compile: javac [Link]


To execute: java Simple

In how many ways we can write a Java program?


1) By changing the sequence of the modifiers, method prototype is not changed in
Java.

Let's see the simple code of the main method.

1. static public void main(String args[])  

2) The subscript notation in the Java array can be used after type, before the
variable or after the variable.

Let's see the different codes to write the main method.

1. public static void main(String[] args)  

2. public static void main(String []args)  

3. public static void main(String args[])  

3) You can provide var-args support to the main() method by passing 3 ellipses
(dots)

Let's see the simple code of using var-args in the main() method. We will
learn about var-args later in the Java New Features chapter.

1. public static void main(String... args)  

4) Having a semicolon at the end of class is optional in Java.

Let's see the simple code.

1. class A{  

2. static public void main(String... args){  

3. [Link]("hello java4");  

4. }  

5. };  
Valid Java main() method signature
1. public static void main(String[] args)  

2. public static void main(String []args)  

3. public static void main(String args[])  

4. public static void main(String... args)  

5. static public void main(String[] args)  

6. public static final void main(String[] args)  

7. final public static void main(String[] args)  

8. final strictfp public static void main(String[] args)  

Invalid Java main() method signature


1. public void main(String[] args)  

2. static void main(String[] args)  

3. public void static main(String[] args)  

4. abstract public static void main(String[] args)  

Resolving an error "javac is not recognized as an internal or


external command"?
If there occurs a problem like displayed in the below figure, you need to set
a path. Since DOS doesn't recognize javac and java as internal or external
command. To overcome this problem, we need to set a path. The path is not
required in a case where you save your program inside the JDK/bin
directory. However, it is an excellent approach to set the path. Click here
for How to set path in java.
Internal Details of Hello Java Program
In the previous section, we have created Java Hello World program and
learn how to compile and run a Java program. In this section, we are going
to learn, what happens while we compile and run the Java program.
Moreover, we will see some questions based on the first program.

What happens at compile time?


At compile time, the Java file is compiled by Java Compiler (It does not
interact with OS) and converts the Java code into bytecode.

What happens at runtime?


At runtime, the following steps are performed:

Classloader: It is the subsystem of JVM that is used to


load class files.

Bytecode Verifier: Checks the code fragments for illegal


code that can violate access rights to objects.

Interpreter: Read bytecode stream then execute the


instructions.

Q) Can you save a Java source file by another


name than the class name?
Yes, if the class is not public. It is explained in the
figure given below:

To compile: javac [Link]


java Simple
To execute:  

Observe that, we have compiled the code with file name but running the
program with class name. Therefore, we can save a Java program other than
class name.

Q) Can you have multiple classes in a java source file?


Yes, like the figure given below illustrates:

Java Variables
A variable is a container which holds the value while the Java program is
executed. A variable is assigned with a data type.
Variable is a name of memory location. There are three types of variables in
java: local, instance and static.

There are two types of data types in Java: primitive and non-primitive.

Variable
A variable is the name of a reserved area allocated in memory. In other
words, it is a name of the memory location. It is a combination of "vary +
able" which means its value can be changed.

1. int data=50;//Here data is variable  

Types of Variables
There are three types of variables in Java:

o local variable

o instance variable

o static variable
1) Local Variable

A variable declared inside the body of the method is called local variable.
You can use this variable only within that method and the other methods in
the class aren't even aware that the variable exists.

A local variable cannot be defined with "static" keyword.

2) Instance Variable

A variable declared inside the class but outside the body of the method, is
called an instance variable. It is not declared as static.

It is called an instance variable because its value is instance-specific and is


not shared among instances.
3) Static variable

A variable that is declared as static is called a static variable. It cannot be


local. You can create a single copy of the static variable and share it among
all the instances of the class. Memory allocation for static variables happens
only once when the class is loaded in the memory.

Example to understand the types of variables in java

1. public class A  

2. {  

3.     static int m=100;//static variable  

4.     void method()  

5.     {    

6.         int n=90;//local variable    

7.     }  

8.     public static void main(String args[])  

9.     {  

10.        int data=50;//instance variable    

11.    }  

12.}//end of class   

Java Variable Example: Add Two Numbers


1. public class Simple{    

2. public static void main(String[] args){    

3. int a=10;    

4. int b=10;    

5. int c=a+b;    

6. [Link](c);    

7. }  

8. }    
Output:

20

Java Variable Example: Widening


1. public class Simple{  

2. public static void main(String[] args){  

3. int a=10;  

4. float f=a;  

5. [Link](a);  

6. [Link](f);  

7. }}  

Output:

10
10.0

Java Variable Example: Narrowing (Typecasting)


1. public class Simple{  

2. public static void main(String[] args){  

3. float f=10.5f;  

4. //int a=f;//Compile time error  

5. int a=(int)f;  

6. [Link](f);  

7. [Link](a);  

8. }}  

Output:

10.5
10

Java Variable Example: Overflow


1. class Simple{  

2. public static void main(String[] args){  

3. //Overflow  

4. int a=130;  

5. byte b=(byte)a;  

6. [Link](a);  

7. [Link](b);  

8. }}  

Output:

130
-126

Java Variable Example: Adding Lower Type


1. class Simple{  

2. public static void main(String[] args){  

3. byte a=10;  

4. byte b=10;  

5. //byte c=a+b;//Compile Time Error: because a+b=20 will be int  

6. byte c=(byte)(a+b);  

7. [Link](c);  

8. }}  

Output:

20

Common questions

Powered by AI

Java has three types of variables: local, instance, and static variables. Local variables are declared within methods and are only accessible within those methods; they do not exist outside method execution. Instance variables are declared within a class but outside methods and are instance-specific, meaning each object has its own copy. Static variables, declared with the 'static' keyword, are shared across all instances of the class, with memory allocated once when the class is loaded .

A common error when compiling a Java program is 'javac is not recognized as an internal or external command'. This occurs when the path to the JDK is not set. To resolve this, the PATH environment variable must include the directory path to the Java Compiler (javac), usually by adding the JDK/bin directory to the PATH .

To execute a Java source file named differently from its class name, it must not contain public classes. The code can be compiled using 'javac filename.java' and executed using 'java classname'. This works because the compiled bytecode is identified by the class name rather than the file name .

The Bytecode Verifier plays a critical role in Java execution by checking bytecode fragments for illegal code that could violate object access rights. It ensures that the code adheres to security constraints before being executed by the Java Virtual Machine, preventing actions that could compromise integrity or security .

In Java, adding lower type variables like 'byte' can lead to errors because arithmetic operations result in an 'int' by default. For instance, in the code 'byte a=10; byte b=10; byte c=a+b;', it raises a compile-time error as 'a+b' results in 'int'. To resolve this, one must explicitly cast the result back to 'byte' using syntax like 'byte c=(byte)(a+b);' .

At runtime, the Java program execution involves several steps: Firstly, the ClassLoader subsystem loads class files. The Bytecode Verifier checks the loaded bytecode for any illegal code that could violate access rights, ensuring safe execution. Finally, the Interpreter reads and executes the bytecode instructions .

There are multiple valid ways to declare the main method in Java, including: 'public static void main(String[] args)', 'public static void main(String []args)', 'public static void main(String args[])', 'public static void main(String... args)', 'static public void main(String[] args)', 'public static final void main(String[] args)', 'final public static void main(String[] args)', and 'final strictfp public static void main(String[] args)' .

Var-args syntax allows the main method to accept a variable number of arguments, which is specified using an ellipsis '...'. For example, 'public static void main(String... args)' is a valid declaration. This feature is useful as it offers flexibility in the number of command-line arguments passed to the program without requiring an array of a fixed size, thus simplifying the method signature .

Widening conversion in Java automatically converts a smaller primitive type to a larger one. For example, in the code: 'int a=10; float f=a;', the integer 'a' is converted to a float automatically. The output of 'System.out.println(f);' is '10.0', demonstrating the widening process as the int 'a' is converted to the float 'f' without any explicit casting needed .

Overflow in Java occurs when a data type cannot hold a value that is assigned to it due to the limitations of its size. For example, in 'int a=130; byte b=(byte)a;', the integer 'a' holds the value 130, but when cast to a byte, which has a range of -128 to 127, it overflows and wraps around to the value -126 as evidenced by the output .

You might also like