Wednesday, 25 July 2012

Finding the longest word in a user given string ..!

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
32
33
34
package com.kota.core;
import java.util.*;

class LongestWord {
 String str = "Ram is intelligent boy";
 String stringArray[] = str.split("\\s");

 public String compare(String st1, String st2) {
  if (st1.length() > st2.length()) {
   return st1;
  } else {
   return st2;
  }
 }

 LongestWord() {
  String word = "";
  for (int i = 0; i < stringArray.length; i++) {
   if (i == 0) {
    word = stringArray[0];
   }
   word = compare(word, stringArray[i]);
  }
  System.out.println("Longest word = " + word);
 }

 public static void main(String[] args) {
  new LongestWord();
 }
}
/**
 * Out put : Longest word = intelligent
 * 
 * */

Thursday, 19 July 2012

Rules for Overriding Methods in Java

Rule 1) A method is said to be overriden if a class which extends another class defines method with the same name and arguments list.

Rule 2) The method defined in the base class should be visible in the derived class. If this is not so, the method in the derived class will not be considered overridden version but will be treated as a normal method.

Rule 3) The method name and arguments list should be same for overriding and overridden methods. But the return type can be co-variant. This means that if the return type of the method in super class is
Map, then the return type of the same method can be HashMap.

Rule 4) The access specifier in the overriding method (in the derived class) should not be more limiting than that of the overriden method (in the base class). This means that if the access specifier for base class method is protected then the access specifier for the derived class method should not be default or private but can be protected, public. The order of increasing visibility of various specifiers is:

private, default, protected, public

Rule 5) The exceptions specified in the derived class method should be either same or sub-class of them. Thus if the base class method specifies the exception as IOException in the throws clause then the derived class method can specify the exception as FileNotFoundException, IOException but not Exception.

Tips for Overriding Methods in Java

Tip 1) Choose to override when the base class/interface version is generic in nature.
Tip 2) Use inheritance and overriding of methods judiciously as it increases coupling between classes.
Tip 3) Try to invoke overridden methods by creating a reference of base class/interface type and making it refer to the derived class object. This helps in coding to generalization and helps creating lesser number of references.

10 Tricky Java Interview Questions


Here are some Java interview questions which are  un-common

1) What is the performance effect of a large number of import statements which are not used?
Ans: They are ignored if the corresponding class is not used.


2) Give a scenario where hotspot will optimize your code?
Ans: If we have defined a variable as static and then initialized this variable in a static block then the Hotspot will merge the variable and the initialization in a single statement and hence reduce the code.

3) What will happen if an exception is thrown from the finally block?
Ans: The program will exit if the exception is not catched in the finally block.


4) How does decorator design pattern works in I/O classes?
Ans: The various classes like BufferedReader , BufferedWriter workk on the underlying stream classes. Thus Buffered* class will provide a Buffer for Reader/Writer classes.


5) If I give you an assignment to design Shopping cart web application, how will you define the architecture of this application. You are free to choose any framework, tool or server?
Ans: Usually I will choose a MVC framework which will make me use other design patterns like Front Controller, Business Delegate, Service Locater, DAO, DTO, Loose Coupling etc. Struts 2 is very easy to configure and comes with other plugins like Tiles, Velocity and Validator etc. The architecture of Struts becomes the architecture of my application with various actions and corresponding JSP pages in place.

6) What is a deadlock in Java? How will you detect and get rid of deadlocks?
Ans: Deadlock exists when two threads try to get hold of a object which is already held by another object.


7) Why is it better to use hibernate than JDBC for database interaction in various Java applications?
Ans: Hibernate provides an OO view of the database by mapping the various classes to the database tables. This helps in thinking in terms of the OO language then in RDBMS terms and hence increases productivity.

8) How can one call one constructor from another constructor in a class?
Ans: Use the this() method to refer to constructors.

9) What is the purpose of intern() method in the String class?
Ans: It helps in moving the normal string objects to move to the String literal pool


10) How will you make your web application to use the https protocol?
Ans: This has more to do with the particular server being used  than the application itself. Here is how it can be done on tomcat:


50 Java Questions

The following are the most commonly asked questions in a Java interview. These are all actual exam question which I have been asked in various interviews (around 20 interviews) and are in fact have been asked repeatedly in those interviews be it telephonic or f2f interviews. Even now I also ask questions from these topics and you can expect to be asked 5-10 questions out of these.

I am not providing answers for these as it will be reinventing of wheel. You can Google these questions as it is and find answers to them. Don't forget to write sample programs around each of these question. I am sure you will come to know more if you practice yourself.

1) What are the four principles of Object Oriented Languages like Java?
2) Is Java a pure object oriented language?
3) How will you write an immutable class?
4) What is the difference between Comparable and Comparator interfaces in Java?
5) What is hashcode and equals contract?
6) What is the difference between == and equals method?
7) What are wrapper classes? Why they are declared as final classes?
8) What is the difference between String and StringBuffer classes?
9) What is the way to store the integer value in a string object to an integer variable?
10) What are sorted collections in Java?
11) Why is String class declared as final class?
12) What is JDBC API?
13) What are checked and unchecked exceptions?
14) What is final, finally and finalize?
15) What is weakhashmap?
16) What is the purpose of reflection API?
17) What is serialVersionUID?
18) What is bucketing in Java?
19) How does Java manages the threads?
20) What are memory leaks and how to detect/avoid them?
21) What is the order of execution of blocks in a Java program?
22) What are the exception related rules in overloading and overriding?
23) What are the different ways of creating a thread?
24) What is inter thread communication?
25) What are instance and class level locks? What is synchronization?
26) What is the difference between IS-A and HAS-A relationship?
27) What is cloning and CloneNotSupported Exception?
28) What is the difference between JAR, WAR and EAR files?
29) What are the coding standards for naming variables, constants, methods and classes?
30) What is a literal and what is special about String literals?
31) What is flyweight design pattern?
32) How will you create a Singleton class? Is it thread safe?
33) What is the difference between throw and throws clause?
34) Can one access the private members of class using reflection API?
35) What is the purpose of instanceof operator?
36) Under what circumstances, the finally block in a program may not run?
37) What is the difference between private, protected, default and public access specifiers?
38) What are this and super keywords?
39) What are transient and volatile keywords?
40) How many package statements can a program have?
41) Are all the classes specified in import statement actually imported?
42) Can an inheritance relationship exist between two interfaces?
43) What is Unicode?
44) What are annotations in Java?
45) What are the various forms of polymorphism?
46) What is the meaning of various keywords specified in creating the main method?
47) What is the purpose of ^ operator?
48) What is the difference between pass by value and pass by reference?
49) What are the various types of inner classes?
50) What are the various memory areas in JVM and what kind of information is stored in each of them?

30 SQL PL/SQL Questions


Here are a mix of SQL and PL/SQL questions. These can be treated as SQL and PL/SQL interview questions or a Database FAQ.

Many of them may be specific to Oracle database. Please  drop comment if you are unable to get an answer to any of them.

Also please note that it is better to know the answers to them even if you are a Java developer as database interaction is very much required in most of the applications.

SQL
  1. What are the various types of indexes?
  2. Is there any advantage of using views? On what kind of tables and columns, a view be created?
  3. What are the various kinds of constraints which can be applied on a column?
  4. What is the disadvantage of using indexes?
  5. What are the various techniques you have used for optimizing your tables? What about De-normalization?
  6. What is the purpose of DUAL table?
  7. How will you convert a date to String in SQL?
  8. How will you copy only the table structure from one table to another compatible table?
  9. How will you copy the table structure and data from one table to another compatible table?
  10. Which is the faster method of retrieving data using a SQL query? WHERE, ROWID, CURSOR
  11. What is better to use? A subquery or a Join?
  12. What is the purpose of NOCACHE and NOLOGGING keywords?
  13. What does DELETE CASCADE do in a constraint?
  14. When should one use Auto Increment of a column than using a sequence?
  15. How will you take the backup of the data present in your tables?
  16. What is the difference between a Data Warehouse and Data Mining?
  17. What is the disadvantage of having constraints and integrity checks in triggers or procedures than to have them in the application using the database?
  18. How will you delete duplicate rows from a table based on a particular column?
  19. Can a view be created on another view?
  20. Can a SQL query have an alias and be used as a column name for the enclosing parent SQL query? Give example?

PL/SQL

  1. Is AVG a function or procedure?
  2. What is the advantage of using packages for storing PL/SQL objects?
  3. How will you raise an exception and an error in PL/SQL procedure?
  4. How will you call a PL/SQL procedure from a SQL statement?
  5. What is the default value being assigned to variables in a PL/SQL variables?
  6. What is the difference between NVL and NVL2 functions?
  7. What is the difference between Count and Count(*)?
  8. What is the difference between Procedure and Function?
  9. What is overloading of procedures?
  10. What is a ROW and STATEMENT triggers?

15 Must Know Java Interview Questions After 2 Years of Experience


Interview Questions that every developer should have the answer

Enterprise Java Application development is growing every day and new features being introduced but the the beginners have always start from the basics. The questions listed below are what in general a Java developer should be able to answer after 2 years of experience. (Assuming no prior exposure to Java)



Core Java

1) What is the purpose of serialization?
2) What is the difference between JDK and JRE?
3) What is the difference between equals and ==?
4) When will you use Comparator and Comparable interfaces?
5) What is the wait/notify mechanism?
6) What is the difference between checked and unchecked exceptions?
7) What is the difference between final, finally and finalize?
JEE
8) What is the difference between web server and app server?
9) Explain the Struts1/Struts2/MVC application architecture?
10) What is the difference between forward and sendredirect?
General
11) How does a 3 tier application differ from a 2 tier one?
12) How does the version control process works?
13) What is the difference between JAR and WAR files?
Databases
14) What is a Left outer join?
15) What is the difference between UNION and UNION ALL?


Wednesday, 18 July 2012

How Garbage Collection works in Java ?


Few important points about garbage collection in java:


1) objects are created on heap in Java  irrespective of there scope e.g. local or member variable. while its worth noting that class variables or static members are created in method area of Java memory space and both heap and method area is shared between different thread.
2) Garbage collection is a mechanism provided by Java Virtual Machine to reclaim heap space from objects which are eligible for Garbage collection.
3) Garbage collection relieves java programmer from memory management which is essential part of C++ programming and gives more time to focus on business logic.
4) Garbage Collection in Java is carried by a daemon thread called Garbage Collector.
5) Before removing an object from memory Garbage collection thread invokes finalize () method of that object and gives an opportunity to perform any sort of cleanup required.
6) You as Java programmer can not force Garbage collection in Java; it will only trigger if JVM thinks it needs a garbage collection based on Java heap size.
7) There are methods like System.gc () and Runtime.gc () which is used to send request of Garbage collection to JVM but it’s not guaranteed that garbage collection will happen.
8) If there is no memory space for creating new object in Heap Java Virtual Machine throws OutOfMemoryError or java.lang.OutOfMemoryError heap space
9) J2SE 5(Java 2 Standard Edition) adds a new feature called Ergonomics goal of ergonomics is to provide good performance from the JVM with minimum of command line tuning.




When an Object becomes Eligible for Garbage Collection


An Object becomes eligible for Garbage collection or GC if its not reachable from any live threads or any static refrences in other words you can say that an object becomes eligible for garbage collection if its all references are null. Cyclic dependencies are not counted as reference so if Object A has reference of object B and object B has reference of Object A and they don't have any other live reference then both Objects A and B will be eligible for Garbage collection. 
Generally an object becomes eligible for garbage collection in Java on following cases:
1) All references of that object explicitly set to null e.g. object = null
2) Object is created inside a block and reference goes out scope once control exit that block.
3) Parent object set to null, if an object holds reference of another object and when you set container object's reference null, child or contained object automatically becomes eligible for garbage collection.
4) If an object has only live references via WeakHashMap it will be eligible for garbage collection. To learn more about HashMap see here How HashMap works in Java.


Heap Generations for Garbage Collection in Java


Java objects are created in Heap and Heap is divided into three parts or generations for sake of garbage collection in Java, these are called as Young generation, Tenured or Old Generation and Perm Area of heap. 
New Generation is further divided into three parts known as Eden space, Survivor 1 and Survivor 2 space. When an object first created in heap its gets created in new generation inside Eden space and after subsequent Minor Garbage collection if object survives its gets moved to survivor 1 and then Survivor 2 before Major Garbage collection moved that object to Old or tenured generation.


Permanent generation of Heap or Perm Area of Heap is somewhat special and it is used to store Meta data related to classes and method in JVM, it also hosts String pool provided by JVM as discussed in my string tutorial why String is immutable in Java. There are many opinions around whether garbage collection in Java happens in perm area of java heap or not, as per my knowledge this is something which is JVM dependent and happens at least in Sun's implementation of JVM. You can also try this by just creating millions of String and watching for Garbage collection or OutOfMemoryError.

What is AJAX?


AJAX = Asynchronous JavaScript and XML.
AJAX is a technique for creating fast and dynamic web pages.
AJAX allows web pages to be updated asynchronously by exchanging small amounts of data with the server behind the scenes. This means that it is possible to update parts of a web page, without reloading the whole page.
Classic web pages, (which do not use AJAX) must reload the entire page if the content should change.
Examples of applications using AJAX: Google Maps, Gmail, Youtube, and Facebook tabs.

How AJAX Works

AJAX


AJAX is Based on Internet Standards

AJAX is based on internet standards, and uses a combination of:
  • XMLHttpRequest object (to exchange data asynchronously with a server)
  • JavaScript/DOM (to display/interact with the information)
  • CSS (to style the data)
  • XML (often used as the format for transferring data)

What is an XML ?

Extensible Markup Language (XML) is a markup language that defines a set of rules for encoding documents in a format that is both human-readable and machine-readable. It is defined in the XML 1.0 Specification produced by the W3C, and several other related specifications, all gratis open standards.

The design goals of XML emphasize simplicity, generality, and usability over the Internet. It is a textual data format with strong support via Unicode for the languages of the world. Although the design of XML focuses on documents, it is widely used for the representation of arbitrary data structures, for example in web services.
Many application programming interfaces (APIs) have been developed for software developers to use to process XML data, and several schema systems exist to aid in the definition of XML-based languages

Saturday, 14 July 2012

Get Sub Set from Java TreeSet example

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
/*
  Get Sub Set from Java TreeSet example
  This Java Example shows how to get the sub Set from Java TreeSet by giving specific
  range of values using subSet method of Java TreeSet class.
 */

import java.util.TreeSet;
import java.util.SortedSet;

public class GetSubSetFromTreeSetExample {

 public static void main(String[] args) {

  // create TreeSet object
  TreeSet tSet = new TreeSet();

  // add elements to TreeSet
  tSet.add("1");
  tSet.add("3");
  tSet.add("2");
  tSet.add("5");
  tSet.add("4");

  /*
   * To get the sub Set from Java TreeSet use, SortedSet subSet(int from,
   * int to) method of TreeSet class.
   * 
   * This method returns portion of the TreeSet whose elements range from
   * from (inclusive) to to(exclusive).
   * 
   * Please note that, the SortedSet returned by this method is backed by
   * the original TreeSet. So any changes made to SortedSet will be
   * reflected back to original TreeSet.
   */

  SortedSet sortedSet = tSet.subSet("2", "5");

  System.out.println("SortedSet Contains : " + sortedSet);

 }
}

/*
 * Output would be SortedSet Contains : [2, 3, 4]
 */

Iterate Over Unmodifiable Collection

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
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;

public class UnmodifiableCollection {
 /*
  * Chandrasekhara Kota.
  * */

 public static void main(String args[]) {
  List<String> list = new ArrayList<String>();

  list.add("This");
  list.add("is");
  list.add("Unmodifiable Collection");

  System.out.println("Element added to list: " + list.get(2));

  Collection<String> immutableCol = Collections
    .unmodifiableCollection(list);

  Iterator<String> iterator = immutableCol.iterator();

  while (iterator.hasNext()) {
   System.out.println(iterator.next());
  }
 }
}

Is java pure object oriented ?

Java is a OOP language and it is not a pure Object Based Programming Language. 

Many languages are Object Oriented. There are seven qualities to be satisfied for a programming 
language to be pure Object Oriented. They are:


  1. Encapsulation/Data Hiding
  2. Inheritance
  3. Polymorphism
  4. AbstractionAll predefined types are objects
  1. All operations are performed by sending messages to objects
  2. All user defined types are objects.

Java is not because it supports Primitive datatype such as int, byte, long... etc, to be used, which are not objects.

Contrast with a pure OOP language like Smalltalk, where there are no primitive types, and boolean, int and methods are all objects.
Related Posts Plugin for WordPress, Blogger...