Friday, February 23, 2018

[Interview Question] Common Elements in Two Sorted Arrays Program in java

Common Element in two sorted array is one of the data structure interview question asked in most of the company now a days .


In this article we will see how to find the Common Element in two sorted array.

Objective: Find the Common Elements in Two Sorted Array

Implementation:

Explanation:

Most of the Logics are written as a Comment in Program . This will help you in understanding the Program.

Other Frequently Asked Interview Questions
Most Frequent Occurring Item in an Array program in java
Program in java for Array Rotation

If you have any issue in the above program and if you need help to understand , please leave us a comment.

Thanks for reading
Noeik


Most Frequent Occurring Item in an Array program in java

Objective  We need to find the most frequent occurring item or number in given array.


Solution : 

I would recommend you to please practice by yourself before see the program

Implementation 


Other Interview Questions :
Quick Sort Program 
BFS & DFS Program
Heap Sort Program


I hope this program will help you in understanding problem solving. If you have any issue , leave us  comment.

Thanks for Reading
Noeik

Wednesday, February 21, 2018

[Interview Question] Program in java for Array Rotation

Objective : We will be given one array and asked to rotate the array by d no. of time 

ex- Input - {1,2,3,4,5} d=2
Output - {3,4,5,1,2} 
I will Recommend you to please do it by yourself before see the answer.

Approach 1 : Using temp Array

Pseudo code 
  1. We will use one temp array where we will add the element of value d
  2. then we will copy the d+1th element to 0th place d+2th element to 1th element and so on .
  3. Now we will merge the temp array elements at the end of the array.





Approach 2: Rotate by one to left 

Pseudo Code .


  1. We will first store the first element to temp variable.
  2. Move all the element to left by one.
  3. store the temp variable in last place.
Program Code:

Approach 3 : Reversal Algorithm

Pseudo Code

  1. Let suppose we need to rotate the array by d index what we will do is as below
  2. we first reverse the (o,d) element of the array 
  3. in second we will reverse the (d+1 , length) elements of the array .
  4. In third we will reverse (0, length ) element of the array this will give use the required array.

Program Code:


I guess the Code is self explanatory and I you still face any problem and looking for help , Please let me know , will be happy to help

If you like this article please share it with your friends and colleagues

Thanks for reading 
Noeik  

Tuesday, February 20, 2018

Making Games With Java- Introduction

  • Need for Speed.
  • Mario Bros.
  • Sonic.
  • Grand Theft Auto.

Admit it, we all love games. Ever since we were little kids, we all remember the first game we ever played. How those tiny, beautiful cartoon things on the screen moved around at your command, getting the power-ups and little coins, beating the big boss at the end. And finally, that epiphany moment when you’re like “I now know why God gave me thumbs.”
Aaaah. The good old days. Before real life was actually a thing.
Growing up, most of us continued to indulge in the art of gaming. Whether it’s testing out the latest EA or Rockstar game, or sitting in your room playing the latest Subway Surfers update and ignoring your mom’s pleas for you to do your homework, gaming has evolved from a mere pastime to a way of life. Scientist also say that gaming actually improves your cognitive ability, allowing you to make better life decisions (take that underpaid guidance counsellor!)
Of course, as a lot of us grow in our gaming lifestyles, most people decide to use their very limited free time to ask themselves one of life’s most pressing questions.
“Won’t it be cool if I made a game?”
Now, if you’re reading this right now, it’s most likely you asked yourself that question and were like, “Of course it is! What kind of stupid question is that?”. I’m also one of those people. I mean won’t it be awesome to make something like this:



Or this:


Or even this:
Or probably even this:

Ok, I admit the last one’s not very impressive in comparison to the others, but you have to admit, that game was fun. Besides, when you start learning how to make games, believe me, you’ll think it’s the most impressive thing you’ve ever seen. I mean, I’m sure you’ve been told that games aren’t made by magic. Well, let me tell you that that is a complete fabrication, an utter falsehood and a disgusting misrepresentation! (basically, it’s a lie). Many have told me that games aren’t made by magic, but I say that they are. They are made by a very new kind of magic, not as old as necromancy, sorcery, or the dark arts, but just as diabolical. We all know this form of black magic, a skill even older than the IPhone 5. An arcane art known only by one name…

Programming


Now it’s no lie that programming is quickly becoming one of the most popular occupations in the world. Years ago, when it was still a noble art, only a select few with almost impossibly high IQ’s would choose to drop everything and dedicate their lives to their computers and codes. Now, everybody wants to code, even that girl in our class that probably didn’t even know what a computer could do beside Microsoft Word.
And it’s not like any one can blame them. Games are really just the tip of the iceberg. If you’re a very good programmer, you’ll be able to create so many things. You could create a million-dollar software, or a social network that could put Zuckerberg to shame. You could programme your own robotic butler to do everything for you, or you could just create a mobile game to show off your mad skills to your friends.
The possibilities are endless.
Programming is power. And with power comes responsibility.
Luckily, the complex appearance of most programming languages keeps the riffraff out, but that doesn’t mean anybody can’t code. As long as you’re willing and able to learn the basics, and you put a lot of time into practicing, then you’re well on your way to being a decent programmer.
Now, as a beginner, the best way to learn how to code is by browsing some tutorial sites. (But of course you know this, otherwise you won’t be reading this). This course is for beginners to Java and programming in general; of course those that have some knowledge of programming are welcome. But before you browse for sites, one of the most important questions a beginner should ask themselves is “What language do I learn first?”
With a myriad of programming languages in the world (many that are popular, and many that are largely unknown), sometimes deciding the one to learn is part of the hassle of learning to code. Many believe that starting with a hard language like C will make learning the others easier. I don’t know how true that is, but I know that starting with hard languages can be kind of discouraging for a first timer.
There have been a lot of programming languages created for new programmers; including Python and Visual Basic, two languages that are very good. But in this course, we’re going to deal the one I used to learn programming.
Java.

Why Java?

Now that is an excellent question. I’m sure you’re asking yourself that question right now. Since there are thousands of programming languages out there, like C, C++, C#, other languages that don’t start with C like Python, what’s so special about Java? I mean, it’s not even the strongest one out there. Compared to C++, which was used to make Windows, Java, which is mostly used for measly mobile apps and games, must be the scum of the programming earth, right? Right?
No, not right.
I admit Java may not be the strongest language, but compared to others, it’s actually quite simple. I mean have you seen C syntax (If you haven’t, I really envy you.) (Also, if you haven’t, probably means you’re new to programming, so on a quick note, syntax is a fancy word for the words and word structure used in a particular language).  To tell you the truth, Java may not be the best, but it may as well be the best, because it has a lot of advantages over older and comparatively more advanced languages.
In case you’re wondering what said advantages are, don’t worry, I’ve listed them below.
  • Java is platform independent. For those who don’t know, it just means that it is not limited to a particular operating system. Once you write your code, you can run it on Windows, Linux and even Mac OS. With the Believe it or not, most other languages can’t do this. In fact, the only reason it does this is because of something called Java Runtime Environment (JRE), also called the Java Virtual Machine (JVM). We’ll look at this in more detail in our next post. Basically; with it, code can run everywhere. Without it, it can’t run anywhere.
  • Unlike C and C++ which are procedural languages, Java is Object-Oriented. This is more lingo that experienced programmers use to confuse the noobs, and it just means that each individual part of the software (or object) is worked on as a separate unit, making coding easier to implement, read and maintain.
  • Java can easily be configured to the web. In the webbed based world, we’re in now (that’s just begging to be taken over by robots) this comes in really handy. In fact, a lot of websites make use of Java when operating. The reason for this is that Java was created shortly after the invention of the Wed, so the smart guys that made it made it to complement the web. Smart move, I say.
  • Most Android apps and games are made with Java. I said it before that Java run everywhere; did you honestly think that the Android could escape its grasp. In fact, before the Android even knew it would be invented, Java was being used to create mobile games for the Nokia Symbian OS. (Remember when that used to be a thing? Yeah, me neither). I’m sure people thought that Java would die out with the coming of Android, but I guess the Java people up there are a lot smarter than we thought.
  • Java is easier than most languages. It might not seem so at first sight, but it actually is. Java is very easy to learn, especially for those that know the procedural languages like C and C++, because it steals (I’m sorry, “borrows”) most of their syntax, so you don’t have to worry about learning a whole new language from scratch if you already know those and maybe some other languages. Also, like I said earlier, it’s object –oriented, which is simpler and more efficient than those “more advanced” languages.

I could mention more reasons why Java is the best (or at least more preferable) choice for programmers, especially those that are new to programming.
     If you’ve gone this far in this post, it means you didn’t get distracted by some random notification, and you might actually be interested in learning Java. Remember, Java is not for the fainthearted, so if you feel you’re up for it, look out for our next post, were I’ll be talking about how to get everything you need to be a Java wizard (sorry, “programmer”).
In Next Post we will see what all we need for Java to we in my system.

Thanks for reading 
Noeik





First Rest API Application - Top Spring Framework Interview Questions

First Rest API Application using Spring Rest and Springboot?

What is SpringBoot?

Objective : To build an application of User Creation using Rest Services with Spring boot.

We will first create the Spring boot project usingstart.spring.io (see below image)
Now we will download the project and extract and import it into eclipse.
See the Project Hierarachy after all the package created.
Now we need to add below class
UserController.java – It will have all the Endpoints defined for External





JsonUser.java – This is a DTO class


User.java – This is the Entity Class 


UserRepository.java – This is the CRUDRespository interface for User Operations.
IUserService.java-  This is the user service Interface having all the methods signature for User Operations.

UserService.java – This is the IUserService implementated Class having methods Implementation of User Operations.

For Database as per simplicity we are use H2 Database(it is embedded database )

Explanation of Classes

UserController.java
@RestController is an annotation used to make the Class as a Rest Controller for Spring to identify.
@Requestmapping(<arg>) is annotation is used to provide the identity path for the URL  of this controller.

How to connect database using JDBCTEMPLATE

Arg – the path of the controller

@Autowired
       UserService userService; It will inject the Service class in Controller Class

@PostMapping
       public ResponseEntity<JsonUser> create(@RequestBody @Valid JsonUser user ,BindingResult result ,HttpServletRequest request){
             
              if(user== null)
                     return ResponseEntity.badRequest().build();
               return ResponseEntity.ok().body(userService.createUser(user));
             
       }

@PostMapping is showing that this method will be taking Post type of calls where the Request Body will be of type JsonUser.
After that we are checking the user is not null ,if it is we will return bad request error.
If not , we will call the service call createuser method with jsonUser object as a argument.

JsonUser.java
This class is a DTO class

User.java
This is Entity Class which will be persisted in Database.

@Entity is used to say that the class is entity class for hibernate.
@Table is used to define the table name for This class , if the table name is same as the class name we don’t need to difine the name otherwise it will become @Table(name=”mytable”)
@Id is to as this is identity attribute of the table which @GeneratedValue to show how the id will be automatically generated.
@Column is used to defined the Column Attributes.

UserRespository.java
This is Interface which implementes JpaRespository<User,Serializable> that means , It provide all the Db Operations function like save, findAll etc


IUserService.java
This is Service Interface having all the User Operations like createUser, getUser, updateUser, deleteUser

UserService.java
This is Service Implementation of IUserService where we are implementing the logic of creating the user using Respository Functionality.


Testing of Application Using Rest Client
Now we need to run the Application and then we will use RestClient like RestLetClient to test the API






Congratulations have creating our first Rest Service Application Using Spring framework.


If you like this article please share it with your friend or colleagues.

Thanks for reading
Noeik 


Monday, February 19, 2018

What is Spring boot ?


Spring boot is one among all the projects of Spring Framework Community , Which is mainly focused on building production ready application right from the initials.

We do not need to configure so many thing in spring boot as it will work on convention then configuration

What does convention over configuration means ?

Spring boot has writing its API in a way that it has pre assumed the placeholder of the different configuration and it assumed that the developer will also place the configuration in that placeholder only.
Example - The application.properties file is a property file where if I will write as
Server.port  = 8181
The Spring boot will configurate the tomcat server port as 8181 as server.port is defined in the code of the spring boot apis

So Again what is spring boot ?
Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can "just run". We take an opinionated view of the Spring platform and third-party libraries so you can get started with minimum fuss. Most Spring Boot applications need very little Spring configuration. (source spring.io).


What are the features of Spring boot?

  • Create stand-alone Spring applications
    • This Means , Spring Boot makes the Project as a Stand alone Spring application by making making it as Jar.
  • Embed Tomcat, Jetty or Undertow directly (no need to deploy WAR files)
  • Provide opinionated 'starter' POMs to simplify your Maven configuration
    • We do not need to define all the dependency , it has provided the starter where all the dependency associated with particular functionality will be automatically downloaded Ex: If I will defined spring-boot-starter-web in pom , it will automatically download the spring-core, spring-aop, spring-web,spring-webmvc etc and all.
  • Automatically configure Spring whenever possible
  • Provide production-ready features such as metrics, health checks and externalized configuration
  • Absolutely no code generation and no requirement for XML configuration


Note : You can also reference the Official documentation of Spring Boot

Spring also has provided Spring Initializr to create the spring-boot compatible structured.
Current Version of Spring boot is 1.5.10
The Official Site of Spring boot project is https://projects.spring.io/spring-boot/  

If you like this article , please share it with your friends and colleagues

Thanks for reading
Noeik 





Spring Boot and Hibernate Tutorials - Application using Spring Boot

Hello Guys as we all know that spring framework is now a day is very popular in IT industry because of its Features and the APIs it provide , One of them is Spring boot .

Do you know how to do Dependency Injection in Spring 

What is spring boot ?

Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can "just run". We take an opinionated view of the Spring platform and third-party libraries so you can get started with minimum fuss. Most Spring Boot applications need very little Spring configuration. (source spring.io)
Lets Quick Start with Create our first spring boot application in java

Note : Pivotel provides custom Eclipse type IDE for Spring projects its called as STS (Spring Tool Suit)

Objective : We are creating one project where I will create one rest endpoint to just hit the site using spring boot.

See below steps 
  1. Provide
               Group Idcom.programinjava.learning
         Name: RestDemo
               Dependencies : Web
      3. Now download The project
      4. After download you will get the dowloaded code in zip , unzip it.


      5. Open Eclipse and Import the Project as Maven Project
    6) Now Below will be the code which you need to write in new class

  






    7) After all this you just need to run your main class (in my case RestDemoApplication.java) as java application it will start the tomcat internally

     8)Now we need to check the rest end point we have created
     9)To check that we need to hit below url in browser
            http://localhost:8080/api/ping
    You will see the below spring 

Congratulations you have just completed your simple Application using Spring boot!!

I hope this will help you in understanding the Complete code 
I will add the code on github as well in few days.

If you like the article , please share it with your friends and colleagues.

Thanks for reading 
Noeik




Friday, February 16, 2018

Habits of Good JAVA Developer



1.Have strong foundation and understanding on OOPS Principles
For a Java developer, having strong understanding on Object Oriented Programming is a must. Without having a strong foundation on OOPS, one can’t realize the beauty of an Object Oriented Programming language like Java. If you don’t have good idea on what OOPS is, even though you are using OOPS language you may be still coding in procedural way. Just studying OOPS principle definitions won’t help much. We should know how to apply those OOPS principles in designing a solution in OOPS way. So one should have a strong knowledge on Object modeling, Inheritance, Polymorphism, Design Patterns.
2. Keep coding
Things look simpler when talking about them theoretically. We can give a solution to a problem very easily in theory. But we can realize the depth of the problem when we start implementing our approach. You will come to know the language limitations, or design best practices while coding. So keep coding.
3. Master the core APIs
It doesn’t matter how strong you are in terms of theoretical knowledge if you don’t know the language constructs and core APIs. In case of Java, one should have very strong hands-on experience with core APIs like java.lang.*, I/O, Exceptions, Collections, Generics, Threads, JDBC etc. When it comes to Web application development, no matter which framework you are using having strong knowledge on Servlets, JSPs is a must.
4. Subscribe to forums 
We are not alone. There are lots of people working on the same technologies that we are working on. While doing a simple proof of concept on a framework may not give you real challenges, when you start using it on real projects you will face weird issues and you won’t find any solution in their official documentation. When starting to  work on a new technology the best and first thing to do is subscribe to the relevant technology forums. Whatever the issue you are facing, someone else in the world might have already faced it earlier and might have found the solution. And it would be really really great if you can answer the questions asked by other forum users.
5. Read open source frameworks source code
A good developer will learn how to use a framework. But if you want to be an outstanding developer you should study the source code of various successful, popular frameworks where you can see the internal working mechanism of the framework and lot of best practices. It will help a lot in using the frameworks in very effective way.
5. Follow blogs and respond
As I already told you are not alone. There are thousands of enthusiastic technology freaks around the world blogging their insights on technology. You can see different perspectives of same technology on blogs. Someone can find great features in a technology and someone else feels its a stupid framework giving his own reasons of why he felt like that. So you can see both good and bad of a technology on blogs. Follow the good blogs and respond/comment on posts with your opinion on that.
7. Know the technology trends
In the open source software development technology trends keep on changing. By the time you get good idea on a framework that might become obsolete and some brand new framework came into picture with super-set of features. The problem which you are trying to solve with your current framework may be already solved by the new framework with a single line of configuration. So keep an eye on whats coming in and whats going out.
8. Keep commonly used code snippets/utilities handy
Overtime you may need to write/copy-paste same piece of code/configuration again and again. Keeping those kind of configuration snippets like log4.properties, jdbc configuration etc and utilities like StringUtils, ReflectionUtils, DBUtils will be more helpful. I know it itself won’t make you outstanding developer. But just imagine some co-developer asks you to help in fetching the list of values of a property from a collection of objects and then you just used your ReflectionUtil and gave the solution in few minutes. That will make you outstanding.
9. Document/blog your thoughts on technology
In day to day job you may learn new things, new and better way of doing things, best practices, architectural ideas. Keep documenting those thoughts or blog it and share across the community. Imagine you solved a weird problem occurred while doing a simple POC and you blogged about it. May be some developer elsewhere in the world is facing the same issue on a production deployed application. Think how important that solution for that developer. So blog your thoughts, they might be helpful for others or to yourself.
9. Know different development methodologies
Be familiar with various kinds of methodologies like Agile, SCRUM, XP, Waterfall etc. Nowadays choosing the development methodology depends on the client. Some clients prefer Agile and some clients are happy with waterfall model. So having an idea on various methodologies would be great.

Top 100 Ultimate Java Interview Questions and Answers

This list is the ultimate list of 100 Top Java Interview Questions and Answers 


Let see 

Q1. What is the difference between an Inner Class and a Sub-Class?
Ans: An Inner class is a class which is nested within another class. An Inner class has access rights for the class which is nesting it and it can access all variables and methods defined in the outer class.
A sub-class is a class which inherits from another class called super class. Sub-class can access all public and protected methods and fields of its super class.
Q2. What are the various access specifiers for Java classes?
Ans: In Java, access specifiers are the keywords used before a class name which defines the access scope. The types of access specifiers for classes are:
1. Public : Class,Method,Field is accessible from anywhere.
2. Protected:Method,Field can be accessed from the same class to which they belong or from the sub-classes,and from the class of same package,but not from outside.
3. Default: Method,Field,class can be accessed only from the same package and not from outside of it’s native package.
4. Private: Method,Field can be accessed from the same class to which they belong.
Q3. What’s the purpose of Static methods and static variables?
Ans: When there is a requirement to share a method or a variable between multiple objects of a class instead of creating separate copies for each object, we use static keyword to make a method or variable shared for all objects.
Q4. What is data encapsulation and what’s its significance?
Ans: Encapsulation is a concept in Object Oriented Programming for combining properties and methods in a single unit.
Encapsulation helps programmers to follow a modular approach for software development as each object has its own set of methods and variables and serves its functions independent of other objects. Encapsulation also serves data hiding purpose.
Q5. What is a singleton class? Give a practical example of its usage.
A singleton class in java can have only one instance and hence all its methods and variables belong to just one instance. Singleton class concept is useful for the situations when there is a need to limit the number of objects for a class.

The best example of singleton usage scenario is when there is a limit of having only one connection to a database due to some driver limitations or because of any licensing issues.
Q6. What are Loops in Java? What are three types of loops?
Ans: Looping is used in programming to execute a statement or a block of statement repeatedly. There are three types of loops in Java:
1) For Loops
For loops are used in java to execute statements repeatedly for a given number of times. For loops are used when number of times to execute the statements is known to programmer.
2) While Loops
While loop is used when certain statements need to be executed repeatedly until a condition is fulfilled. In while loops, condition is checked first before execution of statements.
3) Do While Loops
Do While Loop is same as While loop with only difference that condition is checked after execution of block of statements. Hence in case of do while loop, statements are executed at least once.
Q7: What is an infinite Loop? How infinite loop is declared?
Ans: An infinite loop runs without any condition and runs infinitely. An infinite loop can be broken by defining any breaking logic in the body of the statement blocks.
Infinite loop is declared as follows:
for (;;)
{
// Statements to execute
// Add any loop breaking logic
}
Q8. What is the difference between continue and break statement?
Ans: break and continue are two important keywords used in Loops. When a break keyword is used in a loop, loop is broken instantly while when continue keyword is used, current iteration is broken and loop continues with next iteration.
In below example, Loop is broken when counter reaches 4.
for (counter=0;counter<10;counter++)
system.out.println(counter);
if (counter==4)
{
break;
}
In the below example when counter reaches 4, loop jumps to next iteration and any statements after the continue keyword are skipped for current iteration.
for (counter=0;counter<10;counter++)
system.out.println(counter);
if (counter==4)
{
continue;
}
system.out.println(“This will not get printed when counter is 4”);
}
Q9. What is the difference between double and float variables in Java?
Ans: In java, float takes 4 bytes in memory while Double takes 8 bytes in memory. Float is single precision floating point decimal number while Double is double precision decimal number.
Q10. What is Final Keyword in Java? Give an example.
Ans: In java, a constant is declared using the keyword Final. Value can be assigned only once and after assignment, value of a constant can’t be changed.
In below example, a constant with the name const_val is declared and assigned avalue:
Private Final int const_val=100
When a method is declared as final,it can NOT be overridden by the subclasses.This method are faster than any other method,because they are resolved at complied time.
When a class is declares as final,it cannot be subclassed. Example String,Integer and other wrapper classes.
Q11. What is ternary operator? Give an example.
Ans: Ternary operator , also called conditional operator is used to decide which value to assign to a variable based on a Boolean value evaluation. It’s denoted as ?
In the below example, if rank is 1, status is assigned a value of “Done” else “Pending”.
public class conditionTest {
public static void main(String args[]) {
String status;
int rank = 3;
status = (rank == 1) ? “Done” : “Pending”;
System.out.println(status);
}
}
Q12: How can you generate random numbers in Java?
Ans:Using Math.random() you can generate random numbers in the range greater than or equal to 0.1 and less than 1.0
Using Random class in package java.util
Q13. What is default switch case? Give example.
Ans: In a switch statement, default case is executed when no other switch condition matches. Default case is an optional case .
It can be declared only once all other switch cases have been coded.
In the below example, when score is not 1 or 2, default case is used.
public class switchExample {
int score=4;
public static void main(String args[]) {
switch (score) {
case 1:
system.out.println(“Score is 1”);
break;
case 2:
system.out.println(“Score is 2”);
break;
default:
system.out.println(“Default Case”);
}
}
}
Q14. What’s the base class in Java from which all classes are derived?
Ans: java.lang.object
Q15. Can main() method in Java can return any data?
Ans: In java, main() method can’t return any data and hence, it’s always declared with a void return type.
Q16. What are Java Packages? What’s the significance of packages?
Ans: In Java, package is a collection of classes and interfaces which are bundled together as they are related to each other. Use of packages helps developers to modularize the code and group the code for proper re-use. Once code has been packaged in Packages, it can be imported in other classes and used.
Q17. Can we declare a class as Abstract without having any abstract method?
Ans: Yes we can create an abstract class by using abstract keyword before class name even if it doesn’t have any abstract method. However, if a class has even one abstract method, it must be declared as abstract otherwise it will give an error.
Q18. What’s the difference between an Abstract Class and Interface in Java?
Ans: The primary difference between an abstract class and interface is that an interface can only possess declaration of public static methods with no concrete implementation while an abstract class can have members with any access specifiers (public, private etc) with or without concrete implementation.
Another key difference in the use of abstract classes and interfaces is that a class which implements an interface must implement all the methods of the interface while a class which inherits from an abstract class doesn’t require implementation of all the methods of its super class.
A class can implement multiple interfaces but it can extend only one abstract class.
Q19. What are the performance implications of Interfaces over abstract classes?
Ans: Interfaces are slower in performance as compared to abstract classes as extra indirections are required for interfaces. Another key factor for developers to take into consideration is that any class can extend only one abstract class while a class can implement many interfaces.
Use of interfaces also puts an extra burden on the developers as any time an interface is implemented in a class; developer is forced to implement each and every method of interface.
Q20. Does Importing a package imports its sub-packages as well in Java?
Ans: In java, when a package is imported, its sub-packages aren’t imported and developer needs to import them separately if required.
For example, if a developer imports a package university.*, all classes in the package named university are loaded but no classes from the sub-package are loaded. To load the classes from its sub-package ( say department), developer has to import it explicitly as follows:
Import university.department.*
Q21. Can we declare the main method of our class as private?
Ans: In java, main method must be public static in order to run any application correctly. If main method is declared as private, developer won’t get any compilation error however, it will not get executed and will give a runtime error.
Q22. How can we pass argument to a function by reference instead of pass by value?
Ans: In java, we can pass argument to a function only by value and not by reference.
Q23. How an object is serialized in java?
Ans: In java, to convert an object into byte stream by serialization, an interface with the name Serializable is implemented by the class. All objects of a class implementing serializable interface get serialized and their state is saved in byte stream.
Q24. When we should use serialization?
Ans: Serialization is used when data needs to be transmitted over the network. Using serialization, object’s state is saved and converted into byte stream .The byte stream is transferred over the network and the object is re-created at destination.
Q25. Is it compulsory for a Try Block to be followed by a Catch Block in Java for Exception handling?
Ans: Try block needs to be followed by either Catch block or Finally block or both. Any exception thrown from try block needs to be either caught in the catch block or else any specific tasks to be performed before code abortion are put in the Finally block.
Q26. Is there any way to skip Finally block of exception even if some exception occurs in the exception block?
Ans: If an exception is raised in Try block, control passes to catch block if it exists otherwise to finally block. Finally block is always executed when an exception occurs and the only way to avoid execution of any statements in Finally block is by aborting the code forcibly by writing following line of code at the end of try block:
System.exit(0);
Q27. When the constructor of a class is invoked?
Ans: The constructor of a class is invoked every time an object is created with new keyword.
For example, in the following class two objects are created using new keyword and hence, constructor is invoked two times.
public class const_example
{
const_example()
{
system.out.println(“Inside constructor”);
}
public static void main(String args[])
{
const_example c1=new const_example();
const_example c2=new const_example();
}
}
Q28. Can a class have multiple constructors?
Ans: Yes, a class can have multiple constructors with different parameters. Which constructor gets used for object creation depends on the arguments passed while creating the objects.
Q29. Can we override static methods of a class?
Ans: We cannot override static methods. Static methods belong to a class and not to individual objects and are resolved at the time of compilation (not at runtime).Even if we try to override static method,we will not get an complitaion error,nor the impact of overriding when running the code.
Q30. In the below example, what will be the output?
public class superclass
{
public void displayResult()
{
system.out.println(“Printing from superclass”);
}
}
public class subclass extends superclass
{
public void displayResult()
{
system.out.println(“Displaying from subClass”);
super.displayResult();
}
public static void main(String args[]) {
subclass obj=new subclass();
obj.displayResult();
}
}
Ans: Output will be:
Displaying from subclass
Displaying from superclass
Q31. Is String a data type in java?
Ans: String is not a primitive data type in java. When a string is created in java, it’s actually an object of Java.Lang.String class that gets created. After creation of this string object, all built-in methods of String class can be used on the string object.
Q32. In the below example, how many String Objects are created?
String s1=”I am Java Expert”;
String s2=”I am C Expert”;
String s3=”I am Java Expert”;
Ans: In the above example, two objects of Java.Lang.String class are created. s1 and s3 are references to same object.
Q33. Why Strings in Java are called as Immutable?
Ans: In java, string objects are called immutable as once value has been assigned to a string, it can’t be changed and if changed, a new object is created.
In below example, reference str refers to a string object having value “Value one”.
String str=”Value One”;
When a new value is assigned to it, a new String object gets created and the reference is moved to the new object.
str=”New Value”;
Q34. What’s the difference between an array and Vector?
Ans: An array groups data of same primitive type and is static in nature while vectors are dynamic in nature and can hold data of different data types.
Q35. What is multi-threading?
Ans: Multi threading is a programming concept to run multiple tasks in a concurrent manner within a single program. Threads share same process stack and running in parallel. It helps in performance improvement of any program.
Q36. Why Runnable Interface is used in Java?
Ans: Runnable interface is used in java for implementing multi threaded applications. Java.Lang.Runnable interface is implemented by a class to support multi threading.
Q37. What are the two ways of implementing multi-threading in Java?
Ans: Multi threaded applications can be developed in Java by using any of the following two methodologies:
1. By using Java.Lang.Runnable Interface. Classes implement this interface to enable multi threading. There is a Run() method in this interface which is implemented.
2. By writing a class that extend Java.Lang.Thread class.
Q38. When a lot of changes are required in data, which one should be a preference to be used? String or StringBuffer?
Ans: Since StringBuffers are dynamic in nature and we can change the values of StringBuffer objects unlike String which is immutable, it’s always a good choice to use StringBuffer when data is being changed too much. If we use String in such a case, for every data change a new String object will be created which will be an extra overhead.
Q39. What’s the purpose of using Break in each case of Switch Statement?
Ans: Break is used after each case (except the last one) in a switch so that code breaks after the valid case and doesn’t flow in the proceeding cases too.
If break isn’t used after each case, all cases after the valid case also get executed resulting in wrong results.
Q40. How garbage collection is done in Java?
Ans: In java, when an object is not referenced any more, garbage collection takes place and the object is destroyed automatically. For automatic garbage collection java calls either System.gc() method or Runtime.gc() method.
Q41. How we can execute any code even before main method?
Ans: If we want to execute any statements before even creation of objects at load time of class, we can use a static block of code in the class. Any statements inside this static block of code will get executed once at the time of loading the class even before creation of objects in the main method.
Q42. Can a class be a super class and a sub-class at the same time? Give example.
Ans: If there is a hierarchy of inheritance used, a class can be a super class for another class and a sub-class for another one at the same time.
In the example below, continent class is sub-class of world class and it’s super class of country class.
public class world {
……….
}
public class continenet extends world {
…………
}
public class country extends continent {
………………….
}
Q43. How objects of a class are created if no constructor is defined in the class?
Ans: Even if no explicit constructor is defined in a java class, objects get created successfully as a default constructor is implicitly used for object creation. This constructor has no parameters.
Q44. In multi-threading how can we ensure that a resource isn’t used by multiple threads simultaneously?
Ans: In multi-threading, access to the resources which are shared among multiple threads can be controlled by using the concept of synchronization. Using synchronized keyword, we can ensure that only one thread can use shared resource at a time and others can get control of the resource only once it has become free from the other one using it.
Q45. Can we call the constructor of a class more than once for an object?
Ans: Constructor is called automatically when we create an object using new keyword. It’s called only once for an object at the time of object creation and hence, we can’t invoke the constructor again for an object after its creation.
Q46. There are two classes named classA and classB. Both classes are in the same package. Can a private member of classA can be accessed by an object of classB?
Ans: Private members of a class aren’t accessible outside the scope of that class and any other class even in the same package can’t access them.
Q47. Can we have two methods in a class with the same name?
Ans: We can define two methods in a class with the same name but with different number/type of parameters. Which method is to get invoked will depend upon the parameters passed.
For example in the class below we have two print methods with same name but different parameters. Depending upon the parameters, appropriate one will be called:
public class methodExample {
public void print() {
system.out.println(“Print method without parameters.”);
}
public void print(String name) {
system.out.println(“Print method with parameter”);
}
public static void main(String args[]) {
methodExample obj1= new methodExample();
obj1.print();
obj1.print(“xx”);
}
}
Q48. How can we make copy of a java object?
Ans: We can use the concept of cloning to create copy of an object. Using clone, we create copies with the actual state of an object.
Clone() is a method of Cloneable interface and hence, Cloneable interface needs to be implemented for making object copies.
Q49. What’s the benefit of using inheritance?
Ans: Key benefit of using inheritance is reusability of code as inheritance enables sub-classes to reuse the code of its super class. Polymorphism (Extensibility ) is another great benefit which allow new functionality to be introduced without effecting existing derived classes.
Q50. What’s the default access specifier for variables and methods of a class?
Ans: Default access specifier for variables and method is package protected i.e variables and class is available to any other class but in the same package,not outside the package.
Q51. Give an example of use of Pointers in Java class.
Ans: There are no pointers in Java. So we can’t use concept of pointers in Java.
Q52. How can we restrict inheritance for a class so that no class can be inherited from it?
Ans: If we want a class not to be extended further by any class, we can use the keyword Final with the class name.
In the following example, Stone class is Final and can’t be extend
public Final Class Stone {
// Class methods and Variables
}
Q53. What’s the access scope of Protected Access specifier?
Ans: When a method or a variable is declared with Protected access specifier, it becomes accessible in the same class,any other class of the same package as well as a sub-class.
Access Levels
MODIFIER CLASS   PACKAGE   SUBCLASS WORLD
public            Y             Y                   Y                        Y
protected       Y             Y                   Y                        N
no modifier   Y              Y                   N                       N
private           Y              N                    N                       N
Q54. What’s difference between Stack and Queue?
Ans: Stack and Queue both are used as placeholder for a collection of data. The primary difference between a stack and a queue is that stack is based on Last in First out (LIFO) principle while a queue is based on FIFO (First In First Out) principle.
Q55. In java, how we can disallow serialization of variables?
Ans: If we want certain variables of a class not to be serialized, we can use the keyword transient while declaring them. For example, the variable trans_var below is a transient variable and can’t be serialized:
public class transientExample {
private transient trans_var;
// rest of the code
}
Q56. How can we use primitive data types as objects?
Ans: Primitive data types like int can be handled as objects by the use of their respective wrapper classes. For example, Integer is a wrapper class for primitive data type int. We can apply different methods to a wrapper class, just like any other object.
Q57. Which types of exceptions are caught at compile time?
Ans: Checked exceptions can be caught at the time of program compilation. Checked exceptions must be handled by using try catch block in the code in order to successfully compile the code.
Q58. Describe different states of a thread.
Ans: A thread in Java can be in either of the following states:
Ready: When a thread is created, it’s in Ready state.
Running: A thread currently being executed is in running state.
Waiting: A thread waiting for another thread to free certain resources is in waiting state.
Dead: A thread which has gone dead after execution is in dead state.
Q59. Can we use a default constructor of a class even if an explicit constructor is defined?
Ans: Java provides a default no argument constructor if no explicit constructor is defined in a Java class. But if an explicit constructor has been defined, default constructor can’t be invoked and developer can use only those constructors which are defined in the class.
Q60. Can we override a method by using same method name and arguments but different return types?
Ans: The basic condition of method overriding is that method name, arguments as well as return type must be exactly same as is that of the method being overridden. Hence using a different return type doesn’t override a method.
Q61.What will be the output of following piece of code?
public class operatorExample {
public static void main(String args[]) {
int x=4;
system.out.println(x++);
}
}
Ans: In this case postfix ++ operator is used which first returns the value and then increments. Hence it’s output will be 4.
Q61. A person says that he compiled a java class successfully without even having a main method in it? Is it possible?
Ans: main method is an entry point of Java class and is required for execution of the program however; a class gets compiled successfully even if it doesn’t have a main method. It can’t be run though.
Q62. Can we call a non-static method from inside a static method?
Ans: Non-Static methods are owned by objects of a class and have object level scope and in order to call the non-Static methods from a static block (like from a static main method), an object of the class needs to be created first. Then using object reference, these methods can be invoked.
Q63. What are the two environment variables that must be set in order to run any Java programs?
Ans: Java programs can be executed in a machine only once following two environment variables have been properly set:
PATH variable
CLASSPATH variable
Q64. Can variables be used in Java without initialization?
Ans: In Java, if a variable is used in a code without prior initialization by a valid value, program doesn’t compile and gives an error as no default value is assigned to variables in Java.
Q65. Can a class in Java be inherited from more than one class?
Ans: In Java, a class can be derived from only one class and not from multiple classes. Multiple inheritances is not supported by Java.
Q66. Can a constructor have different name than a Class name in Java?
Ans: Constructor in Java must have same name as the class name and if the name is different, it doesn’t act as a constructor and compiler thinks of it as a normal method.
Q67. What will be the output of Round(3.7) and Ceil(3.7)?
Ans: Round(3.7) returns 4 and Ceil(3.7) returns 4.
Q68: Can we use goto in Java to go to a particular line?
Ans: In Java, there is not goto keyword and java doesn’t support this feature of going to a particular labeled line.
Q69. Can a dead thread be started again?
Ans: In java, a thread which is in dead state can’t be started again. There is no way to restart a dead thread.
Q70. Is the following class declaration correct?
public abstract final class testClass {
// Class methods and variables
}
Ans: The above class declaration is incorrect as an abstract class can’t be declared as Final.
Q71. Is JDK required on each machine to run a Java program?
Ans: JDK is development Kit of Java and is required for development only and to run a Java program on a machine, JDK isn’t required. Only JRE is required.
Q72. What’s the difference between comparison done by equals method and == operator?
Ans: In Java, equals() method is used to compare the contents of two string objects and returns true if the two have same value while == operator compares the references of two string objects.
In the following example, equals() returns true as the two string objects have same values. However == operator returns false as both string objects are referencing to different objects:
public class equalsTest
{
public static void main(String args[]) {
String srt1 = “Hello World”;
String str2 = “Hello World”;
if (str1.equals(str2))
{
// this condition is true
system.out.println(“str1 and str2 are equal in terms of values”);
}
if (str1==str2)
{
//This condition is not true
system.out.println(“Both strings are referencing same object”);
}
else
{
// This condition is true
system.out.println(“Both strings are referencing different objects”);
}}}
Q73. Is it possible to define a method in Java class but provide it’s implementation in the code of another language like C?
Ans: Yes, we can do this by use of native methods. In case of native method based development, we define public static methods in our Java class without its implementation and then implementation is done in another language like C separately.
Q74. How destructors are defined in Java?
Ans: In Java, there are no destructors defined in the class as there is no need to do so. Java has its own garbage collection mechanism which does the job automatically by destroying the objects when no longer referenced.
Q75. Can a variable be local and static at the same time?
Ans: No a variable can’t be static as well as local at the same time. Defining a local variable as static gives compilation error.
Q76. Can we have static methods in an Interface?
Ans: Static methods can’t be overridden in any class while any methods in an interface are by default abstract and are supposed to be implemented in the classes being implementing the interface. So it makes no sense to have static methods in an interface in Java.
Q77. In a class implementing an interface, can we change the value of any variable defined in the interface?
Ans: No, we can’t change the value of any variable of an interface in the implementing class as all variables defined in the interface are by default public, static and Final and final variables are like constants which can’t be changed later.
Q78. Is it correct to say that due to garbage collection feature in Java, a java program never goes out of memory?
Ans: Even though automatic garbage collection is provided by Java, it doesn’t ensure that a Java program will not go out of memory as there is a possibility that creation of Java objects is being done at a faster pace compared to garbage collection resulting in filling of all the available memory resources.
So, garbage collection helps in reducing the chances of a program going out of memory but it doesn’t ensure that.
Q79. Can we have any other return type than void for main method?
Ans: No, Java class main method can have only void return type for the program to get successfully executed.
Nonetheless , if you absolutely must return a value to at the completion of main method , you can use System.exit(int status)
Q80. I want to re-reach and use an object once it has been garbage collected. How it’s possible?
Ans: Once an object has been destroyed by garbage collector, it no longer exists on the heap and it can’t be accessed again. There is no way to reference it again.
Q81. In Java thread programming, which method is a must implementation for all threads?
Ans: Run() is a method of Runnable interface that must be implemented by all threads.
Q82. I want to control database connections in my program and want that only one thread should be able to make database connection at a time. How can I implement this logic?
Ans: This can be implemented by use of the concept of synchronization. Database related code can be placed in a method which hs synchronized keyword so that only one thread can access it at a time.
Q83. How can an exception be thrown manually by a programmer?
Ans: In order to throw an exception in a block of code manually, throw keyword is used. Then this exception is caught and handled in the catch block.
public void topMethod()
{
try
{
excMethod();
}
catch(ManualException e)
{ }
}
public void excMethod{
String name=null;
if(name == null){
throw (new ManualException(“Exception thrown manually “);
}
}
Q84. I want my class to be developed in such a way that no other class (even derived class) can create its objects. How can I do so?
Ans: If we declare the constructor of a class as private, it will not be accessible by any other class and hence, no other class will be able to instantiate it and formation of its object will be limited to itself only.
Q85. How objects are stored in Java?
Ans: In java, each object when created gets a memory space from a heap. When an object is destroyed by a garbage collector, the space allocated to it from the heap is re-allocated to the heap and becomes available for any new objects.
Q86. How can we find the actual size of an object on the heap?
Ans: In java, there is no way to find out the exact size of an object on the heap.
Q87. Which of the following classes will have more memory allocated?
Class A: Three methods, four variables, no object
Class B: Five methods, three variables, no object
Ans: Memory isn’t allocated before creation of objects. Since for both classes, there are no objects created so no memory is allocated on heap for any class.
Q88. What happens if an exception is not handled in a program?
Ans: If an exception is not handled in a program using try catch blocks, program gets aborted and no statement executes after the statement which caused exception throwing.
Q89. I have multiple constructors defined in a class. Is it possible to call a constructor from another constructor’s body?
Ans: If a class has multiple constructors, it’s possible to call one constructor from the body of another one using this().
Q90. What’s meant by anonymous class?
Ans: An anonymous class is a class defined without any name in a single line of code using new keyword.
For example, in below code we have defined an anonymous class in one line of code:
public java.util.Enumeration testMethod()
{
return new java.util.Enumeration()
{
@Override
public boolean hasMoreElements()
{
// TODO Auto-generated method stub
return false;
}
@Override
public Object nextElement()
{
// TODO Auto-generated method stub
return null;
}
}
Q91. Is there a way to increase the size of an array after its declaration?
Ans: Arrays are static and once we have specified its size, we can’t change it. If we want to use such collections where we may require a change of size ( no of items), we should prefer vector over array.
Q92. If an application has multiple classes in it, is it okay to have a main method in more than one class?
Ans: If there is main method in more than one classes in a java application, it won’t cause any issue as entry point for any application will be a specific class and code will start from the main method of that particular class only.
Q93. I want to persist data of objects for later use. What’s the best approach to do so?
Ans: The best way to persist data for future use is to use the concept of serialization.
Q94. What is a Local class in Java?
Ans: In Java, if we define a new class inside a particular block, it’s called a local class. Such a class has local scope and isn’t usable outside the block where its defined.
Q95. String and StringBuffer both represent String objects. Can we compare String and StringBuffer in Java?
Ans: Although String and StringBuffer both represent String objects, we can’t compare them with each other and if we try to compare them, we get an error.
Q96. Which API is provided by Java for operations on set of objects?
Ans: Java provides a Collection API which provides many useful methods which can be applied on a set of objects. Some of the important classes provided by Collection API include ArrayList, HashMap, TreeSet and TreeMap.
Q97. Can we cast any other type to Boolean Type with type casting?
Ans: No, we can neither cast any other primitive type to Boolean data type nor can cast Boolean data type to any other primitive data type.
Q98. Can we use different return types for methods when overridden?
Ans: The basic requirement of method overriding in Java is that the overridden method should have same name, and parameters.But a method can be overridden with a different return type as long as the new return type extends the original.
For example , method is returning a reference type.
Class B extends A{
A method(int x){
//original method
}
B method(int x){
//overridden method
}
}
Q99. What’s the base class of all exception classes?
Ans: In Java, Java.lang.Throwable is the super class of all exception classes and all exception classes are derived from this base class.
Q100. What’s the order of call of constructors in inheritiance?
Ans: In case of inheritance, when a new object of a derived class is created, first the constructor of the super class is invoked and then the constructor of the derived class is invoked.
If you have any problem or conflicting your thought with the answers , please leave us a comment 

Thanks for reading
Noeik