0% found this document useful (0 votes)
691 views112 pages

JJHHJKLHLHKLH

lmllljkljkkljlkkljkljkljlkjlkjljlkhdlahdslfhsfakhfkagsfkhgasfjkasjkfgasfgksjafgkasfhaskfgasfkgaskgfaskfgaskgfaskgaskfjgaskgfjkasgfsajk
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
691 views112 pages

JJHHJKLHLHKLH

lmllljkljkkljlkkljkljkljlkjlkjljlkhdlahdslfhsfakhfkagsfkhgasfjkasjkfgasfgksjafgkasfhaskfgasfkgaskgfaskfgaskgfaskgaskfjgaskgfjkasgfsajk
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 112

Microsoft Visual Studio

From Wikipedia, the free encyclopedia


Microsoft Visual Studio


Screenshot of Visual Studio 2012, editing a program's
source code in Visual Basic.NET
Developer(s) Microsoft
Stable release Visual Studio 2013 Update 4 CTP 1
(12.0.30825.00) (September 3, 2014;
49 days ago) []
[1]

Preview release Visual Studio "14" CTP 4(October 6,
2014; 16 days ago) []
[2]

Written in C++ and C#
[3]

Operating system Microsoft Windows
Available in Chinese, English, French,
Portuguese, German, Italian,
Japanese, Korean, Spanish and
Russian
Type Integrated development
environment
License Proprietary software
Express edition: Registerware
Other editions: Trialware
[4]

Website www.visualstudio.com
Microsoft Visual Studio is an integrated development environment (IDE) from Microsoft. It is used to
develop computer programs for Microsoft Windows, as well as web sites, web applications and web
services. Visual Studio uses Microsoft software development platforms such as Windows API, Windows
Forms, Windows Presentation Foundation, Windows Storeand Microsoft Silverlight. It can produce
both native code and managed code.
Visual Studio includes a code editor supporting IntelliSense as well as code refactoring. The
integrated debugger works both as a source-level debugger and a machine-level debugger. Other built-
in tools include a forms designer for building GUIapplications, web designer, class designer,
and database schema designer. It accepts plug-ins that enhance the functionality at almost every level
including adding support for source-control systems (like Subversion) and adding new toolsets like
editors and visual designers for domain-specific languages or toolsets for other aspects of the software
development lifecycle(like the Team Foundation Server client: Team Explorer).
Visual Studio supports different programming languages and allows the code editor and debugger to
support (to varying degrees) nearly any programming language, provided a language-specific service
exists. Built-in languages include C,
[5]
C++and C++/CLI (via Visual C++), VB.NET (via Visual Basic
.NET), C# (via Visual C#), and F# (as of Visual Studio 2010
[6]
). Support for other languages such
as M, Python, and Ruby among others is available via language services installed separately. It also
supports XML/XSLT, HTML/XHTML, JavaScript and CSS.
Microsoft provides "Express" editions of its Visual Studio at no cost. Commercial versions of Visual
Studio along with select past versions are available for free to students via
Microsoft's DreamSpark program.
[7]

Contents
[hide]
1 Architecture
2 Features
o 2.1 Code editor
o 2.2 Debugger
o 2.3 Designer
o 2.4 Other tools
o 2.5 Extensibility
3 Supported products
o 3.1 Previous products
4 Editions
o 4.1 Visual Studio Express
o 4.2 Visual Studio Professional
o 4.3 Visual Studio Premium
o 4.4 Visual Studio Ultimate
o 4.5 Visual Studio Test Professional
o 4.6 Editions feature grid
5 History
o 5.1 Visual Studio 97
o 5.2 Visual Studio 6.0 (1998)
o 5.3 Visual Studio .NET (2002)
o 5.4 Visual Studio .NET 2003
o 5.5 Visual Studio 2005
o 5.6 Visual Studio 2008
o 5.7 Visual Studio 2010
o 5.8 Visual Studio 2012
5.8.1 Interface controversies
o 5.9 Visual Studio 2013
o 5.10 Visual Studio "14"
6 Visual Studio Application Lifecycle Management
7 Visual Studio LightSwitch
8 See also
9 References
10 External links
Architecture[edit]
Visual Studio does not support any programming language, solution or tool intrinsically, instead it allows
the plugging of functionality coded as a VSPackage. When installed, the functionality is available as
a Service. The IDE provides three services: SVsSolution, which provides the ability to enumerate projects
and solutions; SVsUIShell, which provides windowing and UI functionality (including tabs, toolbars and
tool windows); and SVsShell, which deals with registration of VSPackages. In addition, the IDE is also
responsible for coordinating and enabling communication between services.
[8]
All editors, designers,
project types and other tools are implemented as VSPackages. Visual Studio uses COM to access the
VSPackages. The Visual Studio SDK also includes the Managed Package Framework (MPF), which is a set
of managed wrappers around the COM-interfaces that allow the Packages to be written in any CLI
compliant language.
[9]
However, MPF does not provide all the functionality exposed by the Visual Studio
COM interfaces.
[10]
The services can then be consumed for creation of other packages, which add
functionality to the Visual Studio IDE.
Support for programming languages is added by using a specific VSPackage called a Language Service. A
language service defines various interfaces which the VSPackage implementation can implement to add
support for various functionalities.
[11]
Functionalities that can be added this way include syntax coloring,
statement completion, brace matching, parameter information tooltips, member lists and error markers
for background compilation.
[11]
If the interface is implemented, the functionality will be available for the
language. Language services are to be implemented on a per-language basis. The implementations can
reuse code from the parser or the compiler for the language.
[11]
Language services can be implemented
either in native code or managed code. For native code, either the native COM interfaces or the Babel
Framework (part of Visual Studio SDK) can be used.
[12]
For managed code, the MPF includes wrappers
for writing managed language services.
[13]

Visual Studio does not include any source control support built in but it defines two alternative ways for
source control systems to integrate with the IDE.
[14]
A Source Control VSPackage can provide its own
customised user interface. In contrast, a source control plugin using the MSSCCI (Microsoft Source Code
Control Interface) provides a set of functions that are used to implement various source control
functionality, with a standard Visual Studio user interface.
[15][16]
MSSCCI was first used to integrate Visual
SourceSafewith Visual Studio 6.0 but was later opened up via the Visual Studio SDK. Visual Studio .NET
2002 used MSSCCI 1.1, and Visual Studio .NET 2003 used MSSCCI 1.2. Visual Studio 2005, 2008 and 2010
use MSSCCI Version 1.3, which adds support for rename and delete propagation as well as asynchronous
opening.
[16]

Visual Studio supports running multiple instances of the environment (each with its own set of
VSPackages). The instances use different registry hives (see MSDN's definition of the term "registry hive"
in the sense used here) to store their configuration state and are differentiated by their AppId
(Application ID). The instances are launched by an AppId-specific .exe that selects the AppId, sets the
root hive and launches the IDE. VSPackages registered for one AppId are integrated with other
VSPackages for that AppId. The various product editions of Visual Studio are created using the different
AppIds. The Visual Studio Express edition products are installed with their own AppIds, but the Standard,
Professional and Team Suite products share the same AppId. Consequently, one can install the Express
editions side-by-side with other editions, unlike the other editions which update the same installation.
The professional edition includes a superset of the VSPackages in the standard edition and the team
suite includes a superset of the VSPackages in both other editions. The AppId system is leveraged by
the Visual Studio Shell in Visual Studio 2008.
[17]

Features[edit]
Code editor[edit]
Like any other IDE, it includes a code editor that supports syntax highlighting and code
completion using IntelliSense for variables, functions, methods, loops and LINQ queries.
[18]
IntelliSense is
supported for the included languages, as well as for XML and for Cascading Style
Sheets and JavaScript when developing web sites and web applications.
[19][20]
Autocomplete suggestions
appear in a modeless list box over the code editor window, in proximity of the editing cursor. In Visual
Studio 2008 onwards, it can be made temporarily semi-transparent to see the code obstructed by
it.
[18]
The code editor is used for all supported languages.
The Visual Studio code editor also supports setting bookmarks in code for quick navigation. Other
navigational aids include collapsing code blocks and incremental search, in addition to normal text
search and regex search.
[21]
The code editor also includes a multi-item clipboard and a task list.
[21]
The
code editor supports code snippets, which are saved templates for repetitive code and can be inserted
into code and customized for the project being worked on. A management tool for code snippets is built
in as well. These tools are surfaced as floating windows which can be set to automatically hide when
unused or docked to the side of the screen. The Visual Studio code editor also supports code
refactoring including parameter reordering, variable and method renaming, interface extraction and
encapsulation of class members inside properties, among others.
Visual Studio features background compilation (also called incremental compilation).
[22][23]
As code is
being written, Visual Studio compiles it in the background in order to provide feedback about syntax and
compilation errors, which are flagged with a red wavy underline. Warnings are marked with a green
underline. Background compilation does not generate executable code, since it requires a different
compiler than the one used to generate executable code.
[24]
Background compilation was initially
introduced with Microsoft Visual Basic but has now been expanded for all included languages.
[23]

Debugger[edit]
Main article: Microsoft Visual Studio Debugger
Visual Studio includes a debugger that works both as a source-level debugger and as a machine-level
debugger. It works with both managed code as well as native code and can be used for debugging
applications written in any language supported by Visual Studio. In addition, it can also attach to running
processes and monitor and debug those processes.
[25]
If source code for the running process is available,
it displays the code as it is being run. If source code is not available, it can show the disassembly. The
Visual Studio debugger can also create memory dumps as well as load them later for
debugging.
[26]
Multi-threaded programs are also supported. The debugger can be configured to be
launched when an application running outside the Visual Studio environment crashes.
The debugger allows setting breakpoints (which allow execution to be stopped temporarily at a certain
position) and watches (which monitor the values of variables as the execution
progresses).
[27]
Breakpoints can be conditional, meaning they get triggered when the condition is met.
Code can be stepped over, i.e., run one line (of source code) at a time.
[28]
It can either step into functions
to debug inside it, or step over it, i.e., the execution of the function body isn't available for manual
inspection.
[28]
The debugger supportsEdit and Continue, i.e., it allows code to be edited as it is being
debugged (32 bit only; not supported in 64 bit).
[29]
When debugging, if the mouse pointer hovers over
any variable, its current value is displayed in a tooltip ("data tooltips"), where it can also be modified if
desired. During coding, the Visual Studio debugger lets certain functions be invoked manually from
the Immediate tool window. The parameters to the method are supplied at the Immediate window.
[30]

Designer[edit]

Visual Studio Web Designer in code editor view

Visual Studio 2005 in Class Designer view

This section needs additional citations for verification. Please
help improve this article by adding citations to reliable sources. Unsourced
material may be challenged and removed. (May 2008)
Visual Studio includes a host of visual designers to aid in the development of applications. These tools
include:
Windows Forms Designer
The Windows Forms designer is used to build GUI applications using Windows Forms. Layout can be
controlled by housing the controls inside other containers or locking them to the side of the form.
Controls that display data (like textbox, list box, grid view, etc.) can be bound to data sources
like databases or queries. Data-bound controls can be created by dragging items from the Data Sources
window onto a design surface.
[31]
The UI is linked with code using an event-driven programming model.
The designer generates eitherC# or VB.NET code for the application.
WPF Designer
The WPF designer, codenamed Cider,
[32]
was introduced with Visual Studio 2008. Like the Windows
Forms designer it supports the drag and drop metaphor. It is used to author user
interfaces targeting Windows Presentation Foundation. It supports all WPF functionality including data
binding and automatic layout management. It generates XAML code for the UI. The generated XAML file
is compatible with Microsoft Expression Design, the designer-oriented product. The XAML code is linked
with code using a code-behindmodel.
Web designer/development
Visual Studio also includes a web-site editor and designer that allows web pages to be authored by
dragging and dropping widgets. It is used for developing ASP.NET applications and
supports HTML, CSS and JavaScript. It uses a code-behind model to link with ASP.NET code. From Visual
Studio 2008 onwards, the layout engine used by the web designer is shared with Microsoft Expression
Web. There is also ASP.NET MVC support for MVC technology as a separate download
[33]
and ASP.NET
Dynamic Data project available from Microsoft.
[34]

Class designer
The Class Designer is used to author and edit the classes (including its members and their access)
using UML modeling. The Class Designer can generate C# and VB.NETcode outlines for the classes and
methods. It can also generate class diagrams from hand-written classes.
Data designer
The data designer can be used to graphically edit database schemas, including typed tables, primary and
foreign keys and constraints. It can also be used to design queries from the graphical view.
Mapping designer
From Visual Studio 2008 onwards, the mapping designer is used by LINQ to SQL to design
the mapping between database schemas and the classes that encapsulate the data. The new solution
from ORM approach, ADO.NET Entity Framework, replaces and improves the old technology.
Other tools[edit]

This section needs additional citations
for verification. Please help improve this
article by adding citations to reliable sources.
Unsourced material may be challenged and
removed. (May 2008)
Open Tabs Browser
The open tabs browser is used to list all open tabs and to switch between them. It is invoked
using CTRL+TAB.
Properties Editor
The Properties Editor tool is used to edit properties in a GUI pane inside Visual Studio. It lists all available
properties (both read-only and those which can be set) for all objects including classes, forms, web
pages and other items.
Object Browser
The Object Browser is a namespace and class library browser for Microsoft .NET. It can be used to
browse the namespaces (which are arranged hierarchically) in managedassemblies. The hierarchy may
or may not reflect the organization in the file system.
Solution Explorer
In Visual Studio parlance, a solution is a set of code files and other resources that are used to build an
application. The files in a solution are arranged hierarchically, which might or might not reflect the
organization in the file system. The Solution Explorer is used to manage and browse the files in a
solution.
Team Explorer
Team Explorer is used to integrate the capabilities of Team Foundation Server, the Revision Control
System into the IDE (and the basis for Microsoft's CodePlex hosting environment for open source
projects). In addition to source control it provides the ability to view and manage individual work items
(including bugs, tasks and other documents) and to browse TFS statistics. It is included as part of a TFS
install and is also available as a download for Visual Studio separately.
[35][36]
Team Explorer is also
available as a stand-alone environment solely to access TFS services.
Data Explorer
Data Explorer is used to manage databases on Microsoft SQL Server instances. It allows creation and
alteration of database tables (either by issuing T-SQL commands or by using the Data designer). It can
also be used to create queries and stored procedures, with the latter in either T-SQL or in managed
code via SQL CLR. Debugging andIntelliSense support is available as well.
Server Explorer
The Server Explorer tool is used to manage database connections on an accessible computer. It is also
used to browse running Windows Services, performance counters,Windows Event Log and message
queues and use them as a datasource.
[37]

Dotfuscator Software Services Community Edition
Visual Studio includes a free 'light' version of PreEmptive Solutions' Dotfuscator product for code
obfuscation and application-size reduction.
[38]
Starting with Visual Studio 2010, this version of
Dotfuscator will include Runtime Intelligence capabilities that allow authors to gather end-user usage,
performance, and stability information from their applications running in production.
[39]

Text Generation Framework
Visual Studio includes a full text generation framework called T4 which enables Visual Studio to generate
text files from templates either in the IDE or via code.
ASP.NET Web Site Administration Tool
The ASP.NET Web Site Administration Tool allows for the configuration of ASP.NET websites.
Visual Studio Tools for Office
Visual Studio Tools for Office is a SDK and an add-in for Visual Studio that includes tools for developing
for the Microsoft Office suite. Previously (for Visual Studio .NET 2003 and Visual Studio 2005) it was a
separate SKU that supported only Visual C# and Visual Basic languages or was included in the Team
Suite. With Visual Studio 2008, it is no longer a separate SKU but is included with Professional and higher
editions. A separate runtime is required when deploying VSTO solutions.
Extensibility[edit]
See also: List of Microsoft Visual Studio Add-ins and Visual Studio Extensibility
Visual Studio allows developers to write extensions for Visual Studio to extend its capabilities. These
extensions "plug into" Visual Studio and extend its functionality. Extensions come in the form
of macros, add-ins, and packages. Macros represent repeatable tasks and actions that developers can
record programmatically for saving, replaying, and distributing. Macros, however, cannot implement
new commands or create tool windows. They are written using Visual Basic and are not
compiled.
[10]
Add-Ins provide access to the Visual Studio object model and can interact with the IDE
tools. Add-Ins can be used to implement new functionality and can add new tool windows. Add-Ins are
plugged into the IDE via COM and can be created in any COM-compliant languages.
[10]
Packages are
created using the Visual Studio SDK and provide the highest level of extensibility. They can create
designers and other tools, as well as integrate other programming languages. The Visual Studio SDK
provides unmanaged APIs as well as a managed API to accomplish these tasks. However, the managed
API isn't as comprehensive as the unmanaged one.
[10]
Extensions are supported in the Standard (and
higher) versions of Visual Studio 2005. Express Editions do not support hosting extensions.
Visual Studio 2008 introduced the Visual Studio Shell that allows for development of a customized
version of the IDE. The Visual Studio Shell defines a set of VSPackages that provide the functionality
required in any IDE. On top of that, other packages can be added to customize the installation. The
Isolated mode of the shell creates a new AppId where the packages are installed. These are to be started
with a different executable. It is aimed for development of custom development environments, either
for a specific language or a specific scenario. The Integrated mode installs the packages into the AppId of
the Professional/Standard/Team System editions, so that the tools integrate into these editions.
[17]
The
Visual Studio Shell is available as a free download.
After the release of Visual Studio 2008, Microsoft created the Visual Studio Gallery. It serves as the
central location for posting information about extensions to Visual Studio. Community developers as
well as commercial developers can upload information about their extensions to Visual Studio .NET 2002
through Visual Studio 2010. Users of the site can rate and review the extensions to help assess the
quality of extensions being posted. RSS feeds to notify users on updates to the site and tagging features
are also planned.
[40]

Supported products[edit]

This
secti
on n
eeds
addi
tion
al
citat
ions
for v
erifi
cati
on.
Plea
se
help
impr
ove
this
artic
le by
addi
ng
citati
ons
to
relia
ble
sour
ces.
Uns
ourc
ed
mat
erial
may
be
chall
enge
d
and
rem
oved
. (M
ay
2008
)
Microsoft Visual C++
Microsoft Visual C++ is Microsoft's implementation of the C and C++ compiler and associated languages-
services and specific tools for integration with the Visual Studio IDE. It can compile either in C mode or
C++ mode. For C, it follows the ISO C standard with parts of C99 specification along with MS-specific
additions in the form of libraries.
[41]
For C++, it follows the ANSI C++ specification along with a
few C++11 features.
[42]
It also supports the C++/CLI specification to write managed code, as well as
mixed-mode code (a mix of native and managed code). Microsoft positions Visual C++ for development
in native code or in code that contains both native as well as managed components. Visual C++
supports COM as well as the MFC library. For MFC development, it provides a set of wizards for creating
and customizing MFC boilerplate code, and creating GUI applications using MFC. Visual C++ can also use
the Visual Studio forms designer to design UI graphically. Visual C++ can also be used with the Windows
API. It also supports the use of intrinsic functions,
[43]
which are functions recognized by the compiler
itself and not implemented as a library. Intrinsic functions are used to expose theSSE instruction set of
modern CPUs. Visual C++ also includes the OpenMP (version 2.0) specification.
[44]

Microsoft Visual C#
Microsoft Visual C#, Microsoft's implementation of the C# language, targets the .NET Framework, along
with the language services that lets the Visual Studio IDE support C# projects. While the language
services are a part of Visual Studio, the compiler is available separately as a part of the .NET Framework.
The Visual C# 2008, 2010 and 2012 compilers support versions 3.0, 4.0 and 5.0 of the C# language
specifications, respectively. Visual C# supports the Visual Studio Class designer, Forms designer, and
Data designer among others.
[45]

Microsoft Visual Basic
Microsoft Visual Basic is Microsoft's implementation of the VB.NET language and associated tools and
language services. It was introduced with Visual Studio .NET (2002). Microsoft has positioned Visual
Basic for Rapid Application Development.
[46][47]
Visual Basic can be used to author both console
applications as well as GUI applications. Like Visual C#, Visual Basic also supports the Visual Studio Class
designer, Forms designer, and Data designer among others. Like C#, the VB.NET compiler is also
available as a part of .NET Framework, but the language services that let VB.NET projects be developed
with Visual Studio, are available as a part of the latter.
Microsoft Visual Web Developer
Microsoft Visual Web Developer is used to create web sites, web applications and web services using
ASP.NET. Either C# or VB.NET languages can be used. Visual Web Developer can use the Visual Studio
Web Designer to graphically design web page layouts.
Team Foundation Server
Included only with Visual Studio Team System, Team Foundation Server is intended for
collaborative software development projects and acts as the server-side backend providing source
control, data collection, reporting, and project-tracking functionality. It also includes the Team Explorer,
the client tool for TFS services, which is integrated inside Visual Studio Team System.
Previous products[edit]
Visual FoxPro
Visual FoxPro is a data-centric object-oriented and procedural programming language produced
by Microsoft. It derives from FoxPro (originally known as FoxBASE) which was developed by Fox
Software beginning in 1984. Visual FoxPro is tightly integrated with its own relational database engine,
which extends FoxPro's xBase capabilities to support SQL queries and data manipulation. Visual FoxPro
is a full-featured,
[48]
dynamic programming language that does not require the use of an additional
general-purpose programming environment. Microsoft announced in 2007 that Visual FoxPro has been
discontinued after version 9 Service Pack 2, but will remain supported until 2015.
[49]

Visual SourceSafe
Microsoft Visual SourceSafe is a source control software package oriented towards small software-
development projects. The SourceSafe database is a multi-user, multi-process file-system database,
using the Windows file system database primitives to provide locking and sharing support. All versions
are multi-user, using SMB (file server) networking.
[50][51][52]
However, with Visual SourceSafe 2005,
other clientserver modes were added, Lan Booster and VSS Internet (which used HTTP/HTTPS). Visual
SourceSafe 6.0 was available as a stand-alone product
[53]
and was included with Visual Studio 6.0, and
other products such as Office Developer Edition. Visual SourceSafe 2005 was available as a stand-alone
product and included with the 2005 Team Suite. Team Foundation Server has superseded VSS as
Microsoft's recommended platform for source control.
Microsoft Visual J++/Microsoft Visual J#
Microsoft Visual J++ was Microsoft's implementation of the Java language (with Microsoft-specific
extensions) and associated language services. It was discontinued as a result of litigation from Sun
Microsystems, and the technology was recycled into Visual J#, Microsoft's Java compiler for .NET
Framework. J# was available with Visual Studio 2005 but was discontinued in Visual Studio 2008.
Visual InterDev
Visual InterDev was used to create web applications using Microsoft Active Server Pages (ASP)
technologies. It supports code completion and includes database server management tools. It has been
replaced with Microsoft Visual Web Developer.
Editions[edit]
Microsoft Visual Studio is available in the following editions or SKUs:
[54]

Visual Studio Express[edit]
Visual Studio Express Editions are a set of free lightweight individual IDEs which are provided as
stripped-down versions of the Visual Studio IDE on a per-platform basis or per-language basis, i.e., it
installs the development tools for the supported platforms (web, Windows, phone) or supported
development languages (VB, C#) onto individual Visual Studio Shell AppIds. It includes only a small set of
tools as compared to the other systems. Versions prior to 2013 Update 2 do not include support for
plug-ins. x64 compilers are not included in the Visual Studio Express edition IDEs, but are available as
part of a Windows Software Development Kit that can be installed separately.
[55]
After an initial
announcement
[56]
that the Express 2012 release would be restricted to creating Windows 8 Metro-style
applications, Microsoft responded to negative developer feedback by reversing that decision and
announcing that desktop application development would also be supported.
[57]
Microsoft targets the
Express IDEs at students and hobbyists. Express editions do not use the full MSDN Library but use the
MSDN Essentials Library. The languages available as part of the Express IDEs are:
[58]

Visual Basic Express
Visual C++ Express
Visual C# Express
Visual Web Developer Express
Express for Windows Phone
Visual Studio Professional[edit]
Visual Studio Professional Edition provides an IDE for all supported development languages. As of Visual
Studio 2010, the Standard edition was dropped.
[59]
MSDN support is available as MSDN Essentials or the
full MSDN library depending on licensing. It supports XML and XSLT editing, and can create deployment
packages that only use ClickOnceand MSI. It includes tools like Server Explorer and integration
with Microsoft SQL Server also. Windows Mobile development support was included in Visual Studio
2005 Standard, however, with Visual Studio 2008, it is only available in Professional and higher editions.
Windows Phone 7 development support was added to all editions in Visual Studio 2010. Development
for Windows Mobile is no longer supported in Visual Studio 2010; it is superseded by Windows Phone 7.
Visual Studio Premium[edit]
Visual Studio Premium Edition includes all of the tools in Visual Studio Professional and adds additional
functionality such as code metrics, static code analysis, and database unit testing.
Visual Studio Ultimate[edit]
Visual Studio Ultimate provides a set of software and database development, collaboration, metrics,
architecture, testing and reporting tools in addition to the features provided by Visual Studio Premium.
As of Visual Studio 2010, the Team Suite edition was renamed to the Ultimate edition.
[59]
Visual Studio
Ultimate offers a superset of toolsets based on theApplication Lifecycle Management (ALM) role it is
being used for.
Visual Studio Test Professional[edit]
Visual Studio Test Professional is an edition which was introduced with Visual Studio 2010. Its focus is
aimed at the dedicated tester role and includes support for the management of test environments, the
ability to start and report on tests and to connect to Team Foundation Server. It does not include
support for development or authoring of tests.
[54]

Editions feature grid[edit]
Editions feature grid
[54]

Product Extensions
Projects
templates
MSDN
integration
Debugging Profiling
Static
analysis
IntelliTrace
Unit
test
Code
coverage
Coded
UI
Test
impact
Load
testing
Lab
management
Architecture
and
Windows
Phonedevelopment
test analysis modelling
Professional Yes Yes
Full or
Essentials
Yes Yes No No Yes No No No No No No Yes
Premium Yes Yes Full Yes Yes Yes No Yes Yes Yes Yes No No Read-only Yes
Ultimate Yes Yes Full Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
Test
Professional
No No Full No No No No No No No Yes No Yes No No
History[edit]
Prior to Visual Studio Version 4.0, there were Visual Basic 3, Visual C++, Visual FoxPro and Visual
SourceSafe as separate products.
Product
name
Codename
Internal
version
Supported
.NET
Framework
versions
Release
date
Visual
Studio
N/A 4.0 N/A April 1995
Visual
Studio
97
Boston 5.0 N/A
February
1997
Visual
Studio
6.0
Aspen 6.0 N/A June 1998
Visual
Studio
.NET
(2002)
Rainier 7.0 1.0
February
13, 2002
Visual
Studio
.NET
2003
Everett 7.1 1.1
April 24,
2003
Visual
Studio
Whidbey 8.0 2.0, 3.0
November
7, 2005
2005
Visual
Studio
2008
Orcas 9.0
2.0, 3.0,
3.5
November
19, 2007
Visual
Studio
2010
Dev10/Rosario 10.0
2.0, 3.0,
3.5, 4.0
April 12,
2010
Visual
Studio
2012
Dev11 11.0
2.0, 3.0,
3.5, 4.0,
4.5, 4.5.1,
4.5.2
September
12, 2012
Visual
Studio
2013
Dev12 12.0
2.0, 3.0,
3.5, 4.0,
4.5, 4.5.1,
4.5.2
October
17, 2013
Visual Studio 97[edit]
Microsoft first released Visual Studio (codenamed Boston,
[60]
for the city of the same name, thus
beginning the VS codenames related to places)
[60]
in 1997, bundling many of its programming tools
together for the first time. Visual Studio 97 came in two editions: Visual Studio Professional and Visual
Studio Enterprise, the professional edition has 3 CDs, and the enterprise on 4 CDs. It included Visual J++
1.1 for Java programming and introduced Visual InterDev for creating dynamically generated web sites
using Active Server Pages.
[citation needed]
There was a single companion CD that contained the Microsoft
Developer Network library.
Visual Studio 97 was Microsoft's first attempt at using the same development environment for multiple
languages. Visual J++, InterDev, and the MSDN Library had all been using the same 'environment', called
Developer Studio.
[61]

Visual Studio was also sold as a bundle with the separate IDEs used for Visual C++, Visual Basic and
Visual FoxPro.
[17]

Visual Studio 6.0 (1998)[edit]
The next version, version 6.0 (codenamed Aspen, after the ski resort in Colorado),
[citation needed]
was
released in June 1998 and is the last version to run on the Windows 9xplatform.
[62]
Each version of each
language in part also settled to v6.0, including Visual J++ which was prior v1.1, and Visual InterDev at the
1st release. The v6 edition of Microsoft was the core environment for the next four releases to provide
programmers with an integrated look-alike platform. This led Microsoft to transition the development
on the platform independent .NET Framework.
Visual Studio 6.0 was the last version to include Visual J++,
[63][64]
which Microsoft removed as part of a
settlement with Sun Microsystems that required Microsoft Internet Explorer not to provide support for
the Java virtual machine.
Visual Studio 6.0 came in two editions: Professional and Enterprise.
[65]
The Enterprise edition contained
extra features not found in Professional edition, including:
Application Performance Explorer
Automation Manager
Microsoft Visual Modeler
RemAuto Connection Manager
[citation needed]

Visual Studio Analyzer
Visual Studio .NET (2002)[edit]
Microsoft released Visual Studio .NET (VS.NET), codenamed Rainier (for Washington's Mount Rainier), in
February 2002 (the beta version was released via Microsoft Developer Network in 2001). The biggest
change was the introduction of a managed code development environment using the .NET Framework.
Programs developed using .NET are not compiled to machine language (like C++ is, for example) but
instead to a format called Microsoft Intermediate Language (MSIL) or Common Intermediate
Language (CIL). When a CIL application executes, it is compiled while being executed into the
appropriate machine language for the platform it is being executed on, thereby making code portable
across several platforms. Programs compiled into CIL can be executed only on platforms which have an
implementation of Common Language Infrastructure. It is possible to run CIL programs in Linux or Mac
OS X using non-Microsoft .NET implementations like Mono and DotGNU.
This was the first version of Visual Studio to require an NT-based Windows platform.
[66]
The installer
enforces this requirement.
Visual Studio .NET 2002 shipped in four editions: Academic, Professional, Enterprise Developer, and
Enterprise Architect. Microsoft introduced C# (C-sharp), a new programming language, that targets
.NET. It also introduced the successor to Visual J++ called Visual J#. Visual J# programs use Java's
language-syntax. However, unlike Visual J++ programs, Visual J# programs can only target the .NET
Framework, not the Java Virtual Machine that all other Java tools target.
Visual Basic changed drastically to fit the new framework, and the new version was called Visual Basic
.NET. Microsoft also added extensions to C++, called Managed Extensions for C++, so .NET programs
could be created in C++.
Visual Studio .NET can produce applications targeting Windows (using the Windows Forms part of the
.NET Framework), the Web (using ASP.NET and Web Services) and, with an add-in, portable devices
(using the .NET Compact Framework).
The Visual Studio .NET environment was rewritten to partially use .NET. All languages are versions of
Visual Studio, it has a cleaner interface and greater cohesiveness.
[citation needed]
It is also more customizable
with tool windows that automatically hide when not in use. While Visual FoxPro 7 started out as part of
Visual Studio .NET 2002, and early VS betas allowed debugging inside VFP-based DLLs, it was removed
before release to follow its own development track.
[citation needed]

The internal version number of Visual Studio .NET 2002 is version 7.0. Microsoft released Service Pack 1
for Visual Studio .NET 2002 in March, 2005.
[67]

Visual Studio .NET 2003[edit]
In April 2003, Microsoft introduced a minor upgrade to Visual Studio .NET called Visual Studio .NET
2003, codenamed Everett (for the city of the same name). It includes an upgrade to the .NET
Framework, version 1.1, and is the first release to support developing programs for mobile devices,
using ASP.NET or the .NET Compact Framework. The Visual C++ compiler's standards-compliance
improved, especially in the area of partial template specialization. Visual C++ Toolkit 2003 is a version of
the same C++ compiler shipped with Visual Studio .NET 2003 without the IDE that Microsoft made freely
available. As of 2010 it is no longer available and the Express Editions have superseded it. The internal
version number of Visual Studio .NET 2003 is version 7.1 while the file format version is 8.0.
[68]

Visual Studio .NET 2003 shipped in four editions: Academic, Professional, Enterprise Developer, and
Enterprise Architect. The Visual Studio .NET 2003 Enterprise Architect edition includes an
implementation of Microsoft Visio 2002's modeling technologies, including tools for creating Unified
Modeling Language-based visual representations of an application's architecture, and an object-role
modeling (ORM) and logical database-modeling solution. "Enterprise Templates" were also introduced,
to help larger development teams standardize coding styles and enforce policies around component
usage and property settings.
Service Pack 1 was released September 13, 2006.
[69]

Visual Studio 2005[edit]
Visual Studio 2005, codenamed Whidbey (a reference to Whidbey Island in Puget Sound), was released
online in October 2005 and to retail stores a few weeks later. Microsoft removed the ".NET" moniker
from Visual Studio 2005 (as well as every other product with .NET in its name), but it still primarily
targets the .NET Framework, which was upgraded to version 2.0. It is the last version available
for Windows 2000 and also the last version to be able to target Windows 98, Windows Me and Windows
NT 4.0 for C++ applications.
[70][71]

Visual Studio 2005's internal version number is 8.0 while the file format version is 9.0.
[68]
Microsoft
released Service Pack 1 for Visual Studio 2005 on 14 December 2006.
[72]
An additional update for Service
Pack 1 that offers Windows Vista compatibility was made available on 3 June 2007.
[73]

Visual Studio 2005 was upgraded to support all the new features introduced in .NET Framework 2.0,
including generics and ASP.NET 2.0. The IntelliSense feature in Visual Studio was upgraded for generics
and new project types were added to support ASP.NET web services. Visual Studio 2005 also includes a
local web server, separate from IIS, that can host ASP.NET applications during development and testing.
It also supports all SQL Server 2005 databases. Database designers were upgraded to support
theADO.NET 2.0, which is included with .NET Framework 2.0. C++ also got a similar upgrade with the
addition of C++/CLI which is slated to replace the use of Managed C++.
[74]
Other new features of Visual
Studio 2005 include the "Deployment Designer" which allows application designs to be validated before
deployments, an improved environment for web publishing when combined with ASP.NET 2.0 and load
testing to see application performance under various sorts of user loads. Starting with the 2005 edition,
Visual Studio also added extensive 64-bit support. While the host development environment itself is
only available as a 32-bit application, Visual C++ 2005 supports compiling for x86-64(AMD64 and Intel
64) as well as IA-64 (Itanium).
[75]
The Platform SDK included 64-bit compilers and 64-bit versions of the
libraries.
Microsoft also announced Visual Studio Tools for Applications as the successor to Visual Basic for
Applications (VBA) and VSA (Visual Studio for Applications). VSTA 1.0 was released to manufacturing
along with Office 2007. It is included with Office 2007 and is also part of the Visual Studio 2005 SDK.
VSTA consists of a customized IDE, based on the Visual Studio 2005 IDE, and a runtime that can be
embedded in applications to expose its features via the .NET object model. Office 2007 applications
continue to integrate with VBA, except for InfoPath 2007 which integrates with VSTA. Version 2.0 of
VSTA (based on Visual Studio 2008) was released in April, 2008.
[76]
It is significantly different from the
first version, including features such as dynamic programming and support for WPF, WCF, WF, LINQ, and
.NET 3.5 Framework.
Visual Studio 2008[edit]
Visual Studio 2008,
[77]
and Visual Studio Team System 2008
[78][79]
codenamed Orcas (a reference
to Orcas Island, also an island in Puget Sound, like Whidbey for the previous 2005 release), were
released to MSDN subscribers on 19 November 2007 alongside .NET Framework 3.5. The source code
for the Visual Studio 2008 IDE is available under a shared source license to some of Microsoft's partners
and ISVs.
[80]
Microsoft released Service Pack 1 for Visual Studio 2008 on 11 August 2008.
[81]
The internal
version number of Visual Studio 2008 is version 9.0 while the file format version is 10.0. Visual Studio
2008 is the last version to support targeting Windows 2000 for C++ applications.
[82]

Visual Studio 2008 is focused on development of Windows Vista, 2007 Office system, and Web
applications. For visual design, a new Windows Presentation Foundation visual designer and a
new HTML/CSS editor influenced by Microsoft Expression Web are included. J# is not included. Visual
Studio 2008 requires .NET 3.5 Framework and by default configures compiled assemblies to run on .NET
Framework 3.5, but it also supports multi-targeting which lets the developers choose which version of
the .NET Framework (out of 2.0, 3.0, 3.5, Silverlight CoreCLR or .NET Compact Framework) the assembly
runs on. Visual Studio 2008 also includes new code analysis tools, including the new Code Metricstool
(only in Team Edition and Team Suite Edition).
[83]
For Visual C++, Visual Studio adds a new version
of Microsoft Foundation Classes (MFC 9.0) that adds support for the visual styles and UI controls
introduced with Windows Vista.
[84]
For native and managed code interoperability, Visual C++ introduces
the STL/CLR, which is a port of the C++Standard Template Library (STL) containers and algorithms
to managed code. STL/CLR defines STL-like containers, iterators and algorithms that work
on C++/CLI managedobjects.
[85][86]

Visual Studio 2008 features include an XAML-based designer (codenamed Cider), workflow
designer, LINQ to SQL designer (for defining the type mappings and object encapsulation for SQL Server
data), XSLT debugger, JavaScript Intellisense support, JavaScript Debugging support, support
for UAC manifests, a concurrent build system, among others.
[87]
It ships with an enhanced set of UI
widgets, both for Windows Forms and WPF. It also includes a multithreaded build engine (MSBuild) to
compile multiple source files (and build the executable file) in a project across
multiple threads simultaneously. It also includes support for compiling PNG-
compressed icon resources introduced in Windows Vista. An updated XML Schema designer will ship
separately some time after the release of Visual Studio 2008.
[88]

The Visual Studio debugger includes features targeting easier debugging of multi-threaded applications.
In debugging mode, in the Threads window, which lists all the threads, hovering over a thread will
display the stack trace of that thread in tooltips.
[89]
The threads can directly be named and flagged for
easier identification from that window itself.
[90]
In addition, in the code window, along with indicating
the location of the currently executing instruction in the current thread, the currently executing
instructions in other threads are also pointed out.
[90][91]
The Visual Studio debugger supports integrated
debugging of the .NET 3.5 Framework Base Class Library (BCL) which can dynamically download the BCL
source code and debug symbols and allow stepping into the BCL source during debugging.
[92]
As of
2010 a limited subset of the BCL source is available, with more library support planned for later.
Visual Studio 2010[edit]
On 12-4-2010, Microsoft released Visual Studio 2010, codenamed Dev10,
[93]
and .NET Framework 4.
[94][95]

The Visual Studio 2010 IDE was redesigned which, according to Microsoft, clears the UI organization and
"reduces clutter and complexity."
[96]
The new IDE better supports multiple document windows and
floating tool windows,
[96]
while offering better multi-monitor support. The IDE shell has been rewritten
using the Windows Presentation Foundation (WPF),
[97]
whereas the internals have been redesigned
using Managed Extensibility Framework (MEF) that offers more extensibility points than previous
versions of the IDE that enabled add-ins to modify the behavior of the IDE.
[98]

The new multi-paradigm ML-variant F# forms part of Visual Studio 2010.
[99]

Visual Studio 2010 comes with .NET Framework 4 and supports developing applications
targeting Windows 7.
[96]
It supports IBM DB2 and Oracle databases, in addition toMicrosoft SQL
Server.
[96]
It has integrated support for developing Microsoft Silverlight applications, including an
interactive designer.
[96]
Visual Studio 2010 offers several tools to make parallel programming simpler: in
addition to the Parallel Extensions for the .NET Framework and the Parallel Patterns Library for native
code, Visual Studio 2010 includes tools for debugging parallel applications. The new tools allow the
visualization of parallel Tasks and their runtime stacks.
[100]
Tools for profiling parallel applications can be
used for visualization of thread wait-times and thread migrations across processor cores.
[101]
Intel and
Microsoft have jointly pledged support for a new Concurrency Runtime in Visual Studio 2010
[102]
and
Intel has launched parallelism support in Parallel Studio as an add-on for Visual Studio.
[103]

The Visual Studio 2010 code editor now highlights references; whenever a symbol is selected, all other
usages of the symbol are highlighted.
[104]
It also offers a Quick Searchfeature to incrementally
search across all symbols in C++, C# and VB.NET projects. Quick Search supports substring matches
and camelCase searches.
[104]
The Call Hierarchyfeature allows the developer to see all the methods that
are called from a current method as well as the methods that call the current one.
[104]
IntelliSense in
Visual Studio supports a consume-first mode which developers can opt into. In this mode, IntelliSense
will not auto-complete identifiers; this allows the developer to use undefined identifiers (like variable or
method names) and define those later. Visual Studio 2010 can also help in this by automatically defining
them, if it can infer their types from usage.
[104]
Current versions of Visual Studio have a known bug which
makes IntelliSense unusable for projects using pure C (not C++).
[105]

Visual Studio 2010 features a new Help System replacing the MSDN Library viewer. The Help System is
no longer based on Microsoft Help 2 and does not use Microsoft Document Explorer. Dynamic help
containing links to related help topics based on where the developer was in the IDE has been removed
in the shipping product,
[106]
but can be added back using a download from Microsoft.
[107]

Visual Studio 2010 no longer supports development for Windows Mobile prior to Windows Phone 7.
Visual Studio 2010 Service Pack 1 was released in March, 2011.
[108]

Visual Studio Ultimate 2010
Visual Studio Ultimate 2010 replaces Visual Studio 2008 Team Suite.
[109]
It includes new modeling
tools,
[110]
such as the Architecture Explorer, which graphically displays projects and classes and the
relationships between them.
[111][112]
It supports UML activity diagram, component diagram, (logical) class
diagram, sequence diagram, and use case diagram.
[112]
Visual Studio Ultimate 2010 also includes Test
Impact Analysis which provides hints on which test cases are impacted by modifications to the source
code, without actually running the test cases.
[113]
This speeds up testing by avoiding running unnecessary
test cases.
Visual Studio Ultimate 2010 also includes a Historical Debugger for managed code called IntelliTrace.
Unlike a traditional debugger, that records only the currently active stack, IntelliTrace records all events,
such as prior function calls, method parameters, events and exceptions. This allows the code execution
to be rewound in case a breakpoint wasn't set where the error occurred.
[114]
Debugging with IntelliTrace
will cause the application to run more slowly than debugging without it, and will use more memory as
additional data needs to be recorded. Microsoft allows configuration of how much data should be
recorded, in effect allowing developers to balance speed of execution and resource usage. TheLab
Management component of Visual Studio Ultimate 2010 uses virtualization to create a similar execution
environment for testers and developers. The virtual machines are tagged with checkpoints which can
later be investigated for issues, as well as to reproduce the issue.
[115]
Visual Studio Ultimate 2010 also
includes the capability to record test runs that capture the specific state of the operating environment
as well as the precise steps used to run the test. These steps can then be played back to reproduce
issues.
[116]

Visual Studio 2012[edit]

Microsoft Visual Studio 2012 logo
Final build of Visual Studio 2012 was announced on August 1, 2012 and the official launch event was
held on September 12, 2012.
[117]

Unlike prior versions, Visual Studio 2012 cannot record and play macros and the macro editor has been
removed.
[118]

A major new feature is support for WinRT and C++/CX (Component Extensions). Support for C++
AMP (GPGPU programming) is also included.
[119]

On 16 September 2011 a complete 'Developer Preview' of Visual Studio 11 was published on Microsoft's
website. Visual Studio 11 Developer Preview requires Windows 7, Windows Server 2008 R2, Windows 8,
or later operating systems.
[120]
Versions of Microsoft Foundation Class Library (MFC) and C runtime (CRT)
included with this release cannot produce software that is compatible with Windows XP or Windows
Server 2003 except by using native multi-targeting and foregoing the newest libraries, compilers, and
headers.
[121]
However, on June 15, 2012, a blog post on the VC++ Team blog announced that based on
customer feedback, Microsoft would re-introduce native support for Windows XP targets (though not
for XP as a development platform) in a version of Visual C++ to be released later in the fall of
2012.
[122]
"Visual Studio 2012 Update 1" (Visual Studio 2012.1) was released in November 2012. This
update added support for Windows XP targets and also added other new tools and features (e.g.
improved diagnostics and testing support for Windows Store apps).
[123]

On 24 August 2011, a blog post by Sumit Kumar, a Program Manager on the Visual C++ team, listed
some of the features of the upcoming version of the Visual Studio C++ IDE:
[124]

Semantic Colorization: Improved syntax coloring, various user-defined or default colors for C++
syntax such as macros, enumerations, typenames, functions etc.
[124]

Reference Highlighting: Selection of a symbol highlights all of the references to that symbol
within scope.
[124]

New Solution Explorer: New solution explorer allows for visualization of class and file
hierarchies within a solution/project. Searching for calls to functions and uses of classes will be
supported.
[124]

Automatic Display of IntelliSense list: IntelliSense will automatically be displayed whilst typing
code, as opposed to previous versions where it had to be explicitly invoked through use of
certain operators (i.e. the scope operator (::)) or shortcut keys (Ctrl-Space or Ctrl-J).
[124]

Member List Filtering: IntelliSense uses fuzzy logic to determine which
functions/variables/types to display in the list.
[124]

Code Snippets: Code snippets are included in IntelliSense to automatically generate relevant
code based on the user's parameters, custom code snippets can be created.
[124]

The source code of Visual Studio 2012 consists of approximately 50 million lines of code.
[125]

Interface controversies[edit]
During Visual Studio 11 beta, Microsoft eliminated the use of color within tools except in cases where
color is used for notification or status change purposes. However, the use of color was returned after
feedback demanding more contrast, differentiation, clarity and "energy" in the user interface.
[126][127]

In Visual Studio 2012 RC, a major change to the interface is the use of all-caps menu bar, as part of the
campaign to keep Visual Studio consistent with the direction of other Microsoft user experiences, and to
provide added structure to the top menu bar area.
[128]
The redesign was criticized for being hard to read,
and going against the trends started by developers to use CamelCase to make words stand out
better.
[129]
Some speculated that the root cause of the redesign was to incorporate the simplistic look
and feel of Metro apps.
[130]
However, there exists a Windows Registry option to allow users to disable
the all-caps interface.
[131]

Visual Studio 2013[edit]
The preview for Visual Studio 2013 was announced at the Build 2013 conference and made available on
June 26, 2013.
[132]
The Visual Studio 2013 RC (Release Candidate) was made available to developers on
MSDN on September 9, 2013.
[133]

The final release of Visual Studio 2013 became available for download on October 17, 2013 along with
.NET 4.5.1.
[134]
Visual Studio 2013 officially launched on November 13, 2013 at a virtual launch event
keynoted by S. Somasegar and hosted on events.visualstudio.com.
[135]
"Visual Studio 2013 Update 1"
(Visual Studio 2013.1) was released on January 20, 2014.
[136]
Visual Studio 2013.1 is a targeted update
that addresses some key areas of customer feedback.
[137]
"Visual Studio 2013 Update 2" (Visual Studio
2013.2) was released on May 12, 2014.
[138]
Visual Studio 2013 Update 3 was released on August 4, 2014.
With this update, Visual Studio provides an option to disable the all-caps menus, which was introduced
in VS2012.
[139]

Visual Studio "14"[edit]
The first CTP for Visual Studio "14" was announced and made available on June 3, 2014.
[140]
The second
CTP for Visual Studio "14" was announced and made available on July 8, 2014.
[141]
CTP 3 was released on
August 18, 2014
[142]
and CTP 4 was released on October 6, 2014
[143]

Like the previous version, the help file can be consulted on-line or off-line (after downloading it).
However in this version, not all help can be consulted off-line. Help related to the Win32 API can only be
consulted on-line therefore requiring a constant internet connection.
Visual Studio Application Lifecycle Management[edit]
Main article: Visual Studio Application Lifecycle Management
Visual Studio Application Lifecycle Management is a collection of integrated software development
tools developed by Microsoft. These tools include IDEs, source control, work items, collaboration,
metrics, and reporting tools. Visual Studio Application Lifecycle Management consists of four
products:
[144]

Visual Studio, which provides an IDE (Integrated Development Environment) for development
and client side interfaces for the other products.
Visual Studio Test Professional, which provides an IDE for software testers to create and execute
tests.
Team Foundation Server (aka TFS), which provides Source Code collaboration and data storage.
Visual Studio Online, which is a TFS hosted in the Cloud and offered as a service.
Visual Studio Lab Management, which provides a way for software testers to create and manage
virtual environments.
In Visual Studio 2005 and Visual Studio 2008 the brand was known as Microsoft Visual Studio Team
System (VSTS); however, in October 2009, as part of the Visual Studio 2010 release
(codenamed Rosario
[145][146]
), the Team System brand was renamed to Microsoft Visual Studio ALM.
[147]

Visual Studio LightSwitch[edit]
Microsoft Visual Studio LightSwitch is an extension and framework specifically tailored for creating line-
of-business applications built on existing .NET technologies and Microsoft platforms. The applications
produced are architecturally 3-tier: the user interface runs on either Microsoft Silverlight, HTML 5
client
[148]
or as a SharePoint 2013 app;
[149]
the logic and data-access tier is built on WCF Data
Services and exposed as an OData feed hosted
[150]
in ASP.NET; and the primary data storage
supports Microsoft SQL Server Express,Microsoft SQL Server and Microsoft SQL Azure. LightSwitch also
supports other data sources including Microsoft SharePoint, OData and WCF RIA Services.
LightSwitch includes graphical designers for designing entities and entity relationships, entity queries,
and UI screens. Business logic may be written in either Visual Basic orVisual C#. LightSwitch is included
with Visual Studio 2012 Professional and higher.
The user interface layer is now an optional component when deploying a LightSwitch solution, allowing
a service only deployment.
[151]

The first version of Visual Studio LightSwitch, released July 26, 2011,
[152]
had many differences from the
current release of LightSwitch. Notably the tool was purchased and installed as a stand-alone product. If
Visual Studio 2010 Professional or higher was already installed on the machine, LightSwitch would
integrate into that.
[153]
The second major difference was the middle tier was built and exposed using
WCF RIA Services.
See also[edit]
Microsoft Visual Studio Express
Microsoft Small Basic
References[edit]
1. Jump up^ "Description of Visual Studio 2013 Update 4 CTP 1". Retrieved 2014-09-03.
2. Jump up^ "Visual Studio "14" CTPs". Microsoft. Retrieved 2014-08-18.
3. Jump up^ Lextrait, Vincent (January 2010). "The Programming Languages Beacon,
v10.0". Retrieved 5 January 2010.
4. Jump up^ Take Visual Studio 2010 For a Test Drive
5. Jump up^ Brenner, Pat (19 July 2013). "C99 library support in Visual Studio 2013". Visual
C++ Team Blog. Microsoft. Retrieved 3 August 2014.
6. Jump up^ http://research.microsoft.com/en-us/um/cambridge/projects/fsharp/
7. Jump up^ Microsoft DreamSpark - Software Catalog. Dreamspark.com (2013-05-31).
Retrieved on 2013-10-23.
8. Jump up^ Visual Studio 2005 SDK. "Visual Studio Development Environment
Model". Microsoft. Retrieved 2008-01-01.
9. Jump up^ Visual Studio 2005 SDK. "VSPackages and Managed Package Framework
(MPF)".Microsoft. Retrieved 2008-01-01.
10. ^ Jump up to:
a

b

c

d
Vijay Mehta. "Extending Visual Studio 2005". CodeGuru. Retrieved
2008-01-01.
11. ^ Jump up to:
a

b

c
Visual Studio 2005 SDK. "Language Service Essentials". Microsoft.
Retrieved 2008-01-01.
12. Jump up^ Visual Studio SDK. "Babel Package Overview". Microsoft. Retrieved 2008-01-
01.
13. Jump up^ Visual Studio SDK. "Managed Language Services overview". Microsoft.
Retrieved 2008-01-01.
14. Jump up^ "Source Control Integration Essentials". MSDN. Retrieved 2010-09-19.
15. Jump up^ "Source Control Plug-ins". MSDN. Retrieved 2010-09-19.
16. ^ Jump up to:
a

b
Alin Constantin. "Microsoft Source Code Control Interface". Retrieved
2008-01-03.
17. ^ Jump up to:
a

b

c
"Visual Studio Extensibility". CoDe Magazine. Retrieved 2008-01-01.
18. ^ Jump up to:
a

b
Scott Guthrie. "Nice VS 2008 Code Editing Improvements". Retrieved
2007-12-31.
19. Jump up^ Scott Guthrie. "VS 2008 JavaScript IntelliSense". Retrieved 2007-12-31.
20. Jump up^ Scott Guthrie. "VS 2008 Web Designer and CSS Support". Retrieved 2007-12-
31.
21. ^ Jump up to:
a

b
"Visual Studio .NET - Top 10 Code Editor Tips and Tricks". MSDN TV.
Retrieved 2007-12-31.
22. Jump up^ "Background compilation, part 1". Retrieved 2007-12-31.
23. ^ Jump up to:
a

b
Matthew Gertz. "Scaling Up: The Very Busy Background
Compiler". MSDNMagazine. Retrieved 2007-12-31.
24. Jump up^ Thomas F. Abraham. "Background Compilation in Visual Studio 2002, 2003
and 2005". Retrieved 2007-12-31.
25. Jump up^ "Attaching to Running Processes". MSDN. Retrieved 2007-12-31.
26. Jump up^ "Dumps". MSDN. Retrieved 2007-12-31.
27. Jump up^ "Breakpoint Overview". MSDN. Retrieved 2007-12-31.
28. ^ Jump up to:
a

b
"Code Stepping Overview". MSDN. Retrieved 2007-12-31.
29. Jump up^ "Edit and Continue". MSDN. Retrieved 2007-12-31.
30. Jump up^ "Debugging at Design Time". MSDN. Retrieved 2007-12-31.
31. Jump up^ "Binding Controls to Data in Visual Studio". Msdn.microsoft.com. Retrieved
2013-06-15.
32. Jump up^ "MSDN TV: Introducing "Cider" - The Visual Studio Designer for WPF
("Avalon")".MSDN TV. Retrieved 2008-01-01.
33. Jump up^ "MVC : The Official Microsoft ASP.NET Site". Asp.net. 2013-05-10. Retrieved
2013-06-15.
34. Jump up^ "Dynamic Data Content Map". Asp.net. Retrieved 2013-06-15.
35. Jump up^ "Team Explorer 2005 (.img file)". Microsoft. Retrieved 2007-03-05.
36. Jump up^ "Visual Studio Team System 2008 Team Explorer". Microsoft. Retrieved 2007-
03-05.
37. Jump up^ "How to use the Server Explorer in Visual Studio .NET and Visual Studio
2005".Microsoft. Retrieved 2008-01-01.
38. Jump up^ "Dotfuscator Community Edition 4.0". Msdn.microsoft.com. Retrieved 2009-
09-06.
39. Jump up^ "Microsoft and PreEmptive Solutions to Provide Application Feature
Monitoring, Usage Expiry and Tamper Defense in Visual Studio 2010: Post-build utility
utilizes software plus services and instrumentation to improve application security,
portfolio management and usability". Microsoft.com. 2008-10-27. Retrieved 2009-09-
06.
40. Jump up^ Cangialosi, Anthony (6 June 2008). "The Visual Studio Gallery gets a little
more community friendly". Anthony @ MS. Microsoft. Retrieved 3 August 2014.
41. Jump up^ Visual C++ Team. "ISO C Standard Update". MSDN Blogs. Retrieved 2008-01-
02.
42. Jump up^ Visual C++ team. "Update On The C++-0x Language Standard". MSDN Blogs.
43. Jump up^ "Compiler Intrinsics". MSDN. Retrieved 2008-01-02.
44. Jump up^ "OpenMP in Visual C++ (Visual Studio 2005)". MSDN. Microsoft. 2005.
Retrieved 27 April 2013.
45. Jump up^ "Visual C# (MSDN)". MSDN. Retrieved 2009-06-01.
46. Jump up^ "Make Your Components Really RAD with Visual Studio .NET Property
Browser". October 2010.
47. Jump up^ "What's New in Visual Basic and Visual C#". October 2010.
48. Jump up^ "Visual FoxPro Home, under Visual FoxPro 9.0 Overview". MSDN. Retrieved
2014-03-08.
49. Jump up^ "A Message to the Community". MSDN. Retrieved 2008-01-02.
50. Jump up^ De, Alan. "Visual SourceSafe: Microsoft's Source Destruction System".
Highprogrammer.com. Retrieved 2009-09-06.
51. Jump up^ "INFO: Required Network Rights for the SourceSafe Directories".
Support.microsoft.com. 2005-02-24. Retrieved 2009-09-06.
52. Jump up^ "Microsoft Visual SourceSafe Best Practices". Msdn.microsoft.com. Retrieved
2009-09-06.
53. Jump up^ "Buy Microsoft Visual SourceSafe 6 (324-00269) :: eCostSoftware.com - UK
Software Supplier". eCostSoftware.com. Retrieved 2009-09-06.
54. ^ Jump up to:
a

b

c
"Visual Studio Editions". Microsoft. Retrieved 2010-06-22.
55. Jump up^ "How to: Configure Visual C++ Projects to Target 64-Bit Platforms". Microsoft.
Retrieved 2010-08-19.
56. Jump up^ "No-cost desktop software development is dead on Windows 8". Ars
Technica.
57. Jump up^ "Microsoft adds Windows 8 Desktop support to Visual Studio 2012 Express".
ZDNet.
58. Jump up^ "Visual Studio Express". Microsoft. Retrieved 2010-06-22.
59. ^ Jump up to:
a

b
"VS 2010 Licensing Changes". Microsoft. Retrieved 2010-06-22.
60. ^ Jump up to:
a

b
"website on windows CE programming". Paul Thurrott. Retrieved 2010-
05-19.
61. Jump up^ update & help from Microsoft website
62. Jump up^ "System Requirements (Visual Studio 6.0)". Microsoft Co. Retrieved 2008-01-
02.
63. Jump up^ "Visual J++ Solution Center". Support. Microsoft. Retrieved 25 May 2013.
64. Jump up^ "Visual J++ 6.0". MSDN. Microsoft. Retrieved 25 May 2013.
65. Jump up^ "Features by Edition". Microsoft. Archived from the original on 2004-02-15.
66. Jump up^ "System Requirements (Visual Studio .NET)". MSDN. Retrieved 2008-01-02.
67. Jump up^ "Visual Studio .NET 2002 SP1". Microsoft. Retrieved 2008-01-02.
68. ^ Jump up to:
a

b
"Hacking Visual Studio". Retrieved 2008-01-01.
69. Jump up^ "Microsoft Visual Studio .NET 2003 Service Pack 1". Microsoft. Retrieved
2008-01-02.
70. Jump up^ How to: Modify WINVER and _WIN32_WINNT
71. Jump up^ Breaking Changes
72. Jump up^ "Visual Studio 2005 Service Pack 1". Microsoft. Retrieved 2008-01-01.
73. Jump up^ "Visual Studio Service Pack 1 Update". Retrieved 2008-01-01.
74. Jump up^ "New Language Features in Visual C++". Visual Studio 2005 Visual C++
Language Reference. MSDN. Retrieved 2006-12-28.
75. Jump up^ "64-bit and Visual Studio 2005". April 11, 2006. Retrieved 2006-12-28.
76. Jump up^ VSTA vs VSTO in Software Development Kits. In the latest MSDN Flash email I
just received, it announces the release of Visual Studio Tools for Applications 2.0 (VSTA).
77. Jump up^ "Microsoft Details Dynamic IT Strategy at Tech-Ed 2007". Retrieved 2007-06-
04.
78. Jump up^ Beehler, Jeff (2007-11-19). "Visual Studio Team System 2008 ships!". Jeff
Beehler's Blog. MSDN Blogs. Retrieved 2010-06-25.
79. Jump up^ "Microsoft Windows Visual Studio Team System 2008". MSDN Search. MSDN
Social. 2010. Retrieved 2010-06-25.
80. Jump up^ "Microsoft to Give Partners More Access to Orcas IDE Code". Retrieved 2007-
11-06.
81. Jump up^ "Download Details: Microsoft Visual Studio 2008 Service Pack 1 (exe)".
Retrieved 2008-08-11.
82. Jump up^ Windows Platforms (CRT)
83. Jump up^ Darryl K. Taft. "Microsoft Pushes Secure, Quality Code". eWeek. Retrieved
2007-10-06.
84. Jump up^ Kirants. "Whats New in MFC 9.0 (Orcas)". CodeGuru. Retrieved 2008-01-02.
85. Jump up^ Nikola Dudla. "What Is STL/CLR?". MSDN Blogs. Retrieved 2008-01-02.
86. Jump up^ Visual C++ Team. "Libraries Work In Orcas". MSDN Blogs. Retrieved 2008-01-
02.
87. Jump up^ "Download Visual Studio 03/07 CTP". Retrieved 2007-06-14.
88. Jump up^ "XSD Designer in Visual Studio". Retrieved 2008-01-01.
89. Jump up^ S. Somasegar. "Debugging and Profiling Features in VS 2008". MSDN Blogs.
Retrieved 2007-07-24.
90. ^ Jump up to:
a

b
John Robbin. "Neat New Multithreaded Debugging Features in VS
2008". Retrieved 2007-09-24.
91. Jump up^ Scott Hanselman. "Multi-threaded Debugging in Visual Studio 2008".
Retrieved 2007-09-24.
92. Jump up^ Scott Guthrie. "Releasing the Source Code for the .NET Framework Libraries".
Retrieved 2007-10-04.
93. Jump up^ Visual Studio 2010 aka. Dev10 Beta available for download
94. Jump up^ Microsoft Releases Visual Studio 2010, .NET Framework 4
95. Jump up^ Microsoft launches Visual Studio 2010 and .NET Framework 4
96. ^ Jump up to:
a

b

c

d

e
"Visual Studio 2010 Team System First Look". Microsoft. Retrieved
2009-04-18.
97. Jump up^ "Writing Visual Studio 2010 shell in WPF Reflects Confidence". One .NET Way.
Retrieved 2009-04-18.
98. Jump up^ Carlos Quintero. "Visual Studio 2010 Extensibility moving beyond add-ins and
packages". Retrieved 2009-04-18.
99. Jump up^ "F# to ship as part of Visual Studio 2010". Retrieved 2008-12-10.
100. Jump up^ Daniel Moth. "Debugging Parallel applications with VS2010".
Retrieved 2008-04-18.
101. Jump up^ "More support for parallelism in the next version of Visual
Studio". MSDN. Retrieved 2009-04-23.
102. Jump up^ David Worthington. "SD Times: Intel, Microsoft converge on parallel
computing". Retrieved 2008-08-20.
103. Jump up^ David Worthington. "Intel addresses development life cycle with
Parallel Studio". Retrieved 2009-05-26.
104. ^ Jump up to:
a

b

c

d
S. Somasegar. "Code Focused Development in VS 2010".
Retrieved 2008-04-18.
105. Jump up^ Medinoc. "Bug: Intellisense believes itself in C++ while working on a C
file.". Retrieved 2011-08-28.
106. Jump up^ Dynamic Help Removed From Visual Studio 2010
107. Jump up^ "Help Viewer Power Tool". Retrieved 2010-07-13.
108. Jump up^ Microsoft Visual Studio 2010 Service Pack 1 (Installer)
109. Jump up^ "Visual Studio 2010 transition benefits: "the ultimate offer" What
you need to know".Microsoft MSDN Blogs. Retrieved 2014-09-14.
110. Jump up^ "Microsoft Unveils Next Version of Visual Studio and .NET
Framework". MicrosoftPressPass. Retrieved 2009-08-14.
111. Jump up^ "Doing Architecture with Team System Rosario". Retrieved 2009-04-
18.
112. ^ Jump up to:
a

b
"Visual Studio 2010 Architecture Edition". Retrieved 2009-04-
18.
113. Jump up^ "Historical Debugger and Test Impact Analysis in Visual Studio Team
System 2010".Channel 9. Retrieved 2009-04-18.
114. Jump up^ Habib Heydarian. "Whats new in Visual Studio Team System 2010:
Episode 2". Retrieved 2008-04-18.
115. Jump up^ "Visual Studio 2010 Lab Management". Retrieved 2009-04-18.
116. Jump up^ Ina Fried. "Visual Studio 2010 to come with 'black box'". CNET News.
CBS Interactive Inc. Retrieved 2009-04-18.
117. Jump up^ "Visual Studio 2012 and .NET 4.5 Complete! - Somasegar's blog - Site
Home - MSDN Blogs". Blogs.msdn.com. 2012-08-01. Retrieved 2013-06-15.
118. Jump up^ "Can I record/play Macros in Visual Studio 2012/2013?".
stackoverflow.com. 2013-12-31. Retrieved 2013-12-31.
119. Jump up^ "What's New for Visual C++ in Visual Studio 2012".
Msdn.microsoft.com. 2012-08-15. Retrieved 2013-06-15.
120. Jump up^ "Visual Studio 11 Developer Preview Download". Microsoft
Download Center. Microsoft Corporation. 16 September 2011. Retrieved 14 October
2011.
121. Jump up^ "Bug: apps created with CRT and MFC vNext (11) cannot be used on
Windows XP SP3". Microsoft Connect. Microsoft Corporation. 24 September 2011.
Retrieved 14 October 2011. "This behavior is by design in MFC and CRT for Visual Studio
vNext. The minimum supported operating systems are Windows Server 2008 SP2 and
Windows Vista."
122. Jump up^ "Targeting Windows XP with C++ in Visual Studio 2012". Visual C++
Team blog. Microsoft Corporation. 15 June 2012. Retrieved 26 June 2012.
123. Jump up^ "Visual Studio 2012 Update 1 is now available!". Somasegars blog.
Microsoft Corporation. 26 November 2012. Retrieved 29 December 2012.
124. ^ Jump up to:
a

b

c

d

e

f

g
Kumar, Sumit (24 August 2011). "First Look at the New
C++ IDE Productivity Features in the Next Version of Visual Studio". VC++ Team
Blog (Microsoft Corporation). MSDN Blogs. Retrieved 14 October 2011.
125. Jump up^ "The Visual Studio 2012 Feedback Tool: A better way to submit bugs -
The Visual Studio Blog - Site Home - MSDN Blogs". Blogs.msdn.com. 2013-01-28.
Retrieved 2013-06-15.
126. Jump up^ Color Returns to Visual Studio 11 User Interface
127. Jump up^ Visual Studio 11 User Interface Updates Coming in RC
128. Jump up^ A DESIGN WITH ALL-CAPS
129. Jump up^ Microsoft Ignores Usability and Users - VS 2012 Keeps ALL-CAPS
Menus
130. Jump up^ On Visual Studio 11's redesign awkwardness
131. Jump up^ How To Prevent Visual Studio 2012 ALL CAPS Menus!
132. Jump up^ Visual Studio 2013 Preview Available Now! Microsoft Visual Studio
Blog, June 26, 2013
133. Jump up^ Visual Studio 2013 RC available now! Microsoft Visual Studio Blog,
September 9, 2013
134. Jump up^ Visual Studio 2013 released to web! Microsoft Visual Studio Blog,
October 17, 2013
135. Jump up^ S. Somasegar. "Visual Studio 2013 Launch: Announcing Visual Studio
Online". MSDN Blogs. Retrieved 2014-01-23.
136. Jump up^ "Visual Studio 2013 Update 1". Visual Studio site. Microsoft
Corporation. 20 January 2014. Retrieved 23 January 2014.
137. Jump up^ "Visual Studio 2013 Update 1". Somasegars blog. Microsoft
Corporation. 20 January 2014. Retrieved 23 January 2014.
138. Jump up^ "Visual Studio 2013 Update 2 RTM". Visual Studio site. Microsoft
Corporation. 12 May 2014. Retrieved 12 July 2014.
139. Jump up^ "Description of Visual Studio 2013 Update 3". Microsoft Corporation.
August 15, 2014. Retrieved 18 August 2014.
140. Jump up^ Montgomery, John (3 Jun 2014). "Visual Studio "14" CTP now
available". The Visual Studio Blog. Retrieved 18 August 2014.
141. Jump up^ Montgomery, John (8 Jul 2014). "Visual Studio "14" CTP 2 Available".
The Visual Studio Blog. Retrieved 18 August 2014.
142. Jump up^ Montgomery, John (August 18, 2014). "Visual Studio "14" CTP 3
Released". Visual Studio Blog. Retrieved 18 August 2014.
143. Jump up^ Montgomery, John (October 6, 2014). "Visual Studio "14" CTP 4
Released". Visual Studio Blog. Retrieved 6 October 2014.
144. Jump up^ "Visual Studio Application Lifecycle Management".
Msdn.microsoft.com. Retrieved 2013-06-15.
145. Jump up^ "Microsoft Unveils Next Version of Visual Studio and .NET
Framework". Microsoft. Retrieved 2011-06-17.
146. Jump up^ "'Visual Studio Team System Rosario'". Retrieved 2008-04-05.
147. Jump up^ Octavie van Haaften (November 25, 2009). "Visual Studio 2010 Team
System session". Retrieved 2011-12-08.
148. Jump up^ "LightSwitch HTML Client". Msdn.microsoft.com. Retrieved 2013-06-
15.
149. Jump up^ "Get Started Building SharePoint Apps in Minutes with LightSwitch -
Beth Massi - Sharing the goodness - Site Home - MSDN Blogs". Blogs.msdn.com.
Retrieved 2013-06-15.
150. Jump up^ "LightSwitch Architecture: OData (John Rivard) - Visual Studio
LightSwitch Team Blog - Site Home - MSDN Blogs". Blogs.msdn.com. Retrieved 2013-06-
15.
151. Jump up^ "How to: Deploy a LightSwitch OData Service". Msdn.microsoft.com.
Retrieved 2013-06-15.
152. Jump up^ "Visual Studio LightSwitch 2011 is Launching July 26th! - Visual Studio
LightSwitch Team Blog - Site Home - MSDN Blogs". Blogs.msdn.com. Retrieved 2013-06-
15.
153. Jump up^ Massi, Beth. "Rapid Business Application Development with Visual
Studio LightSwitch". Microsoft. Retrieved 2010-08-04.
External links[edit]

Java (programming language)
From Wikipedia, the free encyclopedia

"Java language" redirects here. For the natural language from the Indonesian island of Java,
see Javanese language.
Not to be confused with JavaScript.
Java

Paradigm(s) multi-paradigm: object-
oriented, structured,imperative, functional,generic, reflective,concurrent
Designed by James Gosling and
Sun Microsystems
Developer Oracle Corporation
Appeared in 1995
[1]

Stable release Java Standard Edition 8 Update 25 (1.8.0_25) / October 14, 2014; 6 days ago
Typing
discipline
Static, strong, safe,nominative, manifest
Major
implementati
ons
OpenJDK, many others
Dialects Generic Java, Pizza
Influenced by Ada 83, C++, C#,
[2]
Eiffel,
[3]
Generic Java, Mesa,
[4]
Modula-3,
[5]
Oberon,
[6]
Objective-
C,
[7]
UCSD Pascal,
[8][9]
Smalltalk
Influenced Ada
2005, BeanShell, C#,Clojure, D, ECMAScript,Groovy, J#, JavaScript,Kotlin, PHP, Python
, Scala,Seed7, Vala
Implementati
on language
C and C++
OS Cross-platform (multi-platform)
License GNU General Public License, Java Community Process
Filename
extension(s)
.java , .class, .jar
Website For Java Developers
Java Programming at Wikibooks
Java is a computer programming language that is concurrent, class-based, object-oriented, and
specifically designed to have as few implementation dependencies as possible. It is intended to let
application developers "write once, run anywhere" (WORA), meaning that code that runs on one
platform does not need to be recompiled to run on another. Java applications are
typically compiled tobytecode that can run on any Java virtual machine (JVM) regardless of computer
architecture. Java is, as of 2014, one of the most popular programming languages in use, particularly for
client-server web applications, with a reported 9 million developers.
[10][11]
Java was originally developed
by James Gosling at Sun Microsystems (which has since merged into Oracle Corporation) and released in
1995 as a core component of Sun Microsystems' Java platform. The language derives much of
its syntax from C andC++, but it has fewer low-level facilities than either of them.
The original and reference implementation Java compilers, virtual machines, and class libraries were
originally released by Sun under proprietary licences. As of May 2007, in compliance with the
specifications of the Java Community Process, Sun relicensed most of its Java technologies under
the GNU General Public License. Others have also developed alternative implementations of these Sun
technologies, such as the GNU Compiler for Java (bytecode compiler), GNU Classpath (standard
libraries), and IcedTea-Web (browser plugin for applets).
Contents
[hide]
1 History
o 1.1 Principles
o 1.2 Versions
2 Practices
o 2.1 Java platform
2.1.1 Implementations
2.1.2 Performance
o 2.2 Automatic memory management
3 Syntax
4 Examples
o 4.1 Hello world
o 4.2 A more comprehensive example
5 Special classes
o 5.1 Applet
o 5.2 Servlet
o 5.3 JavaServer Pages
o 5.4 Swing application
o 5.5 Generics
6 Criticism
7 Use on unofficial software platforms
o 7.1 Google
8 Class libraries
9 Documentation
10 Editions
11 See also
o 11.1 Comparison of Java with other languages
12 Notes
13 References
14 External links
History[edit]
See also: Java (software platform) History

Duke, the Java mascot
James Gosling, Mike Sheridan, and Patrick Naughton initiated the Java language project in June
1991.
[12]
Java was originally designed for interactive television, but it was too advanced for the digital
cable television industry at the time.
[13]
The language was initially called Oak after anoak tree that stood
outside Gosling's office. Later the project went by the name Green and was finally renamed Java,
from Java coffee,
[14]
said to be consumed in large quantities by the language's creators.
[citation
needed]
Gosling designed Java with a C/C++-style syntax that system and application programmers would
find familiar.
[15]

Sun Microsystems released the first public implementation as Java 1.0 in 1995.
[1]
It promised "Write
Once, Run Anywhere" (WORA), providing no-cost run-times on popular platforms. Fairly secure and
featuring configurable security, it allowed network- and file-access restrictions. Major web
browsers soon incorporated the ability to run Java applets within web pages, and Java quickly became
popular. The Java 1.0 compiler was re-written in Java by Arthur van Hoff to comply strictly with the Java
1.0 language specification.
[16]
With the advent of Java 2 (released initially as J2SE 1.2 in December 1998
1999), new versions had multiple configurations built for different types of platforms. J2EE included
technologies and APIs for enterprise applications typically run in server environments,
while J2ME featured APIs optimized for mobile applications. The desktop version was renamed J2SE. In
2006, for marketing purposes, Sun renamed new J2 versions as Java EE, Java ME, and Java SE,
respectively.
In 1997, Sun Microsystems approached the ISO/IEC JTC1 standards body and later the Ecma
International to formalize Java, but it soon withdrew from the process.
[17]
Java remains a de
facto standard, controlled through the Java Community Process.
[18]
At one time, Sun made most of its
Java implementations available without charge, despite their proprietary software status. Sun generated
revenue from Java through the selling of licenses for specialized products such as the Java Enterprise
System.
On November 13, 2006, Sun released much of Java as free and open source software, (FOSS), under the
terms of the GNU General Public License (GPL). On May 8, 2007, Sun finished the process, making all of
Java's core code available under free software/open-source distribution terms, aside from a small
portion of code to which Sun did not hold the copyright.
[19]

Sun's vice-president Rich Green said that Sun's ideal role with regards to Java was as an
"evangelist."
[20]
Following Oracle Corporation's acquisition of Sun Microsystems in 20092010, Oracle
has described itself as the "steward of Java technology with a relentless commitment to fostering a
community of participation and transparency".
[21]
This did not prevent Oracle from filing a lawsuit
against Google shortly after that for using Java inside the Android SDK (see Google section below). Java
software runs on everything fromlaptops to data centers, game consoles to scientific supercomputers.
There are 930 million Java Runtime Environment downloads each year and 3 billion mobile phones run
Java.
[22]
On April 2, 2010, James Gosling resigned from Oracle.
[23]

Principles[edit]

James Gosling, the creator of Java
There were five primary goals in the creation of the Java language:
[24]

1. It should be "simple, object-oriented and familiar"
2. It should be "robust and secure"
3. It should be "architecture-neutral and portable"
4. It should execute with "high performance"
5. It should be "interpreted, threaded, and dynamic"
Versions[edit]
Main article: Java version history
Major release versions of Java, along with their release dates:
JDK 1.0 (January 21, 1996)
JDK 1.1 (February 19, 1997)
J2SE 1.2 (December 8, 1998)
J2SE 1.3 (May 8, 2000)
J2SE 1.4 (February 6, 2002)
J2SE 5.0 (September 30, 2004)
Java SE 6 (December 11, 2006)
Java SE 7 (July 28, 2011)
Java SE 8 (March 18, 2014)
Practices[edit]
Java platform[edit]
Main articles: Java (software platform) and Java virtual machine
One design goal of Java is portability, which means that programs written for the Java platform must run
similarly on any combination of hardware and operating system with adequate runtime support. This is
achieved by compiling the Java language code to an intermediate representation called Java bytecode,
instead of directly to architecture-specific machine code. Java bytecode instructions are analogous to
machine code, but they are intended to be executed by a virtual machine (VM) written specifically for
the host hardware. End-users commonly use a Java Runtime Environment (JRE) installed on their own
machine for standalone Java applications, or in a web browser for Java applets.
Standardized libraries provide a generic way to access host-specific features such as graphics, threading,
and networking.
A major benefit of using bytecode is porting. However, the overhead of interpretation means that
interpreted programs almost always run more slowly than programs compiled to native executables
would. Just-in-Time (JIT) compilers were introduced from an early stage that compile bytecodes to
machine code during runtime.
Implementations[edit]
See also: Free Java implementations
Oracle Corporation is the current owner of the official implementation of the Java SE platform, following
their acquisition of Sun Microsystems on January 27, 2010. This implementation is based on the original
implementation of Java by Sun. The Oracle implementation is available for Windows, Mac OS
X, Linux and Solaris. Because Java lacks any formal standardization recognized by Ecma International,
ISO/IEC, ANSI, or other third-party standards organization, the Oracle implementation is the de facto
standard.
The Oracle implementation is packaged into two different distributions: The Java Runtime Environment
(JRE) which contains the parts of the Java SE platform required to run Java programs and is intended for
end-users, and the Java Development Kit (JDK), which is intended for software developers and includes
development tools such as the Java compiler, Javadoc, Jar, and a debugger.
OpenJDK is another notable Java SE implementation that is licensed under the GPL. The implementation
started when Sun began releasing the Java source code under theGPL. As of Java SE 7, OpenJDK is the
official Java reference implementation.
The goal of Java is to make all implementations of Java compatible. Historically, Sun's trademark license
for usage of the Java brand insists that all implementations be "compatible". This resulted in a legal
dispute with Microsoft after Sun claimed that the Microsoft implementation did not
support RMI or JNI and had added platform-specific features of their own. Sun sued in 1997, and in 2001
won a settlement of US$20 million, as well as a court order enforcing the terms of the license from
Sun.
[25]
As a result, Microsoft no longer ships Windows with Java.
Platform-independent Java is essential to Java EE, and an even more rigorous validation is required to
certify an implementation. This environment enables portable server-side applications.
Performance[edit]
Main article: Java performance
Programs written in Java have a reputation for being slower and requiring more memory than those
written in C++.
[26][27]
However, Java programs' execution speed improved significantly with the
introduction of Just-in-time compilation in 1997/1998 for Java 1.1,
[28]
the addition of language features
supporting better code analysis (such as inner classes, the StringBuilder class, optional assertions, etc.),
and optimizations in the Java virtual machine itself, such as HotSpot becoming the default for Sun's JVM
in 2000.
Some platforms offer direct hardware support for Java; there are microcontrollers that can run Java in
hardware instead of a software Java virtual machine, and ARM based processors can have hardware
support for executing Java bytecode through their Jazelle option.
Automatic memory management[edit]
Java uses an automatic garbage collector to manage memory in the object lifecycle. The programmer
determines when objects are created, and the Java runtime is responsible for recovering the memory
once objects are no longer in use. Once no references to an object remain, the unreachable
memory becomes eligible to be freed automatically by the garbage collector. Something similar to
a memory leak may still occur if a programmer's code holds a reference to an object that is no longer
needed, typically when objects that are no longer needed are stored in containers that are still in use. If
methods for a nonexistent object are called, a "null pointer exception" is thrown.
[29][30]

One of the ideas behind Java's automatic memory management model is that programmers can be
spared the burden of having to perform manual memory management. In some languages, memory for
the creation of objects is implicitly allocated on the stack, or explicitly allocated and deallocated from
the heap. In the latter case the responsibility of managing memory resides with the programmer. If the
program does not deallocate an object, a memory leak occurs. If the program attempts to access or
deallocate memory that has already been deallocated, the result is undefined and difficult to predict,
and the program is likely to become unstable and/or crash. This can be partially remedied by the use
of smart pointers, but these add overhead and complexity. Note that garbage collection does not
prevent "logical" memory leaks, i.e. those where the memory is still referenced but never used.
Garbage collection may happen at any time. Ideally, it will occur when a program is idle. It is guaranteed
to be triggered if there is insufficient free memory on the heap to allocate a new object; this can cause a
program to stall momentarily. Explicit memory management is not possible in Java.
Java does not support C/C++ style pointer arithmetic, where object addresses and unsigned integers
(usually long integers) can be used interchangeably. This allows the garbage collector to relocate
referenced objects and ensures type safety and security.
As in C++ and some other object-oriented languages, variables of Java's primitive data types are not
objects. Values of primitive types are either stored directly in fields (for objects) or on the stack (for
methods) rather than on the heap, as is commonly true for objects (but see escape analysis). This was a
conscious decision by Java's designers for performance reasons. Because of this, Java was not
considered to be a pure object-oriented programming language. However, as of Java
5.0, autoboxing enables programmers to proceed as if primitive types were instances of their wrapper
class.
Java contains multiple types of garbage collectors. By default,
[citation needed]
HotSpot uses the parallel
scavenge garbage collector. However, there are also several other garbage collectors that can be used to
manage the heap. For 90% of applications in Java, the Concurrent Mark Sweep garbage collector is
sufficient.
[31]
Oracle aims to replace CMS with the Garbage-first collector (G1).
Syntax[edit]
Main article: Java syntax
The syntax of Java is largely derived from C++. Unlike C++, which combines the syntax for structured,
generic, and object-oriented programming, Java was built almost exclusively as an object-oriented
language. All code is written inside a class, and everything is an object, with the exception of the
primitive data types (i.e. integers, floating-point numbers, boolean values, and characters), which are
not classes for performance reasons.
Unlike C++, Java does not support operator overloading or multiple inheritance for classes. This
simplifies the language and aids in preventing potential errors and anti-patterndesign.
Java uses similar commenting methods to C++. There are three different styles of comments: a single
line style marked with two slashes (//), a multiple line style opened with/* and closed with */, and
the Javadoc commenting style opened with /** and closed with */. The Javadoc style of commenting
allows the user to run the Javadoc executable to compile documentation for the program.
Example:
// This is an example of a single line comment using two slashes

/* This is an example of a multiple line comment using the slash and asterisk.
This type of comment can be used to hold a lot of information or deactivate
code, but it is very important to remember to close the comment. */

package fibsandlies;
import java.util.HashMap;

/**
* This is an example of a Javadoc comment; Javadoc can compile documentation
* from this text. Javadoc comments must immediately precede the thing being documented.
*/
public class FibCalculator extends Fibonacci implements Calculator {
private static HashMap<Integer, Integer> memoized = new HashMap<Integer, Integer>();
static {
memoized.put(1, 1);
memoized.put(2, 1);
}

/** An example of a method written in Java, wrapped in a class.
* Given a non-negative number FIBINDEX, returns
* the Nth Fibonacci number, where N equals FIBINDEX.
* @param fibIndex The index of the Fibonacci number
* @return The Fibonacci number itself
*/
public static int fibonacci(int fibIndex) {
if (memoized.containsKey(fibIndex)) {
return memoized.get(fibIndex);
} else {
int answer = fibonacci(fibIndex - 1) + fibonacci(fibIndex - 2);
memoized.put(fibIndex, answer);
return answer;
}
}
}
Examples[edit]

This article contains instructions, advice, or how-to content. The purpose of
Wikipedia is to present facts, not to train. Please help improve this
article either by rewriting the how-to content or by moving it
to Wikiversity, Wikibooks or Wikivoyage(January 2012)
Hello world[edit]
The traditional Hello world program can be written in Java as:
[32]

class HelloWorldApp {
public static void main(String[] args) {
System.out.println("Hello World!"); // Print the string to the console.
}
}
To compare this to other programming languages see the list of hello world program examples.
Source files must be named after the public class they contain, appending the suffix .java, for
example, HelloWorldApp.java. It must first be compiled into bytecode, using aJava compiler, producing a
file named HelloWorldApp.class. Only then can it be executed, or 'launched'. The Java source file may
only contain one public class, but it can contain multiple classes with other than public access and any
number of public inner classes. When the source file contains multiple classes, make one class 'public'
and name the source file with that public class name.
A class that is not declared public may be stored in any .java file. The compiler will generate a class file
for each class defined in the source file. The name of the class file is the name of the class,
with .class appended. For class file generation, anonymous classes are treated as if their name were the
concatenation of the name of their enclosing class, a $, and an integer.
The keyword public denotes that a method can be called from code in other classes, or that a class may
be used by classes outside the class hierarchy. The class hierarchy is related to the name of the directory
in which the .java file is located.
The keyword static in front of a method indicates a static method, which is associated only with the
class and not with any specific instance of that class. Only static methods can be invoked without a
reference to an object. Static methods cannot access any class members that are not also static.
The keyword void indicates that the main method does not return any value to the caller. If a Java
program is to exit with an error code, it must call System.exit() explicitly.
The method name "main" is not a keyword in the Java language. It is simply the name of the method the
Java launcher calls to pass control to the program. Java classes that run in managed environments such
as applets and Enterprise JavaBean do not use or need a main() method. A Java program may contain
multiple classes that have mainmethods, which means that the VM needs to be explicitly told which
class to launch from.
The main method must accept an array of String objects. By convention, it is referenced
as args although any other legal identifier name can be used. Since Java 5, the main method can also
use variable arguments, in the form of public static void main(String... args), allowing the main method
to be invoked with an arbitrary number of String arguments. The effect of this alternate declaration is
semantically identical (the args parameter is still an array of String objects), but it allows an alternative
syntax for creating and passing the array.
The Java launcher launches Java by loading a given class (specified on the command line or as an
attribute in a JAR) and starting its public static void main(String[])method. Stand-alone programs must
declare this method explicitly. The String[] args parameter is an array of String objects containing any
arguments passed to the class. The parameters to main are often passed by means of a command line.
Printing is part of a Java standard library: The System class defines a public static field called out.
The out object is an instance of the PrintStream class and provides many methods for printing data
to standard out, including println(String) which also appends a new line to the passed string.
The string "Hello World!" is automatically converted to a String object by the compiler.
A more comprehensive example[edit]

This section does not cite any references or sources. Please help improve
this section by adding citations to reliable sources. Unsourced material may
be challenged and removed. (May 2013)

This article contains instructions, advice, or how-to content. The purpose of
Wikipedia is to present facts, not to train. Please help improve this
article either by rewriting the how-to content or by moving it
to Wikiversity, Wikibooks or Wikivoyage(May 2013)
// OddEven.java
import javax.swing.JOptionPane;

public class OddEven {

private int userInput; // a whole number("int" means integer)

/**
* This is the constructor method. It gets called when an object of the OddEven type
* is being created.
*/
public OddEven() {
/*
* In most Java programs constructors can initialize objects with default values, or create
* other objects that this object might use to perform its functions. In some Java programs, the
* constructor may simply be an empty function if nothing needs to be initialized prior to the
* functioning of the object. In this program's case, an empty constructor would suffice.
* A constructor must exist; however, if the user doesn't put one in then the compiler
* will create an empty one.
*/
}

/**
* This is the main method. It gets called when this class is run through a Java interpreter.
* @param args command line arguments (unused)
*/
public static void main(final String[] args) {
/*
* This line of code creates a new instance of this class called "number" (also known as an
* Object) and initializes it by calling the constructor. The next line of code calls
* the "showDialog()" method, which brings up a prompt to ask you for a number.
*/
OddEven number = new OddEven();
number.showDialog();
}

public void showDialog() {
/*
* "try" makes sure nothing goes wrong. If something does,
* the interpreter skips to "catch" to see what it should do.
*/
try {
/*
* The code below brings up a JOptionPane, which is a dialog box
* The String returned by the "showInputDialog()" method is converted into
* an integer, making the program treat it as a number instead of a word.
* After that, this method calls a second method, calculate() that will
* display either "Even" or "Odd."
*/
userInput = Integer.parseInt(JOptionPane.showInputDialog("Please enter a number."));
calculate();
} catch (final NumberFormatException e) {
/*
* Getting in the catch block means that there was a problem with the format of
* the number. Probably some letters were typed in instead of a number.
*/
System.err.println("ERROR: Invalid input. Please type in a numerical value.");
}
}

/**
* When this gets called, it sends a message to the interpreter.
* The interpreter usually shows it on the command prompt (For Windows users)
* or the terminal (For *nix users).(Assuming it's open)
*/
private void calculate() {
if ((userInput % 2) == 0) {
JOptionPane.showMessageDialog(null, "Even");
} else {
JOptionPane.showMessageDialog(null, "Odd");
}
}
}
The import statement imports the JOptionPane class from the javax.swing package.
The OddEven class declares a single private field of type int named userInput. Every instance of
the OddEven class has its own copy of the userInput field. The private declaration means that no
other class can access (read or write) the userInput field.
OddEven() is a public constructor. Constructors have the same name as the enclosing class they
are declared in, and unlike a method, have no return type. A constructor is used to initialize
an object that is a newly created instance of the class.
The calculate() method is declared without the static keyword. This means that the method is
invoked using a specific instance of the OddEven class. (The referenceused to invoke the method
is passed as an undeclared parameter of type OddEven named this.) The method tests the
expression userInput % 2 == 0 using the ifkeyword to see if the remainder of dividing
the userInput field belonging to the instance of the class by two is zero. If this expression is true,
then it prints Even; if this expression is false it prints Odd. (The calculate method can be
equivalently accessed as this.calculate and the userInput field can be equivalently accessed
asthis.userInput, which both explicitly use the undeclared this parameter.)
OddEven number = new OddEven(); declares a local object reference variable in
the main method named number. This variable can hold a reference to an object of
type OddEven. The declaration initializes number by first creating an instance of
the OddEven class, using the new keyword and the OddEven() constructor, and then assigning
this instance to the variable.
The statement number.showDialog(); calls the calculate method. The instance
of OddEven object referenced by the number local variable is used to invoke the method and
passed as the undeclared this parameter to the calculate method.
userInput = Integer.parseInt(JOptionPane.showInputDialog("Please Enter A Number")); is a
statement that converts the type of String to the primitive data type int by using a utility
function in the primitive wrapper class Integer.
Special classes[edit]

This article contains instructions, advice, or how-to content. The purpose of
Wikipedia is to present facts, not to train. Please help improve this
article either by rewriting the how-to content or by moving it
to Wikiversity, Wikibooks or Wikivoyage(January 2012)
Applet[edit]
Main article: Java applet
Java applets are programs that are embedded in other applications, typically in a Web page displayed in
a web browser.
// Hello.java
import javax.swing.JApplet;
import java.awt.Graphics;

public class Hello extends JApplet {
public void paintComponent(final Graphics g) {
g.drawString("Hello, world!", 65, 95);
}
}
The import statements direct the Java compiler to include
the javax.swing.JApplet and java.awt.Graphics classes in the compilation. The import statement allows
these classes to be referenced in the source code using the simple class name (i.e. JApplet) instead of
the fully qualified class name (FQCN, i.e. javax.swing.JApplet).
The Hello class extends (subclasses) the JApplet (Java Applet) class; the JApplet class provides the
framework for the host application to display and control thelifecycle of the applet. The JApplet class is a
JComponent (Java Graphical Component) which provides the applet with the capability to display
a graphical user interface (GUI) and respond to user events.
The Hello class overrides the paintComponent(Graphics) method (additionally indicated with
the annotation, supported as of JDK 1.5, Override) inherited from theContainer superclass to provide
the code to display the applet. The paintComponent() method is passed a Graphics object that contains
the graphic context used to display the applet. The paintComponent() method calls the graphic
context drawString(String, int, int) method to display the "Hello, world!" string at a pixel offset of (65,
95) from the upper-left corner in the applet's display.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<!-- Hello.html -->
<html>
<head>
<title>Hello World Applet</title>
</head>
<body>
<applet code="Hello.class" width="200" height="200">
</applet>
</body>
</html>
An applet is placed in an HTML document using the <applet> HTML element. The applet tag has three
attributes set: code="Hello" specifies the name of the JAppletclass and width="200" height="200" sets
the pixel width and height of the applet. Applets may also be embedded in HTML using either
the object or embed element,
[33]
although support for these elements by web browsers is
inconsistent.
[34]
However, the applet tag is deprecated, so the object tag is preferred where supported.
The host application, typically a web browser, instantiates the Hello applet and creates
an AppletContext for the applet. Once the applet has initialized itself, it is added to the AWT display
hierarchy. The paintComponent() method is called by the AWT event dispatching thread whenever the
display needs the applet to draw itself.
Servlet[edit]
Main article: Java Servlet
Java Servlet technology provides Web developers with a simple, consistent mechanism for extending the
functionality of a Web server and for accessing existing business systems. Servlets are server-side Java
EE components that generate responses (typically HTML pages) to requests (typically HTTP requests)
from clients. A servlet can almost be thought of as an applet that runs on the server sidewithout a
face.
// Hello.java
import java.io.*;
import javax.servlet.*;

public class Hello extends GenericServlet {
public void service(final ServletRequest request, final ServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
final PrintWriter pw = response.getWriter();
try {
pw.println("Hello, world!");
} finally {
pw.close();
}
}
}
The import statements direct the Java compiler to include all of the public classes and interfaces from
the java.io and javax.servlet packages in the compilation. Packages make Java well suited for large scale
applications.
The Hello class extends the GenericServlet class; the GenericServlet class provides the interface for
the server to forward requests to the servlet and control the servlet's lifecycle.
The Hello class overrides the service(ServletRequest, ServletResponse) method defined by
the Servlet interface to provide the code for the service request handler. The service() method is passed:
a ServletRequest object that contains the request from the client and a ServletResponse object used to
create the response returned to the client. The service() method declares that
it throws the exceptions ServletException and IOException if a problem prevents it from responding to
the request.
The setContentType(String) method in the response object is called to set the MIME content type of the
returned data to "text/html". The getWriter() method in the response returns a PrintWriter object that
is used to write the data that is sent to the client. The println(String) method is called to write
the "Hello, world!" string to the response and then the close() method is called to close the print writer,
which causes the data that has been written to the stream to be returned to the client.
JavaServer Pages[edit]
Main article: JavaServer Pages
JavaServer Pages (JSP) are server-side Java EE components that generate responses,
typically HTML pages, to HTTP requests from clients. JSPs embed Java code in an HTML page by using
the special delimiters <% and %>. A JSP is compiled to a Java servlet, a Java application in its own right,
the first time it is accessed. After that, the generated servlet creates the response.
Swing application[edit]
Main article: Swing (Java)
Swing is a graphical user interface library for the Java SE platform. It is possible to specify a different look
and feel through the pluggable look and feel system of Swing. Clones ofWindows, GTK+ and Motif are
supplied by Sun. Apple also provides an Aqua look and feel for Mac OS X. Where prior implementations
of these looks and feels may have been considered lacking, Swing in Java SE 6 addresses this problem by
using more native GUI widget drawing routines of the underlying platforms.
This example Swing application creates a single window with "Hello, world!" inside:
// Hello.java (Java SE 5)
import javax.swing.*;

public class Hello extends JFrame {
public Hello() {
super("hello");
super.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
super.add(new JLabel("Hello, world!"));
super.pack();
super.setVisible(true);
}

public static void main(final String[] args) {
new Hello();
}
}
The first import includes all of the public classes and interfaces from the javax.swing package.
The Hello class extends the JFrame class; the JFrame class implements a window with a title bar and a
close control.
The Hello() constructor initializes the frame by first calling the superclass constructor, passing the
parameter "hello", which is used as the window's title. It then calls
thesetDefaultCloseOperation(int) method inherited from JFrame to set the default operation when the
close control on the title bar is selected toWindowConstants.EXIT_ON_CLOSE this causes
the JFrame to be disposed of when the frame is closed (as opposed to merely hidden), which allows the
Java virtual machine to exit and the program to terminate. Next, a JLabel is created for the string "Hello,
world!" and the add(Component) method inherited from the Containersuperclass is called to add the
label to the frame. The pack() method inherited from the Window superclass is called to size the
window and lay out its contents.
The main() method is called by the Java virtual machine when the program starts. It instantiates a
new Hello frame and causes it to be displayed by calling thesetVisible(boolean) method inherited from
the Component superclass with the boolean parameter true. Once the frame is displayed, exiting
the main method does not cause the program to terminate because the AWT event dispatching
thread remains active until all of the Swing top-level windows have been disposed.
Generics[edit]
Main article: Generics in Java
In 2004, generics were added to the Java language, as part of J2SE 5.0. Prior to the introduction of
generics, each variable declaration had to be of a specific type. For container classes, for example, this is
a problem because there is no easy way to create a container that accepts only specific types of objects.
Either the container operates on all subtypes of a class or interface, usually Object, or a different
container class has to be created for each contained class. Generics allow compile-time type checking
without having to create a large number of container classes, each containing almost identical code. In
addition to enabling more efficient code, certain runtime exceptions are converted to compile-time
errors, a characteristic known as type safety.
Criticism[edit]
Main article: Criticism of Java
Criticisms directed at Java include the implementation of generics,
[35]
speed,
[36]
the handling of unsigned
numbers,
[37]
the implementation of floating-point arithmetic,
[38]
and a history of security vulnerabilities
in the primary Java VM implementation HotSpot.
[39]

Use on unofficial software platforms[edit]
Java, the programming language, requires the presence of a software platform in order for compiled
programs to be executed. One of the official software platforms is the Java SE platform. A very popular
unofficial software platform is the Android software platform, which uses a different bytecode language
and virtual machine, and is designed for low-memory devices such as smartphones and tablets.

Android makes extensive use of Java-related technology
Google[edit]
See also: Oracle v. Google
Google and Android, Inc. have chosen to use Java as a key pillar in the creation of the Android operating
system, an open-source smartphone operating system. Although the Android operating system, built on
the Linux kernel, was written largely in C, the Android SDK uses the Java language as the basis for
Android applications. However, Android does not use the Java virtual machine, instead using Java
bytecode as an intermediate step and ultimately targeting Android's own Dalvik virtual machine.
Android also does not provide the full Java SE standard library, although the Android class library does
include an independent implementation of a large subset of it. This led to a legal dispute between
Oracle and Google. On May 7, 2012, a San Francisco jury found that if APIs could be copyrighted, then
Google had infringed Oracle's copyrights by the use of Java in Android devices.
[40]
District Judge William
Haskell Alsup ruled on May 31, 2012, that APIs cannot be copyrighted,
[41]
but this was reversed by the
Circuit Court in May 2014.
[42][43]

Class libraries[edit]

This section does not cite any references or sources. Please help improve
this section by adding citations to reliable sources. Unsourced material may
be challenged and removed. (May 2013)
The Java Class Library are the compiled bytecodes of source code developed by the JRE
implementor to support application development in Java. Examples of these libraries are:
The core libraries, which include:
Many low level, GUI, Integration, Deployment and Tools Java Platform Standard
Edition 7 Documentation
Collection libraries that implement data structures such
as lists, dictionaries, trees, sets, queues and double-ended queue, or stacks
XML Processing (Parsing, Transforming, Validating) libraries
Security
Internationalization and localization libraries
The integration libraries, which allow the application writer to communicate with
external systems. These libraries include:
The Java Database Connectivity (JDBC) API for database access
Java Naming and Directory Interface (JNDI) for lookup and discovery
RMI and CORBA for distributed application development
JMX for managing and monitoring applications
User interface libraries, which include:
The (heavyweight, or native) Abstract Window Toolkit (AWT), which
provides GUI components, the means for laying out those components and the
means for handling events from those components
The (lightweight) Swing libraries, which are built on AWT but provide (non-
native) implementations of the AWT widgetry
APIs for audio capture, processing, and playback
A platform dependent implementation of the Java virtual machine that is the means by which
the bytecodes of the Java libraries and third party applications are executed
Plugins, which enable applets to be run in web browsers
Java Web Start, which allows Java applications to be efficiently distributed to end-users across
the Internet
Licensing and documentation.
Documentation[edit]
Main article: Javadoc
Javadoc is a comprehensive documentation system, created by Sun Microsystems, used by many Java
developers. It provides developers with an organized system for documenting their
code. Javadoc comments have an extra asterisk at the beginning, i.e. the tags are /** and */, whereas
the normal multi-line comments in Java are set off with the tags /* and */.
Editions[edit]
See also: Free Java implementations Class library
Java editions

Java Card
Micro Edition (ME)
Standard Edition (SE)
Enterprise Edition (EE)
JavaFX (Merged to Java SE 8)
PersonalJava (discontinued)
v
t
e
Sun has defined and supports four editions of Java targeting different application environments and
segmented many of its APIs so that they belong to one of the platforms. The platforms are:
Java Card for smartcards.
Java Platform, Micro Edition (Java ME) targeting environments with limited resources.
Java Platform, Standard Edition (Java SE) targeting workstation environments.
Java Platform, Enterprise Edition (Java EE) targeting large distributed enterprise or Internet
environments.
The classes in the Java APIs are organized into separate groups called packages. Each package contains a
set of related interfaces, classes and exceptions. Refer to the separate platforms for a description of the
packages available.
The set of APIs is controlled by Sun Microsystems in cooperation with others through the Java
Community Process program. Companies or individuals participating in this process can influence the
design and development of the APIs. This process has been a subject of controversy.
Sun also provided an edition called PersonalJava that has been superseded by later, standards-based
Java ME configuration-profile pairings.
See also[edit]

Java portal

Computer programming portal

Book:
Programming
for Students
Dalvik
JavaOne
Javapedia
List of Java virtual machines
List of Java APIs
List of JVM languages
Graal, a project aiming to implement a high performance Java dynamic compiler and interpreter
Comparison of Java with other languages[edit]
Comparison of programming languages
Comparison of Java and C++
Comparison of Java and C#
Notes[edit]
1. ^ Jump up to:
a

b
"The History of Java Technology". Retrieved October 6, 2012.
2. Jump up^ Java 5.0 added several new language features (the enhanced for
loop, autoboxing,varargs and annotations), after they were introduced in the similar
(and competing) C#language [1] [2]
3. Jump up^ Gosling, James; and McGilton, Henry (May 1996). "The Java Language
Environment".
4. Jump up^ Gosling, James; Joy, Bill; Steele, Guy; and Bracha, Gilad. "The Java Language
Specification, 2nd Edition".
5. Jump up^ "The A-Z of Programming Languages: Modula-3". Computerworld.com.au.
Retrieved 2010-06-09.
6. Jump up^ Niklaus Wirth stated on a number of public occasions, e.g. in a lecture at the
Polytechnic Museum, Moscow in September, 2005 (several independent first-hand
accounts in Russian exist, e.g. one with an audio recording: Filippova, Elena (September
22, 2005). "Niklaus Wirth's lecture at the Polytechnic Museum in Moscow".), that the
Sun Java design team licenced the Oberon compiler sources a number of years prior to
the release of Java and examined it: a (relative) compactness, type safety, garbage
collection, no multiple inheritance for classes -- all these key overall design features are
shared by Java and Oberon.
7. Jump up^ Patrick Naughton cites Objective-C as a strong influence on the design of the
Java programming language, stating that notable direct derivatives include Java
interfaces (derived from Objective-C's protocol) and primitive wrapper classes. [3]
8. Jump up^ TechMetrix Research (1999). "History of Java". Java Application Servers
Report. "The project went ahead under the name "green" and the language was based
on an old model of UCSD Pascal, which makes it possible to generate interpretive code"
9. Jump up^ "A Conversation with James Gosling ACM Queue". Queue.acm.org. 2004-08-
31. Retrieved 2010-06-09.
10. Jump up^ "Programming Language Popularity". 2014. Retrieved 2014-02-07.
11. Jump up^ "TIOBE Programming Community Index". 2009. Retrieved 2009-05-06.
12. Jump up^ Byous, Jon (c. 1998). "Java technology: The early years". Sun Developer
Network. Sun Microsystems. Archived from the original on April 20, 2005. Retrieved
2005-04-22.
13. Jump up^ Object-oriented programming "The History of Java Technology". Sun
Developer Network. c. 1995. Retrieved 2010-04-30.
14. Jump up^ "So why did they decide to call it Java?", Kieron Murphy, JavaWorld.com,
10/04/96
15. Jump up^ Kabutz, Heinz; Once Upon an Oak. Artima. Retrieved April 29, 2007.
16. Jump up^ Object-oriented Programming with Java: Essentials and Applications. Tata
McGraw-Hill Education. p. 34.
17. Jump up^ Java Study Group; Why Java Was Not Standardized Twice; What is
ECMAand why Microsoft cares
18. Jump up^ "Java Community Process website". Jcp.org. 2010-05-24. Retrieved 2010-06-
09.
19. Jump up^ "JAVAONE: Sun The bulk of Java is open sourced". GrnLight.net. Retrieved
2014-05-26.
20. Jump up^ "Suns Evolving Role as Java Evangelist". O'Reilly Media.
21. Jump up^ "Oracle and Java". oracle.com. Oracle Corporation. Retrieved 2010-08-23.
"Oracle has been a leading and substantive supporter of Java since its emergence in
1995 and takes on the new role as steward of Java technology with a relentless
commitment to fostering a community of participation and transparency."
22. Jump up^ "Learn About Java Technology". Oracle. Retrieved 21 November 2011.
23. Jump up^ Gosling, James (April 9, 2010). "Time to move on...". On a New Road.
Retrieved 2011-11-16.
24. Jump up^ "The Java Language Environment". "1.2 Design Goals of the Java
Programming Language". Oracle. 1999-01-01. Retrieved 2013-01-14.
25. Jump up^ Niccolai, James (January 23, 2001). "Sun, Microsoft settle Java
lawsuit". JavaWorld(IDG). Retrieved 2008-07-09.
26. Jump up^ Jelovic, Dejan. "Why Java will always be slower than C++". Retrieved 2008-02-
15.
27. Jump up^ Google. "Loop Recognition in C++/Java/Go/Scala". Retrieved 2012-07-12.
28. Jump up^ "Symantec's Just-In-Time Java Compiler To Be Integrated Into Sun JDK 1.1".
29. Jump up^ "NullPointerException". Oracle. Retrieved 2014-05-06.
30. Jump up^ "Exceptions in Java". Artima.com. Retrieved 2010-08-10.
31. Jump up^ "Java HotSpot VM Options". Oracle.com. 2010-09-07. Retrieved 2012-06-30.
32. Jump up^ "Lesson: A Closer Look at the "Hello World!" Application". The Java Tutorials
> Getting Started. Oracle Corporation. Retrieved 2011-04-14.
33. Jump up^ "Using applet, object and embed Tags". oracle.com. Retrieved 2010-10-14.
34. Jump up^ "Deploying Applets in a Mixed-Browser Environment". oracle.com. Retrieved
2010-10-14.
35. Jump up^ Arnold, Ken. "Generics Considered Harmful". java.net. Retrieved 4 July 2011.
36. Jump up^ Jelovic, Dejan. "Why Java Will Always Be Slower than C++". www.jelovic.com.
Retrieved 17 October 2012.
37. Jump up^ Owens, Sean R. "Java and unsigned int, unsigned short, unsigned byte,
unsigned long, etc. (Or rather, the lack thereof)". Archived from the original on 2004-11-
09. Retrieved 2011-07-04.
38. Jump up^ Kahan, William. "How Javas Floating-Point Hurts Everyone Everywhere".
Electrical Engineering & Computer Science, University of California at Berkeley.
Retrieved 4 June 2011.
39. Jump up^ "Have you checked the Java?".
40. Jump up^ Mullin, Joe. "Google guilty of infringement in Oracle trial; future legal
headaches loom". Law & Disorder. Ars Technica. Retrieved 8 May 2012.
41. Jump up^ Joe Mullin (May 31, 2012). "Google wins crucial API ruling, Oracles case
decimated".Ars Technica. Retrieved 2012-06-01.
42. Jump up^ Rosenblatt, Seth (May 9, 2014). "Court sides with Oracle over Android in Java
patent appeal". CNET. Retrieved 2014-05-10.
43. Jump up^ "ORACLE AMERICA, INC. , Plaintiff - Appellant, v. GOOGLE INC., Defendant -
Cross - Appellant.". Court of Appeals for the Federal Circuit. May 9, 2014. Retrieved
2014-05-10.
References[edit]
Gosling, James, A brief history of the Green project.
[dead link]
Java.net, no date [ca. Q1/1998].
Retrieved April 29, 2007.
Gosling, James, A brief history of the Green project.
[dead link]
anonymous-insider.net, no date [ca.
Q1/1998]. Retrieved September 4, 2013.
Gosling, James; Joy, Bill; Steele, Guy L., Jr.; Bracha, Gilad (2005). The Java Language
Specification (3rd ed.). Addison-Wesley. ISBN 0-321-24678-0.
Lindholm, Tim; Yellin, Frank (1999). The Java Virtual Machine Specification (2nd ed.). Addison-
Wesley. ISBN 0-201-43294-3.
External links[edit]
Find more about Java
(programming language) at
Wikipedia's sister projects

Definitions from
Wiktionary

Media from Commons

Quotations from
Wikiquote

Textbooks from
Wikibooks

Learning resources from
Wikiversity

Wikiversity has
learning materials
about Java Platform,
Enterprise
Edition/Java EE
Tutorial
java.com: Main website
[show]
v
t
e
Java

[show]
v
t
e
Sun Microsystems (acquired by Oracle Corporation, 2010)

[show]
v
t
e
Free and open-source software

Categories:
C programming language family
Class-based programming languages
Concurrent programming languages
Cross-platform software
Java platform
Java programming language
Java specification requests
JVM programming languages
Object-oriented programming languages
Programming languages created in 1995
Statically typed pr
ava
From Wikipedia, the free encyclopedia
This article is about the Indonesian island. For the programming language, see Java (programming
language). For other uses, see Java (disambiguation).
Java
Native name: Jawa-

Topography of Java

Geography
Location Southeast Asia
Coordinates
72930S 1100016ECoordinates: 72930S 1100016E
Archipelago Greater Sunda Islands
Area 138,794 km
2
(53,589 sq mi)
Area rank 13th
Highest elevati
on
3,676 m (12,060 ft)
Highest point Semeru
Country
Indonesia
Provinces Banten,
Special Capital Region of Jakarta,
West Java,
Central Java,
East Java,
Yogyakarta Special Region
Largest city Jakarta
Demographics
Population 143 million (as of 2014)
Density 1,117 /km
2
(2,893 /sq mi)
Ethnic groups Javanese (inc. Cirebonese,Tenggerese, Osing), Sundanese(inc. Bantenese, Baduy), Be
tawi,Madurese
Java (Indonesian: Jawa; Javanese: ) is an island of Indonesia. With a population of 143 million, Java is
the world's most populous island, and one of the most densely populated places in the world. Java is the
home of 57 percent of the Indonesian population. The Indonesian capital city, Jakarta, is located on
western Java. Much of Indonesian history took place on Java. It was the center of powerful Hindu-
Buddhist empires, the Islamic sultanates, and the core of the colonial Dutch East Indies. Java was also
the center of the Indonesian struggle for independence during the 1930s and 40s. Java dominates
Indonesiapolitically, economically and culturally.
Formed mostly as the result of volcanic eruptions, Java is the 13th largest island in the world and the
fifth largest island in Indonesia. A chain of volcanic mountains forms an east-west spine along the island.
It has three main languages, withJavanese being the dominant language; it is the native language of
about 60 million people in Indonesia, most of whom live on Java. Most of its residents are bilingual,
with Indonesian as their first or second language. While the majority of the people of Java are Muslim,
Java has a diverse mixture of religious beliefs, ethnicities, and cultures.
Java is divided into four provinces, West Java, Central Java, East Java, and Banten, and also two special
regions, Jakarta andYogyakarta.
Contents
[hide]
1 Etymology
2 Geography
3 Natural environment
4 Administrative division
5 History
o 5.1 Hindu-Buddhist kingdoms era
o 5.2 Spread of Islam and rise of Islamic sultanates
o 5.3 Colonial periods
o 5.4 Independence
6 Demography
o 6.1 Ethnicity and culture
o 6.2 Languages
o 6.3 Religion
7 Economy
8 See also
9 References
10 Sources
11 Further reading
12 External links
Etymology[edit]
The origins of the name "Java" are not clear. One possibility is that the island was named after the jwa-
wut plant, which was said to be common in the island during the time, and that prior to Indianization
the island had different names.
[1]
There are other possible sources: the word ja and its variations mean
"beyond" or "distant".
[2]
And, in Sanskrit yava means barley, a plant for which the island was
famous.
[2]
"Yawadvipa" is mentioned in India's earliest epic, the Ramayana. Sugriva, the chief ofRama's
army dispatched his men to Yawadvipa, the island of Java, in search of Sita.
[3]
It was hence referred to in
Indian by the Sanskrit name "yvaka dvpa" (dvpa = island). Another source states that the "Java" word
is derived from a Proto-Austronesian root word, meaning 'home'.
[4]

Geography[edit]

Mount Semeru and Bromo in East Java
See also: Volcanoes of Java
Java lies between Sumatra to the west and Bali to the east. Borneo lies to the north and Christmas
Island is to the south. It is theworld's 13th largest island. Java is surrounded by Java Sea in the
north, Sunda Strait in the west, Indian Ocean in the south and Bali Strait and Madura Strait in the east.
Java is almost entirely of volcanic origin; it contains thirty-eight mountains forming an east-west spine
which have at one time or another been active volcanoes. The highest volcano in Java is
Mount Semeru (3,676 m). The most active volcano in Java and also in Indonesia is Mount Merapi (2,930
m). See Volcanoes of Java.
More mountains and highlands help to split the interior into a series of relatively isolated regions
suitable for wet-rice cultivation; the rice lands of Java are among the richest in the world.
[5]
Java was the
first place where Indonesian coffee was grown, starting in 1699. Today, Coffea arabica is grown on the
Ijen Plateau by small-holders and larger plantations.
Parahyangan highland nearBuitenzorg, c. 18651872
The area of Java is approximately 150,000 km
2
.
[6]
It is about 1,000 km (620 mi) long and up to 210 km
(130 mi) wide. The island's longestriver is the 600 km long Solo River.
[7]
The river rises from its source in
central Java at the Lawu volcano, then flows north and eastward to its mouth in the Java Sea near the
city of Surabaya. Other major rivers are Brantas, Citarum, Cimanuk and Serayu.
The average temperature ranges from 22 C to 29 C; average humidity is 75%. The northern coastal
plains are normally hotter, averaging 34 C during the day in the dry season. The south coast is generally
cooler than the north, and highland areas inland are even cooler.
[8]
The wet season begins in October
and ends in April during which rain falls mostly in the afternoons and intermittently during other parts of
the year. The wettest months are January and February.
West Java is wetter than East Java and mountainous regions receive much higher rainfall.
The Parahyangan highlands of West Java receive over 4,000 mm annually, while the north coast of East
Java receives 900 mm annually.
Natural environment[edit]

Male Javan rhino shot in 1934 in West Java. Today only small numbers of Javan rhino survive in Ujung
Kulon; it is the world's rarest rhino.
The natural environment of Java is tropical rainforest, with ecosystems ranging from
coastal mangrove forests on the north coast, rocky coastal cliffs on the southern coast, and low-lying
tropical forests to high altitude rainforests on the slopes of mountainous volcanic regions in the interior.
The Javan environment and climate gradually alters from west to east; from wet and humid dense
rainforest in western parts, to a dry savanna environment in the east, corresponding to the climate and
rainfall in these regions.
Originally Javan wildlife supported a rich biodiversity, where numbers of endemic species of flora and
fauna flourished; such as the Javan rhinoceros,
[9]
Javan banteng, Javan warty pig, Javan hawk-
eagle, Javan peafowl, Javan silvery gibbon, Javan lutung, Java mouse-deer,Javan rusa, and Javan leopard.
With over 450 species of birds and 37 endemic species, Java is a birdwatcher's paradise.
[10]
There are
about 130 freshwater fish species in Java.
[11]

However, Java is also home to large numbers of humans. With an estimated population of 114,733,500
in 1995, Java contains well over half of Indonesia's population.
[12]
Since ancient times, people have
opened the rainforest, altered the ecosystem, shaped the landscapes and created rice paddy and
terraces to support the growing population. Javan rice terraces have existed for more than a
millennium, and had supported ancient agricultural kingdoms. The growing human population has put
severe pressure on Java's wildlife, as rainforests were diminished and confined to highland slopes or
isolated peninsulas. Some of Java's endemic species are now critically endangered, with some already
extinct; Java used to have Javan tigers and Javan elephants, but both have been rendered extinct. Today,
several national parks exist in Java that protect the remnants of its fragile wildlife, such asUjung
Kulon, Mount Halimun-Salak, Gede Pangrango, Baluran, Meru Betiri and Alas Purwo.
Administrative division[edit]
The island is administratively divided into four provinces:
Banten, capital: Serang
West Java, capital: Bandung
Central Java, capital: Semarang
East Java, capital: Surabaya
and two special regions:
Jakarta
Yogyakarta
History[edit]

Mount Merbabu surrounded by rice fields. Java's volcanic topography and rich agricultural lands are the
fundamental factors in its history.
Fossilised remains of Homo erectus, popularly known as the "Java Man", dating back 1.7 million years
were found along the banks of theBengawan Solo River.
[13]

The island's exceptional fertility and rainfall allowed the development of wet-field rice cultivation, which
required sophisticated levels of cooperation between villages. Out of these village alliances, small
kingdoms developed. The chain of volcanic mountains and associated highlands running the length of
Java kept its interior regions and peoples separate and relatively isolated.
[14]
Before the advent of Islamic
states and European colonialism, the rivers provided the main means of communication, although Java's
many rivers are mostly short. Only the Brantas and Sala rivers could provide long-distance
communication, and this way their valleys supported the centres of major kingdoms. A system of roads,
permanent bridges and toll gates is thought to have been established in Java by at least the mid-17th
century. Local powers could disrupt the routes as could the wet season and road use was highly
dependent on constant maintenance. Subsequently, communication between Java's population was
difficult.
[15]

Hindu-Buddhist kingdoms era[edit]
The Taruma and Sunda kingdoms of western Java appeared in the 4th and 7th centuries respectively.
However, the first major principality was the Medang Kingdom which was founded in central Java at the
beginning of the 8th century. Medang's religion centred on the Hindu god Shiva, and the kingdom
produced some of Java's earliest Hindu temples on the Dieng Plateau. Around the 8th century
the Sailendra dynasty rose in Kedu Plain and become the patron of Mahayana Buddhism. This ancient
kingdom built monuments such as the 9th century Borobudur and Prambanan in central Java.

Prambanan Hindu temple

The 9th century Borobudur Buddhiststupa in Central Java
Around the 10th century the centre of power shifted from central to eastern Java. The eastern Javanese
kingdoms of Kediri, Singhasariand Majapahit were mainly dependent on rice agriculture, yet also
pursued trade within the Indonesian archipelago, and with China and India.
Majapahit was established by Wijaya and by the end of the reign of Hayam Wuruk (r. 1350-89) it
claimed sovereignty over the entire Indonesian archipelago, although control was likely limited to Java,
Bali and Madura. Hayam Wuruk's prime minister, Gajah Mada, led many of the kingdom's territorial
conquests. Previous Javanese kingdoms had their power based in agriculture, however, Majapahit took
control of ports and shipping lanes and became Java's first commercial empire. With the death of Hayam
Wuruk and the coming of Islam to Indonesia, Majapahit went into decline.
Spread of Islam and rise of Islamic sultanates[edit]
Islam became the dominant religion in Java at the end of the 16th century. During this era, the Islamic
kingdoms of Demak, Cirebon, andBanten were ascendant. The Mataram Sultanate became the
dominant power of central and eastern Java at the end of the 16th century. The principalities of
Surabaya and Cirebon were eventually subjugated such that only Mataram and Banten were left to face
the Dutch in the 17th century.
Colonial periods[edit]

Tea plantation in Java during Dutch colonial period, in or before 1926
Java's contact with the European colonial powers began in 1522 with a treaty between the Sunda
kingdom and the Portuguese in Malacca. After its failure the Portuguese presence was confined to
Malacca, and to the eastern islands. In 1596, a four-ship expedition led by Cornelis de Houtman was the
first Dutch contact with Indonesia.
[16]
By the end of the 18th century the Dutch had extended their
influence over the sultanates of the interior (see Dutch East India Company in Indonesia). Internal
conflict prevented the Javanese from forming effective alliances against the Dutch. Remnants of the
Mataram survived as the Surakarta (Solo) and Yogyakarta principalities. Javanese kings claimed to rule
with divine authority and the Dutch helped them to preserve remnants of a Javanese aristocracy by
confirming them as regents or district officials within the colonial administration.
Java's major role during the early part of the colonial period was as a producer of rice. In spice producing
islands like Banda, rice was regularly imported from Java, to supply the deficiency in means of
subsistence.
[17]

During Napoleonic wars in Europe, the Netherlands fell under France Republic, and so did its colony in
East Indies. During the short-livedDaendels administration (as French proxy rule on Java), the
construction of Java Great Post Road was commenced in 1808. The road span from Anyer in Western
Java to Panarukan in East Java served as a military supply route to defend Java from incoming British
invasion.
[18]

In 1811, Java was captured by the British, becoming a possession of the British Empire, and Sir Stamford
Raffles was appointed as the island's Governor. In 1814, Java was returned to the Dutch under the terms
of the Treaty of Paris.
[19]


Japanese prepare to discuss surrender terms with British-allied forces in Java 1945
In 1815, there may have been five million people in Java.
[20]
In the second half of the 18th century,
population spurts began in districts along the north-central coast of Java, and in the 19th century
population grew rapidly across the island. Factors for the great population growth include the impact of
Dutch colonial rule including the imposed end to civil war in Java, the increase in the area under rice
cultivation, and the introduction of food plants such as casava and maize which could sustain
populations that could not afford rice.
[21]
Others attribute the growth to the taxation burdens and
increased expansion of employment under the Cultivation System to which couples responded by
having more children in the hope of increasing their families' ability to pay tax and buy
goods.
[22]
Cholera claimed 100,000 lives in Java in 1820.
[23]

The advent of trucks and railways where there had previously only been buffalo and carts, telegraph
systems, and more coordinated distribution systems under the colonial government all contributed to
famine elimination in Java, and in turn, population growth. There were no significant famines in Java
from the 1840s through to the Japanese occupation in the 1940s.
[24]
Ethnological factors are also
thought to have contributed to the increase in population. In Java, there was no absolute preference for
boy babies which was significant in Java where agriculture depends on the labour of both men and
women. Furthermore, the age of first marriage dropped during the 19th century thus increasing a
woman's child bearing years.
[24]

Independence[edit]
Indonesian nationalism first took hold in Java in the early 20th century (see Indonesian National
Awakening), and the struggle to secure the country's independence followingWorld War II was centered
in Java. The abortive coup and the subsequent violent anti-communist purge in 1965/66 largely took
place in Java. The island has dominated Indonesian social, political and economic life, which has been
the source of resentment of those residents in other islands. In 1998, preceding the fall of Suharto's 32-
year presidency, large riots targeted the Chinese Indonesians in another series of pogroms.
[25]

Demography[edit]
Historical population
Year Pop. %
1971 76,086,327
1980 91,269,528 +20.0%
1990 107,581,306 +17.9%
2000 121,352,608 +12.8%
2010 136,610,590 +12.6%
2014 143,173,263 +4.8%
sources:
[26][27]


Central Jakarta

With a combined population of 136.5 million in the 2010 census (including Madura's 3.6
million),
[28]
which is estimated for 2014 at 143.1 million (including 3.7 million for Madura), Java is
the most populous island in the world and is home to 57% of Indonesia's population.
[28]
At nearly 1,100
people per km in 2014 it is also one of the most densely populated parts of the world. Though little
population growth is registered in Central Java, East Java, and Yogyakarta, these regions have higher
birth rates than one would assume due to mass emigration to the Western side of Java, Sumatra,
Borneo, and Papua. Approximately 45% of the population of Indonesia is ethnically Javanese,
[29]
while
Sundanese make a large portion of Java's population as well.
The dense Western third of the island (West Java, Banten, and DKI Jakarta) has an even higher
population density of nearly 1,500 per km
2
and is taking up the lion's share of the population growth of
Java.
[28]
It is home to 3 metropolitan areas, Greater Jakarta (with outlying areas of Greater Serang and
Greater Sukabumi), Greater Bandung, and GreaterCirebon.
Province
or Special
Region
Capital
Area
km
2)

Are
a
%
Populatio
n
Census of
2000
[30]

Populatio
n
Census of
2010
[30]

Populatio
n
2014
Estimate
(Min.
Health)
[27]

Populatio
n
Density in
2014
Banten Serang 9,662.92 7.1 8,098,277 10,632,166 11,834,087 1,224
DKI Jakarta - 664.01 0.5 8,361,079 9,607,787 10,135,030 15,263
West Java Bandung 35,377.76 27.1 35,724,093 43,053,732 46,300,543 1,309
Central Java Semarang 32,800.69 25.3 31,223,258 32,382,657 32,779,832 999
Yogyakarta
Yogyakart
a
3,133.15 2.4 3,121,045 3,457,491 3,594,290 1,147
East Java Surabaya 47,799.75 37.3 34,765,993 37,476,757 38,529,481 806
Region
Administered
as Java
Jakarta
129,438.2
8
100% 121,293,745 136,610,590 143,173,263 1,106
Madura Islan
d of East Java
- 5,025.30 3.3 3,230,300 3,622,763 3,724,545 741
Java Island
1)
-
124,412.9
8
96.7 118,063,445 132,987,827 139,448,718 1,121
1) Other islands are included in this figure but are very small in population and area, Nusa Barung 100 km2, Bawean 196 km2, Karimunjawa 78 km2, Kambangan 121
km2, Panaitan 170 km2, Thousand Islands 8.7 km2 - with a combined population of roughly 90,000.

2) Land area of provinces updated in 2010 Census figures, areas may be different than past results.

From the 1970s to the fall of the Suharto regime in 1998, the Indonesian government ran transmigration
programs aimed at resettling the population of Java on other less-populated islands of Indonesia. This
program has met with mixed results; sometimes causing conflicts between the locals and the recently
arrived settlers. However, Java's share of the nation's population has fallen steadily.
Jakarta and its outskirts being the dominant metropolis is also home to people from all over the nation.
East Java is also home to ethnic Balinese, as well as large numbers of Madurans due to their historic
poverty.
Ethnicity and culture[edit]
See also: Culture of Indonesia and Music of Java

A teenager in Java wearing traditional Javanese attire:blangkon headgear, batiksarong and kris as
accessory. 1913
Despite its large population and in contrast to the other larger islands of Indonesia, Java is comparatively
homogeneous in ethnic composition. Only two ethnic groups are native to the island
the Javanese and Sundanese. A third group is the Madurese, who inhabit the island of Maduraoff the
north east coast of Java, and have immigrated to East Java in large numbers since the 18th
century.
[31]
The Javanese comprise about two-thirds of the island's population, while the Sundanese and
Madurese account for 20% and 10% respectively.
[31]
The fourth group is theBetawi people that speak a
dialect of Malay, they are the descendants of the people living around Batavia from around the 17th
century. Betawis are creole people, mostly descended from various Indonesian archipelago ethnic
groups such as Malay, Sundanese, Javanese, Balinese,Minang, Bugis, Makassar, Ambonese, mixed with
foreign ethnic groups such as Portuguese, Dutch, Arab, Chinese and Indian brought to or attracted to
Batavia to meet labour needs. They have a culture and language distinct from the
surrounding Sundanese and Javanese.
The Javanese kakawin Tantu Pagelaran explained the mythical origin of the island and its volcanic
nature. Four major cultural areas exist on the island: the kejawen or Javanese heartland, the north coast
of the pasisir region, the Sunda lands of West Java, and the eastern salient, also known as Blambangan.
Madura makes up a fifth area having close cultural ties with coastal Java.
[31]
The kejawen Javanese
culture is the island's most dominant. Java's remaining aristocracy are based here, and it is the region
from where the majority of Indonesia's army, business, and political elite originate. Its language, arts,
and etiquette are regarded as the island's most refined and exemplary.
[31]
The territory
fromBanyumas in the west through to Blitar in the east and encompasses Indonesia's most fertile and
densely populated agricultural land.
[31]

In the southwestern part of Central Java, which is usually named the Banyumasan region, a cultural
mingling occurred; bringing together Javanese culture and Sundanese culture to create
the Banyumasan culture.
[citation needed]
In the central Javanese court cities of Yogyakarta andSurakarta,
contemporary kings trace their lineages back to the pre-colonial Islamic kingdoms that ruled the region,
making those places especially strong repositories of classical Javanese culture. Classic arts of Java
include gamelan music and wayang puppet shows.
Java was the site of many influential kingdoms in the Southeast Asian region,
[32]
and as a result, many
literary works have been written by Javanese authors. These include Ken Arok and Ken Dedes, the story
of the orphan who usurped his king, and married the queen of the ancient Javanese kingdom; and
translations of Ramayana and Mahabharata. Pramoedya Ananta Toer is a famous contemporary
Indonesian author, who has written many stories based on his own experiences of having grown up in
Java, and takes many elements from Javanese folklore and historical legends.
Languages[edit]

Languages spoken in Java (Javanese is shown in white). "Malay" refers to Betawi, the local dialect as one
of Malay creole dialect.
The three major languages spoken on Java are Javanese, Sundanese and Madurese. Other languages
spoken include Betawi (a Malaydialect local to the Jakarta region), Osing, Banyumasan,
and Tenggerese (closely related to Javanese), Baduy (closely related to Sundanese), Kangeanese (closely
related to Madurese), and Balinese.
[33]
The vast majority of the population also speaks Indonesian, often
as a second language.
Religion[edit]

Mosque in Pati, Central Java duringcolonial period. The mosque combined traditional Javanese style
(multi-tiered roof) with European architecture.
Java has been a melting pot of religions and cultures, which has created a broad range of religious belief.
Indian influences came first with Shaivism and Buddhism penetrating deeply into society, blending with
indigenous tradition and culture.
[34]
One conduit for this were the ascetics, called resi, who taught
mystical practices. A resi lived surrounded by students, who took care of their master's daily needs.
Resi's authorities were merely ceremonial. At the courts, Brahmin clerics and pudjangga (sacred literati)
legitimised rulers and linked Hindu cosmology to their political needs.
[34]
Small Hindu enclaves are
scattered throughout Java, but there is a large Hindu population along the eastern coast nearest Bali,
especially around the town of Banyuwangi.
Islam, which came after Hinduism, strengthened the status structure of this traditional religious pattern.
More than 90 percent of the people of Java are Muslims, on a broad continuum
between abangan (more traditional) and santri (more modernist). The Muslim scholar of the writ (Kyai)
became the new religious elite as Hindu influences receded. Islam recognises no hierarchy of religious
leaders nor a formal priesthood, but the Dutch colonial government established an elaborate rank order
for mosque and other Islamic preaching schools. In Javanese pesantren (Islamic schools),
The Kyai perpetuated the tradition of the resi. Students around him provided his needs,
even peasants around the school.
[34]

Pre-Islamic Javan traditions have encouraged Islam in a mystical direction. There emerged in Java a
loosely structured society of religious leadership, revolving around kyais, possessing various degrees of
proficiency in pre-Islamic and Islamic lore, belief and practice.
[34]
The kyais are the principal
intermediaries between the villages masses and the realm of the supernatural. However, this very
looseneess of kyai leadership structure has promotedschism. There were often sharp divisions between
orthodox kyais, who merely instructed in Islamic law, with those who taught mysticism and those who
sought reformed Islam with modern scientific concepts. As a result, there is a division between santri,
who believe that they are more orthodox in their Islamic belief and practice, with abangan, who have
mixed pre-Islamic animistic and Hindu-Indian concepts with a superficial acceptance of Islamic belief.
[34]

There are also Christian communities, mostly in the larger cities, though some rural areas of south-
central Java are strongly Roman Catholic. Buddhist communities also exist in the major cities, primarily
among the Chinese Indonesian. The Indonesian constitution recognises six official religions. (See Religion
in Indonesia.)
A wider effect of this division is the number of sects. In the middle of 1956, the Department of Religious
Affairs in Yogyakarta reported 63 religious sects in Java other than the official Indonesian religions. Of
these, 35 were in Central Java, 22 in West Java and 6 in East Java.
[34]
These
include Kejawen, Sumarah, Subud, etc. Their total membership is difficult to estimate as many of their
adherents identify themselves with one of the official religions.
[35]

Economy[edit]

Javanese women planting rice in a rice field near Prambanan, Yogyakarta
Initially the economy of Java relied heavily on rice agriculture. Ancient kingdoms such as
the Tarumanagara, Mataram, and Majapahitwere dependent on rice yields and tax. Java was famous for
rice surpluses and rice export since ancient times, and rice agriculture contributed to the population
growth of the island. Trade with other parts of Asia such as India and China flourished as early as the 4th
century, as evidenced by Chinese ceramics found on the island dated to that period. Java also took part
in the global trade of Malukuspice from ancient times in the Majapahit era, until well into the VOC era.
Dutch East India Company set their foothold on Batavia in the 17th century and was succeeded
by Netherlands East Indies in the 18th century. During these colonial times, the Dutch introduced the
cultivation of commercial plants in Java, such as sugarcane, rubber, coffee,tea, and quinine. In the 19th
and early 20th century, Javanese coffee gained global popularity. Thus, the name "Java" today has
become a synonym for coffee.

Java transportation network
Java is the most developed island in Indonesia since the era of Netherlands East Indies to modern
Republic of Indonesia. The road transportation networks that have existed since ancient times were
connected and perfected with the construction of Java Great Post Road by Daendels in the early 19th
century. The Java Great Post Road become the backbone of Java's road infrastructure and laid the base
of Java North Coast Road (Indonesian: Jalan Pantura, abbreviation from "Pantai Utara"). The need to
transport commercial produces such as coffee from plantations in the interior of the island to the
harbour on the coast spurred the construction of railway networks in Java. Today the industry, business
and trade, also services flourished in major cities of Java, such as Jakarta, Surabaya, Semarang,
and Bandung; while some traditional Sultanate cities such as Yogyakarta,Surakarta,
and Cirebon preserved its royal legacy and become the centre of art, culture and tourism in Java.
Industrial estates also growing in towns on northern coast of Java, especially
around Cilegon, Tangerang, Bekasi, Karawang, Gresik and Sidoarjo. The toll road highway networks was
built and expanded since Suharto era until now, connecting major urban centres and surrounding areas,
such as in and around Jakarta and Bandung; also the ones in Cirebon, Semarang and Surabaya. In
addition to these motorways, Java has 16 national highways.
Based on the statistical data by the year of 2012 which's released by Badan Pusat Statistik, Java Island
itself contributes at least 57,51 % of Indonesia's Gross Domestic Product or equivalent to 504 billions
US$.
See also[edit]

Indonesia portal
History of Indonesia
List of monarchs of Java
Spread of Islam in Indonesia
References[edit]
1. Jump up^ Raffles, Thomas E. : History of Java. Oxford University Press, 1965. Page 2
2. ^ Jump up to:
a

b
Raffles, Thomas E. : History of Java. Oxford University Press, 1965 . Page
3
3. Jump up^ History of Ancient India Kapur, Kamlesh
4. Jump up^ Hatley, R., Schiller, J., Lucas, A., Martin-Schiller, B., (1984). "Mapping cultural
regions of Java" in: Other Javas away from the kraton. pp. 132.
5. Jump up^ Ricklefs, M.C. (1990). A History of Modern Indonesia since c.1300 (2nd
edition). London: MacMillan. p. 15. ISBN 0-333-57690-X.
6. Jump up^ Monk,, K.A.; Fretes, Y.; Reksodiharjo-Lilley, G. (1996). The Ecology of Nusa
Tenggara and Maluku. Hong Kong: Periplus Editions Ltd. p. 7. ISBN 962-593-076-0.
7. Jump up^ Management of Bengawan Solo River Area Jasa Tirta I Corporation 2004.
Retrieved 26 July 2006
8. Jump up^ "Climate, Weather, and Temperature of Java Indonesia". Retrieved 1 April
2014.
9. Jump up^ "Javan Rhinoceros (Rhinoceros sondaicus)". EDGE Evolutionarily Distinct and
Globally Endangered. Retrieved 26 June 2012.
10. Jump up^ "Indonesia bird watching tour". wildlifenews.co.uk. Retrieved 26 June 2012.
11. Jump up^ Nguyen, T.T.T., and S. S. De Silva (2006). Freshwater finfish biodiversity and
conservation: an asian perspective. Biodiversity & Conservation 15(11): 3543-3568
12. Jump up^ "Doing Business in Indonesia". export.gov. Retrieved 26 June 2012.
13. Jump up^ Pope, G G (1988). "Recent advances in far eastern
paleoanthropology". Annual Review of Anthropology 17: 43
77. doi:10.1146/annurev.an.17.100188.000355. cited inWhitten, T; Soeriaatmadja, R. E.,
Suraya A. A. (1996). The Ecology of Java and Bali. Hong Kong: Periplus Editions Ltd.
pp. 309312. ; Pope, G (August 15, 1983). "Evidence on the Age of the Asian
Hominidae". Proceedings of the National Academy of Sciences of the United States of
America 80 (16): 4,988
4992. doi:10.1073/pnas.80.16.4988.PMC 384173. PMID 6410399. cited in Whitten, T;
Soeriaatmadja, R. E., Suraya A. A. (1996). The Ecology of Java and Bali. Hong Kong:
Periplus Editions Ltd. p. 309. ; de Vos, J.P.; P.Y. Sondaar, (9 December 1994). "Dating
hominid sites in Indonesia" (PDF).Science Magazine 266 (16): 4,988
4992. doi:10.1126/science.7992059. cited inWhitten, T; Soeriaatmadja, R. E., Suraya A.
A. (1996). The Ecology of Java and Bali. Hong Kong: Periplus Editions Ltd. p. 309.
14. Jump up^ Ricklefs (1991), pp. 1617
15. Jump up^ Ricklefs (1991), p. 15.
16. Jump up^ Ames, Glenn J. (2008). The Globe Encompassed: The Age of European
Discovery, 15001700. p. 99.
17. Jump up^ St. John, Horace Stebbing Roscoe (1853). The Indian Archipelago: its history
and present state, Volume 1. Longman, Brown, Green, and Longmans. p. 137.
18. Jump up^ Ekspedisi Anjer-Panaroekan, Laporan Jurnalistik Kompas. Penerbit Buku
Kompas, PT Kompas Media Nusantara, Jakarta Indonesia. November 2008. pp. 1
2. ISBN 978-979-709-391-4.
19. Jump up^ Atkins, James (1889). The Coins And Tokens Of The Possessions And Colonies
Of The British Empire. London: Quaritch, Bernard. p. 213.
20. Jump up^ Java (island, Indonesia). Encyclopdia Britannica.
21. Jump up^ Taylor (2003), p. 253.
22. Jump up^ Taylor (2003), pp. 253-254.
23. Jump up^ Byrne, Joseph Patrick (2008). Encyclopedia of Pestilence, Pandemics, and
Plagues: A-M. ABC-CLIO. p. 99. ISBN 0-313-34102-8.
24. ^ Jump up to:
a

b
Taylor (2003), p. 254.
25. Jump up^ "Ethnic Chinese tell of mass rapes". BBC News. 23 June 1998. Retrieved 28
April 2010.
26. Jump up^ "Statistics Indonesia". Bps.go.id. Retrieved 2013-07-17.
27. ^ Jump up
to:
a

b
http://www.depkes.go.id/downloads/Penduduk%20Kab%20Kota%20Umur%20Tun
ggal%202014.pdfEstimasi Penduduk Menurut Umur Tunggal Dan Jenis Kelamin 2014
Kementerian Kesehatan
28. ^ Jump up to:
a

b

c
"Population growth good for Papua". The Jakarta Post. August 23,
2010.
29. Jump up^ CIA factbook
30. ^ Jump up to:
a

b
"Indonesia (Urban City Population): Provinces & Cities - Statistics &
Maps on City Population". Citypopulation.de. 2010-05-01. Retrieved 2013-07-17.
31. ^ Jump up to:
a

b

c

d

e
Hefner, Robert (1997). Java. Singapore: Periplus Editions.
p. 58. ISBN 962-593-244-5.
32. Jump up^ See Wallace Stevens's poem "Tea" for an appreciative allusion to Javanese
culture.
33. Jump up^ Languages of Java and Bali Ethnologue. Other sources may list some of
these as dialects rather than languages.
34. ^ Jump up to:
a

b

c

d

e

f
van der Kroef, Justus M. (1961). "New Religious Sects in Java". Far
Eastern survey 30 (2): 1815. doi:10.1525/as.1961.30.2.01p1432u. JSTOR 3024260.
35. Jump up^ Beatty, Andrew, Varieties of Javanese Religion: An Anthropological Account,
Cambridge University Press 1999, ISBN 0-521-62473-8
Sources[edit]
Taylor, Jean Gelman (2003). Indonesia: Peoples and Histories. New Haven and London: Yale
University Press. ISBN 0-300-10518-5.
Further reading[edit]
Cribb, Robert (2000). Historical Atlas of Indonesia. London and Honolulu: RoutledgeCurzon
Press, University of Hawaii Press. ISBN 0-8248-2111-4.
External links[edit]

Wikimedia Commons
has media related
to Java.
Java travel guide from Wikivoyage
[hide]
v
t
e
Provinces of Indonesia

Sumatra
Aceh
BangkaBelitung Islands
Bengkulu
Jambi
Lampung
North Sumatra
Riau
Riau Islands
South Sumatra
West Sumatra

Java
Banten
Central Java
East Java
Jakarta
West Java
Yogyakarta

Kalimantan
Central Kalimantan
East Kalimantan
North Kalimantan
South Kalimantan
West Kalimantan

Lesser Sunda
Bali
East Nusa Tenggara
West Nusa Tenggara

Sulawesi
Central Sulawesi
Gorontalo
North Sulawesi
Southeast Sulawesi
South Sulawesi
West Sulawesi

Maluku
Maluku
North Maluku

Western New Guinea
Papua
West Papua

Categories:
Java
Greater Sunda Islands
Java (software platform)
From Wikipedia, the free encyclopedia
Not to be confused with JavaScript.
Java (software platform)

Original author(s) James Gosling, Sun Microsystems
Developer(s) Oracle Corporation
Stable release Java 7
7 Update 72 (1.7.0_72)(October 14,
2014; 6 days ago)[]
[1][2][3]

Java 8
8 Update 25 (1.8.0_25)(October 14,
2014; 6 days ago)[]
[1][2][3]

Preview release Java 9
9 Build b31 (September 17, 2014; 33
days ago) []
[4]

Written in Java, C++
[citation needed]

Operating system Windows, Solaris, Linux,OS X
[5]

Type Software platform
License Freeware, mostly open-
source,
[6]
with a
fewproprietary
[7]
components
[8]

Website www.java.com
Java is a set of several computer software and specifications developed by Sun Microsystems, later
acquired by Oracle Corporation, that provides a system for developing application software and
deploying it in a cross-platform computing environment. Java is used in a wide variety of computing
platforms from embedded devices and mobile phones on the low end, to enterprise
servers andsupercomputers on the high end. While less common, Java applets are sometimes used to
provide improved and secure functions while browsing the World Wide Web on desktop computers.
Writing in the Java programming language is the primary way to produce code that will be deployed
as Java byte code; byte codecompilers are also available for other languages,
including Ada, JavaScript, Python, and Ruby. Several languages have been designed to run natively on
the Java Virtual Machine (JVM), including Scala, Clojure and Groovy. Java syntax borrows heavily
from Cand C++, but object-oriented features are modeled after Smalltalk and Objective-C.
[9]
Java
eliminates certain low-level constructs such as pointers and has a very simple memory model where
every object is allocated on the heap and all variables of object types are references. Memory
management is handled through integrated automatic garbage collection performed by the JVM.
On November 13, 2006, owner Sun Microsystems made the bulk of its implementation of Java available
under the GNU General Public License (GPL).
[10][11]

Contents
[hide]
1 Platform
o 1.1 Java Virtual Machine
o 1.2 Class libraries
o 1.3 Languages
o 1.4 Similar platforms
o 1.5 Java Development Kit
2 History
o 2.1 Java meets the Web
o 2.2 Version history
3 Usage
o 3.1 Desktop use
o 3.2 Mobile devices
o 3.3 Web server and enterprise use
4 Mascot
5 Licensing
o 5.1 Free software
6 Criticism
o 6.1 Generics
o 6.2 Unsigned integer types
o 6.3 Floating point arithmetic
o 6.4 Performance
o 6.5 Security
o 6.6 Adware
o 6.7 Redundancy
7 See also
8 References
9 External links
Platform[edit]
The Java platform is the name for a bundle of related programs that allow for developing and running
programs written in the Java programming language. The platform is not specific to any one processor
or operating system, but rather an execution engine (called a virtual machine) and a compiler with a set
of libraries that are implemented for various hardware and operating systems so that Java programs can
run identically on all of them.
Java Card: A technology that allows small Java-based applications (applets) to be run securely
on smart cards and similar small-memory devices.
Java ME (Micro Edition): Specifies several different sets of libraries (known as profiles) for
devices with limited storage, display, and power capacities. Often used to develop applications
for mobile devices, PDAs, TV set-top boxes, and printers.
Java SE (Standard Edition): For general-purpose use on desktop PCs, servers and similar devices.
Java EE (Enterprise Edition): Java SE plus various APIs useful for multi-tier client
server enterprise applications.
The Java platform consists of several programs, each of which provides a portion of its overall
capabilities. For example, the Java compiler, which converts Java source code into Java bytecode (an
intermediate language for the JVM), is provided as part of the Java Development Kit (JDK). The Java
Runtime Environment (JRE), complementing the JVM with a just-in-time (JIT) compiler, converts
intermediate bytecode into native machine code on the fly. An extensive set of libraries are also part of
the Java platform.
The essential components in the platform are the Java language compiler, the libraries, and the runtime
environment in which Java intermediate bytecode "executes" according to the rules laid out in the
virtual machine specification.
Java Virtual Machine[edit]
Main article: Java Virtual Machine
The heart of the Java platform is the concept of a "virtual machine" that executes Java
bytecode programs. This bytecode is the same no matter what hardware or operating system the
program is running under. There is a JIT (Just In Time) compiler within the Java Virtual Machine, or JVM.
The JIT compiler translates the Java bytecode into native processor instructions at run-time and caches
the native code in memory during execution.
The use of bytecode as an intermediate language permits Java programs to run on any platform that has
a virtual machine available. The use of a JIT compiler means that Java applications, after a short delay
during loading and once they have "warmed up" by being all or mostly JIT-compiled, tend to run about
as fast as native programs.
[citation needed]
Since JRE version 1.2, Sun's JVM implementation has included
a just-in-time compiler instead of an interpreter.
Although Java programs are cross-platform or platform independent, the code of the Java Virtual
Machines (JVM) that execute these programs is not. Every supported operating platform has its own
JVM.
Class libraries[edit]
Main article: Java Class Library
In most modern operating systems (OSs), a large body of reusable code is provided to simplify the
programmer's job. This code is typically provided as a set of dynamically loadable libraries that
applications can call at runtime. Because the Java platform is not dependent on any specific operating
system, applications cannot rely on any of the pre-existing OS libraries. Instead, the Java platform
provides a comprehensive set of its own standard class libraries containing much of the same reusable
functions commonly found in modern operating systems. Most of the system library is also written in
Java. For instance, Swing library paints the user interface and handles the events itself, eliminating many
subtle differences between how different platforms handle even similar components.
The Java class libraries serve three purposes within the Java platform. First, like other standard code
libraries, the Java libraries provide the programmer a well-known set of functions to perform common
tasks, such as maintaining lists of items or performing complex string parsing. Second, the class libraries
provide an abstract interface to tasks that would normally depend heavily on the hardware and
operating system. Tasks such as network access and file access are often heavily intertwined with the
distinctive implementations of each platform. The java.net and java.io libraries implement an
abstraction layer in native OS code, then provide a standard interface for the Java applications to
perform those tasks. Finally, when some underlying platform does not support all of the features a Java
application expects, the class libraries work to gracefully handle the absent components, either by
emulation to provide a substitute, or at least by providing a consistent way to check for the presence of
a specific feature.
Languages[edit]
See also: List of JVM languages and JVM programming languages
The word "Java", alone, usually refers to the Java programming language that was designed for use with
the Java platform. Programming languages are typically outside of the scope of the phrase "platform",
although the Java programming language was listed as a core part of the Java platform before Java 7.
The language and runtime were therefore commonly considered a single unit. However, an effort was
made with the Java 7 specification to more clearly treat the Java language and the Java virtual machine
as separate entities, so that they are no longer considered a single unit.
[12]

Third parties have produced many compilers or interpreters that target the JVM. Some of these are for
existing languages, while others are for extensions to the Java language. These include:
BeanShell - A lightweight scripting language for Java.
[13]

Clojure - A dialect of the Lisp programming language.
Groovy, a dynamic language with features similar to those of Python, Ruby, Perl, and Smalltalk.
JRuby - A Ruby interpreter.
Jython - A Python interpreter.
Kotlin - An industrial programming language for JVM with full Java interoperability.
Rhino - A JavaScript interpreter.
Scala - A multi-paradigm programming language designed as a "better Java".
Gosu - A general-purpose Java Virtual Machine-based programming language released under
the Apache License 2.0.
Similar platforms[edit]
See also: Comparison of the Java and .NET platforms and Comparison of C# and Java
The success of Java and its write once, run anywhere concept has led to other similar efforts, notably
the .NET Framework, appearing since 2002, which incorporates many of the successful aspects of Java.
.NET in its complete form (Microsoft's implementation) is currently only fully available on Windows
platforms, whereas Java is fully available on many platforms. .NET was built from the ground-up to
support multiple programming languages, while the Java platform was initially built to support only the
Java language, although many other languages have been made for JVM since.
.NET includes a Java-like language called Visual J# (formerly named J++) that is incompatible with the
Java specification, and the associated class library mostly dates to the old JDK 1.1 version of the
language. For these reasons, it is more a transitional language to switch from Java to the .NET platform,
than a first class .NET language. Visual J# was discontinued with the release of Microsoft Visual Studio
2008. The existing version shipping with Visual Studio 2005 will be supported until 2015 as per the
product life-cycle strategy.
Java Development Kit[edit]
Main article: Java Development Kit
The Java Development Kit (JDK) is a Sun product aimed at Java developers. Since the introduction of
Java, it has been by far the most widely used Java software development kit (SDK).
[citation needed]
It contains
a Java compiler, a full copy of the Java Runtime Environment (JRE), and many other important
development tools.
History[edit]
The Java platform and language began as an internal project at Sun Microsystems in December 1990,
providing an alternative to the C++/C programming languages. EngineerPatrick Naughton had become
increasingly frustrated with the state of Sun's C++ and C application programming interfaces (APIs) and
tools. While considering moving to NeXT, Naughton was offered
[by whom?]
a chance to work on new
technology, and thus the Stealth Project started.
The Stealth Project was soon renamed to the Green Project, with James Gosling and Mike Sheridan
joining Naughton. Together with other engineers, they began work in a small office on Sand Hill
Road in Menlo Park, California. They aimed to develop new technology for programming next-
generation smart appliances, which Sun expected to offer major new opportunities.
[14]

The team originally considered using C++, but rejected it for several reasons. Because they were
developing an embedded system with limited resources, they decided that C++ needed too much
memory and that its complexity led to developer errors. The language's lack of garbage collection meant
that programmers had to manually manage system memory, a challenging and error-prone task. The
team also worried about the C++ language's lack of portable facilities for security, distributed
programming, and threading. Finally, they wanted a platform that would port easily to all types of
devices.
Bill Joy had envisioned a new language combining Mesa and C. In a paper called Further, he proposed to
Sun that its engineers should produce an object-oriented environment based on C++. Initially, Gosling
attempted to modify and extend C++ (a proposed development that he referred to as "C++ ++ --") but
soon abandoned that in favor of creating a new language, which he called Oak, after the tree that stood
just outside his office.
By the summer of 1992, the team could demonstrate portions of the new platform, including the
Green OS, the Oak language, the libraries, and the hardware. Their first demonstration, on September 3,
1992, focused on building a personal digital assistant (PDA) device named Star7
[2]
that had a graphical
interface and a smart agent called "Duke" to assist the user. In November of that year, the Green Project
was spun off to become firstperson, a wholly owned subsidiary of Sun Microsystems, and the team
relocated to Palo Alto, California.
[15]
The firstperson team had an interest in building highly interactive
devices, and when Time Warner issued a request for proposal (RFP) for aset-top box, firstperson
changed their target and responded with a proposal for a set-top box platform. However,
the cable industry felt that their platform gave too much control to the user; firstperson lost their bid
to SGI. An additional deal with The 3DO Company for a set-top box also failed to materialize. Unable to
generate interest within the television industry, the company was rolled back into Sun.
Java meets the Web[edit]
In June and July 1994 - after three days of brainstorming with John Gage, the Director of Science for Sun,
Gosling, Joy, Naughton, Wayne Rosing, and Eric Schmidt - the team re-targeted the platform for
the World Wide Web. They felt that with the advent of graphical web browsers like Mosaic the Internet
could evolve into the same highly interactive medium that they had envisioned for cable TV. As a
prototype, Naughton wrote a small browser, WebRunner (named after the movie Blade Runner),
renamed HotJava
[14]
in 1995.
In 1994 Sun renamed the Oak language as Java after a trademark search revealed that Oak
Technology used the name Oak.
[16]
Although Java 1.0a became available for download in 1994, the first
public release of Java, Java 1.0a2 with the HotJava browser, came on May 23, 1995, announced by Gage
at the SunWorld conference. Accompanying Gage's announcement, Marc Andreessen, Executive Vice
President of Netscape Communications Corporation, unexpectedly announced that Netscape browsers
would include Java support. On January 9, 1996, Sun Microsystems formed the JavaSoft group to
develop the technology.
[17]

Version history[edit]
Main article: Java version history
The Java language has undergone several changes since the release of JDK (Java Development Kit) 1.0 on
(January 23, 1996), as well as numerous additions of classes and packages to the standard library. Since
J2SE 1.4 the Java Community Process (JCP) has governed the evolution of the Java Language. The JCP
uses Java Specification Requests (JSRs) to propose and specify additions and changes to the Java
platform. The Java Language Specification (JLS) specifies the language; changes to the JLS are managed
under JSR 901.
[18]

Sun released JDK 1.1 on February 19, 1997. Major additions included an extensive retooling of
the AWT event model, inner classes added to the language, JavaBeans andJDBC.
J2SE 1.2 (December 8, 1998) Codename Playground. This and subsequent releases through J2SE 5.0
were rebranded Java 2 and the version name "J2SE" (Java 2 Platform, Standard Edition) replaced JDK to
distinguish the base platform from J2EE (Java 2 Platform, Enterprise Edition) and J2ME (Java 2 Platform,
Micro Edition). Major additions included reflection, a collections framework, Java IDL (an interface
description language implementation for CORBA interoperability), and the integration of
the Swing graphical API into the core classes. A Java Plug-in was released, and Sun's JVM was equipped
with a JIT compiler for the first time.
J2SE 1.3 (May 8, 2000) Codename Kestrel. Notable changes included the bundling of the HotSpot JVM
(the HotSpot JVM was first released in April, 1999 for the J2SE 1.2 JVM), JavaSound, Java Naming and
Directory Interface (JNDI) and Java Platform Debugger Architecture (JPDA).
J2SE 1.4 (February 6, 2002) Codename Merlin. This became the first release of the Java platform
developed under the Java Community Process as JSR 59.
[19]
Major changes included regular
expressions modeled after Perl, exception chaining, an integrated XML parser and XSLT processor
(JAXP), and Java Web Start.
J2SE 5.0 (September 30, 2004) Codename Tiger. Originally numbered 1.5, which is still used as the
internal version number.
[20]
Developed under JSR 176, Tiger added several significant new language
features including the for-each loop, generics, autoboxing and var-args.
[21]

Java SE 6 (December 11, 2006) Codename Mustang. Bundled with a database manager and facilitates
the use of scripting languages with the JVM (such as JavaScript usingMozilla's Rhino engine). As of this
version, Sun replaced the name "J2SE" with Java SE and dropped the ".0" from the version
number.
[22]
Other major changes include support for pluggable annotations (JSR 269),
many GUI improvements, including native UI enhancements to support the look and feel of Windows
Vista, and improvements to the Java Platform Debugger Architecture (JPDA) & JVM Tool Interface for
better monitoring and troubleshooting.
Java SE 7 (July 28, 2011) Codename Dolphin. This version developed under JSR 336. It added many
small language changes including strings in switch, try-with-resources and type inference for generic
instance creation. The JVM was extended with support for dynamic languages, while the class library
was extended among others with a join/fork framework,
[23]
an improved new file I/O library and support
for new network protocols such as SCTP. Java 7 Update 67 was released in July 2014, with expiration
date October 14, 2014.
[24]

The current version, Java SE 8 (March 18, 2014), no longer officially supports the Windows XP
platform;.
[25][26]
An unofficial manual installation method has been described for Windows XP SP3. It
refers to JDK8, the developing platform for Java that also includes a fully functioning Java Runtime
Environment.
[27]

In addition to language changes, significant changes have been made to the Java class library over the
years, which has grown from a few hundred classes in JDK 1.0 to over three thousand in J2SE 5.0. Entire
new APIs, such as Swing and Java 2D, have evolved, and many of the original JDK 1.0 classes and
methods have been deprecated.
Usage[edit]
Desktop use[edit]
According to Oracle, the Java Runtime Environment is found on over 850 million PCs.
[28]
Microsoft has
not bundled a Java Runtime Environment (JRE) with its operating systemssince Sun Microsystems sued
Microsoft for adding Windows-specific classes to the bundled Java runtime environment, and for making
the new classes available through Visual J++.
[citation needed]
Apple no longer includes a Java runtime with OS
X as of version 10.7, but the system prompts the user to download and install it the first time an
application requiring the JRE is launched.
[citation needed]
Many Linux distributions include the partially
compatible free software package GNU Classpath
[29]
and increasingly mostly compatibleIcedTea.
Some Java applications are in fairly widespread desktop use, including
the NetBeans and Eclipse integrated development environments, and file sharing clients such
as LimeWireand Vuze. Java is also used in the MATLAB mathematics programming environment, both
for rendering the user interface and as part of the core system. Java provides cross platform user
interface for some high end collaborative applications like Lotus Notes.
Mobile devices[edit]
Java ME has become popular in mobile devices, where it competes with Symbian, BREW, and the .NET
Compact Framework.
The diversity of mobile phone manufacturers has led to a need for new unified standards so programs
can run on phones from different suppliers - MIDP. The first standard was MIDP 1, which assumed a
small screen size, no access to audio, and a 32kB program limit. The more recent MIDP 2 allows access
to audio, and up to 64kB for the program size. With handset designs improving more rapidly than the
standards, some manufacturers relax some limitations in the standards, for example, maximum program
size.
Google's Android operating system uses the Java language, but not its class libraries, therefore the
Android platform cannot be called Java. Android executes the code on theDalvik VM instead of the Java
VM.
Web server and enterprise use[edit]
The Java platform has become a mainstay of enterprise IT development since the introduction of the
Enterprise Edition in 1998, in two different ways:
1. Through the coupling of Java to the web server, the Java platform has become a leading
platform for integrating the Web with enterprise backend systems. This has allowed companies
to move part or all of their business to the Internet environment by way of highly interactive
online environments (such as highly dynamic websites) that allow the customer direct access to
the business processes (e.g. online banking websites, airline booking systems and so on). This
trend has continued from its initial Web-based start:
The Java platform has matured into an Enterprise Integration role in which legacy
systems are unlocked to the outside world through bridges built on the Java platform.
This trend has been supported for Java platform support for EAI standards like
messaging and Web services and has fueled the inclusion of the Java platform as a
development basis in such standards as SCA, XAM and others.
Java has become the standard development platform for many companies' IT
departments, which do most or all of their corporate development in Java. This type of
development is usually related to company-specific tooling (e.g. a booking tool for an
airline) and the choice for the Java platform is often driven by a desire to leverage the
existing Java infrastructure to build highly intelligent and interconnected tools.
2. The Java platform has become the main development platform for many software tools and
platforms that are produced by third-party software groups (commercial, open source and
hybrid) and are used as configurable (rather than programmable) tools by companies. Examples
in this category include Web servers, application servers, databases, enterprise service
buses, business process management (BPM) tools and content management systems.
Enterprise use of Java has also long been the main driver of open source interest in the platform. This
interest has inspired open source communities to produce a large amount of software, including simple
function libraries, development frameworks (e.g. the Spring Framework, Apache Wicket, Dojo
Toolkit, Hibernate), and open source implementations of standards and tools (e.g. Apache Tomcat,
the GlassFish application server, the Mule and Apache ServiceMix Enterprise service buses).
Mascot[edit]

Plain ol' Duke
Duke is Java's mascot.
[30]

When Sun announced that Java SE and Java ME would be released under a free software
license (the GNU General Public License), they released the Duke graphics under the free BSD license at
the same time.
[31]
A new Duke personality is created every year.
[32]
For example, in July 2011 "Future
Tech Duke" included a bigger nose, a jetpack, and blue wings.
[33]

Licensing[edit]
The source code for Sun's implementations of Java (that is the de facto reference implementation) has
been available for some time, but until recently the license terms severely restricted what could be done
with it without signing (and generally paying for) a contract with Sun. As such these terms did not satisfy
the requirements of either the Open Source Initiative or the Free Software Foundation to be considered
open source or free software, Sun Java was therefore a proprietary platform.
[34]

While several third-party projects (e.g. GNU Classpath and Apache Harmony) created free
software partial Java implementations, the large size of the Sun libraries combined with the use of clean
room methods meant that their implementations of the Java libraries (the compiler and VM are
comparatively small and well defined) were incomplete and not fully compatible. These
implementations also tended to be far less optimized than Sun's.
[citation needed]

Free software[edit]
See also: OpenJDK
Sun announced in JavaOne 2006 that Java would become free and open source software,
[35]
and on
October 25, 2006, at the Oracle OpenWorld conference, Jonathan I. Schwartz said that the company was
set to announce the release of the core Java Platform as free and open source software within 30 to 60
days.
[36]

Sun released the Java HotSpot virtual machine and compiler as free software under the GNU General
Public License on November 13, 2006, with a promise that the rest of the JDK (that includes the JRE)
would be placed under the GPL by March 2007 ("except for a few components that Sun does not have
the right to publish in distributable source form under the GPL").
[37]
According to Richard Stallman, this
would mean an end to the "Java trap".
[38]
Mark Shuttleworth called the initial press announcement, "A
real milestone for the free software community".
[39]

Sun released the source code of the Class library under GPL on May 8, 2007, except some limited parts
that were licensed by Sun from 3rd parties who did not want their code to be released under a free
software and open-source license.
[40]
Some of the encumbered parts turned out to be fairly key parts of
the platform such as font rendering and 2D rasterising, but these were released as open-source later by
Sun (see OpenJDK Class library).
Sun's goal was to replace the parts that remain proprietary and closed-source with alternative
implementations and make the class library completely free and open source. In the meantime, a third
party project called IcedTea created a completely free and highly usable JDK by replacing encumbered
code with either stubs or code from GNU Classpath. Although OpenJDK has since become buildable
without the encumbered parts (from OpenJDK 6 b10
[41]
), IcedTea is still used by the majority of
distributions, such as Fedora,RHEL, Debian, Ubuntu, Gentoo, Arch Linux and Slackware, as it provides
security releases and an easier means for patch inclusion. OpenJDK also still doesn't include a browser
plugin & Web Start implementation, so IcedTea's companion project, IcedTea-Web, is needed to fill this
gap.
In June 2008, it was announced that IcedTea6 (as the packaged version of OpenJDK on Fedora 9) has
passed the Technology Compatibility Kit tests and can claim to be a fully compatible Java 6
implementation.
[42]

Because OpenJDK is under the GPL, it is possible to redistribute a custom version of the JRE directly with
software applications [3][4], rather than requiring the enduser (or their sysadmin) to download and
install the correct version of the proprietary Oracle JRE onto each of their systems themselves.
Criticism[edit]
Main article: Criticism of Java
In most cases Java support is unnecessary in Web browsers, and security experts recommend that it not
be run in a browser unless absolutely necessary.
[43]
It was suggested that, if Java is required by a few
Web sites, users should have a separate browser installation specifically for those sites.
Generics[edit]
Further information: Generics in Java
When generics were added to Java 5.0, there was already a large framework of classes (many of which
were already deprecated), so generics were chosen to be implemented using erasure to allow
for migration compatibility and re-use of these existing classes. This limited the features that could be
provided by this addition as compared to some other languages.
[44][45]

Unsigned integer types[edit]
Java lacks native unsigned integer types. Unsigned data are often generated from programs written
in C and the lack of these types prevents direct data interchange between C and Java. Unsigned large
numbers are also used in many numeric processing fields, including cryptography, which can make Java
less convenient to use for these tasks.
[46]
Although it is possible to partially circumvent this problem with
conversion code and using larger data types, it makes using Java cumbersome for handling the unsigned
data. While a 32-bit signed integer may be used to hold a 16-bit unsigned value with relative ease, a 32-
bit unsigned value would require a 64-bit signed integer. Additionally, a 64-bit unsigned value cannot be
stored using any integer type in Java because no type larger than 64 bits exists in the Java language. If
abstracted using functions, function calls become necessary for many operations which are native to
some other languages. Alternatively, it is possible to use Java's signed integers to emulate unsigned
integers of the same size, but this requires detailed knowledge of complex bitwise operations.
[47]

Floating point arithmetic[edit]
While Java's floating point arithmetic is largely based on IEEE 754 (Standard for Binary Floating-Point
Arithmetic), certain features are not supported even when using thestrictfp modifier, such as Exception
Flags and Directed Roundings capabilities mandated by IEEE Standard 754. Additionally, the extended
precision floating-point types permitted in 754 and present in many processors are not permitted in
Java.
[48][49]

Performance[edit]
Further information: Java performance
In the early days of Java (before the HotSpot VM was implemented in Java 1.3 in 2000) there were some
criticisms of performance. However, benchmarks typically report Java as being about two times slower
than C (a language which compiles to native code).
[50][51][52]

Java's performance has improved substantially since the early versions.
[53]
Performance of JIT
compilers relative to native compilers has in some optimized tests been shown to be quite
similar.
[53][54][55]

Java bytecode can either be interpreted at run time by a virtual machine, or it can be compiled at load
time or runtime into native code which runs directly on the computer's hardware. Interpretation is
slower than native execution, and compilation at load time or runtime has an initial performance
penalty for the compilation. Modern performance JVM implementations all use the compilation
approach, so after the initial startup time the performance is equivalent to native code.
Security[edit]
Further information: Java security
The Java platform provides a security architecture
[56]
which is designed to allow the user to run
untrusted bytecode in a "sandboxed" manner to protect against malicious or poorly written software.
This "sandboxing" feature is intended to protect the user by restricting access to certain platform
features and APIs which could be exploited by malware, such as accessing the local filesystem, running
arbitrary commands, or accessing communication networks.
In recent years, researchers have discovered numerous security flaws in some widely used Java
implementations, including Oracle's, which allow untrusted code to bypass the sandboxing mechanism,
exposing users to malicious attacks. These flaws affect only Java applications which execute arbitrary
untrusted bytecode, such as web browser plug-ins that run Java applets downloaded from public
websites. Applications where the user trusts, and has full control over, all code that is being executed
are unaffected.
On August 31, 2012, Java 6 and 7 on Microsoft Windows, Mac OS X, and Linux were found to have a
serious security flaw that allowed a remote exploit to take place by simply loading a malicious web
page.
[57]
Java 5 was later found to be flawed as well.
[58]

On January 10, 2013, three computer specialists spoke out against Java, telling Reuters that it was not
secure and that people should disable Java. Jaime Blasco, Labs Manager with AlienVault Labs, stated
that "Java is a mess. Its not secure. You have to disable it."
[59]
This vulnerability affects Java 7 and it is
unclear if it affects Java 6, so it is suggested that consumers disable it.
[60][61]
Security alerts from Oracle
announce schedules of critical security-related patches to Java.
[62]

On January 14, 2013, security experts said that the update still failed to protect PCs from attack.
[63]
This
exploit hole prompted a response from the United States Department of Homeland
Security encouraging users to disable or uninstall Java.
[64]
Apple blacklisted Java in limited order for all
computers running its Mac OS X operating system through a virus protection program.
[65]

Adware[edit]
The Java browser runtime environment has a history of bundling sponsored software, including the
"Ask.com toolbar" and "McAfee Security Scan Plus" in its updater.
[66]

Redundancy[edit]
Several authors inline with recent Java security and vulnerability issues have called for users to ditch
Java. "Once promising, it has outlived its usefulness in the browser, and has become a nightmare that
delights cyber-criminals at the expense of computer users."
[67]
"I think everyone should uninstall Java
from all their PCs and Macs, and then think carefully about whether they need to add it back. If you are
a typical home user, you can probably do without it. If you are a business user, you may not have a
choice."
[68]

See also[edit]

Java portal
Java version history
Common Intermediate Language
Comparison of the Java and .NET platforms
Criticism of Java
List of Java APIs
Java Logging Frameworks
Java performance
JavaFX
Jazelle
References[edit]
1. ^ Jump up to:
a

b
"Java SE Downloads - Latest Release". Oracle. Retrieved 2014-04-03.
2. ^ Jump up to:
a

b
"Java Platform Standard Edition 8 Names and Versions". Oracle.
Retrieved 2014-04-17.
3. ^ Jump up to:
a

b
Wieldt, Tori (2014-03-18). "Java SE 8 is Now Available". The Java Source
Weblog - Insider News from the Java Team at Oracle!. Oracle. Retrieved 2014-04-03.
4. Jump up^ "Java Platform, Early Access Releases".
5. Jump up^ Cite error: The named reference system-configurations was invoked but
never defined (see the help page).
6. Jump up^ GNU GPLv2 with Classpath exception
7. Jump up^ BCL For Java SE
8. Jump up^ OpenJDK FAQ
9. Jump up^ Naughton, Patrick. "Java Was Strongly Influenced by Objective-C". Virtual
School.
10. Jump up^ "Sun Opens Java". Sun Microsystems. 13 November 2006. Archived from the
originalon 2008-05-13.
11. Jump up^ Kelly O'Hair (December 2010). "OpenJDK7 and OpenJDK6 Binary Plugs Logic
Removed". Oracle Corporation. Retrieved 2011-11-25.
12. Jump up^ "JVM 7 Specification".
13. Jump up^ www.beanshell.org
14. ^ Jump up to:
a

b
Jon Byous (April 2003). "Java Technology: The Early Years". Sun
Microsystems. Archived from the original on May 30, 2008. Retrieved 2009-08-02.
15. Jump up^ Kathy Walrath (2001-12-21). "Foreword". Sun Microsystems. Retrieved 2009-
08-02.
16. Jump up^ Kieron Murphy (1996-04-10). "So why did they decide to call it Java?".
javaworld.com. Retrieved 2009-08-03. "The lawyers had told us that we couldn't use the
name 'OAK' because [it was already trademarked by] Oak Technologies," said Frank
Yellin, a senior engineer at Sun. "So a brainstorming session was held to come up with
ideas for a new name"
17. Jump up^ "Sun Microsystems Announces Formation of Javasoft". Sun Microsystems.
January 1996.
18. Jump up^ The Java Community Process(SM) Program - JSRs: Java Specification Requests
- detail JSR# 63
19. Jump up^ The Java Community Process(SM) Program - JSRs: Java Specification Requests
- detail JSR# 59
20. Jump up^ Version 1.5.0 or 5.0?
21. Jump up^ The Java Community Process(SM) Program - JSRs: Java Specification Requests
- detail JSR# 176
22. Jump up^ "Java Naming". Java.com. Oracle. Retrieved 25 August 2011.
23. Jump up^ Lea, Doug (13 September 2004). "JSRs: Java Specification Requests: JSR 166:
Concurrency Utilities". Java Community Process. Oracle Corp.
24. Jump up^ Oracle Java SE 7 Update 67 Release Notes
25. Jump up^ http://jdk8.java.net/download.html
26. Jump up^ https://jdk8.java.net/jdk8_supported_platforms.html
27. Jump up^ Installing JDK8 on Windows XP - advapi32.dll error
28. Jump up^ "What is Java technology and why do I need it?". Retrieved 15 December
2011. "Java runs on more than 850 million personal computers worldwide, and on
billions of devices worldwide, including mobile and TV devices."
29. Jump up^ "Results of comparison between jdk15 and classpath". kaffe.org.
30. Jump up^ "Duke, the Java Mascot". Oracle. Retrieved 2011-11-12.
31. Jump up^ "duke: Project Home Page". Sun Microsystems. Retrieved 2007-03-18.
32. Jump up^ "Duke, the Java Mascot".
33. Jump up^ "Future Tech Duke (The Java Source)". Tori Wieldt. Retrieved 2011-08-17.
34. Jump up^ Stallman, Richard (May 24, 2006). "The Curious Incident of Sun in the Night-
Time".Groklaw.
35. Jump up^ Schwartz, Jonathan. "?". Jonathan Schwartz's Blog. Sun Microsystems.
36. Jump up^ Oracle OpenWorld: UnBreakable Linux / 5015.2 not on the horizon
37. Jump up^ Sun Opens Java
38. Jump up^ Free But Shackled - The Java Trap
39. Jump up^ "Sun 'releases' Java to the World". BBC News. November 13, 2006. Retrieved
May 6, 2010.
40. Jump up^ "Open JDK is here!". Sun Microsystems. May 8, 2007. Retrieved 2007-05-09.
41. Jump up^ Wielaard, Mark (2007-05-30). "OpenJDK6 b10 source posted". Retrieved
2008-07-12.
42. Jump up^ Sharples, Rich (2008-06-19). "Java is finally Free and Open".
43. Jump up^ Sophos:"Unless it is absolutely necessary to run Java in web browsers, disable
it", DHS-sponsored CERT team says, 15 January 2013
44. Jump up^ "Generics in Java". Object Computing, Inc. Retrieved 2006-12-09.
45. Jump up^ "What's Wrong With Java: Type Erasure". 2006-12-06. Retrieved 2006-12-09.
46. Jump up^ "Java libraries should provide support for unsigned integer arithmetic". Bug
Database, Sun Developer Network. Oracle. Retrieved 2011-01-18.
47. Jump up^ Owens, Sean R. (2009-11-05). "Java and unsigned int, unsigned short,
unsigned byte, unsigned long, etc. (Or rather, the lack thereof)". darksleep.com.
Retrieved 2010-10-09.
48. Jump up^ Kahan, W.; Joseph D. Darcy (1998-03-01). "How Java's Floating-Point Hurts
Everyone Everywhere" (PDF). Retrieved 2006-12-09.
49. Jump up^ "Types, Values, and Variables". Sun Microsystems. Retrieved 2006-12-09.
50. Jump up^ Which programming languages are fastest? | Computer Language
Benchmarks Game
51. Jump up^ speed C++ GNU g++ speed | Computer Language Benchmarks Game
52. Jump up^ C++ vs Java performance; Its a tie! | Blog of Christian Felde
53. ^ Jump up to:
a

b
J.P.Lewis and Ulrich Neumann. "Performance of Java versus C++".
Graphics and Immersive Technology Lab, University of Southern California.
54. Jump up^ The Java is Faster than C++ and C++ Sucks Unbiased Benchmark
55. Jump up^ FreeTTS - A Performance Case Study, Willie Walker, Paul Lamere, Philip Kwok
56. Jump up^ Java SE Platform Security Architecture. Oracle. Retrieved 2013-04-23.
57. Jump up^ blogs.computerworld.com - Java security flaw: yada yada yada, 2012-08-31
58. Jump up^ threatpost.com - New Zero-Day Vulnerability Found in Java 5, 6 and 7; 1.1
Billion Desktops Affected, 2012-09-26
59. Jump up^ nbcnews.com - Experts urge PC users to disable Java, cite security flaw, 2013-
01-10
60. Jump up^ US Dept. of Homeland Security Calls On Computer Users To Disable
Java Forbes, Jan. 11, 2013
61. Jump up^ Nasty New Java Zero Day Found; Exploit Kits Already Have It, 2013-01-10
62. Jump up^ Oracle Critical Patch Updates, Security Alerts
63. Jump up^ independent.ie - Emergency patch for Java fails to fix cybercrime holes, warn
experts, 2013-01-14
64. Jump up^ zdnet.com - Homeland Security warns to disable Java amid zero-day flaw,
2013-01-11
65. Jump up^ venturebeat.com - Oracle issues fix for Java exploit after DHS warns of its
holes, 2013-01-14
66. Jump up^ [1], 2013-01-22
67. Jump up^ http://readwrite.com/2012/09/05/java-is-no-longer-needed-pull-the-plug-in
68. Jump up^ http://www.theguardian.com/technology/askjack/2013/feb/08/java-remove-
ask-jack-technology
External links[edit]

Wikiversity has
learning materials
about Learning Java

Look up Java in
Wiktionary, the free
dictionary.

Wikibooks has a
book on the topic
of: Java
Programming
Listen to this article (info/dl)

MENU
0:00


This audio file was created from a revision of the "Java (software platform)" article dated 2013-08-19,
and does not reflect subsequent edits to the article. (Audio help)
More spoken articles
Official website
sun.com - Official developer site
infoq.com - Presentation by James Gosling about the origins of Java, from the JVM Languages
Summit 2008
Java Tutorials and Examples collection
[5]
javatester.org - What Version of Java Are You Using?, tells you which version you are using
JavaRa, a utility developed by Paul McLain and Fred De Vries at RaProducts to find and remove
older versions of Java, now distributed by SingularLabs.
[show]
v
t
e
Java

[show]
v
t
e
Sun Microsystems (acquired by Oracle Corporation, 2010)

[show]
v
t
e
Integrated development environments for Java

Categories:
Java platform
Computing platforms
Cross-platform software
APLIKASI PENDATAAN SISWA BARU SMK N 1 PELEPAT ILIR
MUARA BUNGO, JAMBI BERDASARKAN
KELAS DAN JURUSAN
Naskah Publikasi
diajukan oleh
Wahyu Mukorobin
07.11.1803
kepada
SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER
AMIKOM
YOGYAKARTA
2012

APPLICATION DATA COLLECTION NEW STUDENTS
SMK N 1 PELEPAT ILIR MUARA BUNGO, J AMBI BY
CLASS AND DEPARTMENT
APLIKASI PENDATAAN SISWA BARU SMK N 1 PELEPAT ILIR
MUARA BUNGO, JAMBI BERDASARKAN
KELAS DAN JURUSAN
Wahyu Mukorobin
07.11.1803
Jurusan Teknik Informatika
STMIK AMIKOM YOGYAKARTA
ABSTRACT
Applications used to support the process of inputting data colection of new
students at SMK N 1 PELEPAT ILIR MUARA BUNGO JAMBI bunge student
application data storange is a database application using microsoft access design
(ERD),and designing application.destination from of writing is to simplify inputs
and find student data,as well as to facilitate the submission of registration to the
committee.
The database used is microsoft access and programming used to build java JDK
1.6.0 applications is the development of this application is based on a design that
has been made.
The resulting data base system as expected in the design stage, both in system
design and application design,although there are still shortages in some respect.
Keyword:applications,new student data collection,design.
1. PENDAHULUAN
SMK N 1 Pelepat Ilir Muara Bungo Jambi adalah salah satu sekolah yang
menginginkan adanya kemudahan proses pengolahan pendataan siswa baru
berdasarkan kelas dan jurusan. Pelayanan yang selama ini dilakukan yaitu dilakukan
secara manual dengan melakukan pencatatan di buku dapat diatasi dengan adanya
program aplikasi yang dapat membantu memperlancar proses pengolahan serta
dapat meningkatkan kualitas dalam pelayanannya sehingga menghasilkan laporan
yang cepat,akurat,efektif dan lebih efisien.
Dalam dunia komputer, salah satu media yang dapat digunakan untuk berbagai
kebutuhan adalah komputerisasi, sebuah sistem dalam pengolahan data yang
digunakan sebagai sumber informasi yang dapat dijadikan bahan pengambil
keputusan yang tepat. Oleh karena itu APLIKASI PENDATAAN SISWA BARU SMK
N 1 PELEPAT ILIR MUARA BUNGO, JAMBI BERDASARKAN KELAS DAN
JURUSAN dirancang dan disusun sebagai judul dalam skripsi ini. Perancangan
pendataan siswa baru tersebut dirancang agar dapat mengolah data secara efektif
dan efisien dalam setiap proses penginputan data siswa, data kelas maupun data
jurusan, selain itu untuk mengoptimalkan pemakaian komputer yang sudah ada di
SMK N 1 Pelepat Ilir Muara Bungo Jambi.
2. LANDASAN TEORI
2.1 Pengertian Sistem, Informasi dan Sistem Informasi
Sistem adalah suatu kumpulan atau himpunan dari unsur atau variabel
variabel yang saling teroganisasi, saling berinteraksi dan saling bergantung satu
sama lain. Informasi adalah data yang diolah menjadi bentuk yang lebih berguna
dan lebih berarti bagi yang menerimanya, Sistem informasi adalah suatu sistem
di dalam suatu organisasi yang mempertemukan kebutuhan pengolahan
transaksi harian, mendukung operasi, bersifat manajerial dan kegiatan strategi
dari suatu organisasi dan menyediakan pihak luar tertentu dengan laporan
laporan yang diperlukan.
Karakteristik sistem yang membedakan sistem satu dengan sistem lainnya
antara lain :
1. Batasan (boundary)
2. Lingkungan (environment)
3. Masukan (input)
4. Keluaran (output)
5. Komponen (component)
6. Penghubung (Interface)
7. Penyimpanan (storage)
3. ANALISIS & PERANCANGAN SISTEM
3.1 Analisis kelemahan sistem
Untuk mengetahui kelemahan dari sistem lama digunakan analisis PIECES (
Performance, Information, Economy, Control, Eficiency, Service).
3.2 Analisis kebutuhan sistem
3.2.1 Analisis fungsional sistem
a. Sistem dapat menampilkan fitur sesuai dengan hak akses.
b. Sistem dapat melakukan entry data yang berhubungan dengan
pendataan siswa baru.
c. Sistem harus dapat menginputkan data siswa baru,kelas dan jurusan .
d. Sistem dapat menampilkan dan melakukan pencatatan laporan data
siswa baru.
3.2.2 Analisis non-fungsional sistem
1. Kebutuhan perangkat keras.
Memori PC V-Gen 2 GB PC 5300 / PC 6400
Intel Pentium 4 2.8 Ghz
Toshiba 2.5'' 250 GB Sata
Monitor Samsung 18.5'' B1930 Wide
Casing VenomRx ASP (NO PSU) w/ Acrylic Side Window + 2
Fan
Keyboard Keyboard Logitech K100 (PS2)
Mouse Optic Logitech USB / PS2
DVD-RW Lite-On 24x Sata (OEM)
2. Kebutuhan perangkat lunak.
Windows XP Profesional
Visual Basic 6.0
Microsoft access
3. Kebutuhan pengguna
Dalam kebutuhan pembuatan dibutuhkan programmer dan
analis. Tugas analis adalah orang yang mempelajari masalah dan
kebutuhan untuk menentukan bagaimana orang, data, proses,
komunikasi dan teknologi informasi dapat meningkatkan pencapaian
bisnis. Tugas programmer adalah mengubah spesifikasi sistem yang
diberikan oleh analis sistem ke dalam instruksi yang bisa dijalankan
oleh komputer.
3.3 Analisis kelayakan sistem
Dalam pengembangan sistem yang abru ada beberapa hal dalam
keterkaitannya layak atau tidak sistem perencanaan pengembangan sistem
tersebut. Dalam penerapan dan pengembangan sistem yang baru ada beberapa
kelayakan yang harus dipertimbangkan sebagai bahan dalam melakukan
pengembangan sistem tersebut.
Kelayakan teknis
Teknologi yang digunakan baik itu perangkat keras maupun perangkat
lunak sudah bisa di dapatkan dengan mudah di pasaran. Dari yang
sebelum sebelumnya, sudah banyak yang menerapkan sistem
informasi perpustakaan di sekolah sekolah tertentu. Dari uraian tersebut
maka dilihat dari kelayakan teknologi pengembangan dari penggunaan
sistem ini layak untuk dikerjakan.
Kelayakan operasional
Sumber daya manusia untuk menjalankan sistem belum siap untuk
mengoperasikan sistem informasi perpustakaan ini karena sumber daya
manusia tersebut belum terbiasa menjalankan / mengoperasikan aplikasi
komputer Maka dari itu, perlu di adakan pelatihan dengan sumber daya
manusia tersebut.setelah diadakan pelatihan tersebut maka diharapkan
sumber daya manusia dapat mengoperasikan aplikasi sebagaimana
mestinya. Dari uraian tersebut maka dari segi kelayakan operasional
sistem ini dikatakan layak.
Kelayakan hukum
Sistem perpustakaan yang dibuat tidak boleh melanggar peraturan yang
berlaku di Indonesia terutama dala hal perijinan pemakaian aplikasi
sistem. Dalam sistem perpustakaan ini perangkat lunak yang digunakan
bersifat legal dan tidak menyimpang dari ketentuan yang berlaku. Dari
uraian tersebut maka dari segi kelayakan hukum sistem perpustakaan ini
dikatakan layak.
Kelayakan ekonomi
Analisis ekonomi ada dua komponen yaitu komponen biaya dan manfaat.
a. Komponen Biaya
1. Biaya yang berhubungan dengan pembuatan sistem informasi terdiri
dari:
Biaya personil : gaji programmer, gaji analis sistem,
Biaya dari pengadaan perangkat lunak dan perangkat keras.
Hardware dan software tidak disediakan oleh pembuat sistem.
2. Biaya yang berhubungan dengan penerapan sistem terdiri dari:
Biaya variable : biaya pelatihan petugas, biaya konversi sistem
Biaya tetap : biaya overhead (biaya pemakaian listrik).
b. Komponen Manfaat
Manfaat dari sistem informasi dapat diklasifikasikan dalam bentuk
keuntungan berwujud (tangible benefits) dan keuntungan tidak berwujud
(intangible benefits). Keuntungan berwujud merupakan keuntungan yang
berupa penghematan-penghematan atau peningkatan didalam
perusahaan yang dapat diukur secara kuantitas dalam bentuk nilai uang.
Sedangkan keuntungan tidak berwujud merupakan keuntungan yang
sulit atau tidak mungkin diukur dalam bentuk satuan nilai uang.
4. Perancangan sistem
4.1 Perancangan prosesFlowchart
Gambar 1 Flowchart
DFD level 0
Data siswa
Data nilai
Data kelas
Laporan data siswa
d da data program studi
Laporan data siswa
Laporan data nilai
Laporan data program studi
Laporan data periode
Kepsek
Gambar 2 DFD level 0
DFD level 1
Panitia pendaftaran
0
Sistem pendaftaran
kepsek
Gambar 3 DFD level 1
Keterangan
Admin/panitia :Entitas yang diharuskan melakukan login sebelum mengakses
informasi
Operator :Entitas yang diharuskan melakukan login sebelum mengakses
informasi
Kepala sekolah : Entitas luar login yang menerima berbagai laporan.
Data siswa : Laporan data siswa
Data nilai : Laporan data nilai
Data Kelas : Laporan data kelas
Data Sekolah asal : Laporan data asal sekolah
Data Program studi : Laporan data program studi
Data Guru : Laporan data guru di sekolah
4.2 Perancangan interface
Perancangan formpendaftaran siswa baru
Gambar 4 rancangan form pendaftaran siswa baru
5. Implementasi dan Pembahasan
5.1 Pemrograman
Pembuatan database
Database berfungsi sebagai tempat penyimpanan data. Di dalam database
terdapat table, view, stored procedure dan trigger.
Pembuatan form / interface
Form adalah tempat membuat tampilan (user interface) untuk program
aplikasi.
Pembuatan tabel
Tabel adalah bagian pembentuk database yang berupa kumpulan record
sejenis yang mempunyai panjang elemen sama, atribut sama, tapi berbeda
data valuenya.
5.2 Tes program
Syntax error
Run time error
Logical error
5.3 Instalasi sistem
Instalasi aplikasi merupakan langkah awal untuk melakukan pengujian sistem.
Namun sebelum proses instalasi dilakukan, ada beberapa hal yang perlu
dipersiapkan guna proses instalasi baik segi hardware maupun software
(system requirement).
5.4 Tes sistem
White box testing
White box testing adalah cara pengujian dengan melihat ke dalam modul
untuk meneliti kode kode program yang ada, dan menganalisis apakah
ada kesalahan atau tidak. Jika ada modul yang menghasilkan output yang
tidak sesuai dengan proses bisnis yang dilakukan, maka baris baris
program, variabel dan parameter yang terlibat pada unit tersebut akan dicek
satu persatu dan diperbaiki, kemudian di-compile ulang.
Black box testing
Black box testing terfokus pada apakah unit program memenuhi kebutuhan
(requirement) yang disebutkan dalam spesifikasi. Pada black box testing,
cara pengujian hanya dilakukan dengan menjalankan atau mengeksekusi
unit atau modul, kemudian diamati apakah hasil dari unit itu sesuai dengan
proses yang diinginkan.
5.5 Pelatihan
Personil merupakan faktor yang perlu dipertimbangkan dalam sistem
informasi. Personil akan dilatih terlebih dahulu dimaksudkan agar dalam
pelaksanaan operasi dapat berjalan lancar. Pada pelatihan difokuskan
dalam pengoperasian sistem, yaitu : mempersiapkan input, memproses
data, menampilkan laporan. Personil yang dilatih sebagai calon
pengoprasian sistem baru adalah petugas pendaftaran siswa baru.
5.6 Konversi system
Proses konversi sistem merupakan proses untuk meletakan sistem baru
supaya siap mulai untuk dapat digunakan adapun metode konversi sistem
yang di pakai adalah konversi parallel ( parallel convertion ). Konversi
parallel dilakukan dengan mengoperasikan sistem yang baru bersama-sama
dengan sistem yang lama selama suatu periode waktu tertentu. Tujuan
sistem ini di operasikan bersama-sama untuk meyakinkan apakah benar
sistem yang baru lebih baik dari pada sistem yang lama.
5.7 Pemeliharaan
Pemeliharaan sistem pada aplikasi pendaftaran siswa baru ini tergolong
mudah, karena sistem ini memang dirancang untuk digunakan oleh umum.
Artinya semua kalangan yang walaupun tanpa memiliki basic pemrograman
program, administrasi komputer, maupun ilmu komputer yang lebih, masih
dapat menggunakan program ini. Maintenance Syistem hanya difokuskan
pada pemback-upan file dan data dari database serta pengolahan data
secara berkala. Dengan cara demikian kita akan mendapatkan beberapa file
back-up sekaligus, serta dengan data yang sama pada kedua file atau
beberapa file yang telah terbentuk.
5.8 Manual program
Manual program merupakan suatu petunjuk bagi pemakai dalam
penggunaan sistem yang diusulkan penulis.
1. Form login
Form login adalah form yang diproses pertama kali untuk menuju form
menu utama dalam sistem pendataan siswa baru ini, form login
berfungsi untuk membatasi siapa saja yang dapat mengakses data
data yang ada pada aplikasi.
Gambar 5 Form Login
2. Form pendataan siswa baru
Form ini digunakan untuk menambahkan, memperbaiki atau menghapus
data calon siswa baru yang mendaftar.
Gambar 6 Form pendaftaran siswa baru
3. Form pendaftaran siswa pindahan
Form ini digunakan untuk menambahkan, memperbaiki atau menghapus
data calon siswa pindahan yang mendaftar.
Gambar 7 Form pendaftaran siswa pindahan
4. Form Data jurusan
Form ini digunakan untuk menambahkan, memperbaiki atau menghapus
data jurusan calon siswa yang mendaftar.
Gambar 8 Form Data jurusan
5. Form Data kelas
Form ini digunakan untuk menambahkan, memperbaiki atau menghapus
data program studi yang ada di sekolah.
Gambar 9 Form Data kelas
6. Form Data orang tua
Form ini digunakan untuk menambahkan, memperbaiki atau menghapus
data Orang tua Wali yang ada di sekolah.
Gambar 10 Form Data orang tua
7. Form Data Pengguna
Form ini digunakan untuk menambahkan, memperbaiki atau menghapus
data Pengguna yang ada di sekolah.
.
Gambar 11 Form Data Pengguna
6. Penutup
6.1 Kesimpulan
Untuk membuat aplikasi pendaftaran sistem penerimaan siswa baru,dilalui dengan
beberapa tahapan, identifikasi, analisis, perancangan, implementasi, uji coba dan
pemeliharaan sistem.
Dari uraian dan penjelasan pada bab sebelumnya,serta analisis yang telah dilakukan
dengan melakukan studi kelayakan terlebih dahulu,dapat disimpulkan bahwa :
Aplikasi pendataan siswa baru mempermudah kinerja panitia pelaksana untuk
melakukan pendataan biodata siswa baru
. Biaya yang dibutuhkan dalam pengeditan tidak memerlukan biaya yang banyak
karena tidak memerlukan kertas yang banyak sehingga penghematan biaya.
6.2 Saran
Dalam sistem pendataan siswa baru ini penulis memberikan saran, antara lain
Hal penting yang perlu diperhatikan dengan adanya sistem baru adalah
melakukan perawatan terhadap perangkat lunak dan perangkat keras dengan
baik sehingga sistem bisa berjalan dengan baik.
Seiring berkembangnya organisasi dan teknologi maka akan terjadi pula
peningkatan kebutuhan sehingga menyebabkan sistem yang sudah berjalan
pada saatnya nanti tidak mampu memenuhi kebutuhan pihak yang terkait. Maka
dari itu pada saatnya nanti sistem juga perlu dilakukan evaluasi dan
pengembangan lebih lanjut.
Sistem yang baru masih kurang sempurna sehinga dibutuhkan pengembangan
sistem untuk memenuhi kebutuhan aplikasi pendataan siswa baru yang lebih baik
lagi.
DAFTAR PUSTAKA
Fatta, Hanif Al. 2007. Analisis & Perancangan Sistem Informasi. Yogyakarta :
Andi Yogyakarta.
Jogiyanto, H M. 1989. Analisis & Desain. Yogyakarta : Andi Yogyakarta.
Kusrini. 2006. Strategi Perancangan dan Pengelolaan Basis Data. Yogyakarta :
Andi Yogyakarta.
Tim. 2009. Pedoman Penyusunan Proposal dan Laporan Skripsi. Edisi 2009. S1
Sistem Informatika & Teknik Informatika STMIK Amikom Yogyakarta.



APLIKASI PENDATAAN SISWA BARU SMK N 1 PELEPAT ILIR
MUARA BUNGO, JAMBI BERDASARKAN
KELAS DAN JURUSAN
Naskah Publikasi
diajukan oleh
Wahyu Mukorobin
07.11.1803
kepada
SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER
AMIKOM
YOGYAKARTA
2012

APPLICATION DATA COLLECTION NEW STUDENTS
SMK N 1 PELEPAT ILIR MUARA BUNGO, JAMBI BY
CLASS AND DEPARTMENT
APLIKASI PENDATAAN SISWA BARU SMK N 1 PELEPAT ILIR
MUARA BUNGO, JAMBI BERDASARKAN
KELAS DAN JURUSAN
Wahyu Mukorobin
07.11.1803
Jurusan Teknik Informatika
STMIK AMIKOM YOGYAKARTA
ABSTRACT
Applications used to support the process of inputting data colection of new
students at SMK N 1 PELEPAT ILIR MUARA BUNGO JAMBI bunge student
application data storange is a database application using microsoft access design
(ERD),and designing application.destination from of writing is to simplify inputs
and find student data,as well as to facilitate the submission of registration to the
committee.
The database used is microsoft access and programming used to build java JDK
1.6.0 applications is the development of this application is based on a design that
has been made.
The resulting data base system as expected in the design stage, both in system
design and application design,although there are still shortages in some respect.
Keyword:applications,new student data collection,design.
1. PENDAHULUAN
SMK N 1 Pelepat Ilir Muara Bungo Jambi adalah salah satu sekolah yang
menginginkan adanya kemudahan proses pengolahan pendataan siswa baru
berdasarkan kelas dan jurusan. Pelayanan yang selama ini dilakukan yaitu dilakukan
secara manual dengan melakukan pencatatan di buku dapat diatasi dengan adanya
program aplikasi yang dapat membantu memperlancar proses pengolahan serta
dapat meningkatkan kualitas dalam pelayanannya sehingga menghasilkan laporan
yang cepat,akurat,efektif dan lebih efisien.
Dalam dunia komputer, salah satu media yang dapat digunakan untuk berbagai
kebutuhan adalah komputerisasi, sebuah sistem dalam pengolahan data yang
digunakan sebagai sumber informasi yang dapat dijadikan bahan pengambil
keputusan yang tepat. Oleh karena itu APLIKASI PENDATAAN SISWA BARU SMK
N 1 PELEPAT ILIR MUARA BUNGO, JAMBI BERDASARKAN KELAS DAN
JURUSAN dirancang dan disusun sebagai judul dalam skripsi ini. Perancangan
pendataan siswa baru tersebut dirancang agar dapat mengolah data secara efektif
dan efisien dalam setiap proses penginputan data siswa, data kelas maupun data
jurusan, selain itu untuk mengoptimalkan pemakaian komputer yang sudah ada di
SMK N 1 Pelepat Ilir Muara Bungo Jambi.
2. LANDASAN TEORI
2.1 Pengertian Sistem, Informasi dan Sistem Informasi
Sistem adalah suatu kumpulan atau himpunan dari unsur atau variabel
variabel yang saling teroganisasi, saling berinteraksi dan saling bergantung satu
sama lain. Informasi adalah data yang diolah menjadi bentuk yang lebih berguna
dan lebih berarti bagi yang menerimanya, Sistem informasi adalah suatu sistem
di dalam suatu organisasi yang mempertemukan kebutuhan pengolahan
transaksi harian, mendukung operasi, bersifat manajerial dan kegiatan strategi
dari suatu organisasi dan menyediakan pihak luar tertentu dengan laporan
laporan yang diperlukan.
Karakteristik sistem yang membedakan sistem satu dengan sistem lainnya
antara lain :
1. Batasan (boundary)
2. Lingkungan (environment)
3. Masukan (input)
4. Keluaran (output)
5. Komponen (component)
6. Penghubung (Interface)
7. Penyimpanan (storage)
3. ANALISIS & PERANCANGAN SISTEM
3.1 Analisis kelemahan sistem
Untuk mengetahui kelemahan dari sistem lama digunakan analisis PIECES (
Performance, Information, Economy, Control, Eficiency, Service).
3.2 Analisis kebutuhan sistem
3.2.1 Analisis fungsional sistem
a. Sistem dapat menampilkan fitur sesuai dengan hak akses.
b. Sistem dapat melakukan entry data yang berhubungan dengan
pendataan siswa baru.
c. Sistem harus dapat menginputkan data siswa baru,kelas dan jurusan .
d. Sistem dapat menampilkan dan melakukan pencatatan laporan data
siswa baru.
3.2.2 Analisis non-fungsional sistem
1. Kebutuhan perangkat keras.
Memori PC V-Gen 2 GB PC 5300 / PC 6400
Intel Pentium 4 2.8 Ghz
Toshiba 2.5'' 250 GB Sata
Monitor Samsung 18.5'' B1930 Wide
Casing VenomRx ASP (NO PSU) w/ Acrylic Side Window + 2
Fan
Keyboard Keyboard Logitech K100 (PS2)
Mouse Optic Logitech USB / PS2
DVD-RW Lite-On 24x Sata (OEM)
2. Kebutuhan perangkat lunak.
Windows XP Profesional
Visual Basic 6.0
Microsoft access
3. Kebutuhan pengguna
Dalam kebutuhan pembuatan dibutuhkan programmer dan
analis. Tugas analis adalah orang yang mempelajari masalah dan
kebutuhan untuk menentukan bagaimana orang, data, proses,
komunikasi dan teknologi informasi dapat meningkatkan pencapaian
bisnis. Tugas programmer adalah mengubah spesifikasi sistem yang
diberikan oleh analis sistem ke dalam instruksi yang bisa dijalankan
oleh komputer.
3.3 Analisis kelayakan sistem
Dalam pengembangan sistem yang abru ada beberapa hal dalam
keterkaitannya layak atau tidak sistem perencanaan pengembangan sistem
tersebut. Dalam penerapan dan pengembangan sistem yang baru ada beberapa
kelayakan yang harus dipertimbangkan sebagai bahan dalam melakukan
pengembangan sistem tersebut.
Kelayakan teknis
Teknologi yang digunakan baik itu perangkat keras maupun perangkat
lunak sudah bisa di dapatkan dengan mudah di pasaran. Dari yang
sebelum sebelumnya, sudah banyak yang menerapkan sistem
informasi perpustakaan di sekolah sekolah tertentu. Dari uraian tersebut
maka dilihat dari kelayakan teknologi pengembangan dari penggunaan
sistem ini layak untuk dikerjakan.
Kelayakan operasional
Sumber daya manusia untuk menjalankan sistem belum siap untuk
mengoperasikan sistem informasi perpustakaan ini karena sumber daya
manusia tersebut belum terbiasa menjalankan / mengoperasikan aplikasi
komputer Maka dari itu, perlu di adakan pelatihan dengan sumber daya
manusia tersebut.setelah diadakan pelatihan tersebut maka diharapkan
sumber daya manusia dapat mengoperasikan aplikasi sebagaimana
mestinya. Dari uraian tersebut maka dari segi kelayakan operasional
sistem ini dikatakan layak.
Kelayakan hukum
Sistem perpustakaan yang dibuat tidak boleh melanggar peraturan yang
berlaku di Indonesia terutama dala hal perijinan pemakaian aplikasi
sistem. Dalam sistem perpustakaan ini perangkat lunak yang digunakan
bersifat legal dan tidak menyimpang dari ketentuan yang berlaku. Dari
uraian tersebut maka dari segi kelayakan hukum sistem perpustakaan ini
dikatakan layak.
Kelayakan ekonomi
Analisis ekonomi ada dua komponen yaitu komponen biaya dan manfaat.
a. Komponen Biaya
1. Biaya yang berhubungan dengan pembuatan sistem informasi terdiri
dari:
Biaya personil : gaji programmer, gaji analis sistem,
Biaya dari pengadaan perangkat lunak dan perangkat keras.
Hardware dan software tidak disediakan oleh pembuat sistem.
2. Biaya yang berhubungan dengan penerapan sistem terdiri dari:
Biaya variable : biaya pelatihan petugas, biaya konversi sistem
Biaya tetap : biaya overhead (biaya pemakaian listrik).
b. Komponen Manfaat
Manfaat dari sistem informasi dapat diklasifikasikan dalam bentuk
keuntungan berwujud (tangible benefits) dan keuntungan tidak berwujud
(intangible benefits). Keuntungan berwujud merupakan keuntungan yang
berupa penghematan-penghematan atau peningkatan didalam
perusahaan yang dapat diukur secara kuantitas dalam bentuk nilai uang.
Sedangkan keuntungan tidak berwujud merupakan keuntungan yang
sulit atau tidak mungkin diukur dalam bentuk satuan nilai uang.
4. Perancangan sistem
4.1 Perancangan prosesFlowchart
Gambar 1 Flowchart
DFD level 0
Data siswa
Data nilai
Data kelas
Laporan data siswa
d da data program studi
Laporan data siswa
Laporan data nilai
Laporan data program studi
Laporan data periode
Kepsek
Gambar 2 DFD level 0
DFD level 1
Panitia pendaftaran
0
Sistem pendaftaran
kepsek
Gambar 3 DFD level 1
Keterangan
Admin/panitia :Entitas yang diharuskan melakukan login sebelum mengakses
informasi
Operator :Entitas yang diharuskan melakukan login sebelum mengakses
informasi
Kepala sekolah : Entitas luar login yang menerima berbagai laporan.
Data siswa : Laporan data siswa
Data nilai : Laporan data nilai
Data Kelas : Laporan data kelas
Data Sekolah asal : Laporan data asal sekolah
Data Program studi : Laporan data program studi
Data Guru : Laporan data guru di sekolah
4.2 Perancangan interface
Perancangan formpendaftaran siswa baru
Gambar 4 rancangan form pendaftaran siswa baru
5. Implementasi dan Pembahasan
5.1 Pemrograman
Pembuatan database
Database berfungsi sebagai tempat penyimpanan data. Di dalam database
terdapat table, view, stored procedure dan trigger.
Pembuatan form / interface
Form adalah tempat membuat tampilan (user interface) untuk program
aplikasi.
Pembuatan tabel
Tabel adalah bagian pembentuk database yang berupa kumpulan record
sejenis yang mempunyai panjang elemen sama, atribut sama, tapi berbeda
data valuenya.
5.2 Tes program
Syntax error
Run time error
Logical error
5.3 Instalasi sistem
Instalasi aplikasi merupakan langkah awal untuk melakukan pengujian sistem.
Namun sebelum proses instalasi dilakukan, ada beberapa hal yang perlu
dipersiapkan guna proses instalasi baik segi hardware maupun software
(system requirement).
5.4 Tes sistem
White box testing
White box testing adalah cara pengujian dengan melihat ke dalam modul
untuk meneliti kode kode program yang ada, dan menganalisis apakah
ada kesalahan atau tidak. Jika ada modul yang menghasilkan output yang
tidak sesuai dengan proses bisnis yang dilakukan, maka baris baris
program, variabel dan parameter yang terlibat pada unit tersebut akan dicek
satu persatu dan diperbaiki, kemudian di-compile ulang.
Black box testing
Black box testing terfokus pada apakah unit program memenuhi kebutuhan
(requirement) yang disebutkan dalam spesifikasi. Pada black box testing,
cara pengujian hanya dilakukan dengan menjalankan atau mengeksekusi
unit atau modul, kemudian diamati apakah hasil dari unit itu sesuai dengan
proses yang diinginkan.
5.5 Pelatihan
Personil merupakan faktor yang perlu dipertimbangkan dalam sistem
informasi. Personil akan dilatih terlebih dahulu dimaksudkan agar dalam
pelaksanaan operasi dapat berjalan lancar. Pada pelatihan difokuskan
dalam pengoperasian sistem, yaitu : mempersiapkan input, memproses
data, menampilkan laporan. Personil yang dilatih sebagai calon
pengoprasian sistem baru adalah petugas pendaftaran siswa baru.
5.6 Konversi system
Proses konversi sistem merupakan proses untuk meletakan sistem baru
supaya siap mulai untuk dapat digunakan adapun metode konversi sistem
yang di pakai adalah konversi parallel ( parallel convertion ). Konversi
parallel dilakukan dengan mengoperasikan sistem yang baru bersama-sama
dengan sistem yang lama selama suatu periode waktu tertentu. Tujuan
sistem ini di operasikan bersama-sama untuk meyakinkan apakah benar
sistem yang baru lebih baik dari pada sistem yang lama.
5.7 Pemeliharaan
Pemeliharaan sistem pada aplikasi pendaftaran siswa baru ini tergolong
mudah, karena sistem ini memang dirancang untuk digunakan oleh umum.
Artinya semua kalangan yang walaupun tanpa memiliki basic pemrograman
program, administrasi komputer, maupun ilmu komputer yang lebih, masih
dapat menggunakan program ini. Maintenance Syistem hanya difokuskan
pada pemback-upan file dan data dari database serta pengolahan data
secara berkala. Dengan cara demikian kita akan mendapatkan beberapa file
back-up sekaligus, serta dengan data yang sama pada kedua file atau
beberapa file yang telah terbentuk.
5.8 Manual program
Manual program merupakan suatu petunjuk bagi pemakai dalam
penggunaan sistem yang diusulkan penulis.
1. Form login
Form login adalah form yang diproses pertama kali untuk menuju form
menu utama dalam sistem pendataan siswa baru ini, form login
berfungsi untuk membatasi siapa saja yang dapat mengakses data
data yang ada pada aplikasi.
Gambar 5 Form Login
2. Form pendataan siswa baru
Form ini digunakan untuk menambahkan, memperbaiki atau menghapus
data calon siswa baru yang mendaftar.
Gambar 6 Form pendaftaran siswa baru
3. Form pendaftaran siswa pindahan
Form ini digunakan untuk menambahkan, memperbaiki atau menghapus
data calon siswa pindahan yang mendaftar.
Gambar 7 Form pendaftaran siswa pindahan
4. Form Data jurusan
Form ini digunakan untuk menambahkan, memperbaiki atau menghapus
data jurusan calon siswa yang mendaftar.
Gambar 8 Form Data jurusan
5. Form Data kelas
Form ini digunakan untuk menambahkan, memperbaiki atau menghapus
data program studi yang ada di sekolah.
Gambar 9 Form Data kelas
6. Form Data orang tua
Form ini digunakan untuk menambahkan, memperbaiki atau menghapus
data Orang tua Wali yang ada di sekolah.
Gambar 10 Form Data orang tua
7. Form Data Pengguna
Form ini digunakan untuk menambahkan, memperbaiki atau menghapus
data Pengguna yang ada di sekolah.
.
Gambar 11 Form Data Pengguna
6. Penutup
6.1 Kesimpulan
Untuk membuat aplikasi pendaftaran sistem penerimaan siswa baru,dilalui dengan
beberapa tahapan, identifikasi, analisis, perancangan, implementasi, uji coba dan
pemeliharaan sistem.
Dari uraian dan penjelasan pada bab sebelumnya,serta analisis yang telah dilakukan
dengan melakukan studi kelayakan terlebih dahulu,dapat disimpulkan bahwa :
Aplikasi pendataan siswa baru mempermudah kinerja panitia pelaksana untuk
melakukan pendataan biodata siswa baru
. Biaya yang dibutuhkan dalam pengeditan tidak memerlukan biaya yang banyak
karena tidak memerlukan kertas yang banyak sehingga penghematan biaya.
6.2 Saran
Dalam sistem pendataan siswa baru ini penulis memberikan saran, antara lain
Hal penting yang perlu diperhatikan dengan adanya sistem baru adalah
melakukan perawatan terhadap perangkat lunak dan perangkat keras dengan
baik sehingga sistem bisa berjalan dengan baik.
Seiring berkembangnya organisasi dan teknologi maka akan terjadi pula
peningkatan kebutuhan sehingga menyebabkan sistem yang sudah berjalan
pada saatnya nanti tidak mampu memenuhi kebutuhan pihak yang terkait. Maka
dari itu pada saatnya nanti sistem juga perlu dilakukan evaluasi dan
pengembangan lebih lanjut.
Sistem yang baru masih kurang sempurna sehinga dibutuhkan pengembangan
sistem untuk memenuhi kebutuhan aplikasi pendataan siswa baru yang lebih baik
lagi.
DAFTAR PUSTAKA
Fatta, Hanif Al. 2007. Analisis & Perancangan Sistem Informasi. Yogyakarta :
Andi Yogyakarta.
Jogiyanto, H M. 1989. Analisis & Desain. Yogyakarta : Andi Yogyakarta.
Kusrini. 2006. Strategi Perancangan dan Pengelolaan Basis Data. Yogyakarta :
Andi Yogyakarta.
Tim. 2009. Pedoman Penyusunan Proposal dan Laporan Skripsi. Edisi 2009. S1
Sistem Informatika & Teknik Informatika STMIK Amikom Yogyakarta.

You might also like