Вы находитесь на странице: 1из 13

Java (software platform)

From Wikipedia, the free encyclopedia


Not to be confused withJavaScript.
Java (software platform)
The Java
Original
James
Oracle
Developer(s)
Initial
23January
Stable
Java
7Gosling,Sun
Corporation
release
release
technology
author(s)
1996; 19Microsystems
logo ago[1][2]
years
7 Update 80 (1.7.0_80)(April14, 2015; 5 months ago)[][3]
Java 8
8 Update
Preview
Java
9 release
60 (1.8.0_60)(August18, 2015; 39 days ago)[][3]
9 Build
Written
Operating
Java,C++[5]
Windows,Solaris,Linux,OS
Available
Cross-platform
Platform
30+
List
Software
Type
Freeware,
License
Javais
www.java.com
Website
languages
of alanguages[show]
b78(August19,
in
platform
system
in
mostlyopen-source,[8]with
set
of severalcomputer
2015;
X[6]38 days
softwareand
aago)[][4]
fewproprietary[9]components[10]
specifications developed bySun Microsyst
ems, later acquired byOracle Corporation, that provides a system for developingapp
lication softwareand deploying it in across-platformcomputing environment. Java is
used in a wide variety ofcomputing platformsfromembedded devicesandmobile phonestoen
prise serversandsupercomputers. While less common,Java appletsrun in secure,sandboxed
nvironments to provide many features of native applications and can be embedded
inHTMLpages.
Writing in theJava programming languageis the primary way to produce code that wil
l be deployed asbyte codein aJava Virtual Machine(JVM); byte codecompilersare also av
ilable for other languages, includingAda,JavaScript,Python, andRuby. In addition, se
veral languages have been designed to run natively on the JVM, includingScala,Cloj
ureandGroovy.Java syntaxborrows heavily fromCandC++, but object-oriented features ar
odeled afterSmalltalkandObjective-C.[11]Java eschews certain low-level constructs su
ch aspointersand has a very simple memory model where every object isallocated on t
he heapand all variables of object types arereferences. Memory management is handl
ed through integrated automaticgarbage collectionperformed by the JVM.
On November 13, 2006, Sun Microsystems made the bulk of its implementation of Ja
va available under theGNU General Public License(GPL).[12][13]
Contents
[hide]
* 1Platform
o 1.1Java Virtual Machine
o 1.2Class libraries
o 1.3Languages
o 1.4Similar platforms
o 1.5Java Development Kit
* 2History
o 2.1Java meets the Web
o 2.2Version history
* 3Usage
o 3.1Desktop use
o 3.2Mobile devices
o 3.3Web server and enterprise use
* 4Mascot
* 5Licensing
o 5.1Free software
* 6Criticism
o 6.1Generics
o 6.2Unsigned integer types
o 6.3Floating point arithmetic
o 6.4Performance
o 6.5Security
o 6.6Adware
o 6.7Redundancy
o 6.8Update System
* 7See also
* 8References
* 9External links
Platform[edit]
The Java platform is a suite of programs that facilitate developing and running
programs written in theJavaprogramming language. The platform is not specific to a

ny one processor oroperating system, rather an execution engine (called avirtual m


achine) and a compiler with a set of libraries are implemented for various hardw
are and operating systems so that Java programs can run identically on all of th
em. There are multiple platforms, each targeting a different class of devices:
* Java Card: A technology that allows small Java-based applications (applets) to
be run securely onsmart cardsand 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. Ofte
n used to develop applications for mobile devices, PDAs, TVset-top boxes, and pri
nters.
* 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 formulti-tierclient s
erverenterprise 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 Jav
a source code into Java bytecode (an intermediate language for the JVM), is prov
ided as part of theJava Development Kit(JDK). TheJava Runtime Environment(JRE), comp
lementing the JVM with ajust-in-time (JIT) compiler, converts intermediate byteco
de into native machine code on the fly. An extensive set of libraries are also p
art of the Java platform.
The essential components in the platform are the Java language compiler, the lib
raries, 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 execut
esJava bytecodeprograms. This bytecode is the same no matter what hardware or oper
ating system the program is running under. There is a JIT (Just In Time) compile
r within theJava Virtual Machine, or JVM. The JIT compiler translates the Java by
tecode 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 mea
ns 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 n
ative programs.[citation needed]Since JRE version 1.2, Sun's JVM implementation
has included ajust-in-time compilerinstead of an interpreter.
Although Java programs arecross-platformor platform independent, the code of the J
ava Virtual Machines (JVM) that execute these programs is not. Every supported o
perating platform has its own JVM.
Class libraries[edit]
Main article:Java Class Library
In most modernoperating systems(OSs), a large body of reusable code is provided to
simplify the programmer's job. This code is typically provided as a set ofdynami
cally loadable librariesthat applications can call at runtime. Because the Java p
latform is not dependent on any specific operating system, applications cannot r
ely 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,Swinglibrary paints the user
interface and handles the events itself, eliminating many subtle differences bet
ween how different platforms handle even similar components.
The Java class libraries serve three purposes within the Java platform. First, l
ike other standard code libraries, the Java libraries provide the programmer a w
ell-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 hardwa
re and operating system. Tasks such as network access and file access are often
heavily intertwined with the distinctive implementations of each platform. Thejav

a.netandjava.iolibraries implement an abstraction layer in native OS code, then pro


vide a standard interface for the Java applications to perform those tasks. Fina
lly, when some underlying platform does not support all of the features a Java a
pplication expects, the class libraries work to gracefully handle the absent com
ponents, 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 languagesandJVM programming languages
The word "Java", alone, usually refers to Java programming language that was des
igned for use with the Java platform. Programming languages are typically outsid
e 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 r
untime 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 t
he Java virtual machine as separate entities, so that they are no longer conside
red a single unit.[14]
Third parties have produced manycompilersorinterpretersthat target the JVM. Some of
these are for existing languages, while others are for extensions to the Java la
nguage. These include:
* BeanShell A lightweight scripting language for Java.[15]
* Clojure A dialect of the Lisp programming language.
* Groovy, a dynamic language with features similar to those of Python, Ruby, Per
l, and Smalltalk.
* JRuby ARubyinterpreter.
* Jython APythoninterpreter.
* Kotlin An industrial programming language forJVMwith fullJavainteroperability.
* Rhino AJavaScriptinterpreter.
* 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 platformsandComparison of C# and Java
The success of Java and itswrite once, run anywhereconcept has led to other simila
r efforts, notably the.NET Framework, appearing since 2002, which incorporates ma
ny of the successful aspects of Java. .NET in its complete form (Microsoft's imp
lementation) is currently only fully available on Windows platforms, whereas Jav
a is fully available on many platforms. .NET was built from the ground-up to sup
port 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 calledVisual J#(formerly namedJ++) that is incom
patible with the Java specification, and the associated class library mostly dat
es to the old JDK 1.1 version of the language. For these reasons, it is more a t
ransitional language to switch from Java to the .NET platform, than a first clas
s .NET language. Visual J# was discontinued with the release of Microsoft Visual
Studio 2008. The existing version shipping withVisual Studio 2005will be supporte
d until 2015 as per the product life-cycle strategy.
Java Development Kit[edit]
Main article:Java Development Kit
TheJava Development Kit(JDK) is aSunproduct aimed at Java developers. Since the intr
oduction of Java, it has been by far the most widely used Javasoftware developmen
t kit(SDK).[citation needed]It contains a Java compiler, a full copy of theJava Run
time Environment(JRE), and many other important development tools.
History[edit]
The Java platform and language began as an internal project atSun Microsystemsin D
ecember 1990, providing an alternative to the C++/Cprogramming languages. Enginee
rPatrick Naughtonhad become increasingly frustrated with the state of Sun's C++ a
nd Capplication programming interfaces(APIs) and tools. While considering moving t
oNeXT, Naughton was offered[by whom?]a chance to work on new technology, and thus
theStealth Projectstarted.

The Stealth Project was soon renamed to theGreen Project, withJames Goslingand Mike
Sheridan joining Naughton. Together with other engineers, they began work in a
small office onSand Hill RoadinMenlo Park, California. They aimed to develop new te
chnology for programming next-generation smart appliances, which Sun expected to
offer major new opportunities.[16]
The team originally considered using C++, but rejected it for several reasons. B
ecause they were developing anembedded systemwith limited resources, they decided
that C++ needed too much memory and that its complexity led to developer errors.
The language's lack ofgarbage collectionmeant that programmers had to manually ma
nage system memory, a challenging and error-prone task. The team also worried ab
out the C++ language's lack of portable facilities for security,distributed progr
amming, andthreading. Finally, they wanted a platform that would port easily to a
ll types of devices.
Bill Joyhad envisioned a new language combiningMesaand C. In a paper calledFurther,
he proposed to Sun that its engineers should produce anobject-orientedenvironment
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 calledOak, after the tree that stood just o
utside his office.[citation needed]
By the summer of 1992, the team could demonstrate portions of the new platform,
including the GreenOS, the Oak language, the libraries, and the hardware. Their f
irst demonstration, on September 3, 1992, focused on building apersonal digital a
ssistant(PDA) device namedStar7[1]that had a graphical interface and a smart agent
called "Duke" to assist the user. In November of that year, the Green Project wa
s spun off to becomeFirstperson, a wholly owned subsidiary of Sun Microsystems, a
nd the team relocated toPalo Alto, California.[17]The Firstperson team had an inte
rest in building highly interactive devices, and whenTime Warnerissued arequest for
proposal(RFP) for aset-top box, Firstperson changed their target and responded w
ith a proposal for a set-top box platform. However, thecableindustry felt that the
ir platform gave too much control to the user; Firstperson lost their bid toSGI.
An additional deal withThe 3DO Companyfor a set-top box also failed to materialize
. Unable to generate interest within the television industry, the company was ro
lled back into Sun.
Java meets the Web[edit]
after three days of brainstorming withJohn Gage(the Director
In June and July 1994
of Science for Sun), Gosling, Joy, Naughton,Wayne Rosing, andEric Schmidt the team
re-targeted the platform for theWorld Wide Web. They felt that with the advent of
graphicalweb browserslikeMosaicthe Internet could evolve into the same highly inter
active medium that they had envisioned for cable TV. As a prototype, Naughton wr
ote a small browser, WebRunner (named after the movieBlade Runner), renamedHotJava
[16]in 1995.
In 1994 Sun renamed the Oak language asJavaafter atrademarksearch revealed thatOak Te
chnologyused the nameOak.[18]Although Java 1.0a became available for download in 19
94, the first public release of Java, Java 1.0a2 with the HotJava browser, came
on May 23, 1995, announced by Gage at theSunWorldconference. Accompanying Gage's a
nnouncement,Marc Andreessen, Executive Vice President ofNetscape Communications Co
rporation, unexpectedly announced that Netscape browsers would include Java supp
ort. On January 9, 1996, Sun Microsystems formed the JavaSoft group to develop t
he technology.[19]
Version history[edit]
Main article:Java version history
The Java language has undergone several changes since the release of JDK (Java D
evelopment Kit) 1.0 on January 23, 1996, as well as numerous additions of classe
s and packages to the standardlibrary. Since J2SE 1.4 theJava Community Process(JCP
) has governed the evolution of the Java Language. The JCP usesJava Specification
Requests(JSRs) to propose and specify additions and changes to the Java platform
. TheJava Language Specification(JLS) specifies the language; changes to the JLS a
re managed under JSR 901.[20]
Sun releasedJDK 1.1on February 19, 1997. Major additions included an extensive ret
ooling of theAWTevent model,inner classesadded to the language,JavaBeansandJDBC.

J2SE 1.2(December 8, 1998)


CodenamePlayground. This and subsequent releases throug
h J2SE 5.0 were rebrandedJava 2and the version name "J2SE" (Java 2 Platform, Stand
ard Edition) replaced JDK to distinguish the base platform from J2EE (Java 2 Pla
tform, Enterprise Edition) and J2ME (Java 2 Platform, Micro Edition). Major addi
tions includedreflection, acollectionsframework,Java IDL(aninterface description lang
ageimplementation forCORBAinteroperability), and the integration of theSwinggraphical
API into the core classes. AJava Plug-inwas released, and Sun's JVM was equipped
with aJIT compilerfor the first time.
J2SE 1.3(May 8, 2000) CodenameKestrel. Notable changes included the bundling of th
eHotSpotJVM (the HotSpot JVM was first released in April, 1999 for the J2SE 1.2 JV
M),JavaSound,Java Naming and Directory Interface(JNDI) andJava Platform Debugger Arc
hitecture(JPDA).
J2SE 1.4(February 6, 2002)
CodenameMerlin. This became the first release of the Ja
va platform developed under the Java Community Process as JSR 59.[21]Major change
s includedregular expressionsmodeled afterPerl,exception chaining, an integratedXMLpa
ser andXSLTprocessor (JAXP), andJava Web Start.
J2SE 5.0(September 30, 2004) CodenameTiger. Originally numbered 1.5, which is stil
l used as the internal version number.[22]Developed under JSR 176, Tiger added se
veral significant new language features including thefor-each loop,generics,autobox
ingandvar-args.[23]
Java SE 6(December 11, 2006) CodenameMustang. Bundled with a database manager and
facilitates the use of scripting languages with the JVM (such asJavaScriptusingMoz
illa'sRhinoengine). As of this version, Sun replaced the name "J2SE" withJava SEand
dropped the ".0" from the version number.[24]Other major changes include support
for pluggableannotations(JSR 269), manyGUIimprovements, including native UI enhancem
ents to support the look and feel ofWindows Vista, and improvements to theJava Pla
tform Debugger Architecture(JPDA) & JVM Tool Interface for better monitoring and
troubleshooting.
Java SE 7(July 28, 2011) CodenameDolphin. This version developed underJSR 336. It a
dded many small language changes including strings in switch, try-with-resources
andtype inferencefor 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,[25]an improved new file I/O library and support for new net
work protocols such asSCTP. Java 7 Update 76 was released in January 2015, with e
xpiration date April 14, 2015.[26]
The currentversion,Java SE 8(March 18, 2014). Notable changes include language-leve
l support forlambda expressions(closures) and default methods, the Project Nashorn
JavaScript runtime, a new Date and Time API inspired by Joda Time, and the remo
val ofPermGen. This version is not officially supported on the Windows XP platfor
m.[27]However, due to the end of Java 7's lifecycle it is the recommended versio
n for XP users. Previously, only an unofficial manual installation method had be
en described for Windows XP SP3. It refers to JDK8, the developing platform for
Java that also includes a fully functioningJava Runtime Environment.[28]
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 asSwingandJava 2D, ha
ve evolved, and many of the original JDK 1.0 classes and methods have beendepreca
ted.
Usage[edit]
Desktop use[edit]
According to Oracle, the Java Runtime Environment is found on over 850 million P
Cs.[29]Microsofthas not bundled aJava Runtime Environment(JRE) with itsoperating syst
emssince Sun Microsystems sued Microsoft for adding Windows-specific classes to
the bundled Java runtime environment, and for making the new classes available t
hroughVisual J++.[citation needed]Apple no longer includes a Java runtime withOS Xas
ofversion 10.7, but the system prompts the user to download and install it the f
irst time an application requiring the JRE is launched.[citation needed]ManyLinux
distributionsinclude the partially compatiblefree softwarepackageGNU Classpath[30]and
increasingly mostly compatibleIcedTea.
Some Java applications are in fairly widespread desktop use, including theNetBean

sandEclipseintegrated development environments, and file sharing clients such asLime


WireandVuze. Java is also used in theMATLABmathematics programming environment, bot
h for rendering theuser interfaceand as part of the core system. Java provides cro
ss platform user interface for some high end collaborative applications likeLotus
Notes.
Mobile devices[edit]
Java ME has become popular in mobile devices, where it competes withSymbian,BREW,
and the.NET Compact Framework.
The diversity of mobile phone manufacturers has led to a need for new unified st
andards so programs can run on phones from different suppliers MIDP. The first sta
ndard was MIDP 1, which assumed a small screen size, no access to audio, and a 3
2kB 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 stan
dards, some manufacturers relax some limitations in the standards, for example,
maximum program size.
Google'sAndroidoperating system uses the Java language, but not its class librarie
s, therefore the Android platform cannot be called Java. Android executes the co
de on theDalvik VMinstead of the Java VM.
Web server and enterprise use[edit]
The Java platform has become a mainstay of enterprise IT development since the i
ntroduction 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 env
ironment by way of highly interactive online environments (such as highly dynami
c 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 co
ntinued from its initial Web-based start:
* The Java platform has matured into an Enterprise Integration role in which leg
acy systems are unlocked to the outside world through bridges built on the Java
platform. This trend has been supported for Java platform support forEAIstandards
like messaging andWeb servicesand has fueled the inclusion of the Java platform as
a development basis in such standards asSCA,XAMand others.
* Java has become the standard development platform for many companies' IT depar
tments, which do most or all of their corporate development in Java. This type o
f development is usually related to company-specific tooling (e.g. a booking too
l for an airline) and the choice for the Java platform is often driven by a desi
re 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) too
ls andcontent management systems.
Enterprise use of Java has also long been the main driver of open source interes
t in the platform. This interest has inspired open source communities to produce
a large amount of software, including simple function libraries, development fr
ameworks (e.g. theSpring Framework,Apache Wicket,Dojo Toolkit,Hibernate), and open s
ource implementations of standards and tools (e.g.Apache Tomcat, theGlassFish appl
ication server, theMuleandApache ServiceMixEnterprise service buses).
Mascot[edit]
Plain ol' Duke
Duke is Java'smascot.[31]
When Sun announced thatJava SEandJava MEwould be released under afree software licens
e(theGNU General Public License), they released the Duke graphics under the freeBSD
licenseat the same time.[32]A new Duke personality is created every year.[33]For e
xample, in July 2011 "Future Tech Duke" included a bigger nose, a jetpack, and b
lue wings.[34]

Licensing[edit]
The source code for Sun's implementations of Java (that is the de facto referenc
e implementation) has been available for some time, but until recently the licen
se terms severely restricted what could be done with it without signing (and gen
erally paying for) a contract with Sun. As such these terms did not satisfy the
requirements of either theOpen Source Initiativeor theFree Software Foundationto be
considered open source or free software, and Sun Java was therefore a proprietar
y platform.[35]
While several third-party projects (e.g.GNU ClasspathandApache Harmony) createdfree
softwarepartial Java implementations, the large size of the Sun libraries combine
d with the use ofclean room methodsmeant that their implementations of the Java li
braries (the compiler and VM are comparatively small and well defined) were inco
mplete and not fully compatible. These implementations also tended to be far les
s optimized than Sun's.[citation needed]
Free software[edit]
See also:OpenJDK
Sunannounced inJavaOne2006 that Java would becomefreeandopen source software,[36]and
October 25, 2006, at theOracle OpenWorldconference,Jonathan I. Schwartzsaid that th
e company was set to announce the release of the coreJava Platformas free and open
source software within 30 to 60 days.[37]
Sun released the Java HotSpot virtual machine and compiler as free software unde
r theGNU General Public Licenseon 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 dist
ributable source form under the GPL").[38]According toRichard Stallman, this would
mean an end to the "Java trap".[39]Mark Shuttleworthcalled the initial press anno
uncement, "A real milestone for thefree softwarecommunity".[40]
Sun released thesource codeof theClass libraryunderGPLon May 8, 2007, except some lim
ted 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.[41]Some of the enc
umbered parts turned out to be fairly key parts of the platform such as font ren
dering and 2D rasterising, but these were released as open-source later by Sun (
seeOpenJDK Class library).
Sun's goal was to replace the parts that remain proprietary and closed-source wi
th alternative implementations and make the class library completely free and op
en source. In the meantime, a third party project calledIcedTeacreated a completel
y free and highly usable JDK by replacing encumbered code with either stubs or c
ode fromGNU Classpath. Although OpenJDK has since become buildable without the en
cumbered parts (from OpenJDK 6 b10[42]),IcedTeais still used by the majority of di
stributions, such asFedora,RHEL,Debian,Ubuntu,Gentoo,Arch LinuxandSlackware, as it p
ides security releases and an easier means for patch inclusion. OpenJDK also sti
ll doesn't include a browser plugin &Web Startimplementation, so IcedTea's compani
on project, IcedTea-Web, is needed to fill this gap.
In June 2008, it was announced thatIcedTea6 (as the packaged version of OpenJDK o
nFedora 9) has passed theTechnology Compatibility Kittests and can claim to be a fu
lly compatible Java 6 implementation.[43]
Because OpenJDK is under the GPL, it is possible to redistribute a custom versio
n of the JRE directly with software applications,[44][45]rather than requiring th
e 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.[46]It was
suggested that, if Java is required by a few Web sites, users should have a sepa
rate browser installation specifically for those sites.
Generics[edit]
Further information:Generics in Java
Whengenericswere added to Java 5.0, there was already a large framework of classes
(many of which were alreadydeprecated), so generics were chosen to be implemente

d usingerasureto allow formigration compatibilityand re-use of these existing classe


s. This limited the features that could be provided by this addition as compared
to some other languages.[47][48]
Unsigned integer types[edit]
Java lacks nativeunsigned integertypes. Unsigned data are often generated from pro
grams written inCand the lack of these types prevents direct data interchange betw
een 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 t
hese tasks.[49]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 th
e 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 sa
me size, but this requires detailed knowledge of complex bitwise operations.[50]
Floating point arithmetic[edit]
While Java's floating point arithmetic is largely based onIEEE 754(Standard for Bi
nary Floating-Point Arithmetic), certain features are not supported even when us
ing thestrictfpmodifier, such as Exception Flags and Directed Roundings
capabilit
ies mandated by IEEE Standard 754. Additionally, the extended precision floating
-point types permitted in 754 and present in many processors are not permitted i
n Java.[51][52]
Performance[edit]
Further information:Java performance
In the early days of Java (before theHotSpot VMwas implemented in Java 1.3 in 2000
) there were some criticisms of performance. However, benchmarks typically repor
t Java as being about two times slower than C (a language which compiles to nati
ve code).[53][54][55]
Java's performancehas improved substantially since the early versions.[56]Performa
nce ofJIT compilersrelative to native compilers has in some optimized tests been s
hown to be quite similar.[56][57][58]
Java bytecodecan either be interpreted at run time by a virtual machine, or it ca
n be compiled at load time or runtime into native code which runs directly on th
e computer's hardware. Interpretation is slower than native execution, and compi
lation at load time or runtime has an initial performance penalty for the compil
ation. Modern performant JVM implementations all use the compilation approach, s
o 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[59]which is designed to allow
the user to run untrusted bytecode in a "sandboxed" manner to protect against ma
licious or poorly written software. This "sandboxing" feature is intended to pro
tect the user by restricting access to certain platform features and APIs which
could be exploited bymalware, such as accessing the local filesystem, running arb
itrary commands, or accessing communication networks.
In recent years, researchers have discovered numerous security flaws in some wid
ely used Java implementations, including Oracle's, which allow untrusted code to
bypass the sandboxing mechanism, exposing users to malicious attacks. These fla
ws affect only Java applications which execute arbitrary untrusted bytecode, suc
h 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 aremote exploitto take place by
simply loading a malicious web page.[60]Java 5was later found to be flawed as wel
l.[61]
On January 10, 2013, three computer specialists spoke out against Java, tellingRe

utersthat it was not secure and that people should disable Java. Jaime Blasco, La
bs Manager with AlienVault Labs, stated that "Java is a mess. It s not secure. You
have to disable it."[62]This vulnerability affectsJava 7and it is unclear if it af
fectsJava 6, so it is suggested that consumers disable it.[63][64]Security alerts
from Oracle announce schedules of critical security-related patches to Java.[65]
On January 14, 2013, security experts said that the update still failed to prote
ct PCs from attack.[66]This exploit hole prompted a response from theUnited States
Department of Homeland Securityencouraging users to disable or uninstall Java.[6
7]Apple blacklisted Java in limited order for all computers running itsMac OS Xoper
ating system through a virus protection program.[68]
Adware[edit]
The Java browser runtime environment has a history of bundling sponsored softwar
e to be installed by default during installation and during the updates which ro
ll out every month or so. This includes the "Ask.com toolbar" that will redirect
browser searches to ads and "McAfee Security Scan Plus".[69]
Redundancy[edit]
Several authors inline with recent Java security and vulnerability issues have c
alled for users to ditch Java. "Once promising, it has outlived its usefulness i
n the browser, and has become a nightmare that delights cyber-criminals at the e
xpense of computer users."[70]"I think everyone should uninstall Java from all the
ir 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 b
usiness user, you may not have a choice."[71]
Update System[edit]
Java has yet to release an automatic updater that does not require user interven
tion and administrative rights[72]unlike Google Chrome[73]and Flash player.[74]
See also[edit]
*Java
Javaportal
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^Version 1.0 press release, Sun.
2. Jump up^Ortiz, C. Enrique; Giguere, Eric (2001).Mobile Information Device Profi
le for Java 2 Micro Edition: Developer's Guide(PDF).John Wiley & Sons.ISBN978-047103
4650. RetrievedMay 30,2012.
3. ^Jump up to:ab"Java SE Downloads - Latest Release".Oracle. Retrieved2014-04-15.
4. Jump up^"Java Platform, Early Access Releases".
5. Jump up^http://openjdk.java.net/groups/hotspot/
6. Jump up^Oracle JDK 7 and JRE 7 Certified System Configurations
7. Jump up^http://www.oracle.com/technetwork/java/javase/javase7locales-334809.ht
ml
8. Jump up^GNU GPLv2 with Classpath exception
9. Jump up^BCL For Java SE
10. Jump up^OpenJDK FAQ
11. Jump up^Naughton, Patrick."Java Was Strongly Influenced by Objective-C".Virtual
School.
12. Jump up^"Sun Opens Java". Sun Microsystems. 13 November 2006. Archived fromthe
originalon 2008-05-13.
13. Jump up^Kelly O'Hair (December 2010)."OpenJDK7 and OpenJDK6 Binary Plugs Logic
Removed".Oracle Corporation. Retrieved2011-11-25.
14. Jump up^"JVM 7 Specification".
15. Jump up^www.beanshell.org
16. ^Jump up to:abJon Byous (April 2003)."Java Technology: The Early Years".Sun Micro
systems. Archived fromthe originalon May 30, 2008. Retrieved2009-08-02.

17. Jump up^Kathy Walrath (2001-12-21)."Foreword".Sun Microsystems. Retrieved2009-08


-02.
18. Jump up^Kieron Murphy (1996-04-10)."So why did they decide to call it Java?".
javaworld.com. Retrieved2009-08-03.The lawyers had told us that we couldn't use th
e name 'OAK' because [it was already trademarked by] Oak Technologies," said Fra
nk Yellin, a senior engineer at Sun. "So a brainstorming session was held to com
e up with ideas for a new name
19. Jump up^"Sun Microsystems Announces Formation of Javasoft". Sun Microsystems.
January 1996.
20. Jump up^The Java Community Process(SM) Program
JSRs: Java Specification Reque
sts detail JSR# 63
21. Jump up^The Java Community Process(SM) Program
JSRs: Java Specification Reque
sts detail JSR# 59
22. Jump up^Version 1.5.0 or 5.0?
23. Jump up^The Java Community Process(SM) Program
JSRs: Java Specification Reque
sts detail JSR# 176
24. Jump up^"Java Naming".Java.com. Oracle. Retrieved25 August2011.
25. Jump up^Lea, Doug (13 September 2004)."JSRs: Java Specification Requests: JSR
166: Concurrency Utilities".Java Community Process. Oracle Corp.
26. Jump up^Oracle Java SE 7 Update 76 Release Notes
27. Jump up^http://www.java.com/en/download/faq/winxp.xml
28. Jump up^Installing JDK8 on Windows XP
advapi32.dll error
29. Jump up^"What is Java technology and why do I need it?". Retrieved15 December20
11.Java runs on more than 850 million personal computers worldwide, and on billio
ns of devices worldwide, including mobile and TV devices.
30. Jump up^"Results of comparison between jdk15 and classpath". kaffe.org.
31. Jump up^"Duke, the Java Mascot".Oracle. Retrieved2011-11-12.
32. Jump up^"duke: Project Home Page".Sun Microsystems. Retrieved2007-03-18.
33. Jump up^"Duke, the Java Mascot".
34. Jump up^"Future Tech Duke (The Java Source)". Tori Wieldt. Retrieved2011-08-17
.
35. Jump up^Stallman, Richard (May 24, 2006)."The Curious Incident of Sun in the N
ight-Time".Groklaw.
36. Jump up^Schwartz, Jonathan."?".Jonathan Schwartz's Blog. Sun Microsystems.
37. Jump up^Oracle OpenWorld: UnBreakable Linux / 5015.2 not on the horizon
38. Jump up^Sun Opens Java
39. Jump up^Free But Shackled The Java Trap
40. Jump up^"Sun 'releases' Java to the World".BBC News. November 13, 2006. Retrie
vedMay 6,2010.
41. Jump up^"Open JDK is here!". Sun Microsystems. May 8, 2007. Retrieved2007-05-0
9.
42. Jump up^Wielaard, Mark (2007-05-30)."OpenJDK6 b10 source posted". Retrieved2008
-07-12.
43. Jump up^Sharples, Rich (2008-06-19)."Java is finally Free and Open".
44. Jump up^Bundling a jre, github/libgdx/libgdx
45. Jump up^Question about bundling custom OpenJDK Java-Gaming.org
46. Jump up^Sophos:"Unless it is absolutely necessary to run Java in web browsers
, disable it", DHS-sponsored CERT team says, 15 January 2013
47. Jump up^"Generics in Java". Object Computing, Inc. Retrieved2006-12-09.
48. Jump up^"What's Wrong With Java: Type Erasure". 2006-12-06. Retrieved2006-12-0
9.
49. Jump up^"Java libraries should provide support for unsigned integer arithmeti
c".Bug Database, Sun Developer Network. Oracle. Retrieved2011-01-18.
50. Jump up^Owens, Sean R. (2009-11-05)."Java and unsigned int, unsigned short, un
signed byte, unsigned long, etc. (Or rather, the lack thereof)".darksleep.com. Re
trieved2010-10-09.
51. Jump up^Kahan, W.; Joseph D. Darcy (1998-03-01)."How Java's Floating-Point Hur
ts Everyone Everywhere"(PDF). Retrieved2006-12-09.
52. Jump up^"Types, Values, and Variables". Sun Microsystems. Retrieved2006-12-09.
53. Jump up^Which programming languages are fastest? | Computer Language Benchmar

ks Game
54. Jump up^speed C++ GNU g++ speed | Computer Language Benchmarks Game
55. Jump up^C++ vs Java performance; It s a tie! | Blog of Christian Felde
56. ^Jump up to:abJ.P.Lewis and Ulrich Neumann."Performance of Java versus C++". Gra
phics and Immersive Technology Lab,University of Southern California.
57. Jump up^The Java is Faster than C++ and C++ Sucks Unbiased Benchmark
58. Jump up^FreeTTS A Performance Case Study, Willie Walker, Paul Lamere, Philip
Kwok
59. Jump up^Java SE Platform Security Architecture. Oracle. Retrieved 2013-04-23.
60. Jump up^blogs.computerworld.com
Java security flaw: yada yada yada, 2012-08-3
1
61. Jump up^threatpost.com
New Zero-Day Vulnerability Found in Java 5, 6 and 7; 1
.1 Billion Desktops Affected, 2012-09-26
62. Jump up^nbcnews.com Experts urge PC users to disable Java, cite security flaw
, 2013-01-10
63. Jump up^US Dept. of Homeland Security Calls On Computer Users To Disable JavaF
orbes, Jan. 11, 2013
64. Jump up^Nasty New Java Zero Day Found; Exploit Kits Already Have It, 2013-0110
65. Jump up^Oracle Critical Patch Updates, Security Alerts
66. Jump up^independent.ie
Emergency patch for Java fails to fix cybercrime holes
, warn experts, 2013-01-14
67. Jump up^zdnet.com Homeland Security warns to disable Java amid zero-day flaw,
2013-01-11
68. Jump up^venturebeat.com
Oracle issues fix for Java exploit after DHS warns of
its holes, 2013-01-14
69. Jump up^Bott, Ed."A close look at how Oracle installs deceptive software with
Java updates".ZDNet.com. ZDNet. Retrieved14 December2014.
70. Jump up^http://readwrite.com/2012/09/05/java-is-no-longer-needed-pull-the-plu
g-in
71. Jump up^http://www.theguardian.com/technology/askjack/2013/feb/08/java-remove
-ask-jack-technology
72. Jump up^http://superuser.com/questions/312319/how-do-i-update-java-from-a-non
-admin-account.Missing or empty|title=(help)
73. Jump up^https://support.google.com/chrome/answer/95414?hl=en.Missing or empty|t
itle=(help)
74. Jump up^http://helpx.adobe.com/security/products/flash-player/apsb14-13.html.M
issing or empty|title=(help)
External links[edit]
Wikiversity has learning materials aboutLearning Java
Look upJavain Wiktionary, the free dictionary.
Wikibooks
Listen
to this
has aarticle(info/dl)
book on the topic of:Java Programming
This audio file was created from a revision of the "Java (software platform)" ar
ticle dated 2013-08-19, and does not reflect subsequent edits to the article. (A
udio help)
More spoken articles
* Official website
* sun.com
Official developer site
* infoq.com PresentationbyJames Goslingabout the origins of Java, from the JVM Lang
uages Summit 2008
* Java Tutorials and Examples collection
* Java Introduction, May 14, 2014, Java77 Blog
* javatester.org What Version of Java Are You Using?, tells you which version yo
u are using
* JavaRa, a utility developed by Paul McLain and Fred De Vries atRaProductsto find
and remove older versions of Java, now distributed bySingularLabs.
[show]
* V

* T
* E
Java
[show]
* V
* T
* E
Sun Microsystems(acquiredbyOracle Corporation, 2010)
[show]
* V
* T
* E
Integrated development environmentsforJava
Categories:
* Java platform
* Computing platforms
* Cross-platform software
Navigation menu
* Create account
* Not logged in
* Talk
* Contributions
* Log in
* Article
* Talk
* Read
* Edit
* View history
Top of Form
Bottom of Form
* Main page
* Contents
* Featured content
* Current events
* Random article
* Donate to Wikipedia
* Wikipedia store
Interaction
* Help
* About Wikipedia
* Community portal
* Recent changes
* Contact page
Tools
* What links here
* Related changes
* Upload file
* Special pages
* Permanent link
* Page information
* Wikidata item
* Cite this page
Print/export
* Create a book
* Download as PDF
* Printable version
Languages
* ???????
* ??????????
* ?????????? (???????????)?

* Catal
* ?e tina
* Deutsch
* Espaol
* ?????
* Franais
* ???
* Italiano
* ?????
* ???????
* ??????????
* ???
* ??????
* Portugus
* ???????
* Trke
* ??????????
* Ti?ng Vi?t
* ??
Edit links
* This page was last modified on 18 September 2015, at 08:55.
* Text is available under theCreative Commons Attribution-ShareAlike License; add
itional terms may apply. By using this site, you agree to theTerms of UseandPrivacy
Policy. Wikipedia is a registered trademark of theWikimedia Foundation, Inc., a n
on-profit organization.
* Privacy policy
* About Wikipedia
* Disclaimers
* Contact Wikipedia
* Developers
* Mobile view
*
*
Ggggggggggggggggg jjjjjjjjjjjjjjjjjjjjjjj
Gggggggggggg
Jjjjjjjjjjjjjjj
Ggggggggg
Ddddddddddddd
Rrrrrrrrrrrrrrrrrr
Ttttttttttttttttt
Mhlmbglf
Mhtmr

Вам также может понравиться