PDF Core Java With SCJP Ocjp Notes by Durga
PDF Core Java With SCJP Ocjp Notes by Durga
2.6K views 5 2
Core Java with SCJP/ OCJP Notes By Durga Sir Language Fundamentals
RELATED TITLES
2.6K views 5 2
Core Java with SCJP/ OCJP Notes By Durga Sir Language Fundamentals
Language Fundamentals
Agenda :
1. Introduction
2. Identifiers
o Rules to define java iidentifiers:
dentifiers:
3. Reserved words
o Reserved words for data types: (8)
o Reserved words for flow
f low control:(11)
o Keywords for modifiers:(11)
modifiers:(11)
o Keywords for exception handling:(6)
o Class related keywords:(6)
keywords:(6)
o Object related keywords:(4)
o Void return type keyword
o Unused keywords
o Reserved literals
o Enum
o Conclusions
4. Data types
o Integral data types
Byte
Short
Int
long
o Floating Point Data types
o boolean data type
o Char data type
o Java is pure object
o bject oriented programming
programming or
o r not ?
o Summary of java primitive data type
5. Literals
o Integral Literals
o Floating Point Literals
o Boolean literals
o Char literals
o String literals
o 1.7 Version enhansements with respect to Literals
Binary Literals
Usage of _ (underscore)symbol
(underscore)symbol in numeric literals
6. Arrays
1. Introduction
2. Array declaration
RELATED TITLES
2.6K views 5 2
Core Java with SCJP/ OCJP Notes By Durga Sir Language Fundamentals
Core Java with SCJP/ OCJP Notes By Durga Sir Language Fundamentals
Identifier :
A name in java program is called identifier. It may be class name, method name,
variable name and label name.
Example:
Core Java with SCJP/ OCJP Notes By Durga Sir Language Fundamentals
Rule 7: All predefined java class names and interface names we use a s identifiers.
Example 1:
class Test
{
public static void main(String[]
main(String[] args){
int String=10;
System.out.println(String);
}}
Output:
10
Example 2:
class Test
{
public static void main(String[]
main(String[] args){
int Runnable=10;
System.out.println(Runnable);
}}
Output:
10
Even though it is legal to use class names and interface names as identifiers but it is not
a good programming
programming practice.
Core Java with SCJP/ OCJP Notes By Durga Sir Language Fundamentals
Reserved words:
In java some identifiers are reserved to associate some functionality or meaning such
type of reserved identifiers are called reserved words.
Diagram:
1) byte
2) short
3) int
4) long
5) float
6) double
7) char
8) boolean
1) if
2) else
3) switch
4) case
RELATED TITLES
2.6K views 5 2
Core Java with SCJP/ OCJP Notes By Durga Sir Language Fundamentals
1) public
2) private
3) protected
4) static
5) final
6) abstract
7) synchronized
8) native
9) strictfp(1.2 version)
10) transient
11) volatile
1) try
2) catch
3) finally
4) throw
5) throws
6) assert(1.4 version)
1) class
2) package
3) import
4) extends
5) implements
6) interface
1) new
2) instanceof
3) super
4) this
If a method won't return anything compulsory that method should be declared with the
void return type in java but it is optional in C++.
1) void
Unused keywords:
RELATED TITLES
2.6K views 5 2
Core Java with SCJP/ OCJP Notes By Durga Sir Language Fundamentals
Reserved literals:
Enum:
Conclusions :
Core Java with SCJP/ OCJP Notes By Durga Sir Language Fundamentals
5. String(invalid)
6. args(invalid)
Data types:
Every variable has a type, every expression has a type and all types are strictly define
more over every assignment should be checked by the compiler by the type
compatibility hence java language is considered as strongly typed programming
language.
Java is not considered as pure object oriented programming language because several
oops features (like multiple inheritance, operator overloading) are not supported by
java moreover we are depending on primitive data types which are non objects.
Diagram:
Except Boolean and char all remaining data types are considered as signed data types
because we can represent both "+ve" and"-ve" numbers.
RELATED TITLES
2.6K views 5 2
Core Java with SCJP/ OCJP Notes By Durga Sir Language Fundamentals
The most significant bit acts as sign bit. "0" means "+ve" number and "1"
means "–ve" number.
"+ve" numbers will be represented directly in the memory whereas "–ve"
numbers will be represented in 2's complement form.
Example:
byte b=10;
byte b2=130;//C.E:possible loss of precision
found : int
required : byte
byte b=10.5;//C.E:possible loss of precision
byte b=true;//C.E:incompatible types
byte b="ashok";//C.E:incompatible types
found : java.lang.String
required : byte
byte data type is best suitable if we are handling data in terms of streams either from
the file or from the network.
Short:
Core Java with SCJP/ OCJP Notes By Durga Sir Language Fundamentals
Size: 4 bytes
Range:-2147483648 to 2147483647 (-231 to 231-1)
Example:
int i=130;
int i=10.5;//C.E:possible loss of precision
int i=true;//C.E:incompatible types
long:
Whenever int is not enough to hold big values then we should go for long data type.
Example:
To hold the no. Of characters present in a big file i nt may not enough hence the return
type of length() method is long.
long l=f.length();//f is a file
Size: 8 bytes
Range:-263 to 263-1
Note: All the above data types (byte, short, int and long) can be used to represent whole
numbers. If we want to represent real numbers then we should go for floating point
data types.
Float double
If we want to 5 to 6 decimal places of If we want to 14 to 15 decimal places of
accuracy then we should go for float. accuracy then we should go for double.
Size:4 bytes. Size:8 bytes.
Range:-3.4e38 to 3.4e38. -1.7e308 to1.7e308.
float follows single precision. double follows double precision.
Example 1:
boolean b=true;
boolean b=True;//C.E:cannot find symbol
boolean b="True";//C.E:incompatible types
boolean b=0;//C.E:incompatible types
RELATED TITLES
2.6K views 5 2
Core Java with SCJP/ OCJP Notes By Durga Sir Language Fundamentals
In old languages like C & C++ are ASCII code based the no.Of ASCII code characters
are < 256 to represent these 256 characters 8 - bits enough hence char size in old
languages 1 byte.
In java we are allowed to use any worldwide alphabets character and java is Unicode
based and no.Of unicode characters are > 256 and <= 65536 to represent all these
characters one byte is not enough compulsory we should go for 2 bytes.
Size: 2 bytes
Range: 0 to 65535
Example:
char ch1=97;
char ch2=65536;//C.E:possible loss of precision
data Corresponding
Size Range Default value
type Wrapper class
7 7
byte 1 byte -2 to 2 -1(-128 to 127) Byte 0
15 15
-2 to 2 -1 (-32768 to
short 2 bytes Short 0
32767)
-231 to 231-1 (-2147483648
int 4 bytes Integer 0
to 2147483647)
long 8 bytes -263 to 263-1 Long 0
RELATED TITLES
2.6K views 5 2
Core Java with SCJP/ OCJP Notes By Durga Sir Language Fundamentals
Literals:
Any constant value which can be assigned to the variable is called literal.
Example:
Integral Literals:
For the integral data types (byte, short, int and long) we can specify literal value in the
following ways.
2) Octal literals: Allowed digits are 0 to 7. Literal value should be prefixed with zero.
Example: int x=010;
Core Java with SCJP/ OCJP Notes By Durga Sir Language Fundamentals
Example:
int x=10;
int y=010;
int z=0x10;
System.out.println(x+"----"+y+"----"+z); //10----8----16
By default every integral literal is int type but we can specify explicitly as long type by
suffixing with small "l" (or) capital "L".
Example:
int x=10;(valid)
long l=10L;(valid)
long l=10;(valid)
int x=10l;//C.E:possible loss of precision(invalid)
found : long
required : int
There is no direct way to specify byte and short literals explicitly. But whenever we are
assigning integral literal to the byte variables and its value within the range of byte
compiler automatically treats as byte literal. Similarly short literal also.
Example:
byte b=127;(valid)
byte b=130;//C.E:possible loss of precision(invalid)
short s=32767;(valid)
short s=32768;//C.E:possible loss of precision(invalid)
Floating point literal is by default double type but we can specify explicitly as float type
by suffixing with f or F.
Example:
float f=123.456;//C.E:possible loss of precision(invalid)
float f=123.456f;(valid)
double d=123.456;(valid)
We can specify explicitly floating point literal as double type by suffixing with d or D.
Example:
double d=123.456D;
We can specify floating point literal only in decimal form and we can't specify in octal
and hexadecimal forms.
Example:
double d=123.456;(valid)
double d=0123.456;(valid) //it is treated as decimal value but not octal
double d=0x123.456;//C.E:malformed floating point literal(invalid)
RELATED TITLES
2.6K views 5 2
Core Java with SCJP/ OCJP Notes By Durga Sir Language Fundamentals
We can assign integral literal directly to the floating point data types and that integral
literal can be specified in decimal , o ctal and Hexa decimal form also.
Example:
double d=0xBeef;
System.out.println(d);//48879.0
But we can't assign floating point literal directly to the integral types.
Example:
int x=10.0;//C.E:possible loss of precision
We can specify floating point literal even in exponential form also(significant notation).
Example:
double d=10e2;//==>10*102(valid)
System.out.println(d);//1000.0
float f=10e2;//C.E:possible loss of precision(invalid)
float f=10e2F;(valid)
Boolean literals:
The only allowed values for the boolean type are true (or) false where case is important.
i.e., lower case
Example:
1. boolean b=true;(valid)
2. boolean b=0;//C.E:incompatible types(invalid)
3. boolean b=True;//C.E:cannot find symbol(invalid)
4. boolean b="true";//C.E:incompatible types(invalid)
RELATED TITLES
2.6K views 5 2
Core Java with SCJP/ OCJP Notes By Durga Sir Language Fundamentals
Char literals:
Example:
1. char ch='a';(valid)
2. char ch=a;//C.E:cannot find symbol(invalid)
3. char ch="a";//C.E:incompatible types(invalid)
4. char ch='ab';//C.E:unclosed character li teral(invalid)
2) We can specify a char literal as integral literal which represents Unicode of that
character.
We can specify that integral literal either in decimal or o ctal or hexadecimal form but
allowed values range is 0 to 65535.
Example:
Example:
1. char ch='\ubeef';
2. char ch1='\u0061';
System.out.println(ch1); //a
3. char ch2=\u0062; //C.E:cannot find symbol
4. char ch3='\iface'; //C.E:illegal escape character
5. Every escape character in java acts as a char literal.
Example:
1) char ch='\n'; //(valid)
2) char ch='\l'; //C.E:illegal escape character(invalid)
RELATED TITLES
2.6K views 5 2
Core Java with SCJP/ OCJP Notes By Durga Sir Language Fundamentals
String literals:
Example:
String s="Ashok"; (valid)
1. Binary Literals
2. Usage of '_' in Numeric Literals
Binary Literals :
For the integral data types untill 1.6v we can specified literal value in the following ways
RELATED TITLES
2.6K views 5 2
Core Java with SCJP/ OCJP Notes By Durga Sir Language Fundamentals
But from 1.7v onwards we can specified literal value in binary form also.
The allowed digits are 0 to 1.
Literal value should be prefixed with Ob or OB .
int x = 0b111;
System.out.println(x); // 7
We can use more than one underscore symbol also between the digits.
Ex : double d = 1_23_ _456.789;
Diagram:
RELATED TITLES
2.6K views 5 2
Core Java with SCJP/ OCJP Notes By Durga Sir Language Fundamentals
Arrays
1) Introduction
2) Array declaration
3) Array construction
4) Array initialization
5) Array declaration, construction, initialization in a single line.
6) length Vs length() method
7) Anonymous arrays
8) Array element assignments
9) Array variable assignments.
Introduction
The main advantage of arrays is we can represent multiple values with the same name
so that readability of the code will be improved.
Array declarations:
Example:
int[] a;//recommended to use because name is clearly separated from the
type
int []a;
int a[];
At the time of declaration we can't specify the size otherwise we will get compile time
error.
Example:
int[] a;//valid
int[5] a;//invalid
RELATED TITLES
2.6K views 5 2
Core Java with SCJP/ OCJP Notes By Durga Sir Language Fundamentals
Example:
int[][][] a;
int [][][]a;
int a[][][];
int[] [][]a;
int[] a[][]; All are valid.(10 ways)
int[] []a[];
int[][] []a;
int[][] a[];
int []a[][];
int [][]a[];
Which of the following declarations are valid?
1) int[] a1,b1; //a-1,b-1 (valid)
2) int[] a2[],b2; //a-2,b-1 (valid)
3) int[] []a3,b3; //a-2,b-2 (valid)
4) int[] a,[]b; //C.E: expected (invalid)
Note :
If we want to specify the dimension before the variable that rule is applicable only for
the 1st variable.
Second variable onwards we can't apply in the same declaration.
Example:
Array construction:
Every array in java is an object hence we can create by using new operator.
Example:
int[] a=new int[3];
Diagram:
RELATED TITLES
2.6K views 5 2
Core Java with SCJP/ OCJP Notes By Durga Sir Language Fundamentals
Rule 1:
At the time of array creation compulsory we should specify the size otherwise we will
get compile time error.
Example:
int[] a=new int[3];
int[] a=new int[];//C.E:array dimension missing
Rule 2:
It is legal to have an array with size zero in java.
Example:
int[] a=new int[0];
System.out.println(a.length);//0
Rule 3:
If we are taking array size with -ve int value then we will get runtime exception saying
NegativeArraySizeException.
Example:
int[] a=new int[-3];//R.E:NegativeArraySizeException
Rule 4:
The allowed data types to specify array size are byte, short, char, int.
By mistake if we are using any other type we will get compile time error.
Example:
int[] a=new int['a'];//(valid)
byte b=10;
int[] a=new int[b];//(valid)
short s=20;
int[] a=new int[s];//(valid)
int[] a=new int[10l];//C.E:possible loss of precision//(invalid)
int[] a=new int[10.5];//C.E:possible loss o f precision//(invalid)
Rule 5:
The maximum allowed array size in java is maximum value of int size [2147483647].
Example:
int[] a1=new int[2147483647];(valid)
int[] a2=new int[2147483648];
//C.E:integer number too large: 2147483648(invalid)
RELATED TITLES
2.6K views 5 2
Core Java with SCJP/ OCJP Notes By Durga Sir Language Fundamentals
Example 1:
int[][] a=new int[2][];
a[0]=new int[3];
a[1]=new int[2];
Diagram:
Example 2:
int[][][] a=new int[2][][];
a[0]=new int[3][];
a[0][0]=new int[1];
a[0][1]=new int[2];
a[0][2]=new int[3];
a[1]=new int[2][2];
Diagram:
Core Java with SCJP/ OCJP Notes By Durga Sir Language Fundamentals
Whenever we are creating an array every element is initialized with default value
automatically.
Example 1:
int[] a=new int[3];
System.out.println(a);//[I@3e25a5
System.out.println(a[0]);//0
Diagram:
Note: Whenever we are trying to print any object reference i nternally toString() meth
will be executed which is implemented by default to return the following.
classname@hexadecimalstringrepresentationofhashcode.
Example 2:
System.out.println(a);//[[I@3e25a5
System.out.println(a[0]);//[I@19821f
System.out.println(a[0][0]);//0
Diagram:
Example 3:
RELATED TITLES
2.6K views 5 2
Core Java with SCJP/ OCJP Notes By Durga Sir Language Fundamentals
Once we created an array all its elements by default initialized with default values.
If we are not satisfied with those default values then we can replays with our customized
values.
Example:
int[] a=new int[4];
a[0]=10;
a[1]=20;
a[2]=30;
a[3]=40;
a[4]=50;//R.E:ArrayIndexOutOfBoundsException: 4
a[-4]=60;//R.E:ArrayIndexOutOfBoundsException: -4
Diagram:
Note: if we are trying to access array element with out of range index we will get
Runtime Exception saying ArrayIndexOutOfBoundsException.
Core Java with SCJP/ OCJP Notes By Durga Sir Language Fundamentals
Example:
char[] ch={'a','e','i','o','u'};(valid)
String[] s={"balayya","venki","nag","chiru"};(valid)
We can extend this short cut even for multi dimensional arrays also.
Example:
int[][] a={{10,20,30},{40,50}};
Diagram:
Example:
int[][][] a={{{10,20,30},{40,50}},{{60},{70,80},{90,100,110}}};
Diagram:
RELATED TITLES
2.6K views 5 2
Core Java with SCJP/ OCJP Notes By Durga Sir Language Fundamentals
System.out.println(a[1][2][1]);//100(valid)
System.out.println(a[1][2][2]);//110(valid)
System.out.println(a[2][1][0]);//R.E:ArrayIndexOutOfBoundsException:
2(invalid)
System.out.println(a[1][1][1]);//80(valid)
Example:
length Vs length():
length:
Example:
int[] x=new int[3];
System.out.println(x.length());//C.E: cannot find symbol
System.out.println(x.length);//3
length() method:
RELATED TITLES
2.6K views 5 2
Core Java with SCJP/ OCJP Notes By Durga Sir Language Fundamentals
In multidimensional arrays length variable represents only base size but not to tal size.
Example:
int[][] a=new int[6][3];
System.out.println(a.length);//6
System.out.println(a[0].length);//3
Diagram:
length variable applicable only for a rrays where as length()method is applicable for
String objects.
There is no direct way to find total size of multi dimentional array but indirectly we can
find as follows
x[o].length +x[1].length + x[2].length + .......
Anonymous Arrays:
Sometimes we can create an array without name such type of nameless arrays
are called anonymous arrays.
The main objective of anonymous arrays is "just for instant use".
We can create anonymous array as follows.
new int[]{10,20,30,40};(valid)
new int[][]{{10,20},{30,40}};(valid)
At the time of anonymous array creation we can't specify the size otherwise we
will get compile time error.
Example:
new int[3]{10,20,30,40};//C.E:';' expected(invalid)
new int[]{10,20,30,40};(valid)
Based on our programming requirement we can give the name for anonymous array
then it is no longer anonymous.
Example:
int[] a=new int[]{10,20,30,40};(valid)
Example:
class Test
{
RELATED TITLES
2.6K views 5 2
Core Java with SCJP/ OCJP Notes By Durga Sir Language Fundamentals
total=total+x1;
}
return total;
}
}
In the above program just to call sum() , we required an array but after completing
sum() call we are not using that array any more, ananimous array is best suitable.
Case 1:
In the case of primitive array as array element any type is a llowed which can be
promoted to declared type.
Example 1:
For the int type arrays the allowed array element types are byte, short, char, int.
int[] a=new int[10];
a[0]=97;//(valid)
a[1]='a';//(valid)
byte b=10;
a[2]=b;//(valid)
short s=20;
a[3]=s;//(valid)
a[4]=10l;//C.E:possible loss of precision
Example 2:
For float type arrays the allowed element types are b yte, short, char, int, long, float.
Case 2:
In the case of Object type arrays as array elements we can provide either declared type
objects or its child class objects.
Example 1:
Object[] a=new Object[10];
a[0]=new Integer(10);//(valid)
a[1]=new Object();//(valid)
a[2]=new String("bhaskar");//(valid)
Example 2:
Number[] n=new Number[10];
RELATED TITLES
2.6K views 5 2
Core Java with SCJP/ OCJP Notes By Durga Sir Language Fundamentals
Diagram:
Case 3:
In the case of interface type arrays as array elements we can provide its implemented
class objects.
Example:
Runnable[] r=new Runnable[10];
r[0]=new Thread();
r[1]=new String("bhaskar");//C.E: incompatible types
Case 1:
Example:
int[] a={10,20,30};
char[] ch={'a','b','c'};
int[] b=a;//(valid)
RELATED TITLES
2.6K views 5 2
Core Java with SCJP/ OCJP Notes By Durga Sir Language Fundamentals
Note: In the case of object type arrays child type array can be assign to parent type
array variable.
Example:
String[] s={"A","B"};
Object[] o=s;
Case 2:
Whenever we are assigning one array to another array internal elements won't be copy
just reference variables will be reassigned hence sizes are not important but types must
be matched.
Example:
int[] a={10,20,30,40,50,60,70};
int[] b={80,90};
a=b;//(valid)
b=a;//(valid)
Diagram:
RELATED TITLES
2.6K views 5 2
Core Java with SCJP/ OCJP Notes By Durga Sir Language Fundamentals
Case 3:
Whenever we are assigning one array to another array dimensions must be matched
that is in the place of one dimensional array we should provide the same type only
otherwise we will get compile time error.
Example:
int[][] a=new int[3][];
a[0]=new int[4][5];//C.E:incompatible types(invalid)
a[0]=10;//C.E:incompatible types(invalid)
a[0]=new int[4];//(valid)
Note: Whenever we are performing array assignments the types and dimensions must
be matched but sizes are not important.
Example 1:
int[][] a=new int[3][2];
a[0]=new int[3];
a[1]=new int[4];
a=new int[4][3];
Diagram:
Core Java with SCJP/ OCJP Notes By Durga Sir Language Fundamentals
for(int i=0;i<=args.length;i++)
{
System.out.println(args[i]);
}
}
}
Output:
java Test x y
R.E: ArrayIndexOutOfBoundsException: 2
java Test x
R.E: ArrayIndexOutOfBoundsException: 2
java Test
R.E: ArrayIndexOutOfBoundsException: 2
Note: Replace with i<args.length
Example 3:
class Test
{
public static void main(String[] args)
{
String[] argh={"A","B"};
args=argh;
System.out.println(args.length);//2
for(int i=0;i<args.length;i++)
{
System.out.println(args[i]);
}
}
}
Output:
2
A
B
Example 4:
class Test
{
public static void main(String[] args)
{
String[] argh={"A","B"};
args=argh;
for(String s : args) {
System.out.println(s);
}
}
Output:
A
B
RELATED TITLES
2.6K views 5 2
Core Java with SCJP/ OCJP Notes By Durga Sir Language Fundamentals
Primitive variables:
Reference variables:
Diagram:
Division 2 : Based on the behaviour and position of declaration all variables are divided
into the following 3 types.
1. Instance variables
2. Static variables
3. Local variables
Instance variables:
If the value of a variable is varied from object to object such type of variables are
called instance variables.
For every object a separate copy of instance variables will be created.
Instance variables will be created at the time of object creation and destroyed at
the time of object destruction hence the scope of instance variables is exactly
same as scope of objects.
Instance variables will be stored on the heap as the part of object.
Instance variables should be declared with in the class directly but outside of any
method or block or constructor.
Instance variables can be accessed directly from Instance area. But cannot be
accessed directly from static area.
But by using object reference we can access instance variables from static area.
Example:
class Test
{
RELATED TITLES
2.6K views 5 2
Core Java with SCJP/ OCJP Notes By Durga Sir Language Fundamentals
}
public void methodOne()
{
System.out.println(i);//10(valid)
}
}
For the instance variables it is not required to perform initialization JVM will always
provide default values.
Example:
class Test
{
boolean b;
public static void main(String[] args)
{
Test t=new Test();
System.out.println(t.b);//false
}
}
Instance variables also known as object level variables or attributes.
Static variables:
If the value of a variable is not varied from object to object such type of variable
is not recommended to declare as instance variables. We have to declare such
type of variables at class level by using static modifier.
In the case of instance variables for every object a separate copy will be created
but in the case of static variables for entire class only one copy will be created
and shared by every object of that class.
Static variables will be crated at the time of class loading and destroyed at the
time of class unloading hence the scope of the static variable is exactly same as
the scope of the .class file.
Static variables will be stored in method area. Static variables should be declared
with in the class directly but outside of any method or block or constructor.
Static variables can be accessed from both instance and static areas directly.
We can access static variables either by class name or by object reference but
usage of class name is recommended.
But within the same class it is not required to use class name we can access
directly.
java TEST
1. Start JVM.
2. Create and start Main Thread by JVM.
3. Locate(find) Test.class by main Thread.
RELATED TITLES
2.6K views 5 2
Core Java with SCJP/ OCJP Notes By Durga Sir Language Fundamentals
Example:
class Test
{
static int i=10;
public static void main(String[] args)
{
Test t=new Test();
System.out.println(t.i);//10
System.out.println(Test.i);//10
System.out.println(i);//10
}
}
For the static variables it is not required to perform initialization explicitly, JVM will
always provide default values.
Example:
class Test
{
static String s;
public static void main(String[] args)
{
System.out.println(s);//null
}
}
Example:
class Test
{
int x=10;
static int y=20;
public static void main(String[] args)
{
Test t1=new Test();
t1.x=888;
t1.y=999;
Test t2=new Test();
System.out.println(t2.x+"----"+t2.y);//10----999
}
}
Diagram:
RELATED TITLES
2.6K views 5 2
Core Java with SCJP/ OCJP Notes By Durga Sir Language Fundamentals
Local variables:
The local variables will be created as part of the block execution in which it is declared
and destroyed once that block execution completes. Hence the scope o f the local
variables is exactly same as scope of the block in which we declared.
Example 1:
class Test
{
public static void main(String[] args)
{
int i=0;
for(int j=0;j<3;j++)
{
i=i+j;
}
}
}
Example 2:
class Test
{
public static void main(String[] args)
{
try
RELATED TITLES
2.6K views 5 2
Core Java with SCJP/ OCJP Notes By Durga Sir Language Fundamentals
}
}
}
Example:
Example:
class Test
{
public static void main(String[] args)
{
int x;
if(args.length>0)
{
RELATED TITLES
2.6K views 5 2
Core Java with SCJP/ OCJP Notes By Durga Sir Language Fundamentals
Example:
class Test
{
public static void main(String[] args)
{
int x;
if(args.length>0)
{
x=10;
}
else
{
x=20;
}
System.out.println(x);
}
}
Output:
java Test x
10
java Test x y
10
java Test
20
Note: The only applicable modifier for local variables is final. If we are using any other
modifier we will get compile time error.
Example:
class Test
{
public static void main(String[] args)
{
Core Java with SCJP/ OCJP Notes By Durga Sir Language Fundamentals
Un Initialized arrays
Example:
class Test
{
int[] a;
public static void main(String[] args)
{
Test t1=new Test();
System.out.println(t1.a);//null
System.out.println(t1.a[0]);//R.E:NullPointerException
}
}
Instance level:
Example 1:
int[] a;
System.out.println(obj.a);//null
System.out.println(obj.a[0]);//R.E:NullPointerException
Example 2:
int[] a=new int[3];
System.out.println(obj.a);//[I@3e25a5
System.out.println(obj.a[0]);//0
Static level:
Example 1:
static int[] a;
System.out.println(a);//null
System.out.println(a[0]);//R.E:NullPointerException
Example 2:
static int[] a=new int[3];
System.out.println(a);//[I@3e25a5
System.out.println(a[0]);//0
RELATED TITLES
2.6K views 5 2
Core Java with SCJP/ OCJP Notes By Durga Sir Language Fundamentals
Hence the following are the various possible combinations for variables
Core Java with SCJP/ OCJP Notes By Durga Sir Language Fundamentals
We can call or invoke this method by passing any no. Of int values including zero
number also.
Example:
class Test
{
public static void methodOne(int... x)
{
System.out.println("var-arg method");
}
public static void main(String[] args)
{
methodOne();
methodOne(10);
methodOne(10,20,30);
}
}
Output:
var-arg method
var-arg method
var-arg method
Internally var-arg parameter implemented by using single dimensional array hence
within the var-arg method we can differentiate arguments by using index.
Example:
class Test
{
public static void sum(int... x)
{
int total=0;
for(int i=0;i<x.length;i++)
{
total=total+x[i];
RELATED TITLES
2.6K views 5 2
Core Java with SCJP/ OCJP Notes By Durga Sir Language Fundamentals
}
}
Output:
The sum: 0
The sum: 10
The sum: 30
The sum: 100
Example:
class Test
{
public static void sum(int... x)
{
int total=0;
for(int x1 : x)
{
total=total+x1;
}
System.out.println("The sum :"+total);
}
public static void main(String[] args)
{
sum();
sum(10);
sum(10,20);
sum(10,20,30,40);
}
}
Output:
The sum: 0
The sum: 10
The sum: 30
The sum: 100
Case 1:
Which of the following var-arg method declarations are valid?
1. methodOne(int... x) (valid)
2. methodOne(int ...x) (valid)
3. methodOne(int...x) (valid)
4. methodOne(int x...) (invalid)
5. methodOne(int. ..x) (invalid)
6. methodOne(int .x..) (invalid)
RELATED TITLES
2.6K views 5 2
Core Java with SCJP/ OCJP Notes By Durga Sir Language Fundamentals
Example:
methodOne(int a,int... b) //valid
methodOne(int... a,int b) //(invalid)
Case 4:
With in the var-arg method we can take only one var-arg parameter. i.e., if we are
trying to more than one var-arg parameter we will get CE.
Example:
methodOne(int... a,int... b) //(invalid)
Case 5:
class Test
{
public static void methodOne(int i)
{
System.out.println("general method");
}
public static void methodOne(int... i)
{
System.out.println("var-arg method");
}
public static void main(String[] args)
{
methodOne();//var-arg method
methodOne(10,20);//var-arg method
methodOne(10);//general method
}
}
In general var-arg method will get least priority that is if no other method matched then
only var-arg method will get the chance this is exactly same as default case inside a
switch.
Case 6:
For the var-arg methods we can provide the corresponding type array as argument.
Example:
class Test
{
{
System.out.println("var-arg method");
}
public static void main(String[] args)
RELATED TITLES
2.6K views 5 2
Core Java with SCJP/ OCJP Notes By Durga Sir Language Fundamentals
Case 1:
Wherever single dimensional array present we can replace with var-arg parameter.
Example:
class Test
{
public static void main(String... args)
{
System.out.println("var-arg main method");//var-arg main
method
}
}
Case 2:
Wherever var-arg parameter present we can't replace with single dimensional array.
Note :
1. methodOne(int... x)
we can call this method by passing a group of int values and x will become 1D
array. (i.e., int[] x)
2. methodOne(int[]... x)
we can call this method by passing a group of 1D int[] and x will b ecome 2D
array. ( i.e., int[][] x)
Core Java with SCJP/ OCJP Notes By Durga Sir Language Fundamentals
}
}
public static void main(String[] args)
{
int[] l={10,20,30};
int[] m={40,50};
methodOne(l,m);
}
}
Output:
10
40
Analysis:
Main Method
Example:
class Test
{}
RELATED TITLES
2.6K views 5 2
Core Java with SCJP/ OCJP Notes By Durga Sir Language Fundamentals
If we are performing any changes to the above syntax then the code won't run and will
get Runtime exception saying NoSuchMethodError.
Even though above syntax is very strict but the following changes are acceptable to
main() method.
1. The order of modifiers is not important that is instead of public static we can
take static public.
2. We can declare string[] in any acceptable form
o String[] args
o String []args
o String args[]
3. Instead of args we can use any valid java identifier.
4. We can replace string[] with var-arg parameter.
Example: main(String... args)
5. main() method can be declared with the following modifiers.
final, synchronized, strictfp.
6. class Test {
7. static final syncronized strictfp public void main(String... ask){
8. System.out.println("valid main method");
9. }
10. }
11. output :
12. valid main method
Core Java with SCJP/ OCJP Notes By Durga Sir Language Fundamentals
Example:
class Test
{
public static void main(String[] args)
{
System.out.println("String[] array main method"); //overloaded
methods
}
public static void main(int[] args)
{
System.out.println("int[] array main method");
}
}
Output:
String[] array main method
The other overloaded method we have to call explicitly then only it will be executed.
Case 2:
Inheritance concept is applicable for static methods including main() method
hence while executing child class if the child class doesn't contain main() method then
the parent class main() method will be executed.
Example 1:
class Parent
{
public static void main(String[] args)
{
System.out.println("parent main"); //Parent.java
}
}
class Child extends Parent
{}
RELATED TITLES
2.6K views 5 2
Core Java with SCJP/ OCJP Notes By Durga Sir Language Fundamentals
Analysis:
Example 2:
class Parent
{
public static void main(String[] args)
{
System.out.println("parent main"); // Parent.java
}
}
class Child extends Parent
{
public static void main(String[] args)
{
System.out.println("Child main");
}
}
RELATED TITLES
2.6K views 5 2
Core Java with SCJP/ OCJP Notes By Durga Sir Language Fundamentals
Analysis:
It seems to be overriding concept is applicable for static methods but it is not o verriding
it is method hiding.
Case 1 :
Untill 1.6v if o ur class doesn't contain main() method then at runtime we will get
Runtime Exception saying NosuchMethodError:main
But from 1.7 version onwards instead of NoSuchMethodError we will get more
meaning full description
class Test {
}
1.6 version :
javac Test.java
java Test
RE: NoSuchMethodError:main
RELATED TITLES
2.6K views 5 2
Core Java with SCJP/ OCJP Notes By Durga Sir Language Fundamentals
Case 2 :
From 1.7 version onwards to start program execution compulsory main method should
be required, hence even though the class contains static block if main method not
available then won't be executed
class Test {
static {
System.out.println("static block");
}
}
1.6 version :
javac Test.java
java Test
output :
static block
RE: NoSuchMethodError:main
1.7 version :
javac Test.java
java Test
Error: main method not found in class Test, please define the main metho
as
public static void main(String[] args)
Case 3 :
class Test {
static {
System.out.println("static block");
System.exit(0);
}
}
1.6 version :
javac Test.java
java Test
output :
static block
1.7 version :
javac Test.java
java Test
Error: main method not found in class Test, please define the main method
as
public static void main(String[] args)
Case 4 :
class Test {
static {
System.out.println("static block");
}
RELATED TITLES
2.6K views 5 2
Core Java with SCJP/ OCJP Notes By Durga Sir Language Fundamentals
output :
static block
main method
1.7 version :
javac Test.java
java Test
output :
static block
main method
RELATED TITLES
2.6K views 5 2
Core Java with SCJP/ OCJP Notes By Durga Sir Language Fundamentals
The arguments which are passing from command prompt are called command line
arguments.
The main objective of command line arguments are we can customize the behavior of
the main() method.
Example 1:
class Test
{
public static void main(String[] args)
{
for(int i=0;i<=args.length;i++)
{
System.out.println(args[i]);
}
}
}
Output:
java Test x y z
ArrayIndexOutOfBoundsException: 3
Replace i<=args.length with i<args.length then it will run successfully.
Example 2 :
class Test
{
public static void main(String[] args)
{
String[] argh={"X","Y","Z"};
args=argh;
for(String s : args)
{
System.out.println(s);
}
}
}
Output:
java Test A B C
X
Y
RELATED TITLES
2.6K views 5 2
Core Java with SCJP/ OCJP Notes By Durga Sir Language Fundamentals
Y
Z
Within the main() method command line arguments are available i n the form of String
hence "+" operator acts as string concatenation but not arithmetic addition.
Example 3 :
class Test
{
public static void main(String[] args)
{
System.out.println(args[0]+args[1]);
}
}
Output:
E:\SCJP>javac Test.java
E:\SCJP>java Test 10 20
1020
Space is the separator between 2 command line arguments and if our command line
argument itself contains space then we should enclose with in double quotes.
Example 4 :
class Test
{
public static void main(String[] args)
{
System.out.println(args[0]);
}
}
Output:
E:\SCJP>javac Test.java
E:\SCJP>java Test "Sai Charan"
Sai Charan
RELATED TITLES
2.6K views 5 2
Core Java with SCJP/ OCJP Notes By Durga Sir Language Fundamentals
Example:
Example:
Core Java with SCJP/ OCJP Notes By Durga Sir Language Fundamentals
Example:
1. Serializable
2. Runnable
3. Cloneable
Example:
Example:
length
name
salary nouns
age
mobileNumber
Core Java with SCJP/ OCJP Notes By Durga Sir Language Fundamentals
Example:
MAX_VALUE
MIN_VALUE nouns
NORM_PRIORITY
A java bean is a simple java class with private properties and public getter and setter
methods.
Example:
Core Java with SCJP/ OCJP Notes By Durga Sir Language Fundamentals
Note: For the boolean properties the getter method can be prefixed with either g et or is.
But recommended to use is.
Example:
To register a listener:
To unregister a listener: