Wednesday, January 4, 2017

How to get Yester day Date


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
package com.javasunderesan;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class FindYesterDayDate {

 public static void main(String[] args) {
  FindYesterDayDate fydd = new FindYesterDayDate();
  System.out.println(fydd.getYesterdayDateString());
 }

 public String getYesterdayDateString() {
  String prevDate = null;
  Calendar cal = null;
  SimpleDateFormat datetimeFormatYYYYMMDD = new SimpleDateFormat("yyyy-MM-dd");
  String currDate = datetimeFormatYYYYMMDD.format(new Date());
  try {
   cal = Calendar.getInstance();
   cal.setTime(datetimeFormatYYYYMMDD.parse(currDate));
   cal.add(Calendar.DATE, -1);
   prevDate = datetimeFormatYYYYMMDD.format(cal.getTime());
  } catch (Exception e) {
   e.printStackTrace();
  } finally {
   cal = null;
  }
  return prevDate;
 }
}

Thursday, November 3, 2016

How Java Differs from C and C++

Pointers

Java does not have an explicit pointer type. Instead of pointers, all references to objects - 
including variable assignments, arguments passed into methods, and array elements — are
accomplished by using implicit references. References and pointers are essentially the same thing
except that you can’t do pointer arithmetic on references (nor do you need to).
Reference semantics also enable structures such as linked lists to be created easily in Java without
explicit pointers; merely create a linked list node with variables that point to the next and the
previous node. Then, to insert items in the list, assign those variables to other node objects.

Arrays

Arrays in Java are first class objects, and references to arrays and their contents are accomplished
through explicit references rather than via point arithmetic. Array boundaries are strictly
enforced; attempting to read past the ends of an array is a compile or run-time error. As with
other objects, passing an array to a method passes a reference to the original array, so changing
the contents of that array reference changes the original array object.
Arrays of objects are arrays of references that are not automatically initialized to contain actual
objects. Using the following Java code produces an array of type MyObject with ten elements, but
that array initially contains only nulls:

MyObject arrayofobjs[] = new MyObject[10];

You must now add actual MyObject objects to that array:

for (int i; i< arrayofobjs.length. i++) {
arrayofobjs[i] = new MyObject();
}

Java does not support multidimensional arrays as in C and C++. In Java, you must create arrays
that contain other arrays.

Strings

Strings in C and C++ are arrays of characters, terminated by a null character (\0). To operate
on and manage strings, you treat them as you would any other array, with all the inherent
difficulties of keeping track of pointer arithmetic and being careful not to stray off the end of
the array.
Strings in Java are objects, and all methods that operate on strings can treat the string as a
complete entity. Strings are not terminated by a null, nor can you accidentally overstep the end
of a string (like arrays, string boundaries are strictly enforced.

Memory Management

All memory management in Java is automatic; memory is allocated automatically when an
object is created, and a run-time garbage collector (the “GC”) frees that memory when the object
is no longer in use. C’s malloc and free functions do not exist in Java.
To “force” an object to be freed, remove all references to that object (assign variables holding
it to null, remove it from arrays, and so on). The next time the Java GC runs, that object is
reclaimed.

Data Types

As mentioned in the early part of this book, all Java primitive data types (char, int, long, and
so on) have consistent sizes and behavior across platforms and operating systems. There are no
unsigned data types as in C and C++ (except for char, which is a 16-bit unsigned integer).
The boolean primitive data type can have two values: true or false. Boolean is not an integer,
nor can it be treated as one, although you cannot cast 0 or 1 (integers) to boolean types in Java.
Composite data types are accomplished in Java exclusively through the use of class definitions.

The struct, union, and typedef keywords have all been removed in favor of classes.
Casting between data types is much more controlled in Java; automatic casting occurs only when
there will be no loss of information. All other casts must be explicit. The primitive data types
(int, float, long, char, boolean, and so on) cannot be cast to objects or vice versa; there are
methods and special “wrapper” classes to convert values between objects and primitive types.

Control Flow

Although the if, while, for, and do statements in Java are syntactically the same as they are in
C and C++, there is one significant difference. The test expression for each control flow construct
must return an actual boolean value (true or false). In C and C++, the expression can return
an integer.

Arguments

Java does not support mechanisms for optional arguments or for variable-length argument lists
to functions as in C and C++. All method definitions must have a specific number of arguments.
Command-line arguments in Java behave differently from those in C and C++. The first element
in the argument vector (argv[0]) in C and C++ is the name of the program itself; in Java, that
first argument is the first of the additional arguments. In other words, in Java, argv[0] is argv[1]
in C and C++; there is no way to get hold of the actual name of the Java program.

Other Differences

The following other minor differences from C and C++ exist in Java:
  • Java does not have a preprocessor, and as such, does not have #defines or macros.
  • Constants can be created by using the final modifier when declaring class and instance variables.
  • Java does not have template classes as in C++.
  • Java does not include C’s const keyword or the ability to pass by const reference explicitly.
  • Java classes are singly inherited, with some multiple-inheritance features provided through interfaces.
  • All functions are implemented as methods. There are no functions that are not tied to classes.
  • The goto keyword does not exist in Java (it’s a reserved word, but currently unimplemented). You can, however, use labeled breaks and continues to break out of and continue executing complex switch or loop constructs.


Friday, August 19, 2016

Java Object Oriented Programming Concept

Java OOPS concepts

Object Oriented Programming is a paradigm that provides many concepts such as inheritance, data binding, polymorphism etc.
Simula is considered as the first object-oriented programming language. The programming paradigm where everything is represented as an object, is known as truly object-oriented programming language.
Smalltalk is considered as the first truly object-oriented programming language.


OOPs (Object Oriented Programming System)

Object means a real word entity such as pen, chair, table etc. Object-Oriented Programming is a methodology or paradigm to design a program using classes and objects. It simplifies the software development and maintenance by providing some concepts:

  • Object
  • Class
  • Inheritance
  • Polymorphism
  • Abstraction
  • Encapsulation


Object
Any entity that has state and behavior is known as an object. For example: chair, pen, table, keyboard, bike etc. It can be physical and logical.

Class
Collection of objects is called class. It is a logical entity.

Inheritance
When one object acquires all the properties and behaviours of parent object i.e. known as inheritance. It provides code reusability. It is used to achieve runtime polymorphism.

Polymorphism
When one task is performed by different ways i.e. known as polymorphism. For example: to convense the customer differently, to draw something e.g. shape or rectangle etc. In java, we use method overloading and method overriding to achieve polymorphism. Another example can be to speak something e.g. cat speaks meaw, dog barks woof etc.

Static Polymorphism (compile time polymorphism/ Method overloading):
The ability to execute different method implementations by altering the argument used with the method name is known as method overloading. For Example We have three print methods each with different arguments. When you properly overload a method, you can call it providing different argument lists, and the appropriate version of the method executes.

Dynamic Polymorphism (run time polymorphism/ Method Overriding)
When you create a subclass by extending an existing class, the new subclass contains data and methods that were defined in the original superclass. In other words, any child class object has all the attributes of its parent. Sometimes, however, the superclass data fields and methods are not entirely appropriate for the subclass objects; in these cases, you want to override the parent class members.

Abstraction
Hiding internal details and showing functionality is known as abstraction. For example: phone call, we don't know the internal processing. In java, we use abstract class and interface to achieve abstraction.

Encapsulation
Binding (or wrapping) code and data together into a single unit is known as encapsulation. For example: capsule, it is wrapped with different medicines. A java class is the example of encapsulation. Java bean is the fully encapsulated class because all the data members are private here. Encapsulation means putting together all the variables (instance variables) and the methods into a single unit called Class. It also means hiding data and methods within an Object. Encapsulation provides the security that keeps data and methods safe from inadvertent changes. Programmers sometimes refer to encapsulation as using a “black box,” or a device that you can use without regard to the internal mechanisms. A programmer can access and use the methods and data contained in the black box but cannot change them.

Advantage of OOPs over Procedure-oriented programming language
  1. OOPs makes development and maintenance easier where as in Procedure-oriented programming language it is not easy to manage if code grows as project size grows.
  2. OOPs provides data hiding whereas in Procedure-oriented prgramming language a global data can be accessed from anywhere.
  3. OOPs provides ability to simulate real-world event much more effectively. We can provide the solution of real word problem if we are using the Object-Oriented Programming language.

Wednesday, August 17, 2016

Java Comments

Java Comments

Comments

The purpose of including comments in your code is to explain what the code is doing. Java supports both single and multi-line comments. All characters that appear within a comment are ignored by the java compiler.



Single-line comment

A single-line comment starts with two forward slashes and continues until it reaches the end of the line.
For example:

// this is a single-line comment
X= 5; //Assign 5 to Variable X

Adding comments as you write code is a good practice,because they provide clarification and understanding when you need to refer back to it, as well as for others who might need to read it.


Multi-line comments

Java also supports comments that span multiple lines.
You start this type of comment with a forward slash followed by an asterisk, and end it with an asterisk followed by a forward slash.
For example:


/* 
* This is also a Comment 
* Spanning multiple lines
*/

Note that Java does not support nested mutli-line comments.
However, you can nest Single-line comments within multi-line comments.


/*
* JavaSunderesan - MultiLine Comments 
// a Single Line Comment
*/

Documentation Comments

Documentation comments are special comments that have the appearance of multi-line comments, with the difference being that they generate external documentation of your source code. These begin with a forward slash followed by two asterisks, and end with an asterisk followed by an forward slash.
For Example:


/** Welcome To Java Sunderesan
* Copyright (C)2016 King  . All Rights Reserved
*/

Javadoc is a tool which comes with JDK and it is used for generating Java Code documentation in HTML format from Java source code which has required documentation in a predefined format.
When a documentation comment begins with more than two asterisks, Javadoc assumes that you want to create a "box" around the comment in the source code. It simply ignores the extra asterisks.
For Example:


/**********
* Welcome To Java Sunderesan Copyright (C)2016 King . All Rights Reserved
*/

Monday, August 8, 2016

Write a program for a String must contain three digit using String.format()

Write a program for a String must contain three digit using String.format()

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
      package com.javasunderesan;

public class StringThreeDigit {

 public static void main(String[] args) {
  try
  {
   int no = 0;
   String formattingString = null;
   for (int i = 0; i < 10; i++) {
    formattingString = String.format("Dev -  %03d", no);
    System.out.println(formattingString);
    no++;
   }
  }
  catch(Exception e)
  {
   e.printStackTrace();
  }
 }
}
Output
Dev -  000
Dev -  001
Dev -  002
Dev -  003
Dev -  004
Dev -  005
Dev -  006
Dev -  007
Dev -  008
Dev -  009

Write a Program to Add spaces before and After a String using String.format()

Write a Program to Add spaces before and After a String using String.format()
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
      package com.javasunderesan;

public class AddSpaceBeforeAndAfterString {
 public static void main(String[] args) {
  try {
   String msg = "java";
   System.out.println(String.format("%8s", msg)); // adding spaces
               // before
               // string ;
   System.out.println(String.format("%-8s", msg));// adding spaces
               // after
               // string
   // 8 is a number of characters String and spaces

  } catch (Exception e) {
   e.printStackTrace();
  }
 }
}

Output::

    java
java