Java Full Stack Internship Report
Java Full Stack Internship Report
Contents
• Introduction to web
• Introduction to Java
• Java Language Fundamentals
• OOP implementation
• Packages
• Arrays
• Exception handling
• Working with String
• Multithreading
• SQL
• JDBC
• HTML/CSS
• Javascript
• AJAX
• Servlets and JSP
• Hibernate
• Spring boot
• Conclusion
Introduction to Java:
• Java is a popular programming language, created in 1995.
• It is owned by Oracle, and more than 3 billion devices run Java.
• Java works on different platforms (Windows, Mac, Linux, Raspberry Pi,
etc.).
• It is easy to learn and simple to use.
• It is used for:
Syntax:
public class Main{
public static void main(String[] args){
System.out.println(“Hello World”);
}
}
• Every line of code that runs in Java must be inside a class. In our example,
we named the class Main. A class should always start with an uppercase
first letter.
• The name of the java file must match the class name. When saving the
file, save it using the class name and add ".java" to the end of the
filename.
• Inside the main() method, we can use the println() method to print a line of
text to the screen.
IDENTIFIERS:
• Java is case-sensitive, which means that "name" and "Name" are two
different identifiers.
Variables:
• Variables are containers for storing data values.
• To create a variable, you must specify the type and assign it a value.
Data Types:
• Data types are divided into two groups:
The float and double data types can store fractional numbers. Note
that you should end the value with an "f" for floats and "d" for
doubles.
A floating point number can also be a scientific number with an "e"
to indicate the power of 10.
• Type casting is when you assign a value of one primitive data type
to another type.
• In Java, there are two types of casting:
Widening Casting (automatically) - converting a smaller type to a
larger type size
byte -> short -> char -> int -> long -> float -> double
Example:
int myInt = 9;
double myDouble = myInt;
Example:
double myDouble = 9.78d;
int myInt = (int) myDouble;
Operators:
• Operators are used to perform operations on variables and values.
Arithmetic operators
Assignment operators
Comparison operators
Logical operators
Bitwise operators
Conditional Statements:
• Java has the following conditional statements:
Syntax:
if (condition) {
// block of code to be executed if the condition is true
}
Syntax:
if (condition) {
// block of code to be executed if the condition is true
} else {
// block of code to be executed if the condition is false
}
if (condition1) {
// block of code to be executed if condition1 is true
} else if (condition2) {
// block of code to be executed if the condition1 is false and
condition2 is true
} else {
// block of code to be executed if the condition1 is false and
condition2 is false
}
Use switch to specify many alternative blocks of code to be
executed.
Syntax:
switch(expression) { case
x:
// code block
break;
case y:
// code block
break;
default:
// code block
}
The switch expression is evaluated once.
Loops:
• Loops can execute a block of code as long as a specified condition is
reached.
• Loops are handy because they save time, reduce errors, and they make
code more readable.
While Loop:
The while loop loops through a block of code as long as a specified condition
is true.
Syntax:
while (condition) {
// code block to be executed
}
Do/While Loop:
The do/while loop is a variant of the while loop. This loop will execute the
code block once, before checking if the condition is true, then it will repeat the
loop as long as the condition is true.
Syntax:
do {
// code block to be executed
}
while (condition);
For Loop:
When you know exactly how many times you want to loop through a block of
code, use the for loop instead of a while loop.
Syntax:
for (statement 1; statement 2; statement 3)
{ // code block to be executed
}
Statement 1 is executed (one time) before the execution of the code
block.
Statement 2 defines the condition for executing the code block.
Statement 3 is executed (every time) after the code block has been
executed.
Arrays:
• Arrays are used to store multiple values in a single variable, instead of
declaring separate variables for each value.
• To declare an array, define the variable type with square brackets:
Example: String[]
cars;
• You can access an array element by referring to the index number.
• This statement accesses the value of the first element in cars:
Example:
String[] cars = {"Volvo", "BMW", "Ford", "Mazda"};
// Outputs Volvo
Multidimensional Arrays:
• A multidimensional array is an array of arrays.
• Multidimensional arrays are useful when you want to store data as a
tabular form, like a table with rows and columns.
• To create a two-dimensional array, add each array within its own set of
curly braces.
Example:
int[][] myNumbers = { {1, 2, 3, 4}, {5, 6, 7} };
System.out.println(myNumbers[1][2]); // Outputs 7
Methods:
• A method is a block of code which only runs when it is called.
• You can pass data, known as parameters, into a method.
• Methods are used to perform certain actions, and they are also known as
functions.
• Why use methods? To reuse code: define the code once, and use it
many times.
• A method must be declared within a class. It is defined with the name of
the method, followed by parentheses ( ).
Example:
public class Main {
static void myMethod() {
// code to be executed
}}
myMethod() is the name of the method.
static means that the method belongs to the Main class and not an object
of the Main class. You will learn more about objects and how to access
methods through objects.
void means that this method does not have a return value.
12
• The following example has a method that takes a String called fname as
parameter. When the method is called, we pass along a first name, which
is used inside the method to print the full name:
public class Main {
static void myMethod(String fname) {
System.out.println(fname + " Refsnes");
}
OOP helps to keep the Java code DRY "Don't Repeat Yourself",
and makes the code easier to maintain, modify and debug.
When one object acquires all the properties and behaviors of a parent object, it is
known as inheritance. It provides code reusability. It is used to achieve runtime
polymorphism.
Polymorphism:
If one task is performed in different ways, it is known as polymorphism. For
example: to convince the customer differently, to draw something, for example,
shape, triangle, rectangle, etc.
In Java, we use method overloading and method overriding to achieve
polymorphism.
Another example can be to speak something; for example, a cat speaks meow, dog
barks woof, etc.
Abstraction:
Hiding internal details and showing functionality is known as abstraction. For
example phone call, we don't know the internal processing.
In Java, we use abstract class and interface to achieve abstraction. Encapsulation
Binding (or wrapping) code and data together into a single unit are known as
encapsulation. For example, a capsule, it is wrapped with different medicines. A
java class is the example of encapsulation. Java bean is the fully encapsulated class
because all the data members are private here.
Inheritance in Java:
Inheritance in Java is a mechanism in which one object acquires all the
properties and behaviors of a parent object. It is an important part of OOPs (Object
Oriented programming system).
The idea behind inheritance in Java is that you can create new classes that are built
upon existing classes. When you inherit from an existing class, you can reuse
methods and fields of the parent class. Moreover, you can add new methods and
fields in your current class also.
Inheritance represents the IS-A relationship which is also known as a parent-
child relationship.
• Class: A class is a group of objects which have common properties. It is a
template or blueprint from which objects are created.
Types of Inheritance:
• Single Inheritance
• Multiple Inheritance
• Multi-Level Inheritance
• Hierarchical Inheritance
• Hybrid Inheritance
Abstraction in Java
Abstraction is a process of hiding the implementation details and showing only
functionality to the user.
Another way, it shows only essential things to the user and hides the internal
details, for example, sending SMS where you type the text and send the message.
You don't know the internal processing about the message delivery. Abstraction
lets you focus on what the object does instead of how it does it.
Ways to achieve Abstraction
There are two ways to achieve abstraction in java
1. Abstract class (0 to 100%)
2. Interface (100%)
Abstract class in Java
A class which is declared as abstract is known as an abstract class. It can have
abstract and non-abstract methods. It needs to be extended and its method
implemented. It cannot be instantiated.
• An abstract class must be declared with an abstract keyword.
• It can have abstract and non-abstract methods.
• It cannot be instantiated.
• It can have constructors and static methods also.
• It can have final methods which will force the subclass not to change the
body of the method.
Example: abstract
class Bike{
abstract void run();
}
class Honda4 extends Bike{
void run(){System.out.println("running safely..");}
public static void main(String args[]){
Bike obj = new
Honda4(); obj.run();
}
}
Interface in Java:
• An interface in Java is a blueprint of a class. It has static constants and
abstract methods.
• The interface in Java is a mechanism to achieve abstraction. There can be
only abstract methods in the Java interface, not method body. It is used
to achieve abstraction and multiple inheritance in Java.
• In other words, you can say that interfaces can have abstract methods
and variables. It cannot have a method body.
• Java Interface also represents the IS-A relationship.
• It cannot be instantiated just like the abstract class.
• Since Java 8, we can have default and static methods in an interface.
• Since Java 9, we can have private methods in an interface.
• There are mainly three reasons to use interface. They are given below.
It is used to achieve abstraction.
By interface, we can support the functionality of multiple
inheritance.
It can be used to achieve loose coupling.
• An interface is declared by using the interface keyword. It provides total
abstraction; means all the methods in an interface are declared with the
empty body, and all the fields are public, static and final by default. A class
that implements an interface must implement all the methods declared in the
interface.
Syntax:
interface <interface_name>{
obj.run();
}
}
Encapsulation:
Encapsulation in Java is a process of wrapping code and data together into a
single unit, for example, a capsule which is mixed of several medicines.
We can create a fully encapsulated class in Java by making all the data members of
the class private. Now we can use setter and getter methods to set and get the data
in it.
The Java Bean class is the example of a fully encapsulated class.
Advantage of Encapsulation in Java
By providing only a setter or getter method, you can make the class read-only or
write-only. In other words, you can skip the getter or setter methods.
It provides you the control over the data. Suppose you want to set the value of id
which should be greater than 100 only, you can write the logic inside the setter
method. You can write the logic not to store the negative numbers in the setter
methods.
It is a way to achieve data hiding in Java because other class will not be able to
access the data through the private data members.
The encapsulate class is easy to test. So, it is better for unit testing.
The standard IDE's are providing the facility to generate the getters and setters.
So, it is easy and fast to create an encapsulated class in Java.
Java Package:
A java package is a group of similar types of classes, interfaces and sub- packages.
Package in java can be categorized in two form, built-in package and user-
defined package.
There are many built-in packages such as java, lang, awt, javax, swing, net, io, util,
sql etc.
Here, we will have the detailed learning of creating and using user-defined
packages.
Advantage of Java Package:
1) Java package is used to categorize the classes and interfaces so that they
can be easily maintained.
2) Java package provides access protection.
3) Java package removes naming collision.
There are three ways to access the package from outside the package.
1. import package.*;
2. import package.classname;
3. fully qualified name.
Access Modifiers in
Java:
There are two types of modifiers in Java: access modifiers and non-access
modifiers.
The access modifiers in Java specifies the accessibility or scope of a field,
method, constructor, or class. We can change the access level of fields,
constructors, methods, and class by applying the access modifier on it. There are
four types of Java access modifiers:
1. Private: The access level of a private modifier is only within the class. It
cannot be accessed from outside the class.
2. Default: The access level of a default modifier is only within the package. It
cannot be accessed from outside the package. If you do not specify any
access level, it will be the default.
3. Protected: The access level of a protected modifier is within the package
and outside the package through child class. If you do not make the child
class, it cannot be accessed from outside the package.
4. Public: The access level of a public modifier is everywhere. It can be
accessed from within the class, outside the class, within the package and
outside the package.
There are many non-access modifiers, such as static, abstract,
synchronized, native, volatile, transient, etc
Exception Handling in Java
The Exception Handling in Java is one of the powerful mechanism to handle the
runtime errors so that the normal flow of the application can be maintained. What
is Exception in Java?
In Java, an exception is an event that disrupts the normal flow of the program. It
is an object which is thrown at runtime.
What is Exception Handling?
Exception Handling is a mechanism to handle runtime errors such as
ClassNotFoundException, IOException, SQLException, RemoteException, etc. The
core advantage of exception handling is to maintain the normal flow of the
application. An exception normally disrupts the normal flow of the application; that
is why we need to handle exceptions.
The classes that directly inherit the Throwable class except RuntimeException and
Error are known as checked exceptions. For example, IOException, SQLException,
etc. Checked exceptions are checked at compile-time.
Java provides five keywords that are used to handle the exception.
• The "try" keyword is used to specify a block where we should place an
exception code. It means we can't use try block alone. The try block must be
followed by either catch or finally.
• The “catch” block is used to handle the exception. It must be preceded
by try block which means we can’t use catch block alone.
• The "finally" block is used to execute the necessary code of the
program. It is executed whether an exception is handled or not.
• The “throw” keyword is used to throw an exception.
• The "throws" keyword is used to declare exceptions. It specifies that
there may occur an exception in the method. It doesn't throw an
exception. It is always used with method signature.
Example:
public class JavaExceptionExample{
try{
int data=100/0;
}catch(ArithmeticException e){System.out.println(e);
}
System.out.println("rest of the code...");
}}
Multithreading in Java:
Multithreading in Java is a process of executing multiple threads
simultaneously.
A thread is a lightweight sub-process, the smallest unit of processing.
Multiprocessing and multithreading, both are used to achieve multitasking.
However, we use multithreading than multiprocessing because threads use a shared
memory area. They don't allocate separate memory area so saves memory, and
context-switching between the threads takes less time than process. Java
Multithreading is mostly used in games, animation, etc.
Queries
Retrieve data from a database using the SELECT statement. The basic query
operations in a relational system are projection, restriction, and join. The
SELECT statement implements all of these operations.
A projection is a subset of the columns in a table. A restriction (also
called selection) is a subset of the rows in a table, based on some conditions. For
example, the following SELECT statement retrieves the names and prices of all
products that cost more than $15:
SELECT name,
sales_order_items WHERE
sales_order_items.quantity > 12
The product table and the sales_order_items table are joined together
based on the foreign key relationships between them.
SQL
What is a Database?
Data is the new fuel of this world but only data is unorganized information, so to
organize that data we make a database. A database is the organized collection of
structured data which is usually controlled by a database management system
(DBMS). Databases help us with easily storing, accessing, and manipulating data
held on a computer.
management systems. Anyone who knows the English language can easily
write SQL queries. Some of the key features of SQL are given below:
▪ Without a lot of coding knowledge we can manage a database with SQL.
▪ SQL works with database systems from Oracle, IBM, Microsoft, etc.
▪ Simple and easy to learn.
▪ SQL is ANSI and ISO standard language for database manipulations.
▪ SQL retrieves large amounts of data very fast.
Applications of SQL
In data-driven industries where managing databases is very important in regular,
Here are some important SQL applications.
• To support client/server architecture, software engineers use SQL to establish the
connection between back-end and front-end.
• SQL can also be used in the 3-tier architecture of a client, an application server, and a
database.
• SQL is used as a Data Definition Language(DDL) in which we can independently
create a database, define the structure, use it, and discard it when its work is done.
• SQL is used as a Data Manipulation Language(DML) in which we can enter data,
modify data, extracting data.
• SQL is used as a Data Control Language(DCL) it specifies how we can protect our
database against corruption and misuse.
JDBC
JDBC stands for Java Database Connectivity. JDBC is a Java API to connect and
execute the query with the database. It is a part of JavaSE (Java Standard Edition).
JDBC API uses JDBC drivers to connect with the database. There are four types of
JDBC drivers:
The current version of JDBC is 4.3. It is the stable release since 21st September,
2017. It is based on the X/Open SQL Call Level Interface. The java.sql package
contains classes and interfaces for JDBC API. A list of popular interfaces of JDBC
API are given below:
▪ Driver interface
▪ Connection interface
▪ Statement interface
▪ PreparedStatement interface
▪ CallableStatement interface
▪ ResultSet interface
▪ ResultSetMetaData interface
▪ DatabaseMetaData interface
▪ RowSet interface
▪ AD
▪ DriverManager class
▪ Blob class
▪ Clob class
▪ Types class
▪ Before JDBC, ODBC API was the database API to connect and execute the query
with the database. But, ODBC API uses ODBC driver which is written in C
language (i.e. platform dependent and unsecured). That is why Java has defined its
own API (JDBC API) that uses JDBC drivers (written in Java language).
▪ We can use JDBC API to handle database using Java program and can perform the
following activities:
▪ Connect to the database
HTML
▪ HTML is an acronym which stands for Hyper Text Markup Language which is used
for creating web pages and web applications. Let's see what is meant by Hypertext
Markup Language, and Web page.
▪ Hyper Text: HyperText simply means "Text within Text." A text has a link within it, is a
hypertext. Whenever you click on a link which brings you to a new webpage, you have
clicked on a hypertext. HyperText is a way to link two or more web pages (HTML
documents) with each other.
▪ Markup language: A markup language is a computer language that is used to apply
layout and formatting conventions to a text document. Markup language makes text more
interactive and dynamic. It can turn text into images, tables, links, etc.
▪ Web Page: A web page is a document which is commonly written in HTML and
translated by a web browser. A web page can be identified by entering an URL. A Web
page can be of the static or dynamic type. With the help of HTML only, we can create
static web pages.
▪ Hence, HTML is a markup language which is used for creating attractive web pages with
the help of styling, and which looks in a nice format on a web browser. An HTML
document is made of many HTML tags and each HTML tag contains different content .
Java script
▪ JavaScript (js) is a light-weight object-oriented programming language which is used by
several websites for scripting the webpages. It is an interpreted, full-fledged programming
language that enables dynamic interactivity on websites when applied to an HTML
document. It was introduced in the year 1995 for adding programs to the webpages in the
Netscape Navigator browser. Since then, it has been adopted by all other graphical web
browsers. With JavaScript, users can build modern web applications to interact directly
without reloading the page every time. The traditional website uses js to provide several
forms of interactivity and simplicity.
▪ Although, JavaScript has no connectivity with Java programming language. The name
was suggested and provided in the times when Java was gaining popularity in the market.
In addition to web browsers, databases such as CouchDB and MongoDB uses JavaScript
as their scripting and query language.
Application of JavaScript
▪ JavaScript is used to create interactive websites. It is mainly used for:
▪ Client-side validation,
▪ Dynamic drop-down menus,
▪ Displaying date and time,
Downloaded by Indukuri Yeswanth Varma (indukuriyeswanthvarma@gmail.com)
lOMoAR cPSD| 34421130
▪ Displaying pop-up windows and dialog boxes (like an alert dialog box, confirm dialog
box and prompt dialog box),
▪ Displaying clocks etc.
▪ JavaScript is used to create interactive websites. It is mainly used for:
▪ Client-side validation,
▪ Dynamic drop-down menus,
▪ Displaying date and time,
▪ Displaying pop-up windows and dialog boxes (like an alert dialog box, confirm dialog
box and prompt dialog box),
▪ Displaying clocks etc.
Ajax Tutorial
▪ AJAX tutorial covers concepts and examples of AJAX technology for beginners and professionals.
▪ AJAX is an acronym for Asynchronous JavaScript and XML. It is a group of inter-related
technologies like JavaScript, DOM, XML, HTML/XHTML, CSS, XMLHttpRequest etc.
▪ AJAX allows you to send and receive data asynchronously without reloading the web page. So it is fast.
▪ AJAX allows you to send only important information to the server not the entire page. So only valuable
data from the client side is routed to the server side. It makes your application interactive and faster.
▪ here are too many web applications running on the web that are using ajax technology
like gmail, facebook,twitter, google map, youtube etc.
▪ As you can see in the above example, XMLHttpRequest object plays a important role.
▪ User sends a request from the UI and a javascript call goes to XMLHttpRequest object.
▪ HTTP Request is sent to the server by XMLHttpRequest object.
▪ Server interacts with the database using JSP, PHP, Servlet, ASP.net etc.
▪ Data is retrieved.
▪ Server sends XML data or JSON data to the XMLHttpRequest callback function.
▪ HTML and CSS data is displayed on the browser.
Servlets
▪ Servlet technology is used to create a web application (resides at server side and
generates a dynamic web page).
▪ Servlet technology is robust and scalable because of java language. Before Servlet, CGI
(Common Gateway Interface) scripting language was common as a server-side
programming language. However, there were many disadvantages to this technology. We
have discussed these disadvantages below.
▪ There are many interfaces and classes in the Servlet API such as Servlet, GenericServlet,
HttpServlet, ServletRequest, ServletResponse, etc.
▪ Servlet is a class that extends the capabilities of the servers and responds to the incoming
requests. It can respond to any requests.
▪ Servlet is a web component that is deployed on the server to create a dynamic web page.
Hibernate
▪ Hibernate is a Java framework that simplifies the development of Java application to
interact with the database. It is an open source, lightweight, ORM (Object Relational
Mapping) tool. Hibernate implements the specifications of JPA (Java Persistence API) for
data persistence.
ORM Tool
▪ An ORM tool simplifies the data creation, data manipulation and data access. It is a
programming technique that maps the object to the data stored in the database.
▪
▪ The ORM tool internally uses the JDBC API to interact with the database.
What is JPA?
▪ Java Persistence API (JPA) is a Java specification that provides certain functionality and
standard to ORM tools. The javax.persistence package contains the JPA classes and
interfaces.
▪ Hibernate framework is open source under the LGPL license and lightweight.
Fast Performance
▪ HQL (Hibernate Query Language) is the object-oriented version of SQL. It generates the
database independent queries. So you don't need to write database specific queries. Before
Hibernate, if database is changed for the project, we need to change the SQL query as
well that leads to the maintenance problem.
▪ Hibernate framework provides the facility to create the tables of the database
automatically. So there is no need to create tables in the database manually.
▪ Hibernate supports Query cache and provide statistics about query and database status.
Spring Boot
▪ Spring Boot Tutorial provides basic and advanced concepts of Spring Framework. Our
Spring Boot Tutorial is designed for beginners and professionals both.
▪ Spring Boot is a Spring module that provides the RAD (Rapid Application Development)
feature to the Spring framework.
▪ Our Spring Boot Tutorial includes all topics of Spring Boot such, as features, project,
maven project, starter project wizard, Spring Initializr, CLI, applications, annotations,
dependency management, properties, starters, Actuator, JPA, JDBC, etc.
▪ Spring Boot is a project that is built on the top of the Spring Framework. It provides an
easier and faster way to set up, configure, and run both simple and web-based
applications.
▪ It is a Spring module that provides the RAD (Rapid Application Development) feature
to the Spring Framework. It is used to create a stand-alone Spring-based application that
you can just run because it needs minimal Spring configuration.
▪
▪ In short, Spring Boot is the combination of Spring Framework and Embedded Servers.
▪ In Spring Boot, there is no requirement for XML configuration (deployment descriptor). It
uses convention over configuration software design paradigm that means it decreases the
effort of the developer.
▪ We can use Spring STS IDE or Spring Initializr to develop Spring Boot Java
applications.
▪ Why should we use Spring Boot Framework?
▪ We should use Spring Boot Framework because:
▪ The dependency injection approach is used in Spring Boot.
▪ It contains powerful database transaction management capabilities.
▪ It simplifies integration with other Java frameworks like JPA/Hibernate ORM, Struts, etc.
▪ It reduces the cost and development time of the application.
▪ Along with the Spring Boot Framework, many other Spring sister projects help to build
applications addressing modern business needs. There are the following Spring sister
projects are as follows:
▪ Spring Data: It simplifies data access from the relational and NoSQL databases.
▪ Spring Batch: It provides powerful batch processing.
▪ Spring Security: It is a security framework that provides robust security to applications.
▪ Spring Social: It supports integration with social networking like LinkedIn.
▪ Spring Integration: It is an implementation of Enterprise Integration Patterns. It
facilitates integration with other enterprise applications using lightweight messaging and
declarative adapters.
Conclusion
In conclusion, a Java Full Stack Developer requires a diverse range of technical and soft
skills to develop and maintain web-based applications. They need to be proficient in both
front-end and back-end development, understand security protocols, testing and
debugging methodologies, design patterns, cloud technologies, and be customer-focused.
Downloaded by Indukuri Yeswanth Varma (indukuriyeswanthvarma@gmail.com)