Java: вчера, сегодня, завтра

Embed Size (px)

Text of Java: вчера, сегодня, завтра

Java

, ,

- -

27 2017

monday

Java

,

Java

Java, , -

Sun Microsystems, 1991

Greentalk Oak Java

.

: 1995-

: 1996-

C++,

, ? ,

== +1 JVM

C++

, , ,

Pascal, UNIX

Web HotJava

Java Netscape

Write Once, Run Anywhere

Java (.java)JAVAC- (.class)

JVMJVM

WindowsLinuxMac

JVM

:- . Windows Linux.

, .

: . - , JIT-.

,

JVM 20 : Groovy, Clojure, Scala, Kotlin, JRuby, Jython, ...

JVM: Windows, Linux, Mac OS, 7- Solaris

2000-, Symbian

Blue-ray

, Android - Dalvik - Android Runtime

.

, -, , .

, .

Java

-

Java

, , goto, struct union.

,

, C++

. , .

- . . , Java main() . .

- Java 8.

,

Java :

Java . Internet, .

Java . , .

:

, = ==, & &&,

Java JVM .

:. .


:

90-

Java (.java)JAVAC- (.class)

JVMJVM

WindowsLinuxMac

JVM

Java : Windows, Linux, Mac OS . .1 == 1 JVM

Java .

- ,
, , , , .

,

* ,
JVM.,

Java - .

, .

Java , -, JVM.

Java .

- Java , . , JIT

.

.

Java - .

Java , , - .

Java : 23 1996- , Oak JDK 1.0.2 == Java 1

Oak Java?

(+ Java 5)

assert (+ Java 1.4)

: C++

. private

notnull

JDK 1.119.02.1997 AWT

JavaBeans

JDBC

( )

JIT (Just In Time) Windows

SQL

J2SE 1.2 (Playground)08.12.1998

Java 3 . :Java 2 Platform, Standard Edition

AWT Swing

Java 2D

Drag-and-Drop

Unicode

strictfp

J2SE 1.3 (Kestrel)08.05.2000

HotSpot

JavaSound

Java Naming and Directory Interface (JNDI)

StrictMath

Timer API

J2SE 1.4 (Merlin)06.02.2002

assert

IPv6

NIO

Logging API

Image I/O API

XML XSLT

: JCE, JSSE, JAAS

Java Web Start

Preferences API (java.util.prefs)

: Collections, RandomAccess, LinkedHashMap IdentityHashMap

J2SE 5.0 (Tiger)30.09.2004

(enum)

foreach

javadoc

ProcessBuilder

-

Formatter, Scanner

: Queue, BlockingQueue, ConcurrentMap , CopyOnWriteArrayList, CopyOnWriteArraySet, EnumSet, EnumMap, Collections

Java SE 6 (Mustang)11.12.2006

(JSR 223)

Swing Java . 70%, - .

Swing OpenGL DirectX, GIF

JAX-WS - Java API for XML Web Services

Java Compiler API

Java HTTP Server

JAXB 2.0 StAX

: Deque, BlockingDeque, NavigableSet, NavigableMap, ConcurrentNavigableMap , Collections

Java SE 7 (Dolphin)28.07.2011

JVM

switch

(try--)

, Fork/Join Framework

NIO 2.0

JavaFX

XRender Java 2D

JVM Solaris

: TransferQueue, -

Java SE 818.03.2014

-

JavaScript

Date and Time API

/ Base64

JavaFX

JVM: Permanent Generation

, .

Java SE 9 2017

JSR 376: JDK ( Jigsaw)

JEP 222: jshell: Java REPL

JEP 295: Graal

JEP 268: XML-

HTTP- HTTP 2.0, -

Process API -Java

JEP 266: -

OpenCL

Java SE 10

, 64- .

JSR 354: Money and Currency API
( Java 9)

Java

J2SE Java .

Java SE Java: , API, JRE; .

Java EE .

Java ME , , ,

Java Card , - .

Java

PYPL Google . Java , Python.

GitHub

- GitHub , 2008- . JavaScript Java.

Code Eval

Code Eval , 2016- , Python Java.

TIOBE

, . TIOBE , (+" programming"). , 2001- . Java C , , .

Indeed.com

, , Java :

Indeed.com

:

: Java, JavaScript, C#

, : Java, C#, JavaScript

, .

Java , , . , Desktop , , : Eclipse, IntelliJ Idea, NetBeans, , - Minecraft. , , .

Java?

: -, back-end, , , Desktop-. , , Big Data, , , Android'. . , Java , , , , Oracle , .

Oracle

, , , Java ! Java 97%

Java 89%

9 Java

1

1

Java 3

Java 100% Blu-ray

5 Java Card

Java 125 -

5 5 Java ME

Java

, , Java - . , , - . :

Java -

() , Java 5 , .

public class Box { private Object object; public void set(Object object) { this.object = object; } public Object get() { return object; }}

:

public class Box { private T t; public void set(T t) { this.t = t; } public T get() { return t; }}

Java -

, . . . , , :

public void set(T t) { if (item instanceof E) { ... } E item2 = new E(); E[] iArray = new E[10];}

. , , Java C# .

Java -

, , , .

Java , , . Java 8 - - ( ), , . , .

Java - JVM

, .

JVM . , , .

Java - JVM

. , , , , . Java , .

Java

, byte, . byte 0 255, Java.
HEX-, , , , , - int, 4 , , , -128 127. Java 8 , - . :

Byte.toUnsignedInt()Integer.compareUnsigned()Integer.parseUnsignedInt()

, . Java - .

Java

strictfp IEEE 754 - .

, . , , C# .

Java

- , , .

. , , .
.

Java

C++ C# -, , , . , , , . , .

HashMap, HashMap.Entry. Java Entry, , , . - , .

Java

. Java int .

2

2

. 2 .

2 .

Java

. Java , , . # .

. -, -, , . 64 "Error: code too large". Java 64 .

.

Java

Java , . . , . -, .

Java

Java , , 100% .

, .

Java

Java , , , . JVM, .

Java , , 1.3 Just in Time , , Java - .

Java

Java , - , .

, , , , JVM .

Java

- Java JVM. , , , , , .

2010, . , , Java, , Java , . Flash . , .

Java

Java . , Java 7 Java 6, .

, Java , .

Java

, , , , , .

, :

Java Jar Hell

JVM ( + ).

, , , . , , , , . , . , Java 9 Jigsaw, , .

Java

Java . , 100%. , , , , . , .

Swing PRESSED/RELEASED

Java

Java, . , , , Java .

, , , . , . try-catch, RuntimeException. , , :

InputStream in = null; OutputStream out = null; try { in = new FileInputStream(inputFileName); out = new FileOutputStream(outputFileName); copy(in, out); } catch (IOException e) { e.printStackTrace(); } finally { close(in); close(out); }

public static void close(Closeable c) { if (c == null) return; try { c.close(); } catch (IOException e) { //log the exception } }

Java

. .

Java , . Streams API Java 8 .

Java Java , , 20 Java, . , , Java .

Maven.

JUnit JUnit. ( ) . , . Java . 1.4 assert, , . : Mockito 11- , TestNG 21-. : EasyMock, Hamcrest,
FindBugs, AssertJ PowerMock.

: SLF4J, Log4j Logback. Java java.util.logging, . Commons Logging .

Google Guava Apache Commons - , Java . , Google , , , . , . Java . Plexus.

, .

Java , , , - Joda Time. Oracle , Java 8 Date Time API Joda Time, . 2016- , Java 8 60% , , , Joda Time, , .

JSON . Jackson, , , Google Gson. , Google , .

org.json .

Java EE 7 javax.json, , , .

Spring Framework