Author Archives: Web Development Tutorial

Hybrid Mobile App Development using Ionic and Cordova

Ionic is basically an open source SDK (Software Development Kit) for developing Hybrid Mobile Applications. It’s a front-end UI framework built on top of AngularJS and Apache Cordova, providing tools and services to build Hybrid Mobile Applications with native look and feel.Ionic Mobile App Development

Step by Step Ionic Mobile App Development

You can follow the below steps to create your first Ionic Hybrid Mobile Application:

Step 1: Install Ionic

Running the following command will install ionic and cordova

Note: Angular 4 is out now. We can use Angular 4 to develop applications that are cross platform with maximum speed and performance. More to learn Angular 4 here.

Step 2: Creating and Running the App

In order to create an ionic app with ionic 2.0 framework,  we have to run the following command on the workspace folder of the project. For this example the name of the project is ‘mytodo’ . –v2 is used for Ionic 2.0 . Ionic 2.0 is based on Angular 2.0.

There are currently three different layout are available for ionic 2.0 app.  In above command to create an app it is possible to mention the template or layout for the project.

On running the above command we can see the following output on command prompt:Ionic Mobile App

It will also asked for creating a free account:Simulator for Mobile App Development

The following files would be generated inside ‘mytodo’ folder:Hybrid Mobile App Folder

Enter in to project root folder using following command

Step 3: Updating Metadata

Open www folder and add this security meta tag to index.html file:

Step 4: Installing Cordova Plugin

From the project root folder run the following command in order to install the cordova whitelist plugin:

Cordova Plugin

Step 5: Run the Project

Run the project with following command:

This will open a new browser window and the output would be as following:Ionic Menu Starter

As for example, we have selected the Layout with side menu. On clicking on the ‘TOGGLE MENU’ it will show the following screen:Mobile App Menu

Initially there are two pages and and two menu items. The source code would be generated for corresponding pages as following:Ionic 2.0

Ionic 2.0 is modular and component based. Therefore, there would a single module called AppModule in src/app/app.module.ts file. In addition, for each page, there would be a corresponding component. For example, in this example, there are two component page1 and pag2. Each of the component folder has its template in  .html file, styles in .scss file and component class in .ts file.

It needs a component as the parent component for the append that will be boostrapped as soon as the module would be bootstrapped. In this example, MyApp Component has been defined in src/app/app.component.ts file as following:

Finally each component has been declared in App Module as following:

The above command will create a new component with name page3 Ionic Component

And one more time run the same command:

Add the pages to the menu item in app.component as following:

Add the new component in the declaration of the AppModule

At this moment the App would look as following:Basic Ionic Mobile App

It’s just a basic Ionic Application but you can follow here to find lots of details about Ionic Framework Concepts and getting answer for many related concepts/questions including:

  • Navigation in Ionic 2
  • How to publish an Ionic Application?
  • Developing a user defined pipe in Ionic Application
  • How to Cache  View?
  • Making HTTP Request from an Ionic Application
  • and much more…

More Mobile App Development and Related Tutorials

The Complete Web Developer Course 2.0 – Review

Increasing demand for web developers with attractive salaries and flexibility geographical locations makes it an attractive profession. As per careeronestop.com, location-wise employment trends are ranked by % growth for web developers.

Demand for web developers is expected to increase by various types of companies across different states of U.S as follows (We can see that demand is increasing in almost all US states for web developers till 2024 with an average of 26.6% overall) : Web Developers Jobs Trend

Although demand for web development in each area is increasing but full stack web developers will definitely get more opportunities as compared to front-end and back-end web developer. Following is Job trend from Indeed.com for Full Stack Web Developer.Full Stack Web Developer

Web development is a very vast area and there are a lot of things to learn for and we keep learning as we move forward in web development. Sometimes new frameworks, sometimes new language updates and so on. Good thing about this course is it covers almost all important areas and make you a full stack developer.

Following key skills related to web development is covered in this Online Course:

  • HTML5
  • CSS3
  • JavaScript
  • jQuery
  • Bootstrap
  • PHP
  • MySQL
  • APIs
  • Mobile Apps
  • WordPress
  • and more…

We’ll strongly recommend to take an Online Course by Rob Percival that covers almost each and every concept related to web development. We have given a detailed review of this course below for our readers but just wanted to highlight some points:

  • Declared Best Seller at udemy.com
  • 255,870+ students enrolled
  • 46,435 Reviews available
  • Lifetime Access
  • 30 days Money back guaranteeTake-This-Course

Introduction to Web Developer Online Course

This Course, as the name suggests Complete Web Developer Course, contains all the technology lectures in depth which are needed for web development. This course is about development of a complete web application that includes front end development, backend development and database as well. If one wants to learn web development then no better place than taking this course since it will take you through end to end web development.Complete Web Developer Course

Best thing about this course is that although it seems a lot of things covered in this and this might seem lengthy but believe me these are bare minimal things that one must learn if wanted to start web development. This course starts with the frontend backbone HTML5 and covers till the database part as well. Couple of cool things to learn in this course apart of most essential and mandatory parts is BootStrap, Python.

I have never seen any web development course that provides lectures on these parts. Most of the time the web development courses are limited to HTML, CSS and PHP and may be somewhere you can find javascript or jquery as well. Python is really cool language to learn for and it is not touched upon, this course has good explanation about Python, the same goes for BootStrap as well.

When developing some web applications there are requirements like to show the map on the webpage, let say for address only, a very basic one, or show the weather on page. You will find how to integrate these all in the API section of the course.

How is this Online Course for?

  • Well anyone who is interested in learning web development can take this course.
  • One who is already in web development also can take this course since there are really good things covered in this course that are Bootstrap, Python, API’s.
  • Prior knowledge always helps one have, but this course has the latest technologies involved which make us up to date with market.
  • If you want to learn end to end web development then go ahead and take this course.

How you use yourself?

  • When we take any course and if is a software development or a web development or application development, the foremost thing is to understand the in-depth concept of the language or platform on which the course is. Which this course provides before starting the real coding stuff.
  • Secondly, see the course is designed in such a fantastic way that at the end you will end up in learning the complete web development that will include front-end as well the back end as well.
  • When you are taking this course I would suggest you to keep practicing the concepts that you are learning and start writing code around it, either it is HTML try creating a simple HTML Form, apply CSS to beaufity it, have PHP plugged in it. Create database schema and try to create an end to end small web application. Try one with PHP + BootStrap as well.
  • Although the course has very good examples of code with each and every topic but keep writing more and more code around the concept on which you are currently learning. So whenever learning a topic with the tutorial keep writing code around it and target a simple complete web application that you are going to develop after learning this course and write code around it with each relative topic of the course.Take-This-Course

Online Course Topic Details:

So let’s start talking about the course content one by one.

  • This course starts from HTML5, needless to say the most essential language to develop front end, this course covers HTML5, which is the latest version of HTML.
  • Once you will be done by learning HTML5, and start developing HTML pages, there you will think about beautification of webpage and placing the contents of webpage on right places and so on. Here CSS will come into picture, which is next step to learn with this tutorial series. Good thing about this tutorial is that this tutorial contains CSS3 in the course content which is again the latest version which is great to learn for and start with the latest version.
  • JQuery and JavaScript are comes into play when you deal with html forms and so, this course has very detailed lectures about these two technologies as well.
  • Moving forward to BootStrap4, which is most famous framework for building responsive web applications, again the beauty of this series is that, it includes BootStrap4 which is again the latest and always a positive impact on learning and profile as well, when one starts with the latest version of a framework.
  • WordPress that is open source CMS (content management system) which is developed in PHP as a base language is a very efficient for blog creation and web application development.
  • Next thing to learn with this tutorial is PHP, which is very powerful scripting language for developing from a very simple to very complex web application. PHP is very popular in web application development world, since it is not very difficult to learn, but you can on board yourself as a PHP developer very soon.
  • Once you will be done from PHP, next thing to learn is mysql database server, where you will learn how to create DB’s, tables and how to connect your application to mysql, performing CRUD operations and all.
  • Till here if you keep developing and practicing every concept, you will be able to create a simple web application by your own. That can have HTML,CSS, PHP, MYSQL or it can be using BootStrap, PHP, MYSQL. Again I would like to add is keep practicing the concepts, write more and more code.
  • Next thing to learn after this is API’s, you may need to add the google map in your web application, google provides API’s for that but how to use these API’s and how to embed these API’s with your application that you will learn in this section. Pretty useful section and useful topic to learn for.
  • Now what all we will talk next are a bonus, a real bonus. Python, which is an object oriented programming language with dynamic semantics. It’s really fantastic to write code in python if you know the syntax and semantics. This course covers just not only basic concepts of python but also at some extent good deep down on the concepts that we need to know. Overall this course is a complete package for one who really want to learn web development.

Taking this Online Course:

Once you complete this course you will find yourself as a developer who will be able to create an end to end complete web application. You will be able to know and easily write the HTML codes, CSS stylesheets, PHP code and you will be easily develop some really cool web application using these languages. See logic is something that no one can teach you but if you can place the right programming logic at the right place after learning the concepts then you will be very easily create web application by your own one after another.

How to best utilize this Online Course:

  • To best utilize this course as I talked in previous sections is to start writing code in parallel.
  • Have an complete web application with will be simple not necessarily complex in mind and start development around it, like a simple web application like library management, where you will have to add, update, delete book records.
  • Have a structure of the web pages which this application will have, in mind and when you are learning the concept, try to utilize the concept and start writing code.
  • Writing much and more code that will make you comfortable with HTML, CSS, PHP and you will also know what you are writing and what will happen when you will run this piece of code.
  • Each and every concept explained in this course has its own importance and one not miss any of the concepts and try to grasp as much as you can.
  • The video tutorial series has more than enough that you need to know about web development but practicing is one thing that makes you aware of the concepts very well and the much you will practice with the course the more you will find yourself comfortable in as a web developer.

Any downside/disadvantages of Online Course:

I don’t foresee any disadvantages with this Web Development Tutorial, and learning new things never have any disadvantages. Even I am really impressed the content and knowledge of author. Also there are no less but more things in this course to learn, like I kept talking Python, API’s and all.

I believe adding AngularJs would make this course more helpful but undoubtedly, it’s another huge area. You can follow for Angular 4 (formerly Angular 2) – A Complete Guide.

Summary/Closing Notes:

At the end I would say if one really want to get into web development then take this course. This course will take you through each and every concept in very much detail and in very refined manner of explanation. Learn each and every concept well and practice these concepts, keep writing code, that will give you the confidence, which you can encash creating really cool and complex web applications.Take-This-Course

Happy Learning…

Learn Angular 4 (formerly Angular 2) — The Complete Guide

Stay hungry, Stay Foolish ~ Steve Jobs

AngularJS is an open-source JavaScript Framework based on MV-* design for building new generation web applications. AngularJS has adapted the best approach to web advancement. AngularJS has lots of amazing features that make it different from other JavaScript Frameworks and libraries.

Learning Angularjs (especially the latest version of it i.e. angular 4) will definitely gives a boost to your career because the demand for angularjs in the market is increasing at a tremendous pace. Below you can find that how the demand of Angularjs developer increased at amazing speed as compared to other JavaScript technologies like ReactJs, BackboneJS and EmberJs and it’s increasing more as angular4 has come with much more maturity.Indeed Job Trends

But it’s not only the job market but salaries for Angularjs developer are also high as compared to other job postings overall. Below are the statistics from Indeed.com.Angularjs Salary Trends

So moving to angularjs or improving angularjs skills will give your career a tremendous boost.

We’ll strongly recommend to take an Online Course by Maximilian Schwarzmüller that covers the latest version of Angularjs (Angular4 and Angular2) and it covers almost each and every concept related to it. We have given a detailed review of this course below for our readers but just wanted to highlight some points:

  • Declared Best Seller at udemy.com
  • 67,450+ students enrolled
  • 20,714 Review available
  • 22 Hours on-demand videos
  • 17 Articles
  • 76 Supplemental Resource
  • Access on Mobile and TV
  • Assignments
  • Certificate of Completion
  • Lifetime Access
  • 30 days Money back guarantee

Most attractive feature is 30 days Money Back Guarantee means there is no risk. If you didn’t like this AngularJS online course, you can refund your money back within next 30 days.

Take-This-Course

Introduction to AngularJs 4 Online Course

This course is about web development using Angular4. The most popular front end web development language across world. This course is about development of front-end using Angular4 the successor of Angular2 platform. This course demonstrates not only the development using Angular but also the internal architecture of the language which makes this course great.

  • Develop Modern, Complex, Responsive and Scalable Web Applications with Angular 4
  • Fully understand the architecture behind an Angular 4 application and how to use it?
  • Use their gained, deep understanding of the Angular 4 fundamentals to quickly establish themselves as front-end developers
  • Create single-page applications with one of the most modern JavaScript frameworks out there

Take This Online Course – Lifetime Access

Angular4 - formerly Angular2

Prior knowledge is one thing that always helps one when we talk about learning the new thing or taking a new course. And there is always a doubt that how it will help one afterwards upon completion of course. See in this course if you have prior experience of Angular or JavaScript is always an advantage and even if you don’t have any experience in these, mark my words this course helps in understanding the concepts and even from a ground zero. So there is no prior experience kind of thing upon taking this course, anyone can take this course if interested in angular learning and the future of web development.

When we talk about the website development, there is most common term now a day is responsiveness, that the website must be responsive. With Angular.js one can develop responsive web application frontend. Also when we talk about the responsive web application how can one forget about the scalability of a web application. Angular.js language also helps us in development of highly scalable and more responsive web application. These two are major considerations when one starts development of a new web application, and development using angular.js make is possible for one to develop more responsive and highly scalable web application with complex architecture.

The good thing about this course is that, explanation of these concepts is in very detailed and very understandable manner with example in such a way that even a lay man will understand what scalability and responsiveness of web application is.

Now days there are lot of talks about SPA – single page website development, and even there are many one pager web applications are there if you have noticed. This kind of one pager application is not only very fascinating but also very popular. This course has very detailed explanation of developing such kind of web applications.

You can find a list of Latest available Angularjs Jobs (Updated Regularly) at the end of this Online Course preview. You can easily see that this Angular Online Course cover almost all the requirements for the posted jobs.

Who is this course for?

Well if we talk about who can take this course, who should take this course and who must take this course. See learning is something which never wastes and some point of time what we had learnt is always useful for us.

  • If you are already in web development then you must take this course, since it will going to take you miles ahead in frontend development.
  • This course has angular internal architecture explained so you can easily understand that what you are writing will make what impact. Since most of the times a developer does not know what’s going on behind the scenes when writing this piece of line or this line of code, of course developer knows what will happen if I write a particular line of code or a particular piece of code but you are never aware of what going on behind the scenes.
  • This course helps in understand not only the coding fundamentals but also the internal processing at the architecture level what is going on behind the scenes.
  • One who does not have any idea about the frontend development and javascript, don’t worry this course is designed in such a way that you will learn even if you have no idea about the front end development.
  • If you are in web development then you must take this course.

Take-This-Course

How you use yourself?

  • When we take any course and if is a software development or a web development or application development, the foremost thing is to understand the in-depth concept of the language or platform on which the course is. Which this course provides before starting the real coding stuff.
  • Secondly, see the course is designed in such a fantastic way that at the end you will end up in learning the complete in and out of the language. When you are taking this course I would suggest you to keep practicing the concepts that you are learning and start writing code around it.
  • Although the course has very good examples of code with each and every topic but keep writing more and more code around the concept on which you are currently learning.
  • Whenever learning a topic with the tutorial keep writing code around it and target a simple application that you are going to develop after learning this course and write code around it with each relative topic of the course.

Course Topics details:

This course starts from Course Introduction and ends with development of our own application covering even the very small concept.

  • There is no even a very single important concept left in the course.
  • This course also explains why one should take this course and why angular is so important in web development. Most of the courses do not explain the initial environment setup to start development.
  • Good thing about this course is that the most basic things like this is also covered in this course.
  • Going forward with this course explains the Components and Databinding.
  • Debugging is most important thing when we write an application and if there is some issue with our code then either we scan the log files and find the errors and other thing is to debug it. From debugging one can easily find the bug and fix is in very efficient and lesser time.
  • Directives are something that are extended with HTML and angular has its own directives with ng prefix are covered and explained in detail in this course.
  • Apart of this there is most important principle of software development that is being using extensively in lot of software development platforms that is dependency injection, this course have very detailed and dedicated lecture about DI (Dependency Injection) with angular.
  • Routing is covered with this course that is to route one angular page to other with detailed lectures and dedicated lesson for in-depth concepts.
  • When we write any HTTP or web application then most important thing is that we should be very aware about the HTTP like sending data and getting data using HTTP Post and Get. This course covers HTTP concepts with example using observables and Pipes in angular.
  • Also there is a lot of very very important to learn concepts like authentication, Type scripts with this course that one must learn.
  • Type scripts is itself a very complex and important to learn concept which is not covered in most of the Angular tutorials, is not just covered but also explained with examples and in a way that one can grasp and implement easily with this course.

What happen as a result of taking this course?

Once you complete this course you will find yourself as a developer who knows angular very well, in detail and with architecture as well. If one keep practicing the concepts that are explained in the course then mark my words you will be able to develop an application with angular.js, keeping design principles in mind and more efficient, scalable and responsive as well. You will be able to setup the environment, start writing the web application that has the front end with angular and also the complex application using most of the concepts of angular. If you don’t know anything about the JavaScript even then you will find yourself as a angular developer at the end of this course series.

You will be able to grasp the AngularJs in more practical and professional way that will help you in getting AngularJs Jobs very easily.

How to best utilize this course?

  • To best utilize this course as I talked in previous sections is to start writing code in parallel.
  • Have an application with will be simple not necessarily complex in mind and start development around it, like a simple web application where user can login and register, have a structure of your web pages in mind and when you are learning the concept, try to utilize the concept and start writing code, write much and more code that will make you comfortable in angular and you will also know what you are writing and what will happen when it will compile and how much memory efficient your code is.
  • Each and every concept explained in this course has its own importance and one not miss any of the concepts and try to grasp as much as you can.
  • The video tutorial series has ample that you need to know about angular but practicing is one thing that makes you aware of the concepts very well and the much you will practice with the course the more you will find yourself comfortable in Angular.

Summary/Closing Notes:

If you really want to learn angular4, there is nothing better place than taking this course. No matter if you are a green horn in web development or you finds yourself a champ of java script and want to learn angular, go with this course and see at the end what you learn. Learning is something that should never stops to keep our self, up to date with the new technologies in this competitive world.Take-This-Course

Happy Learning…


Recents AngularJS Jobs

C#.NET AngularJS Frontend Developer
Source: Indeed
Details: We are seeking an AngularJS Frontend Developer who will write efficient code, understand the bigger picture architecturally, and create an amazing user...  More
26 days ago

Seattle, WA 30-March-2017

Sr. Front End Developer
Source: Artemis Health
Details: What You’ll Do As part of the Artemis engineering team you’ll help craft simple and — dare we say it? — fun tools that help benefits professionals get value  More
30+ days ago

Salt Lake City, UT 13-March-2017

Sr. Front End Developer
Source: Indeed
Details: Deep experience with modern JS technologies, such as AngularJS and ReactJS and Redux. SecureAuth is the leader in adaptive access control solutions, empowering...  More
6 days ago

Irvine, CA 19-April-2017

UI/UX JavaScript AngularJS CSS Developer with Back-end Sr. Level
Source: Indeed
Details: JavaScript (must have), AngularJS (must have), CSS, HTML 5.0. NO H1's (no exceptions)....  More
21 days ago

Remote 04-April-2017

Senior Level Full Stack Developer - AngularJS
Source: XPO Logistics, Inc.
Details: Must be highly skilled and experienced in AngularJS, JavaScript, CSS, responsive web design, API integration pieces for enterprise level applications....  More
1 day ago

Portland, OR 97209 24-April-2017

Full Stack Developer
Source: DISYS
Details: Experience developing in AngularJS and client-side testing using jasmine. Practical experience with Web UI technologies like AngularJS, jQuery, Javascript, and...  More
28 days ago

Everett, WA 29-March-2017

Angular UI Developer
Source: Indeed
Details: *Position : Angular UI Developer* *Job location: Charlotte, NC* *Type: Full time & permanent* *Job Description::* Good communication skills, HTML5, CSS ,  More
2 hours ago

Charlotte, NC 26-April-2017

Angular UI Developer
Source: Indeed
Details: Proficient understanding of web markup, including AngularJS, HTML5, CSS3/SASS, Bootstrap. 3 + years of experience writing highly polished front-end consumer...  More
19 hours ago

Alpharetta, GA 25-April-2017

Senior PHP Developer,, learn Angularjs
Source: translations
Details: JavaScript/CSS libraries such as jQuery, AngularJS and Bootstrap. Responsibilities will include but are not limited to:....  More
11 days ago

Maynard, MA 15-April-2017

Senior Developer AngularJS
Source: Anthem, Inc.
Details: AngularJS, JQuery, Bootstrap, JS, JSON, Extension JS required. Hands-on Agile scrum team member engaged as AngularJS developer meeting anthem.com product...  More
12 days ago

Richmond, VA 14-April-2017

AngularJS Frontend Developer
Source: Indeed
Details: Demonstrable experience with HTML5 implementation using AngularJS, JQuery, Bootstrap. Solid experience with Angular.JS....  More
25 days ago

Redmond, WA 31-March-2017

SW Developer (Angular JS)
Source: Karsun Solutions LLC
Details: AJAX, jQuery, AngularJS, NodeJS / Ember / Backbone.js / and Underscore. Karsun Solutions - We are Enterprise Modernization Experts!...  More
15 days ago

Herndon, VA 10-April-2017

Node.JS and AngularJS Full stack Developer
Source: Indeed
Details: Node.JS and AngularJS Full stack Developer*. NODE.js (Front end and Back end both),REST API/ Web Service Experience in AngularJS , Java Any exposure to AWS or...  More
2 days ago

Marlborough, MA 24-April-2017

Senior Front-End Web Developer (AngularJS, MVC)
Source: ActivTrak
Details: ActivTrak.com is a Dallas-based startup with a focus on the best technology, fast innovation, excellent culture and service that shows we care. As we enter a  More
30+ days ago

Dallas, TX 28-January-2017

Angular JS Expert and Front-End Developer
Source: Indeed
Details: Deep knowledge of AngularJS practices and commonly used modules based on extensive work experience. You*....  More
4 days ago

Rochester, NY 21-April-2017

Ionic/Angular Developer
Source: Shipt
Details: Shipt is improving lives by giving people back more of their time, the most valuable resource. Be a part of building an amazing grocery delivery experience.  More
30+ days ago

San Francisco, CA 19-February-2017

Ionic/Angular Developer
Source: Shipt
Details: Shipt is improving lives by giving people back more of their time, the most valuable resource. Be a part of building an amazing grocery delivery experience.  More
30+ days ago

Birmingham, AL 35203 19-February-2017

Angular JS UI Developer
Source: DynPro
Details: Deep knowledge of AngularJS practices and commonly used modules based on extensive work experience. Creating custom, general use modules and components which...  More
17 days ago

United States 08-April-2017

LAMP Stack Website Developer
Source: Indeed
Details: *OOPHP Developer for Websites & Web Applications: * We are looking for an Object Oriented PHP developer to work with an experienced technical team to help  More
16 hours ago

Westminster, CO 25-April-2017

PHP5 Intermediate Website Developer
Source: Indeed
Details: *OOPHP Developer for Websites & Web Applications: * We are looking for an Object Oriented PHP developer to work with an experienced technical team to help  More
16 hours ago

Boulder, CO 25-April-2017

LAMP Stack Developer
Source: Indeed
Details: *OOPHP Developer for Websites & Web Applications: * We are looking for an Object Oriented PHP developer to work with an experienced technical team to help  More
16 hours ago

Thornton, CO 25-April-2017

PHP5 Website & Web App Developer
Source: Indeed
Details: *OOPHP Developer for Websites & Web Applications: * We are looking for an Object Oriented PHP developer to work with an experienced technical team to help  More
16 hours ago

Thornton, CO 25-April-2017

Full Stack Jquery and PHP5 Website Developer
Source: Indeed
Details: *OOPHP Developer for Websites & Web Applications: * We are looking for an Object Oriented PHP developer to work with an experienced technical team to help  More
16 hours ago

Denver, CO 25-April-2017

Angular Developer
Source: Indeed
Details: Strong experience with AngularJS, Angular 2 is a plus. The ideal candidate has six or more years of experience in software development with JavaScript and...  More
6 days ago

Denver, CO 80239 20-April-2017

Software Developer Intern
Source: Indeed
Details: Experience with any JavaScript frameworks (Backbone, AngularJS, Ember). Shapiro+Raj is the sixth-largest independent insights and inspiration company in North...  More
20 hours ago

Addison, TX 75001 25-April-2017

MUST Have Core Java Interview Questions

Another article in series of Technical Interview Questions and Answers on Web Development Tutorial covering Core Java Interview Questions this time. You will find more detailed answers to mostly asked interview questions during a technical interview. Java Interview Questions and Answers

Java Interview Questions PDF version will be available later for download.


Following Related Technical Interview Questions and Answers will also be helpful.


Complete Java Interview Questions List

Courses Online

What is object oriented programming. How java differs from other object orienting programming languages like C++?

Object oriented programming, primarily known as OOP, is a programming paradigm, which simplifies the development of software using some key concept provided to make development easier and faster.  An object is something that has state and behavior. An object can have data, fields, methods. Objects can talk, access to other objects. Access would be granted based on the modifiers. A class in OOP stores information and demonstrate the information using methods, so class is basically blueprint of an object.

Let’s talk in brief about different components of Object Oriented Programming:

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

Object:

Object is something that has state and behavior. We can easily relate object to some real world objects like machine, car etc.

Class:

Class is basically a logical collection of objects. That can have multiple methods, variables encapsulated in it.

Encapsulation:

As the name suggests, encapsulation is basically to encapsulate multiple logically related things together in an entity that is called class and provide proper access modifiers to the variables, so that these can not be accessed directly from outer world.

Abstraction :

Consider a scenario, where you are writing some logic that you don’t want to expose to outer world, so we just expose declaration of the thing to outer world with help of interfaces so that the implementation will be completely hidden from outer world, Like we have a code that checks if   an number is palindrome or not, so we need not show our logic to calling code. We will just create an interface which will have a method and takes a parameter of which will a number and return a boolean based on our computation.  This is called abstraction, where the calling code does not know anything about the implementation.

Polymorphism :

If we go by definition, polymorphism means one name many forms. The same we apply while writing code in a language that is object oriented. So practically we create methods that have the same name but differs in parameters, it is called polymorphism. Where a single method name have more than one implementation. In java we use concepts like method overloading and method overriding to achieve the same.

Inheritance:

Whenever we write code, we always think of re-usability or extension of the code that is already written. So in inheritance an object takes all or some properties of the class that is parent to this.

We will talk in detail about these concepts. This is very basic overview about Object oriented programming and object oriented programming concepts.

Now lets talk about Java, so Java is an object oriented programming language that is extensively used in software world to create highly secure, robust software.

The main and most important feature of java that make it differ from other OOP programming languages is that Java is platform independent. When we say platform independent then it means write once and run anywhere. Java compiler creates a byte code that can be executed across JVM’s that can be Linux, that can be Windows, that can be MAC and so on.

If we talk about some key differences between C++ and Java then, although both languages are object oriented programming languages but still there are some key differences between these two :

  • C++ is platform dependent language, whereas Java is platform independent language.
  • C++ support multiple inheritance, whereas java removes multiple inheritance, since it can cause DOD that is Diamond of Death problem.
  • Pointers, C++ has support for pointers, Java also has support but java internally uses pointers. Programmer doesn’t have to write pointer code explicitly.
  • C++ does not have multithreading support, whereas Java provides support for multi-threading.

And so and so on, there are many differences between these two languages but these are the key ones.

Back to top

Explain installation and environment setup of java. Briefly explain what is JRE,JDK and JVM?

First we need to download the executable file from http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html as per our operating system. One done with download the executable file , run the file and it will install java to our system and on successful installation the folder structure will look like this:Java Installation

So we have downloaded and installed the Java Development Kit and we are ready to go to code. Before processing forward we need to set the environment variable so that when we run java from command prompt operating system will aware what kind of program to run.

To achieve this, we need to traverse through the path below:Java Path

Now click on Advance system settings link that is on the left pen of this page, this will open a window like this:Java Environment Variables

Now clink on the highlighted one, that is Environment variables. Upon clicking this a new window will open, under this , click on new under System Variables and create a new System Variable and name it to JAVA_HOME, against variable value we need to path of java installation directory that is with my system is:

C:\Program Files\Java\jdk1.7.0_79.

Lets set this and see how it looks:Java Home Setting

Click on OK button and we are done with creating a new system variable JAVA_HOME. Next step is to add this variable to path. Under the same system variables there will a variable path, edit it and add JAVA_HOME to path.

That’s it we are good to go to write our first java code. Lets check with command prompt if the installation and configuration went fine or not:Java Installation and Configuration

So I have checked java version with command prompt, if there is anything wrong with configuration or installation this command will not get successfully executed and there will be error message. So this is a small way to check installation of java.

JRE is basically shorthand for Java Runtime Environment. It is basically the Java Virtual Machine where your Java programs run on. It also includes browser plugins for Applet execution.

JDK is shorthand used for Java Development Kit, which is the Software Development Kit for Java, including JRE, and the compilers and tools (like JavaDoc, and Java Debugger) to create and compile programs.

Usually, when you only care about running Java programs on your browser or computer you will only install JRE. It’s all you need. On the other hand, if you are planning to do some Java programming, you will also need JDK.

JVM (Java Virtual Machine) is an abstract machine. It is a specification that provides runtime environment in which java bytecode can be executed.

Back to top

What is polymorphism, Explain inheritance in java? Also explain overloading and overriding in java.

Polymorphism in object oriented programming is a concept where in an object can take one or more forms. Its like one name many forms. Any java object is elibigle to called polymorphic when an object “IS-A” kind of object. For example we have a parent class, then the eligible child classes can be Audi, BMW etc. So these child classes will extend the parent class that is Car and at the same time we can say Audi “IS-A” car, which makes Audi or BMW object polymorphic.

Lets understand the same with an example.

Here we will be creating a Car interface and this interface will have some methods that will be common to call cars.

So we have created a simple interface that is called Icar. This interface has two dummy methods that will setEngineCapacity and getEngineCapacity.

Now lets create impl classes for this.

First let say we create AudiImpl class that will for car audi.

Now lets create BMWImpl class with our ICar interface implementation.

Lets create a Main class and try to understand the IS-A concept that is behind Polymorphism.

So first thing to notice is that when the objects are polymorphic in nature we can create the objects with Interface reference. Now both AudiImpl and BMWImpl implements the ICar interface, so we can say that these two objects “IS-A” ICar type.

Next thing comes DynamicBinding,  which is the calling code even doesnot know on what type object the call is made. See getCarEngine method, here we are just passing objects from our main method but we are receiving the object in ICar interface and we made call to our actual object. This is beauty of polymorphism.

Now lets talk in brief about overloading and overriding.

We call Overloading, when two or more methods in one class have the same method name but different parameters.

We call Overriding, when two methods with the same method name and parameters. But Import point to note is one of the methods will be present in the parent class and the other is in the child class. Overriding allows a child class to provide a specific implementation of a method that is already provided its parent class.

Back to top

What are different types of class loaders in java, explain class loading in java?

There are three kinds of class loaders in java :

  • Bootstrap (primordial)
  • Extensions
  • System

BootStrap or Primordial class loaders are class loaders that Loads JDK internal classes, java.* packages. Which will be defined in the sun.boot.class.path system property, typically loads rt.jar and i18n.jar.

Extensions class loaders are class loaders that Loads jar files from JDK extensions directory. Which will be defined in the java.ext.dirs system property – usually lib/ext directory of the JRE.

 

System class loaders are class loaders that Loads classes from system classpath Which will be defined in the java.class.path property, which is set by the CLASSPATH environment variable or –classpath  command line options.System Class Loader

Class loaders are hierarchical, and maintain visibility. Bootstrap class loader have no visibility on the class loaded by Extension class loader and Extension class loader have no visibility over the classes loaded by classpath loader or System class loader.

Class loaders use a delegation model when loading a class. They request their parent to load the class first before they attempt to load it by their own. When a class loader loads a class, the child class loaders in the hierarchy will never load the class again, here classloaders maintain uniqueness.

Classes loaded by a child class loader have visibility over the classes loaded by its parents but not vice versa.

Back to top

What is difference between Composition and Aggregation?

Composition and Aggregation are concepts where two objects use each other’s functionality. When one object use functionality or services exposed by other object it is called Association.

Composition is when one object or one class associated with other class or object in such a way that the class can not have any meaning if other class is not present. Lets take an example of Bike, a Bike  have many objects like Tyres, Engine, Gear and so on, but when the bike is destroyed all these objects will also destroyed. These objects can not function if there is no car object. This concept is called Composition in java.

Aggregation is when two or more objects are associated with each other in such a way that if any of the object dies or destroyed, other one will still exist. Lets take an example, A Company can have many employees, when a scenario where Company is closed, Employee can join other company as well.

We can say composition is stronger than Aggregation.  A relationship between two objects is known as  an association, and an association when one object owns other is known as composition, while when an association one object uses another object is known as aggregation.Composition Vs Aggregation

So as we can see, Composition represents the strongest form of relation between objects where as Aggregation denotes a slightly weaker relationship between objects then composition, Association is most general form of relationship.

Lets take a practical example of Composition. Here we will create a Class name Bike, and other class as Tyre, that will have brand variable in it. Lets create this:

So as you can see Bike class constructor is initializing Tyre class, so the lifetime of class Tyre associated with Bike object, and whenever Bike class will destroyed the Tyre class will also destroyed. These both objects have strong relationship with each other and this is what we call Composition.

Lets take example of aggregation, here we will have a class Company and the company will have list of Departments. Now the difference with this is, Company class is not responsible for initializing the department class, and when the Company class will be destroyed the same Department class will not get destroyed, since both have their own life cycle. This is what we call Aggregation.

Back to top

Continue with More Java Interview Questions and Answers:

What is difference between Abstract class and Interface in Java, also explain when to use what?

In OOPS there is a principle called Abstraction, that is to abstract things from outer world. To achieve this interface and abstract classes are used.  Abstract classes are the classes in java that can have methods in such a way that some can have implementation and some will not have. These unimplemented methods are called abstract methods and we use abstract keyword to declare such methods. Now thing is we can not instantiate the abstract class. One more thing with abstract class is that there must be one method that will be abstract in this class to be called as abstract, if there is no abstract then we can not write class as abstract, the compiler will complain. Same if there is any abstract method in there and we declare the class as normal class then also compiler will complain and force us to declare class as abstract. These classes are meant to written for inheritance.

On the other hand interfaces are also abstract classes but these are pure abstract classes. Like we talked about the declaration and definition of methods in abstract  class like some can have some  may not have implementation, but in interfaces methods that we write are 100% abstract, mean there will only be declaration and the class that is implementing the interface, that class will have to provide the implementation. Methods declared in interfaces are by default abstract. We write these both to achieve abstraction. Like let say I have a service, whose job is to insert some data in database after some processing, so I will only provide the service interface to outer world with some methods. The actual processing will be done in the implementing class of this interface and the implementation I will hide from outer world. This is beauty of abstraction.

Lets take example of how we write abstract class and interface.

Lets create an interface named IVehicle that will have some methods in it:

So what we have done is we have created an interface named IVehicle with some methods in it, so every class that will implement this will have to provide implementation of these methods.

Now there are some methods, in which Brand, Model, EngineCapacity and FuelType will be provided. So now we will create one more level of abstraction and we will segregate the classes with one that have fuel type as diesel and one with fuel type as petrol. Why we will do this because all petrol cars object will not have to implement these methods. So we will create two abstract classes, lets create them:

So now we have created a hierarchy and added one level of abstraction. Every petrol type vehicle will have to extend the AbstractPetrolVehicle and every diesel type of vehicle will have to extend the AbstractDieselVehicle abstract class and the class have to provide the implementation for rest of the methods. Below is the example for AudiA3 class that extends AbstractPetrolVehicle and this class has to provide the methods implementation.

Back to top

Explain serialization in java, what is use of Serial Version UID?

Serialization is the process wherein object is converted into bytestream and it’s state is saved, so that the object can be travel over the network. In order to achieve serialization java provides Serializable interface, that is marker interface. So any object on which we need to achieve serialization, the class must extend Serializable interface.

The process from which the byte stream converted to java object again is known as deserialization. In this the persisted file or the serialized byte stream is converted in java object.

As we talked about the Serializable interface, the above pasted code is the code for this interface, as you can see there are no methods in this interface that’s why these type of interfaces are known as marker interface. They just let the jvm know that what type of object it is, rest JVM takes care of.

There can be a scenario wherein we don’t want to serialize all the fields of a class, and we want some fields should not get serialized, to achieve java provides one more keyword that is transient. All fields maked as transient will not be part of the serialization process.

Since serialization is the process where object’s state is persisted, so obviously the question comes in our mind, what about the static things. Since static variables are directly belong to a class and they don’t have anything to do with object. So the answer is that the static variables are not part of serialization  process as well, since first thing they belong to a class and not with an object and second is they are not part of object state.

SerialVersionUId , whenever we are going to serialize and our class implement serializable interface the IDE says something like this,

The serializable class doesn’t declare a static final serialVersionId of type Long.

So why it is always encouraged to use SerialVersionUID, basically this id is something unique that represents the object and whenever the object is being deserialized this id is being matched and if the id doesnot matches jvm throws InvalidClassException. This id is being placed just to ensure that the object is the same that it was at the time of serialization.

If one doesnot provide the serialVersionUId then the JVM automatically calculate the serialVersionUid and provide one. The same is calculated as the hashcode of the class and the membervariables and so.

One more question arises to our mind is that just above we talked about that the static variables are not part of serialization process since they doesnot belongs to the object state. And now we are talking about that the serialversionUid is used at the time of deserialization, meaning that the serialVersionUID is part of object byte array that is crated at the time of serialization. Its contradictory isn’t it ? Yes !! So what happens is that whenever the object is converted into the sequence of bytes at the time of serialization, then the serialVersionUid is added to the class metadata. And the same is travelled to the network so that whenever the deserialization process happenes the jvm quickly pickup the serialVesrionUID and matches it.

Lets take an example of the same:

First we will create a class name Car which is going to be serialize.

Lets serialize and deserialize, and check if we got the same object or not.

Lets run the code and see if got the same object that we serialize, with make as 2016 and model as Audi-A3.

Upon running the code what we got id:Serialization in Java

So we got the same object that we serialized. This was the code running example of serialization concept.
Back to top

Explain cloning concept, what is difference between shallow and deep cloning in java? Explain with example.

Cloning is a concept where in as the name suggests copy of an existing object is made. There are two types of cloning concepts in java, one is shallow cloning and other one is deep cloning. Both are used to make copy of an object, but there is subtle difference between these two, that we will talk in detail.

To clone some object in java, java provides clone() method, which does the duplication or cloning task. To use the clone method the class must implement Cloneable interface. If class or object whose clone needs to be created, doesnot implement Cloneable interface, jvm throws error. The clone() method is defined in Object class.

By default clone() methods gives shallow copy of the object. If one wants to have deep copy the clone method must be updated.

Shallow and Deep Copy:

Lets understand the concept with help of a diagram:Shallow Vs Deep Copy

Actual Object that have the Object2 in it. Upon performing shallow copy , in memory the objects will look like:Making Shallow Copy in Java

Lets check the memory footprint when deep copy is performed:Making Deep Copy in Java

As demonstrated in diagram, Shallow copy is something where the contents of an object are not duplicated, but the newly created object will also have reference to the existing object. That means if I update some in object1 the same will be reflected in cloned object as well. By default the Object class’s clone methods gives the shallow copy of an object.

Deep copy is the concept where the object is actually duplicated. When deep copy is made there will be two different object created. So in essence when we create deep copy there will be two different object and once we do some modification on object1 the same will never be reflect on object2.

Lets take an example which demonstrates cloning:

Back to top

What are immutable in java, how to create immutable class/fields/methods in java? Explain with example.

Immutable is something that is once created it can not be changed or modified. Immutability is a very important concept in terms of object state. Variables declared as immutable can be treated as constant, since they will never going to change. In java Strings are immutable, mean once declared a string it will never change, if we try to manipulate the string like add some to the same that will result in a new object but the main object will remain intact.

When we are going to create something immutable, final keyword is used. The same can be used with class, fields and methods of a class. There are something to take care or keep in mind when writing final, if a class declared as final the class cannot be extended. If variable is declared with final then the variable will not be reassigned.

When we write final class one thing that is very important and to keep in mind as well is that,

  • Remember the immutable objects cannot be modified so there will be no setters in the class that is going to be final.
  • Class should be declared as final so that no class can extend this.
  • Setting of variable values will be via constructor only.
  • If there is any thing in the immutable class that is mutable, then always always return the copy of it and never the original object.

Lets now create an immutable object, with three fields in it. So the fields will be id, name and a List. Lets create immutable class with these fields:

So our immutable class is ready and good to go. If you check the code properly so the values been set are set via constructor only, since there is no setter for any fields, which should and must not be present. Class is declared as final so that no class can extends this. If one try to extend class then the compiler will throw error. Check the code below compiler throws error in this case.

We have a mutable field List in our code, if we directly return the original object then the caller can change the object, so we are creating a new list and returning the same to calling code.

Back to top

What is equals and hashcode contract. Explain with example.

Both equals and hashcode methods comes with Object class. This class provides these two methods by default overridden with every class we create. Equals as the name suggests checks the equality of two objects, where as hashcode is unique for an object.

Lets see what oracle says about conract between equals and hashcode:

From https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html

And about equals method:

We must override equals and hashcode in our class when writing java code. Since the object’s equals method has the following code:

So as you can see this method only checks for references of the object and not the actual object. Lets take a practical example. We are going to create a class that will have some fields and we will not override equals methods and we will check what happens when we call equals method to check equality of both.

Allright so we have created two objects of Home with same parameters and in main methods we are going to check if these both objects are equal or not. Lets run the above program and see if these are equal or not.

Upon running the code above what we got is:Test Equal HashcodeStrange !! isn’t it ? We have created both objects with exact same parameters then how come these two objects are not equal. Remember in the above section we talked about the equals method of object class that the methods only checks the references and not the value, and in memory we have created two different objects, that’s the reason we got output as false upon comparing two objects.

How to solve this now ? Well we need to override equals method and write our equals logic.

Lets write the code for equals now:

So now we have equals method in place in our Home class, lets run the code again and see if it made any difference?Hashcode Test

Now our code is returning the correct output as true. And why it is? Because we have overridden the equals method from super class and added our code for object equality.

That’s the reason it is always advisable to override equals and hashcode methods while writing any class in java.

Back to top
This Java Tutorial Series is continued and you can find more Java Interview Questions in next Web Development Tutorial here.

Top Technical Interview Questions and Answers Series:

MUST Have C# Interview Questions and Answers – Part 2


Fatal error: Cannot redeclare curl_request() (previously declared in /home1/imghani/public_html/webdevelopmenthelp.net/wp-content/plugins/php-code-for-posts/Classes/Shortcode.php(81) : eval()'d code:6) in /home1/imghani/public_html/webdevelopmenthelp.net/wp-content/plugins/php-code-for-posts/Classes/Shortcode.php(81) : eval()'d code on line 23