What's New with Java >=9?

Total Page:16

File Type:pdf, Size:1020Kb

What's New with Java >=9? What’s new with Java >=9? Don’t be afraid of Jigsaw! A few words about me Lille Rennes Blois Tours Lyon blog.worldline.tech 2 | JF James | © Worldline | Touraine Tech Agenda 3 | JF James | © Worldline | Touraine Tech A brief history of Java JDK distribution size (compressed MB) 8 7 6 1.4 5.0 1.3 1.2 1.1 1.0 Release date (y) 4 | JF James | © Worldline | Touraine Tech Refresher on Java SE 8 Released on 18 March 2014 New Date Time API Streams Collectors Lambda expression Functional & asynchronous programming Method reference Optional CompletableFuture 5 | JF James | © Worldline | Touraine Tech Ready for Java 9? More than 80 changes Multi-release Jar file Reactive Streams API 6 | JF James | © Worldline | Touraine Tech Expected benefits of the JDK modularity Maintenance Innovation Security Scalability Performance Robustness 7 | JF James | © Worldline | Touraine Tech The long story of Java Modularity Started in 2005 (JSR 277), released in September 2017 (JSR 376) 8 | JF James | © Worldline | Touraine Tech Discovering JPMS Java native modular system Makes modules explicit Modularize the JDK itself Open to Java Applications Strong encapsulation by exporting or opening packages Explicit and reliable dependencies 9 | JF James | © Worldline | Touraine Tech The new look of the JDK 10 | JF James | © Worldline | Touraine Tech How efficient is the JDK modularity? 35 000 30 000 25 000 20 000 With modularity 15 000 10 000 5 000 0 11 | JF James | © Worldline | Touraine Tech Opening packages import java.fx.Application; module easytext.gui { public class MyApp extends Application { opens easytext.gui to javafx.graphics; public static void main(String … args) { requires javax.graphics; Application.launch(args); } } } 12 | JF James | © Worldline | Touraine Tech Modular Java Services Provider: module easytext.analysis.coleman { provides easytext.analysis.api.Analyser with easytext.analysis.coleman.ColemanAnalyser; } Consumer: module easytext.analysis.client { uses easytext.analysis.api.Analyser; } … ServiceLoader.load(Analyzer.class); 13 | JF James | © Worldline | Touraine Tech Welcome to the modulepath! Classpath-based Modulepath-based Under your control Legacy App Modular App Out of your Legacy Frameworks & Modular Frameworks & control libraries libraries Already modular Modular JDK 14 | JF James | © Worldline | Touraine Tech On the road to application modularity classpath modulepath module file.jar file.jar info file.jar Legacy jar Automatic module Explicit module Part of the unnamed module Module name derived (2) or defined (3) Explicit access to other modules Everything exported & opened Everything exported & opened Classpath unreadable Can access everything (1) Can access everything (1) --illegal-access allowed –add-opens & add-exports allowed (1) From the classpath&modules (2) From the jar file name (3) Using Automatic-Module-Name (MANIFEST.MF) 15 | JF James | © Worldline | Touraine Tech Naming modules Use Automatic-Module-Name to define a stable name for library modules No version number in module name 16 | JF James | © Worldline | Touraine Tech Just enough runtime with JLink Creating custom "Java Images" for your applications 17 | JF James | © Worldline | Touraine Tech Oracle new strategy • The Reference Implementation • 100% OpenJDK based • Including previous commercial features • Commercial offering • Pure Open Source • Long Term Support • GPL V2 + Class Path extension • Free of use and distribution • Time-driven release model 18 | JF James | © Worldline | Touraine Tech Make Java innovative again! 2017 Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec OpenJDK 9 2018 Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec Feature OpenJDK 10.0 11.0 Update OpenJDK 10.0.1 10.0.2 11.0.1 LTS Oracle JDK 11.0 LTS 2019 Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec Feature OpenJDK Eof 12.0 13.0 Update OpenJDK 11.0.2JDK8 12.0.1 12.0.2 13.0.1 LTS Oracle JDK 2020 Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec Feature OpenJDK 14.0 15.0 Eof Update OpenJDK 13.0.2 14.0.1 14.0.2 JDK815.0.1 LTS Oracle JDK 19 | JF James | © Worldline | Touraine Tech Challenges ahead of us • Should I run my App on Java 9? – Better performance expected (to be tested) 2018 – Some adaptations needed: command lines, code (minor impact) – Warning: G1 optimal for heap size >=4GB 2018-2019 • Should I use feature-releases or LTS? – Eof Oracle JDK 9 support in Jan. 2019 – Feature-releases free of charge, more suited for short lifecycle App with Continuous Deployment in place – Conversely LTS suited for long lifecycle App 20 | JF James | © Worldline | Touraine Tech Challenges ahead of us • Should I modularize my App? 2018-2019 – Probably no for most legacy Applications – To be assessed for existing Applications with long-term perspective – Yes for new applications – Dev and build tools will help • Should I deliver a JLink-based custom runtime image in production? – Probably yes to make the most of modular Applications – JLink can be part the build chain 2019 – Responsibility of the Runtime delivery moved to Dev – Good fit with containerization 21 | JF James | © Worldline | Touraine Tech Challenges ahead of us 2018-2019-2020 … • Last but not least … Training … Experiencing … Knowledge sharing – Java 9 is not just about fancy Dev features – It is a game changer! – Mastering modularity and its subtleties will take time – It puts back good practices on the stage at the price of an additional complexity – And don’t forget the other 79 changes ;-) 22 | JF James | © Worldline | Touraine Tech Thanks! 23 Appendixes 24 Main references • Jigsaw Quickstart: http://openjdk.java.net/projects/jigsaw/quick-start • Oracle JDK9 Migration Guide: https://docs.oracle.com/javase/9/migrate/ • Alex Buckley talk: https://www.youtube.com/watch?v=rfOjch4p0Po 25 | JF James | © Worldline | Touraine Tech Other interesting references • http://in.relation.to/2017/04/11/accessing-private-state-of-java-9-modules/ • http://in.relation.to/2017/02/13/building-multi-release-jars-with-maven/ • https://www.youtube.com/watch?v=Txsl-K83ygI • https://cwiki.apache.org/confluence/display/MAVEN/Java+9+-+Jigsaw • https://blog.frankel.ch/migrating-to-java-9/1/#gsc.tab=0 • https://blog.frankel.ch/migrating-to-java-9/2/#gsc.tab=0 • https://blog.idrsolutions.com/2017/06/java-9-articles-series-index/ • https://blog.senacor.com/unit-testing-with-java-9-jigsaw-and-junit/ • https://stackoverflow.com/questions/46613214/java-9-maven-junit-does-test-code-need-module-info- java-of-its-own-and-wher • https://issues.apache.org/jira/browse/SUREFIRE-1420 • https://blog.codefx.org/ • https://speakerdeck.com/forax/tu-modules-2# • https://access.redhat.com/articles/1299013 • http://www.oracle.com/technetwork/java/eol-135779.html 26 | JF James | © Worldline | Touraine Tech Java version history Version Code Name Release date Delta (y) Size (MB) Size Increase JDK 1.0 Oak janv-96 4 JDK 1.1 févr-97 1,0 9 125% J2SE 1.2 Playground déc-98 1,8 20 122% J2SE 1.3 Kestrel mai-00 1,4 24 20% J2SE 1.4 Merlin févr-02 1,7 38 58% J2SE 5.0 Tiger sept-04 2,6 40 5% Java SE 6 Mustang déc-06 2,2 65 63% Java SE 7 Dolphin juil-11 4,5 130 100% Java SE 8 Spider mars-14 2,7 151 16% Java SE 9 sept-17 3,5 304 101% 27 | JF James | © Worldline | Touraine Tech Thanks For more information please contact: [email protected] Atos, the Atos logo, Atos Consulting, Atos Worldgrid, Worldline, BlueKiwi, Bull, Canopy the Open Cloud Company, Yunano, Zero Email, Zero Email Certified and The Zero Email Company are registered trademarks of the Atos group. May 2015. © 2015 Atos. Confidential information owned by Atos, to be used by the recipient only. This document, or any part of it, may not be reproduced, copied, circulated and/or distributed nor quoted without prior written approval from Atos. © Worldline .
Recommended publications
  • Java Programming 18Mca32c
    JAVA PROGRAMMING 18MCA32C Unit – I INTRODUCTION FACULTY Dr. K. ARTHI MCA, M.Phil., Ph.D., Assistant Professor, Postgraduate Department of Computer Applications, Government Arts College (Autonomous), Coimbatore 641018. JAVA PROGRAMMING 18MCA32C Syllabus Objective: On successful completion of the course the students should have understood the Basic concept and fundamentals of core java classes, API, OOPS concept in Java and features of OOPS. UNIT I: The Genesis of Java - The Java class Libraries - Data types, Variables - Operators - Arrays. Control Statements: Selection statements - Iteration statements - Jump statements. Introducing classes: Class Fundamentals - Declaring objects - Methods. UNIT II: Constructors - this keyword - Garbage collection. Overloading Methods - Access controls - Nested and Inner classes. Inheritance: Inheritance basics - using Super - Method overriding - Dynamic method Dispatch - Abstract classes - using final with inheritance. Packages and Interfaces: Packages - Access protection - Importing Packages - Interfaces. UNIT III: Exception Handling: Exception Handling Fundamentals - Java’s Built in Exceptions - creating own Exception subclasses. Multithreaded Programming: The Java Thread Model - Creating a Thread - Synchronization - Inter Thread communication. UNIT IV: I/O Basics - Reading console Input -Writing Console Output - Reading and writing Files - Exploring java.io. Applet Fundamentals - Applet Basics - Introducing the AWT. UNIT V: Software Development using Java: Java Beans introduction - Servlets: Life cycle - A simple servlet - servlet API - Handling HTTP Request and Responses - Session tracking. Networking Basics - Remote Method Invocation (RMI) - Accessing Database with JDBC. TEXT BOOKS: 1. Herbert Schildt, “The Complete Reference Java 2”, 2nd Ed, Tata McGraw Hill (I) Pvt. Ltd.,2002. 2. H.M. Deitel and P. J. Deitel, “Java How to Program”, 6th Ed, PHI/Pearson Education Asia 2005. History of Java 1.
    [Show full text]
  • Java (Programming Langua a (Programming Language)
    Java (programming language) From Wikipedia, the free encyclopedialopedia "Java language" redirects here. For the natural language from the Indonesian island of Java, see Javanese language. Not to be confused with JavaScript. Java multi-paradigm: object-oriented, structured, imperative, Paradigm(s) functional, generic, reflective, concurrent James Gosling and Designed by Sun Microsystems Developer Oracle Corporation Appeared in 1995[1] Java Standard Edition 8 Update Stable release 5 (1.8.0_5) / April 15, 2014; 2 months ago Static, strong, safe, nominative, Typing discipline manifest Major OpenJDK, many others implementations Dialects Generic Java, Pizza Ada 83, C++, C#,[2] Eiffel,[3] Generic Java, Mesa,[4] Modula- Influenced by 3,[5] Oberon,[6] Objective-C,[7] UCSD Pascal,[8][9] Smalltalk Ada 2005, BeanShell, C#, Clojure, D, ECMAScript, Influenced Groovy, J#, JavaScript, Kotlin, PHP, Python, Scala, Seed7, Vala Implementation C and C++ language OS Cross-platform (multi-platform) GNU General Public License, License Java CommuniCommunity Process Filename .java , .class, .jar extension(s) 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 impimplementation dependencies as possible.ble. It is intended to let application developers "write once, run ananywhere" (WORA), meaning that code that runs on one platform does not need to be recompiled to rurun on another. Java applications ns are typically compiled to bytecode (class file) that can run on anany Java virtual machine (JVM)) regardless of computer architecture. Java is, as of 2014, one of tthe most popular programming ng languages in use, particularly for client-server web applications, witwith a reported 9 million developers.[10][11] Java was originallyy 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'Micros Java platform.
    [Show full text]
  • Q. What Is Java ? Java Is a Programming Language and A
    GANDHI CHOWK Q. What is Java ? Java is a programming language and a platform. Java is a high level, robust, secured and object-oriented programming language. Platform: Any hardware or software environment in which a program runs, is known as a platform. Since Java has its own runtime environment (JRE) and API, it is called platform. Where it is used? According to Sun, 3 billion devices run java. There are many devices where java is currently used. Some of them are as follows: 1. Desktop Applications such as acrobat reader, media player, antivirus etc. 2. Web Applications such as irctc.co.in, javatpoint.com etc. 3. Enterprise Applications such as banking applications. 4. Mobile 5. Embedded System 6. Smart Card 7. Robotics 8. Games etc. TYPES OF JAVA APPLICATIONS There are mainly 4 type of applications that can be created using java programming: 1) Standalone Application It is also known as desktop application or window-based application. An application that we need to install on every machine such as media player, antivirus etc. AWT and Swing are used in java for creating standalone applications. 2) Web Application An application that runs on the server side and creates dynamic page, is called web application. Currently, servlet, jsp, struts, jsf etc. technologies are used for creating web applications in java. Ishwar Prakash(8271395373) 1 GANDHI CHOWK 3) Enterprise Application An application that is distributed in nature, such as banking applications etc. It has the advantage of high level security, load balancing and clustering. In java, EJB is used for creating enterprise applications.
    [Show full text]
  • Release Notes What's
    Release Notes Amster is a lightweight command-line interface, ideal for use in DevOps processes, such as continuous integration and deployment. Read these release notes before you install Amster. The information contained in these release notes cover prerequisites for installation, known issues and improvements to the software, changes and deprecated functionality, and other important information. ForgeRock Identity Platform® serves as the basis for our simple and comprehensive Identity and Access Management solution. We help our customers deepen their relationships with their customers, and improve the productivity and connectivity of their employees and partners. For more information about ForgeRock and about the platform, see https://www.forgerock.com. What’s New This page covers new features and improvements in Amster. What’s New in Amster 7.1 Support for AM 7.1 or Later Only Amster 7.1 supports exporting and importing conguration from AM 7.1 or later. If you have a previous version of Amster: 1. Perform a fresh installation of Amster 7.1. For more information, see Install Amster. 2. Migrate any Amster Groovy scripts from the previous Amster installation. Take into account any changes in functionality. 3. Convert any JSON conguration les that were exported from AM 5 or later. The AM 7.1 ZIP le includes a conguration le upgrade tool. For more information on converting conguration les for import into AM 7.1, see the README.md le in the Config-Upgrader-7.1.0.zip le. 4. Test the new Amster installation. 5. Delete the previous Amster installation. Before You Install This page covers software and hardware prerequisites for installing and running Amster.
    [Show full text]
  • Supporting C Extensions for Dynamic Languages an Abbreviated Version of [10]
    High-Performance Language Composition: Supporting C Extensions for Dynamic Languages An abbreviated version of [10]. Grimmer Matthias1, Chris Seaton2, Thomas W¨urthinger2 and Hanspeter M¨ossenb¨ock1 1 Johannes Kepler University, Linz, Austria fgrimmer,[email protected] 2 Oracle Labs fchris.seaton,[email protected] Abstract. Many dynamic languages such as Ruby offer functionality for writing parts of applications in a lower-level language such as C. These C extension modules are usually written against the API of an interpreter, which provides access to the higher-level language's internal data struc- tures. Alternative implementations of the high-level languages often do not support such C extensions because implementing the same API as in the original implementations is complicated and limits performance. In this paper we describe a novel approach for modular composition of languages that allows dynamic languages to support C extensions through interpretation. We propose a flexible and reusable cross-language mechanism that allows composing multiple language interpreters. This mechanism allows us to efficiently exchange runtime data across different interpreters and also enables the dynamic compiler of the host VM to inline and optimize programs across multiple language boundaries. We evaluate our approach by composing a Ruby interpreter with a C interpreter. We run existing Ruby C extensions and show how our system executes combined Ruby and C modules on average over 3× faster than the conventional implementation of Ruby with native C extensions. 1 Introduction Most programming languages offer functionality for calling routines in modules that are written in another language. There are multiple reasons why program- mers want to do this, including to run modules already written in another lan- guage, to achieve higher performance than is normally possible in the primary language, or generally to allow different parts of the system to be written in the most appropriate language.
    [Show full text]
  • History of Java the History of Java Is Very Interesting. Java Was Originally Designed for Interactive Television, but It Was
    History of Java The history of Java is very interesting. Java was originally designed for interactive television, but it was too advanced technology for the digital cable television industry at the time. The history of java starts with Green Team. Java team members (also known as Green Team), initiated this project to develop a language for digital devices such as set-top boxes, televisions, etc. However, it was suited for internet programming. Later, Java technology was incorporated by Netscape. The principles for creating Java programming were "Simple, Robust, Portable, Platform-independent, Secured, High Performance, Multithreaded, Architecture Neutral, Object-Oriented, Interpreted and Dynamic". Currently, Java is used in internet programming, mobile devices, games, e-business solutions, etc. There are given the significant points that describe the history of Java. 1) James Gosling, Mike Sheridan, and Patrick Naughton initiated the Java language project in June 1991. The small team of sun engineers called Green Team. 2) Originally designed for small, embedded systems in electronic appliances like set-top boxes. 3) Firstly, it was called "Greentalk" by James Gosling, and file extension was .gt. 4) After that, it was called Oak and was developed as a part of the Green project. Why Java named "Oak"? 5) Why Oak? Oak is a symbol of strength and chosen as a national tree of many countries like U.S.A., France, Germany, Romania, etc. 6) In 1995, Oak was renamed as "Java" because it was already a trademark by Oak Technologies. Why Java Programming named "Java"? 7) Why had they chosen java name for java language? The team gathered to choose a new name.
    [Show full text]
  • Supporting C Extensions for Dynamic Languages
    Dynamically Composing Languages in a Modular Way: Supporting C Extensions for Dynamic Languages Matthias Grimmer Chris Seaton Thomas Wurthinger¨ Johannes Kepler University, Austria Oracle Labs, United Kingdom Oracle Labs, Switzerland [email protected] [email protected] [email protected] Hanspeter Mossenb¨ ock¨ Johannes Kepler University, Austria [email protected] Abstract Keywords Cross-language, Language Interoperability, Virtual Many dynamic languages such as Ruby, Python and Perl offer some Machine, Optimization, Ruby, C, Native Extension kind of functionality for writing parts of applications in a lower- level language such as C. These C extension modules are usually 1. Introduction written against the API of an interpreter, which provides access Most programming languages offer some kind of functionality for to the higher-level language’s internal data structures. Alternative calling routines in modules that are written in another language. implementations of the high-level languages often do not support There are multiple reasons why programmers want to do this, in- such C extensions because implementing the same API as in the cluding to run modules already written in another language, to original implementations is complicated and limits performance. achieve higher performance than is normally possible in the pri- In this paper we describe a novel approach for modular com- mary language, or generally to allow different parts of the system position of languages that allows dynamic languages to support to be written in the most appropriate language. C extensions through interpretation. We propose a flexible and Dynamically typed and interpreted languages such as Perl, reusable cross-language mechanism that allows composing mul- Python and Ruby often provide support for running extension mod- tiple language interpreters, which run on the same VM and share ules written in the lower-level language C, known as C extensions the same form of intermediate representation – in this case abstract or native extensions.
    [Show full text]
  • Java (Software Platform) from Wikipedia, the Free Encyclopedia Not to Be Confused with Javascript
    Java (software platform) From Wikipedia, the free encyclopedia Not to be confused with JavaScript. This article may require copy editing for grammar, style, cohesion, tone , or spelling. You can assist by editing it. (February 2016) Java (software platform) Dukesource125.gif The Java technology logo Original author(s) James Gosling, Sun Microsystems Developer(s) Oracle Corporation Initial release 23 January 1996; 20 years ago[1][2] Stable release 8 Update 73 (1.8.0_73) (February 5, 2016; 34 days ago) [±][3] Preview release 9 Build b90 (November 2, 2015; 4 months ago) [±][4] Written in Java, C++[5] Operating system Windows, Solaris, Linux, OS X[6] Platform Cross-platform Available in 30+ languages List of languages [show] Type Software platform License Freeware, mostly open-source,[8] with a few proprietary[9] compo nents[10] Website www.java.com Java is a set of computer software and specifications developed by Sun Microsyst ems, 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 an d mobile phones to enterprise servers and supercomputers. While less common, Jav a applets run in secure, sandboxed environments to provide many features of nati ve applications and can be embedded in HTML pages. Writing in the Java programming language is the primary way to produce code that will be deployed as byte code in a Java Virtual Machine (JVM); byte code compil ers are also available for other languages, including Ada, JavaScript, Python, a nd Ruby.
    [Show full text]
  • Table of Contents
    A Comprehensive Introduction to Vista Operating System Table of Contents Chapter 1 - Windows Vista Chapter 2 - Development of Windows Vista Chapter 3 - Features New to Windows Vista Chapter 4 - Technical Features New to Windows Vista Chapter 5 - Security and Safety Features New to Windows Vista Chapter 6 - Windows Vista Editions Chapter 7 - Criticism of Windows Vista Chapter 8 - Windows Vista Networking Technologies Chapter 9 -WT Vista Transformation Pack _____________________ WORLD TECHNOLOGIES _____________________ Abstraction and Closure in Computer Science Table of Contents Chapter 1 - Abstraction (Computer Science) Chapter 2 - Closure (Computer Science) Chapter 3 - Control Flow and Structured Programming Chapter 4 - Abstract Data Type and Object (Computer Science) Chapter 5 - Levels of Abstraction Chapter 6 - Anonymous Function WT _____________________ WORLD TECHNOLOGIES _____________________ Advanced Linux Operating Systems Table of Contents Chapter 1 - Introduction to Linux Chapter 2 - Linux Kernel Chapter 3 - History of Linux Chapter 4 - Linux Adoption Chapter 5 - Linux Distribution Chapter 6 - SCO-Linux Controversies Chapter 7 - GNU/Linux Naming Controversy Chapter 8 -WT Criticism of Desktop Linux _____________________ WORLD TECHNOLOGIES _____________________ Advanced Software Testing Table of Contents Chapter 1 - Software Testing Chapter 2 - Application Programming Interface and Code Coverage Chapter 3 - Fault Injection and Mutation Testing Chapter 4 - Exploratory Testing, Fuzz Testing and Equivalence Partitioning Chapter 5
    [Show full text]
  • Mˇerení Výkonnosti Java Virtual Machine
    MASARYKOVA UNIVERZITA FAKULTA}w¡¢£¤¥¦§¨ INFORMATIKY !"#$%&'()+,-./012345<yA| Mˇeˇrenívýkonnosti Java Virtual Machine BAKALÁRSKA PRÁCA Michal K ˇnazský Brno, 2012 Prehlásenie Prehlasujem, že táto bakalárska práca je mojím pôvodným autorským dielom, ktoré som vypracoval samostatne. Všetky zdroje, pramene a li- teratúru, ktoré som pri vypracovaní používal alebo z nich ˇcerpal,v práci riadne citujem s uvedením úplného odkazu na príslušný zdroj. Michal Kˇnazský Vedúci práce: Mgr. Marek Grác ii Pod’akovanie Dakujemˇ pánom Mgr. Marekovi Grácovi a Ing. Pavlovi Tišnovskému, Ph.D. z firmy Red Hat za vedenie práce, za poskytnuté rady a za vel’kú dávku trpezlivosti. iii Kl’úˇcovéslová Java, Java Virtual Machine, meranie výkonu, garbage collector, SPEC, SPECjvm2008, SPECjbb2005, J2DBench, Oracle, IBM, OpenJDK iv Zhrnutie Ciel’om práce je preskúmat’ nástroje na meranie výkonu Java Virtual Ma- chine. Práca sa zaoberá nástrojmi SPECjvm2008, SPECjbb2005 a J2DBench – analyzuje ich vlastnosti a funkcie a hodnotí použitie v praxi. V prak- tickej ˇcastisú nástroje použité na zmeranie a porovnanie výkonu viace- rých JVM. Predstavený je program JVMBenchmarker, ktorý bol vytvo- rený ako súˇcast’ práce. Slúži na automatizované spúšt’anie SPECjvm2008 a SPECjbb2005 nástrojov. Práca sa d’alej venuje garbage collectorom, opi- suje GC prítomné v HotSpot a J9 VM a porovnáva ich výkon pomocou nástroja SPECjbb2005. v Obsah 1 Java ................................... 2 1.1 Java ako platforma ....................... 2 1.2 Java ako jazyk .......................... 2 1.2.1 Java API . 2 1.2.2 Java Virtual Machine . 3 1.2.3 Java Development Kit . 3 1.3 História a vývoj ......................... 3 1.3.1 Oznaˇcovanieverzií . 4 1.4 Java implementácie ....................... 4 1.4.1 Cesta k open source .
    [Show full text]
  • Java Programming [R17a0507]
    JAVA PROGRAMMING [R17A0507] LECTURE NOTES B.TECH II YEAR – II SEM (R17) (2018-19) DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING MALLA REDDY COLLEGE OF ENGINEERING & TECHNOLOGY (Autonomous Institution – UGC, Govt. of India) (Affiliated to JNTUH, Hyderabad, Approved by AICTE - Accredited by NBA & NAAC – ‘A’ Grade - ISO 9001:2015 Certified) Maisammaguda, Dhulapally (Post Via. Hakimpet), Secunderabad – 500100, Telangana State, INDIA. MALLA REDDY COLLEGE OF ENGINEERING & TECHNOLOGY DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING (R17A0507)JAVA PROGRAMMING Objectives: This subject aims to introduce students to the Java programming language. Upon successful completion of this subject, students should be able to create Java programs that leverage the object-oriented features of the Java language, such as encapsulation, inheritance and polymorphism; use data types, arrays and other data collections; implement error-handling techniques using exception handling, create and event-driven GUI using Swing components. UNIT-I OOP Concepts:- Data abstraction, encapsulation, inheritance, Benefits of Inheritance, Polymorphism, classes and objects, Procedural and object oriented programming paradigms. Java Programming- History of Java, comments, Data types, Variables, Constants, Scope and Lifetime of variables, Operators, Operator Hierarchy, Expressions, Type conversion and casting, Enumerated types, Control flow- block scope, conditional statements, loops, break and continue statements, simple java stand alone programs, arrays, console input and output, formatting output, constructors, methods, parameter passing, static fields and methods, access control, this reference, overloading methods and constructors, recursion, garbage collection, building strings, exploring string class. UNIT – II Inheritance – Inheritance hierarchies super and sub classes, Member access rules, super keyword, preventing inheritance: final classes and methods, the Object class and its methods. Polymorphism – dynamic binding, method overriding, abstract classes and methods.
    [Show full text]
  • JAVA – UNIT IV Java Tutorial 1
    OOP – JAVA – UNIT IV Java Tutorial 1. Java - What, Where and Why? 2. What is Java 3. Where Java is used 4. Java Applications Java Tutorial or Core Java Tutorial or Java Programming Tutorial is a widely used robust technology. Let's start learning of java from basic questions like what is java tutorial, core java, where it is used, what type of applications are created in java and why use java. What is Java? Java is a programming language and a platform . Java is a high level, robust, secured and object-oriented programming language. Platform : Any hardware or software environment in which a program runs, is known as a platform. Since Java has its own runtime environment (JRE) and API, it is called platform. Java Example Let's have a quick look at java programming example. A detailed description of hello java example is given in next page. class Simple{ public static void main(String args[]){ System.out.println( "Hello Java" ); } } Where it is used? According to Sun, 3 billion devices run java. There are many devices where java is currently used. Some of them are as follows: 1. Desktop Applications such as acrobat reader, media player, antivirus etc. 2. Web Applications such as irctc.co.in, javatpoint.com etc. 3. Enterprise Applications such as banking applications. 4. Mobile 5. Embedded System 6. Smart Card 7. Robotics 8. Games etc. Types of Java Applications There are mainly 4 type of applications that can be created using java programming: 1) Standalone Application It is also known as desktop application or window-based application.
    [Show full text]