Beruflich Dokumente
Kultur Dokumente
4Ghz 4-Core
PHP 8460.00
mb lga1150: MSI B85-G43 Gaming PHP 4690.00
vga radeon: MSI R9 390 Twin Frozr 8gb PHP 17690.00 (pc hub)
PSU: Seasonic (M12II) Evo 620watts 80+ Bronze PHP 3560
Case: NZXT S340
PHP 3560.00
ram: G.Skill Ares (Dual) 2x4gb ddr3 1600 CL9
PHP 3070.00
Page protected with pending changes level 1
Java (programming language)
From Wikipedia, the free encyclopedia
Changes must be reviewed before being displayed on this page.show/hide details
"Java language" redirects here. For the natural language from the Indonesian isl
and of Java, see Javanese language.
Not to be confused with JavaScript.
Java
Java logo.png
Paradigm
multi-paradigm: object-oriented (class-based), structured, imper
ative, generic, reflective, concurrent
Designed by
James Gosling and
Sun Microsystems
Developer
Oracle Corporation
First appeared 1995; 20 years ago[1]
Stable release Java Standard Edition 8 Update 65 (1.8.0_65)/ 8 Update 66 (1.8.0
_66)[2] / October 20, 2015; 32 days ago[2]
Preview release Java Standard Edition 9 Early Access b85 (1.9.0-ea-b85) / Septem
ber 28, 2015; 54 days ago
Typing discipline
Static, strong, safe, nominative, manifest
Implementation language C and C++
OS
Cross-platform (multi-platform)
License GNU General Public License, Java Community Process
Filename extensions
.java , .class, .jar
Website
java.com
For Java Developers
Major implementations
OpenJDK, GNU Compiler for Java(gcj), many others
Dialects
Generic Java, Pizza
Influenced by
Ada 83, C++, C#,[3] Eiffel,[4] Generic Java, Mesa,[5] Modula-3,[6] Oberon,[7] Ob
jective-C,[8] UCSD Pascal,[9][10] Object Pascal[11]
Influenced
Ada 2005, BeanShell, C#, Clojure, ECMAScript, Groovy, J#, JavaScript, Kotlin, PH
P, Python, Scala, Seed7, Vala, Hack[12]
Java Programming at Wikibooks
Java is a general-purpose computer programming language that is concurrent, clas
s-based, object-oriented,[13] and specifically designed to have as few implement
ation dependencies as possible. It is intended to let application developers "wr
ite once, run anywhere" (WORA),[14] meaning that compiled Java code can run on a
ll platforms that support Java without the need for recompilation.[15] Java appl
ications are typically compiled to bytecode that can run on any Java virtual mac
hine (JVM) regardless of computer architecture. As of 2015, Java is one of the m
ost popular programming languages in use,[16][17][18][19] particularly for clien
t-server web applications, with a reported 9 million developers.[citation needed
] Java was originally developed by James Gosling at Sun Microsystems (which has
since been acquired by Oracle Corporation) and released in 1995 as a core compon
ent of Sun Microsystems' Java platform. The language derives much of its syntax
from C and C++, 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 o
f May 2007, in compliance with the specifications of the Java Community Process,
Sun relicensed most of its Java technologies under the GNU General Public Licen
se. Others have also developed alternative implementations of these Sun technolo
gies, such as the GNU Compiler for Java (bytecode compiler), GNU Classpath (stan
dard libraries), and IcedTea-Web (browser plugin for applets).
The latest version is Java 8, which is the only version currently supported for
free by Oracle, although earlier versions are supported both by Oracle and other
companies on a commercial basis.
Contents [hide]
1
History
1.1
Principles
1.2
Versions
2
Practices
2.1
Java platform
2.1.1 Implementations
2.1.2 Performance
2.2
Automatic memory management
3
Syntax
4
Examples
4.1
"Hello, world!" program
4.2
Comprehensive example
5
Special classes
5.1
Applet
5.2
Servlet
5.3
JavaServer Pages
5.4
Swing application
5.5
Generics
6
Criticism
7
Use on unofficial software platforms
7.1
Google
8
Class libraries
9
Documentation
10
Editions
11
See also
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, the creator of Java (2008)
The TIOBE programming language popularity index graph from 2002 to 2015. Over th
e course of a decade Java (blue) and C (black) competing for the top position.
James Gosling, Mike Sheridan, and Patrick Naughton initiated the Java language p
roject in June 1991.[20] Java was originally designed for interactive television
, but it was too advanced for the digital cable television industry at the time.
[21] The language was initially called Oak after an oak tree that stood outside
Gosling's office. Later the project went by the name Green and was finally renam
ed Java, from Java coffee.[22] Gosling designed Java with a C/C++-style syntax t
hat system and application programmers would find familiar.[23]
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 strict
ly with the Java 1.0 language specification.[24] With the advent of Java 2 (rele
ased initially as J2SE 1.2 in December 1998
1999), new versions had multiple con
figurations built for different types of platforms. J2EE included technologies a
nd APIs for enterprise applications typically run in server environments, while
J2ME featured APIs optimized for mobile applications. The desktop version was re
named 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 JTC 1 standards body and later
the Ecma International to formalize Java, but it soon withdrew from the process.
[25][26][27] Java remains a de facto standard, controlled through the Java Commu
nity Process.[28] At one time, Sun made most of its Java implementations availab
le without charge, despite their proprietary software status. Sun generated reve
nue from Java through the selling of licenses for specialized products such as t
he 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, 200
7, 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.[29]
Sun's vice-president Rich Green said that Sun's ideal role with regard to Java w
as as an "evangelist".[30] Following Oracle Corporation's acquisition of Sun Mic
rosystems in 2009 10, Oracle has described itself as the "steward of Java technolo
gy with a relentless commitment to fostering a community of participation and tr
ansparency".[31] This did not prevent Oracle from filing a lawsuit against Googl
e shortly after that for using Java inside the Android SDK (see Google section b
elow). Java software runs on everything from laptops to data centers, game conso
les to scientific supercomputers.[32] On April 2, 2010, James Gosling resigned f
rom Oracle.[33]
Principles[edit]
There were five primary goals in the creation of the Java language:[15]
It must be "simple, object-oriented, and familiar".
It must be "robust and secure".
It must be "architecture-neutral and portable".
It must execute with "high performance".
It must be "interpreted, threaded, and dynamic".
Versions[edit]
Main article: Java version history
Currently only Java 8 is supported ("publicly"). 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
Java Control Panel, version 7
One design goal of Java is portability, which means that programs written for th
e Java platform must run similarly on any combination of hardware and operating
system with adequate runtime support. This is achieved by compiling the Java lan
guage code to an intermediate representation called Java bytecode, instead of di
rectly to architecture-specific machine code. Java bytecode instructions are ana
logous to machine code, but they are intended to be executed by a virtual machin
e (VM) written specifically for the host hardware. End users commonly use a Java
Runtime Environment (JRE) installed on their own machine for standalone Java ap
plications, or in a web browser for Java applets.
Standard libraries provide a generic way to access host-specific features such a
s graphics, threading, and networking.
The use of universal bytecode makes porting simple. However, the overhead of int
erpreting bytecode into machine instructions makes interpreted programs almost a
lways run more slowly than native executables. However, just-in-time (JIT) compi
lers that compile bytecodes to machine code during runtime were introduced from
an early stage. Java itself is platform-independent, and is adapted to the parti
cular platform it is to run on by a Java virtual machine for it, which translate
s the Java bytecode into the platform's machine language.[34]
Implementations[edit]
See also: Free Java implementations
Oracle Corporation is the current owner of the official implementation of the Ja
va SE platform, following their acquisition of Sun Microsystems on January 27, 2
010. This implementation is based on the original implementation of Java by Sun.
The Oracle implementation is available for Microsoft Windows (still works for X
P, while only later versions currently "publicly" supported), Mac OS X, Linux an
d Solaris. Because Java lacks any formal standardization recognized by Ecma Inte
rnational, ISO/IEC, ANSI, or other third-party standards organization, the Oracl
e 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 requ
ired to run Java programs and is intended for end users, and the Java Developmen
t 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 GNU
GPL. The implementation started when Sun began releasing the Java source code u
nder the GPL. As of Java SE 7, OpenJDK is the official Java reference implementa
tion.
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 implement
ations be "compatible". This resulted in a legal dispute with Microsoft after Su
n claimed that the Microsoft implementation did not support RMI or JNI and had a
dded 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 t
he license from Sun.[35] As a result, Microsoft no longer ships Java with Window
s.
Platform-independent Java is essential to Java EE, and an even more rigorous val
idation is required to certify an implementation. This environment enables porta
ble server-side applications.
Performance[edit]
Main article: Java performance
Programs written in Java have a reputation for being slower and requiring more m
emory than those written in C++.[36][37] However, Java programs' execution speed
improved significantly with the introduction of just-in-time compilation in 199
7/1998 for Java 1.1,[38] the addition of language features supporting better cod
e analysis (such as inner classes, the StringBuilder class, optional assertions,
etc.), and optimizations in the Java virtual machine, such as HotSpot becoming
the default for Sun's JVM in 2000.
Some platforms offer direct hardware support for Java; there are microcontroller
s 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 throu
gh their Jazelle option (while its support is mostly dropped in current implemen
tations of ARM).
Automatic memory management[edit]
Java uses an automatic garbage collector to manage memory in the object lifecycl
e. The programmer determines when objects are created, and the Java runtime is r
esponsible 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 fr
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 class, method,
or field being documented.
*/
public class FibCalculator extends Fibonacci implements Calculator {
private static Map<Integer, Integer> memoized = new HashMap<Integer, Integer
>();
/*
* The main method written as follows is used by the JVM as a starting point
for the program.
*/
public static void main(String[] args) {
memoized.put(1, 1);
memoized.put(2, 1);
System.out.println(fibonacci(12)); //Get the 12th Fibonacci number and p
rint to console
}
/**
* 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
*/
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]
"Hello, world!" program[edit]
The traditional "Hello, world!" program can be written in Java as:[44]
class HelloWorldApp {
public static void main(String[] args) {
System.out.println("Hello World!"); // Prints the string to the console.
}
}
Source files must be named after the public class they contain, appending the su
ffix .java, for example, HelloWorldApp.java. It must first be compiled into byte
code, using a Java compiler, producing a file named HelloWorldApp.class. Only th
en 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 c
lasses, 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 compile
r 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 fil
e generation, anonymous classes are treated as if their name were the concatenat
}
}
/**
* 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. E
very 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 use
rInput field.
OddEven() is a public constructor. Constructors have the same name as the enclos
ing class they are declared in, and unlike a method, have no return type. A cons
tructor 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 t
he method is invoked using a specific instance of the OddEven class. (The refere
nce used to invoke the method is passed as an undeclared parameter of type OddEv
en named this.) The method tests the expression userInput % 2 == 0 using the if
keyword 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 print
s 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 equivalen
tly accessed as this.userInput, which both explicitly use the undeclared this pa
rameter.)
OddEven number = new OddEven(); declares a local object reference variable in th
e main method named number. This variable can hold a reference to an object of t
ype OddEven. The declaration initializes number by first creating an instance of
the OddEven class, using the new keyword and the OddEven() constructor, and the
n assigning this instance to the variable.
The statement number.showDialog(); calls the calculate method. The instance of O
ddEven object referenced by the number local variable is used to invoke the meth
od 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 i
nt by using a utility function in the primitive wrapper class Integer.
Special classes[edit]
This section contains instructions, advice, or how-to content. The purpose of Wi
kipedia is to present facts, not to train. Please help improve this article eith
er 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 static void main(final String[] args) {
new Hello();
}
}
The first import includes all the public classes and interfaces from the javax.s
wing package.
The Hello class extends the JFrame class; the JFrame class implements a window w
ith a title bar and a close control.
The Hello() constructor initializes the frame by first calling the superclass co
nstructor, passing the parameter "hello", which is used as the window's title. I
t then calls the setDefaultCloseOperation(int) method inherited from JFrame to s
et the default operation when the close control on the title bar is selected to
WindowConstants.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 mac
hine to exit and the program to terminate. Next, a JLabel is created for the str
ing "Hello, world!" and the add(Component) method inherited from the Container s
uperclass is called to add the label to the frame. The pack() method inherited f
rom 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 the
setVisible(boolean) method inherited from the Component superclass with the bool
ean parameter true. Once the frame is displayed, exiting the main method does no
t cause the program to terminate because the AWT event dispatching thread remain
s 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. Eit
her the container operates on all subtypes of a class or interface, usually Obje
ct, or a different container class has to be created for each contained class. G
enerics allow compile-time type checking without having to create many container
classes, each containing almost identical code. In addition to enabling more ef
ficient 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,[47] speed,[4
8] the handling of unsigned numbers,[49] the implementation of floating-point ar
ithmetic,[50] and a history of security vulnerabilities in the primary Java VM i
mplementation HotSpot.[51]
Use on unofficial software platforms[edit]
The Java programming language requires the presence of a software platform in or
der for compiled programs to be executed. A well-known unofficial Java-like soft
ware platform is the Android software platform, which allows the use of Java 6 a
nd some Java 7 features, uses a different standard library (Apache Harmony reimp
lementation), different bytecode language and different virtual machine, and is
designed for low-memory devices such as smartphones and tablet computers.
The Android operating system 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 mobile operating system. Althou
gh 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 applicatio
ns. However, Android does not use the Java virtual machine, instead using Java b
3. Oracle has been a leading and substantive supporter of Java since its emergen
ce in 1995 and takes on the new role as steward of Java technology with a relent
less commitment to fostering a community of participation and transparency.
Jump up ^ "Learn About Java Technology". Oracle. Retrieved 21 November 2011.
Jump up ^ Gosling, James (April 9, 2010). "Time to move on...". On a New Road. R
etrieved 2011-11-16.
Jump up ^ "Is the JVM (Java Virtual Machine) platform dependent or platform inde
pendent? What is the advantage of using the JVM, and having Java be a translated
language?". Programmer Interview. Retrieved 2015-01-19.
Jump up ^ Niccolai, James (January 23, 2001). "Sun, Microsoft settle Java lawsui
t". JavaWorld (International Data Group). Retrieved 2008-07-09.
Jump up ^ Jelovic, Dejan. "Why Java will always be slower than C++". Retrieved 2
008-02-15.
Jump up ^ Google. "Loop Recognition in C++/Java/Go/Scala" (PDF). Retrieved 201207-12.
Jump up ^ "Symantec's Just-In-Time Java Compiler To Be Integrated into Sun JDK 1
.1".
Jump up ^ "NullPointerException". Oracle. Retrieved 2014-05-06.
Jump up ^ "Exceptions in Java". Artima.com. Retrieved 2010-08-10.
Jump up ^ "Java HotSpot VM Options". Oracle.com. 2010-09-07. Retrieved 2012-06-3
0.
Jump up ^ "Operator Overloading (C# vs Java)". C# for Java Developers. Microsoft
. Retrieved 10 December 2014.
Jump up ^ "Multiple Inheritance of State, Implementation, and Type". The Java Tut
orials. Oracle. Retrieved 10 December 2014.
Jump up ^ "Lesson: A Closer Look at the "Hello World!" Application". The Java Tut
orials > Getting Started. Oracle Corporation. Retrieved 2011-04-14.
Jump up ^ "Using applet, object and embed Tags". oracle.com. Retrieved 2010-10-1
4.
Jump up ^ "Deploying Applets in a Mixed-Browser Environment". oracle.com. Retrie
ved 2010-10-14.
Jump up ^ Arnold, Ken. "Generics Considered Harmful". java.net. Retrieved 4 July
2011.
Jump up ^ Jelovic, Dejan. "Why Java Will Always Be Slower than C++". www.jelovic
.com. Retrieved 17 October 2012.
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 o
n 2004-11-09. Retrieved 2011-07-04.
Jump up ^ Kahan, William. "How Java's Floating-Point Hurts Everyone Everywhere"
(PDF). Electrical Engineering & Computer Science, University of California at Be
rkeley. Retrieved 4 June 2011.
Jump up ^ "Have you checked the Java?".
Jump up ^ Mullin, Joe. "Google guilty of infringement in Oracle trial; future le
gal headaches loom". Law & Disorder. Ars Technica. Retrieved 8 May 2012.
Jump up ^ Joe Mullin (May 31, 2012). "Google wins crucial API ruling, Oracle's c
ase decimated". Ars Technica. Retrieved 2012-06-01.
Jump up ^ http://www.cafc.uscourts.gov/images/stories/opinions-orders/13-1021.Op
inion.5-7-2014.1.PDF
Jump up ^ Rosenblatt, Seth (May 9, 2014). "Court sides with Oracle over Android
in Java patent appeal". CNET. Retrieved 2014-05-10.
Jump up ^ "ORACLE AMERICA, INC., Plaintiff Appellant, v. GOOGLE INC., Defendant
Cross Appellant." (PDF). Court of Appeals for the Federal Circuit. May 9, 2014.
Retrieved 2014-05-10.
Jump up ^ "Collections Framework Overview". Java Documentation. Oracle. Retrieve
d 18 December 2014.
Jump up ^ "Java Security Overview". Java Documentation. Oracle. Retrieved 18 Dece
mber 2014.
Jump up ^ "Trail: Internationalization". The Java Tutorials. Oracle. Retrieved 18
December 2014.
Jump up ^ "How to Write Doc Comments for the Javadoc Tool". Oracle Technology Ne
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
Ach
Afrikaans
????
???????
???????
Az?rbaycanca
??????
?????
Bn-lm-g
??????????
?????????? (???????????)?
?????????
Bosanski
Catal
???????
Ce tina
Corsu
Cymraeg
Dansk
Deutsch
Eesti
????????
Espaol
Esperanto
Euskara
?????
Franais
Gaeilge
Galego
???????
???/Hak-k-ng
???
???????
??????
Hrvatski
Bahasa Indonesia
Interlingua
slenska
Italiano
?????
?????
???????
???????
Kreyl ayisyen
????????
Latina
Latvie u
Lietuviu
Ligure
Magyar
??????????
??????
?????
Bahasa Melayu
Mng-de?ng-ng?
??????
??????????
Nederlands
??????
???
Norsk bokml
Norsk nynorsk
Occitan
O?zbekcha/???????
??????
Polski
Portugus
Qaraqalpaqsha
Romna
???????
???? ????
Scots
Shqip
?????
Simple English
Slovencina
Sloven cina
?????? ???????
?????? / srpski
Srpskohrvatski / ??????????????
Suomi
Svenska
Tagalog
?????
???????/tatara
??????
???
??????
Trke
?? ????
??????????
Vneto
Ti?ng Vi?t
Winaray
??
??
emaite ka
??
Edit links
This page was last modified on 19 November 2015, at 15:16.
Text is available under the Creative Commons Attribution-ShareAlike License; add
itional terms may apply. By using this site, you agree to the Terms of Use and P
rivacy Policy. Wikipedia is a registered trademark of the Wikimedia Foundation, I
nc., a non-profit organization.