AdSense

AdSense3

Saturday, 4 July 2015

Java Important Interview Questions - 3

51. Can we declare abstract method as final?


Answer:
No, we can not declare abstract method as final. We have to proved implementation to 
 abstract methods in subclasses.

52. Can we have finally block without catch block?


Answer:
Yes, we can have finally block without catch block.

53. What is pass by value and pass by reference?


Answer:
Pass by value: Passing a copy of the value, not the original reference.
Pass by reference: Passsing the address of the object, so that you can access the original object

54. Can we declare main method as private?


Answer:
Yes, we can declare main method as private. It compiles without any errors, but in runtime,
 it says main method is not public.

55. What is the difference between preemptive scheduling and time slicing?


Answer:
Preemptive scheduling: The highest priority task executes until it enters
the waiting or dead states or a higher priority task comes into existence.

Time slicing: A task executes for a predefined slice of time and then reenters
the pool of ready tasks. The scheduler then determines which task should execute
next, based on priority and other factors.

56. Can non-static member classes (Local classes) have static members?


Answer:
No, non-static member classes cannot have static members. Because,
an instance of a non-static member class or local class must be
created in the context of an instance of the enclosing class. You
can declare constants, means static final variables.

57. What are the environment variables do we neet to set to run Java?


Answer:
We need to set two environment variables those are PATH and CLASSPATH.

58. Can you serialize static fields of a class?


Answer:
Since static fields are not part of object state, they are part of class, serialization ignores the 
static fields.

59. What is the difference between declaring a variable and defining a variable?


Answer:
When variable declaration we just mention the type of the variable and it's name, it does not have any 
reference to live object. But defining means combination of declaration and initialization. The examples 
are as given below:

Declaration:
List list;
Defining:
List list = new ArrayList();

60. Where can we use serialization?


Answer:
Whenever an object has to sent over the network, those objects should be serialized. Also if the state of 
an object is to be saved, objects need to be serialized.

61. What modifiers are allowed for methods in an Interface?


Answer:
Only public and abstract modifiers are allowed for methods in an interfaces.

62. What is the purpose of Runtime and System class?


Answer:
The purpose of the Runtime class is to provide access to the Java runtime system. The runtime information
 like memory availability, invoking the garbage collector, etc.

The purpose of the System class is to provide access to system resources. It contains accessibility to standard
 input, standart output, error output streams, current time in millis, terminating the application, etc.

63. Which one is faster? ArrayList or Vector? Why?


Answer:
ArrayList is faster than Vector. The reason is synchronization. Vector is synchronized. As we know 
synchronization reduces the performance.

64. What is the difference between static synchronized and synchronized methods?


Answer:
Static synchronized methods synchronize on the class object. If one thread is executing a static synchronized
 method, all other threads trying to execute any static synchronized methods will be blocked.

Non-static synchronized methods synchronize on this i.e. the instance of the class. If one thread is executing a synchronized method, all other threads trying to execute any synchronized methods will be blocked.

65. What is the order of catch blocks when catching more than one exception?


Answer:
When you are handling multiple catch blocks, make sure that you are specifing exception sub classes first,
 then followed by exception super classes. Otherwise we will get compile time error.

66. What is the difference between the prefix and postfix forms of the increment(++) operator?


Answer:
The prefix form first performs the increment operation and then returns the value of the increment operation. 
The postfix form first returns the current value of the expression and then performs the increment operation
 on that value. For example:

int count=1;
System.out.println(++count);

displays 2. And

int count=1;
System.out.println(count++);

displays 1.

67. What is hashCode?


Answer:
The hashcode of a Java Object is simply a number, it is 32-bit signed int, that allows an object to be managed
 by a hash-based data structure. We know that hash code is an unique id number allocated to an object by JVM.
 But actually speaking, Hash code is not an unique number for an object. If two objects are equals then these
 two objects should return same hash code. So we have to implement hashcode() method of a class in such way
 that if two objects are equals, ie compared by equal() method of that class, then those two objects must return
 same hash code. If you are overriding hashCode you need to override equals method also.

68. What is the difference between Hashtable and HashMap?


Answer:
The basic differences are Hashtable is synchronized and HashMap is not synchronized. Hashtable does not 
allow null values, and HashMap allows null values.

69. What are the restrictions when overriding a method?


Answer:
Overriding methods must have the same name, parameter list, and same return type. i.e., they must have the
 exact signature of the method we are going to override, including return type. The overriding method cannot
 be less visible than the method it overrides. i.e., a public method cannot be override to private. The overriding
 method may not throw any exceptions that may not be thrown by the overridden method.

70. What is the use of assert keyword?


Answer:
Java assertion feature allows developer to put assert statements in Java source code to help unit testing and 
debugging. Assert keyword validates certain expressions. It replaces the if block effectively and throws an AssertionError on failure.

71. What is adapter class?


Answer:
An adapter class provides the default implementation of all methods in an event listener interface. Adapter 
classes are very useful when you want to process only few of the events that are handled by a particular event
 listener interface. You can define a new class by extending one of the adapter classes and implement only those
 events relevant to you.

72. What is difference between break, continue and return statements?


Answer:
The break statement results in the termination of the loop, it will come out of the loop and stops further iterations. 
The continue statement stops the current execution of the iteration and proceeds to the next iteration. 
The return statement takes you out of the method. It stops executing the method and returns from the method execution.

73. When does the compiler provides the default constructor?


Answer:
The compiler provides a default constructor if no other constructors are available in the class. In case the class 
contains parametarized constructors, compiler does not provide the default constructor.

74. What are the differences between C++ and Java.


Answer:
Java doesnot support pointers. Pointers are tricky to use and troublesome.
Java does not support multiple inheritances because it causes more problems than it solves. Instead Java supports 
multiple interface inheritance, which allows an object to inherit many method signatures from different interfaces with the condition that the inheriting object must implement those inherited methods. The multiple interface inheritance also allows an object to behave polymorphically on those methods.
Java does not include structures or unions.
Java does not support destructors but adds a finalize() method. Finalize methods are invoked by the garbage collector prior to reclaiming the memory occupied by the object, which has the finalize() method. This means you do not know when the objects are going to be finalized. Avoid using finalize() method to release non-memory resources like file handles, sockets, database connections etc because Java has only a finite number of these resources and you do not know when the garbage collection is going to kick in to release these resources through the finalize() method.
All the code in Java program is encapsulated within classes therefore Java does not have global variables or functions.
C++ requires explicit memory management, while Java includes automatic garbage collection.

75. What are the advantages of java package.


Answer:
Java packages helps to resolve naming conflicts when different packages have classes with the same names. 
This also helps you organize files within your project. For example, java.io package do something related
 to I/O and java.net package do something to do with network and so on. If we tend to put all .java files into
 a single package, as the project gets bigger, then it would become a nightmare to manage all your files.

Android Architecure - Let's Start :)

Android architecture or Android software stack is categorized into five parts:

  1. linux kernel
  2. native libraries (middleware),
  3. Android Runtime
  4. Application Framework
  5. Applications
Let's see the android architecture first.
android software stack, architecture

1) Linux kernel

It is the heart of android architecture that exists at the root of android architecture. Linux kernel is responsible for device drivers, power management, memory management, device management and resource access.

2) Native Libraries

On the top of linux kernel, their are Native libraries such as WebKit, OpenGL, FreeType, SQLite, Media, C runtime library (libc) etc.
The WebKit library is responsible for browser support, SQLite is for database, FreeType for font support, Media for playing and recording audio and video formats.

3) Android Runtime

In android runtime, there are core libraries and DVM (Dalvik Virtual Machine) which is responsible to run android application. DVM is like JVM but it is optimized for mobile devices. It consumes less memory and provides fast performance.

4) Android Framework

On the top of Native libraries and android runtime, there is android framework. Android framework includes Android API'ssuch as UI (User Interface), telephony, resources, locations, Content Providers (data) and package managers. It provides a lot of classes and interfaces for android application development.

5) Applications

On the top of android framework, there are applications. All applications such as home, contact, settings, games, browsers are using android framework that uses android runtime and libraries. Android runtime and native libraries are using linux kernal.

Friday, 3 July 2015

Java Important Interview Questions - 2

26. What are the types of ResultSet?


Answer:
The type of a ResultSet object determines the level of its functionality in
two areas: the ways in which the cursor can be manipulated, and how concurrent
changes made to the underlying data source are reflected by the ResultSet object.
The sensitivity of a ResultSet object is determined by one of three different
ResultSet types:

TYPE_FORWARD_ONLY:
 The result set cannot be scrolled; its cursor moves forward only, from
 before the first row to after the last row. The rows contained in the
 result set depend on how the underlying database generates the results.
 That is, it contains the rows that satisfy the query at either the time
 the query is executed or as the rows are retrieved.
 
TYPE_SCROLL_INSENSITIVE:
 The result can be scrolled; its cursor can move both forward and backward
 relative to the current position, and it can move to an absolute position.
 The result set is insensitive to changes made to the underlying data source
 while it is open. It contains the rows that satisfy the query at either the
 time the query is executed or as the rows are retrieved.
 
TYPE_SCROLL_SENSITIVE:
 The result can be scrolled; its cursor can move both forward and backward
 relative to the current position, and it can move to an absolute position.
 The result set reflects changes made to the underlying data source while
 the result set remains open.

27. What is difference between wait and sleep methods in java?


Answer:
sleep():
 It is a static method on Thread class. It makes the current thread into the
 "Not Runnable" state for specified amount of time. During this time, the thread
 keeps the lock (monitors) it has acquired.
 
wait():
 It is a method on Object class. It makes the current thread into the "Not Runnable"
 state. Wait is called on a object, not a thread. Before calling wait() method, the
 object should be synchronized, means the object should be inside synchronized block.
 The call to wait() releases the acquired lock.

28. What is servlet context?


Answer:
The servlet context is an interface which helps to communicate with
other servlets. It contains information about the Web application and
container. It is kind of application environment. Using the context, a
servlet can obtain URL references to resources, and store attributes that
other servlets in the context can use.

29. What happens if one of the members in a class does not implement Serializable interface?


Answer:
When you try to serialize an object which implements Serializable
interface, incase if the object includes a reference of an non
serializable object then NotSerializableException will be thrown.

30. What is race condition?


Answer:
A race condition is a situation in which two or more threads or
processes are reading or writing some shared data, and the final
result depends on the timing of how the threads are scheduled.
Race conditions can lead to unpredictable results and subtle
program bugs. A thread can prevent this from happening by locking
an object. When an object is locked by one thread and another
thread tries to call a synchronized method on the same object,
the second thread will block until the object is unlocked.

31. How to get current time in milli seconds?


Answer:
System.currentTimeMillis() returns the current time in milliseconds.
It is a static method, returns long type.

32. How can you convert Map to List?


Answer:
We know that Map contains key-value pairs, whereas a list contains
only objects. Since Entry class contains both key-value pair,
Entry class will helps us to convert from Map (HashMap) to
List (ArrayList). By using Map.entrySet() you will get Set
object, which intern you can use it to convert to list object.

Code:
public static void main(String a[]){
 Map<String, String> wordMap = new HashMap<String, String>();
 Set<Entry<String, String>> set = wordMap.entrySet();
 List<Entry<String, String>> list = new ArrayList<Entry<String, String>>(set);
}

33. What is strictfp keyword?


Answer:
By using strictfp keyword, we can ensure that floating point operations
take place precisely.

34. What is System.out in Java?


Answer:
Here out is an instance of PrintStream. It is a static member variable in
System class. This is called standard output stream, connected to console.

35. What is difference between ServletOuptputStream and PrintWriter?


Answer:
ServletOutputStream: ServletResponse.getOutputStream() returns a ServletOutputStream
  suitable for writing binary data in the response. The servlet
  container does not encode the binary data, it sends the raw data
  as it is.
  
PrintWriter: ServletResponse.getWriter() returns PrintWriter object which sends
  character text to the client. The PrintWriter uses the character
  encoding returned by getCharacterEncoding(). If the response's
  character encoding has not been specified then it does default
  character encoding.

36. What is java static import?


Answer:
By using static imports, we can import the static members from a class
rather than the classes from a given package.  For example, Thread class has
static sleep method, below example gives an idea:

import static java.lang.Thread;
public class MyStaticImportTest {
 public static void main(String[] a) {
  try{
   sleep(100);

37.When to use String and StringBuffer?


Answer:
We know that String is immutable object. We can not change the value
of a String object once it is initiated. If we try to change the value of
the existing String object then it creates new object rather than changing
the value of the existing object. So incase, we are going to do more
modificatios on String, then use StringBuffer. StringBuffer updates the
existing objects value, rather creating new object.

38. What is difference between StringBuffer and StringBuilder?


Answer:
The only difference between StringBuffer and StringBuilder is StringBuffer
is thread-safe, that is StringBuffer is synchronized.

39. What is wrapper class in java?


Answer:
Everything in java is an object, except primitives. Primitives are
int, short, long, boolean, etc. Since they are not objects, they cannot
return as objects, and collection of objects. To support this, java provides
wrapper classes to move primitives to objects. Some of the wrapper classes
are Integer, Long, Boolean, etc.

40. Is Iterator a Class?


Answer:
Iterator is an interface. It is not a class. It is used to iterate through each and every element
 in a list. Iterator is implemented Iterator design pattern.

41. What is java classpath?


Answer:
The classpath is an environment variable. It is used to let the compiler know where the class
 files are available for import.

42. Can a class in java be private?


Answer:
We can not declare top level class as private. Java allows
only public and default modifier for top level classes in java.
Inner classes can be private.

43. What is the initial state of a thread when it is started?


Answer:
When the thread is createdn and started, initially it will be in the ready state.

44. What is the super class for Exception and Error?


Answer:
The super class or base class for Exception and Error is Throwable.

45. What is Class.forName()?


Answer:
Class.forName() loads the class into the ClassLoader.

46. Can interface be final?


Answer:
No. We can not instantiate interfaces, so in order to make interfaces
useful we must create subclasses. The final keyword makes a class unable
to be extended.

47. What is the difference between exception and error?


Answer:
An error is an irrecoverable condition occurring at runtime like out of
memory error. These kind of jvm errors cannot be handled at runtime.
Exceptions are because of condition failures, which can be handled
easily at runtime.

48. What is default value of a local variables?


Answer:
The local variables are not initialized to any default values. We should
not use local variables with out initialization. Even the java compiler
throws error.

49. What is local class in java?


Answer:
In java, local classes can be defined in a block as in a
method body or local block.

50. Can we initialise uninitialized final variable?


Answer:
Yes. We can initialise blank final variable in constructor, only in construtor.
The condition here is the final variable should be non-static.

History of Android !!!!!

The history and versions of android are interesting to know. The code names of android ranges from A to J currently, such asAestro, Blender, Cupcake, Donut, Eclair, Froyo, Gingerbread, Honeycomb, Ice Cream Sandwitch, Jelly Bean, KitKatand Lollipop. Let's understand the android history in a sequence.

1) Initially, Andy Rubin founded Android Incorporation in Palo Alto, California, United States in October, 2003.
2) In 17th August 2005, Google acquired android Incorporation. Since then, it is in the subsidiary of Google Incorporation.
3) The key employees of Android Incorporation are Andy RubinRich MinerChris White and Nick Sears.
4) Originally intended for camera but shifted to smart phones later because of low market for camera only.
5) Android is the nick name of Andy Rubin given by coworkers because of his love to robots.
6) In 2007, Google announces the development of android OS.
7) In 2008, HTC launched the first android mobile.

Android Versions, Codename and API

Let's see the android versions, codenames and API Level provided by Google.
VersionCode nameAPI Level
1.5Cupcake3
1.6Donut4
2.1Eclair7
2.2Froyo8
2.3Gingerbread9 and 10
3.1 and 3.3Honeycomb12 and 13
4.0Ice Cream Sandwitch15
4.1, 4.2 and 4.3Jelly Bean16, 17 and 18
4.4KitKat19
5.0Lollipop21

Thursday, 2 July 2015

Java Important Interview Questions - 1

1. Can Java thread object invoke start method twice?

Code:
package com.kundan;

public class Example extends Thread{

 public void run(){
  System.out.println("Run");
 }
 
 public static void main(String a[]){
  Thread t1 = new Thread(new Example());
  t1.start();
  t1.start();
 }
}
Answer:
No, it throws IllegalThreadStateException

2. Give the list of Java Object class methods.


Answer:
 clone() - Creates and returns a copy of this object.
 equals() - Indicates whether some other object is "equal to" this one.
 finalize() - Called by the garbage collector on an object when garbage collection
   determines that there are no more references to the object.
 getClass() - Returns the runtime class of an object.
 hashCode() - Returns a hash code value for the object.
 notify() - Wakes up a single thread that is waiting on this object's monitor.
 notifyAll() - Wakes up all threads that are waiting on this object's monitor.
 toString() - Returns a string representation of the object.
 wait() - Causes current thread to wait until another thread invokes the notify() method
   or the notifyAll() method for this object.

3. Can we call servlet destory() from service()?


Answer:
As we know, destroy() is part of servlet life cycle methods, it is used to kill the
servlet instance. Servlet Engine is used to call destroy(). In case, if you call destroy
method from service(), it just execute the code written in the destroy(), but it wont
kill the servlet instance. destroy() will be called before killing the servlet instance
by servlet engine.

4. Can we override static method?


Answer:
We cannot override static methods. Static methods are belongs to class, not belongs
to object. Inheritance will not be applicable for class members

5. Can you list serialization methods?


Answer:
Serialization interface does not have any methods. It is a marker interface.
It just tells that your class can be serializable.

6. What is the difference between super() and this()?


Answer:
super() is used to call super class constructor, whereas this() used to call
constructors in the same class, means to call parameterized constructors.

7. How to prevent a method from being overridden?


Answer:
By specifying final keyword to the method you can avoid overriding
in a subcalss. Similarlly one can use final at class level to
prevent creating subclasses.

8. Can we create abstract classes without any abstract methods?


Answer:
Yes, we can create abstract classes without any abstract methods.

9. How to destroy the session in servlets?


Answer:
By calling invalidate() method on session object, we can destroy the session.

10. Can we have static methods in interface?


Answer:
By default, all methods in an interface are declared as public, abstract. It will never be static. But this
concept is changed with java 8. Java 8 came with new feature called "default methods" with in interfaces

11. What is transient variable?


Answer:
Transient variables cannot be serialized. During serialization process,
transient variable states will not be serialized. State of the value will
be always defaulted after deserialization.

12. Incase, there is a return at the end of try block, will execute finally block?


Answer:
Yes, the finally block will be executed even after writing return statement
at the end of try block. It returns after executing finally block.

13. What is abstract class or abstract method?


Answer:
We cannot create instance for an abstract class. We can able to create
instance for its subclass only. By specifying abstract keyword just before
class, we can make a class as abstract class.

public abstract class MyAbstractClass{

}

Abstract class may or may not contains abstract methods. Abstract method is
just method signature, it does not contains any implementation. Its subclass
must provide implementation for abstract methods. Abstract methods are looks
like as given below:

public abstract int getLength();

14. What is default value of a boolean?


Answer:
Default value of a boolean is false.

15. When to use LinkedList or ArrayList?


Answer:
Accessing elements are faster with ArrayList, because it is index based.
But accessing is difficult with LinkedList. It is slow access. This is
to access any element, you need to navigate through the elements one by
one. But insertion and deletion is much faster with LinkedList, because
if you know the node, just change the pointers before or after nodes.
Insertion and deletion is slow with ArrayList, this is because, during
these operations ArrayList need to adjust the indexes according to
deletion or insetion if you are performing on middle indexes. Means,
an ArrayList having 10 elements, if you are inserting at index 5, then
you need to shift the indexes above 5 to one more.

16. What is daemon thread?


Answer:
Daemon thread is a low priority thread. It runs intermittently in the back ground, 
and takes care of the garbage collection operation for the java runtime system. 
By calling setDaemon() method is used to create a daemon thread.

17. Does each thread in java uses seperate stack?


Answer:
In Java every thread maintains its own separate stack. It is
called Runtime Stack but they share the same memory.

18. What is the difference between Enumeration and Iterator?


Answer:
The functionality of Enumeration and the Iterator are same. You can get remove() 
from Iterator to remove an element, while while Enumeration does not have remove()
method. Using Enumeration you can only traverse and fetch the objects, where as using
Iterator we can also add and remove the objects. So Iterator can be useful if you want
to manipulate the list and Enumeration is for read-only access.

19. Find out below switch statement output.

Code:
public static void main(String a[]){
 int price = 6;
 switch (price) {
  case 2: System.out.println("It is: 2");
  default: System.out.println("It is: default");
  case 5: System.out.println("It is: 5");
  case 9: System.out.println("It is: 9");
 }
}

Answer:
It is: default
It is: 5
It is: 9
If there is a break in between then the switch will return with the defined case. If there is no break, switch will execute from the first matched case till the end.

20. Does system.exit() in try block executes code in finally block?

Code:
 try{
  System.out.println("I am in try block");
  System.exit(1);
 } catch(Exception ex){
  ex.printStackTrace();
 } finally {
  System.out.println("I am in finally block!!!");
 }

Answer:
It will not execute finally block. The program will be terminated
after System.exit() statement.

21. What is fail-fast in java?


Answer:
A fail-fast system is nothing but immediately report any failure that
is likely to lead to failure. When a problem occurs, a fail-fast system
fails immediately. In Java, we can find this behavior with iterators.
Incase, you have called iterator on a collection object, and another
thread tries to modify the collection object, then concurrent modification
exception will be thrown. This is called fail-fast.

22. What is final, finally and finalize?


Answer:
final:
 final is a keyword. The variable decleared as final should be
 initialized only once and cannot be changed. Java classes
 declared as final cannot be extended. Methods declared as final
 cannot be overridden.
 
finally:
 finally is a block. The finally block always executes when the
 try block exits. This ensures that the finally block is executed
 even if an unexpected exception occurs. But finally is useful for
 more than just exception handling - it allows the programmer to
 avoid having cleanup code accidentally bypassed by a return,
 continue, or break. Putting cleanup code in a finally block is
 always a good practice, even when no exceptions are anticipated.
 
finalize:
 finalize is a method. Before an object is garbage collected, the
 runtime system calls its finalize() method. You can write system
 resources release code in finalize() method before getting garbage
 collected.

23. In java, are true and false keywords?


Answer:
true, false, and null might seem like keywords, but they are actually
literals. You cannot use them as identifiers in your programs.

24. What are the different session tracking methods?


Answer:
Cookies:
 You can use HTTP cookies to store information. Cookies will be
 stored at browser side.

URL rewriting:
 With this method, the information is carried through url as
 request parameters. In general added parameter will be sessionid,
 userid. 

HttpSession:
 Using HttpSession, we can store information at server side. Http
 Session provides methods to handle session related information.
 
Hidden form fields:
 By using hidden form fields we can insert information in the webpages
 and these information will be sent to the server. These fields are not
 visible directly to the user, but can be viewed using view source
 option from the browsers. The hidden form fields are as given below:
 
 <input type='hidden' name='siteName' value='kundanblogs'/>

25. What is the purpose of garbage collection?


Answer:
The garbage collection process is to identify the objects which are
no longer referenced or needed by a program so that their resources can be
reclaimed and reused. These identified objects will be discarded.

Wednesday, 1 July 2015

Difference between final, finally and finalize

There are many differences between final, finally and finalize. A list of differences between final, finally and finalize are given below:

No.finalfinallyfinalize
1)Final is used to apply restrictions on class, method and variable. Final class can't be inherited, final method can't be overridden and final variable value can't be changed.Finally is used to place important code, it will be executed whether exception is handled or not.Finalize is used to perform clean up processing just before object is garbage collected.
2)Final is a keyword.Finally is a block.Finalize is a method.

Java final example

  1. class FinalExample{  
  2. public static void main(String[] args){  
  3. final int x=100;  
  4. x=200;//Compile Time Error  
  5. }}  

Java finally example

  1. class FinallyExample{  
  2. public static void main(String[] args){  
  3. try{  
  4. int x=300;  
  5. }catch(Exception e){System.out.println(e);}  
  6. finally{System.out.println("finally block is executed");}  
  7. }}  

Java finalize example

  1. class FinalizeExample{  
  2. public void finalize(){System.out.println("finalize called");}  
  3. public static void main(String[] args){  
  4. FinalizeExample f1=new FinalizeExample();  
  5. FinalizeExample f2=new FinalizeExample();  
  6. f1=null;  
  7. f2=null;  
  8. System.gc();  
  9. }}

Android - What is this??????

Android is a software package and linux based operating system for mobile devices such as tablet computers and smartphones.

It is developed by Google and later the OHA (Open Handset Alliance). Java language is mainly used to write the android code even though other languages can be used.
The goal of android project is to create a successful real-world product that improves the mobile experience for end users.
There are many code names of android such as Lollipop, Kitkat, Jelly Bean, Ice cream Sandwich, Froyo, Ecliar, Donut etc which is covered in next page.

What is Open Handset Alliance (OHA)

It's a consortium of 84 companies such as google, samsung, AKM, synaptics, KDDI, Garmin, Teleca, Ebay, Intel etc.
It was established on 5th November, 2007, led by Google. It is committed to advance open standards, provide services and deploy handsets using the Android Plateform.

Features of Android

After learning what is android, let's see the features of android. The important features of android are given below:
1) It is open-source.
2) Anyone can customize the Android Platform.
3) There are a lot of mobile applications that can be chosen by the consumer.
4) It provides many interesting features like weather details, opening screen, live RSS (Really Simple Syndication) feeds etc.
It provides support for messaging services(SMS and MMS), web browser, storage (SQLite), connectivity (GSM, CDMA, Blue Tooth, Wi-Fi etc.), media, handset layout etc.

Categories of Android applications

There are many android applications in the market. The top categories are:
  • Entertainment
  • Tools
  • Communication
  • Productivity
  • Personalization
  • Music and Audio
  • Social
  • Media and Video
  • Travel and Local etc.