Refactoring to Java X

Size: px
Start display at page:

Download "Refactoring to Java X"

Transcription

1 Refactoring to Java X

2 Refactoring to Java X

3 Reinier Zwitserloot Roel Spilker

4 The boilerplate busters

5 Java X The new language features Feature I Feature II Feature III Feature IV

6 Java X The new language features Feature I Feature II Feature III Feature IV Feature V Feature VI Feature VII Feature VIII Feature IX Feature X Feature XI Feature XII Feature XIII Feature XIV Feature XV Feature XVI Feature XVII Feature XVIII Feature XIX Feature XX

7 Java X The new language features Feature I: var x = 10; Feature II Feature III Feature IV Feature V Feature VI Feature VII Feature VIII Feature IX Feature X Feature XI Feature XII Feature XIII Feature XIV Feature XV Feature XVI Feature XVII Feature XVIII Feature XIX Feature XX

8

9 C XC VI : The first release

10 1997 C XC C V XC I: 1.0 VI I: 1.1 Language: Nested classes Reflection Java I API: JavaBeans JDBC Internationalization

11 1998 C XC C V I XC : 1.0 C VI XC I: 1.1 VI II: 1.2 Language: strictfp Java II API: Swing Corba The collections API

12 C XC C V I XC : 1.0 C VI XC I: 1.1 VI II: 1.2 : Language: Java III API:

13 2000 Java III Language: API: C XC C V I XC : 1.0 C VI XC I: 1.1 VI II: 1.2 : 1. 3 Let s forget about this one

14 2002 C XC C V I XC : 1.0 C VI XC I: 1.1 VI II: 1.2 : 1. 3 II: 1.4 Language: assert Java IV API: Regexps exception cause IPv6 Non-blocking I/O XL parser java.util.logging Crypto: JCE, JSSE, JAAS JPG and PNG reading Preferences API

15 2004 Java V C XC C V I XC : 1.0 C VI XC I: 1.1 VI II: 1.2 : 1. 3 II: 1.4 IV :5.0 Language: Generics autobox/unbox varargs enums foreach annotations API: genericsified core lib java.util.concurrent

16 2006 Java VI C XC C V I XC : 1.0 C VI XC I: 1.1 VI II: 1.2 : 1. 3 II: 1.4 IV :5.0 VI :6 Language: auto-discovered annotations... API: Rhino (scripting langs) JAX-WS Compiler API SwingWorker Speed improvements

17 :7 XI C XC C V I XC : 1.0 C VI XC I: 1.1 VI II: 1.2 : 1. 3 II: 1.4 IV :5.0 VI : Java VII

18 :7 XI C XC C V I XC : 1.0 C VI XC I: 1.1 VI II: 1.2 : 1. 3 II: 1.4 IV :5.0 VI : Java VII

19 Java VII XI :7 API: java.nio.file C XC C V I XC : 1.0 C VI XC I: 1.1 VI II: 1.2 : 1. 3 II: 1.4 IV :5.0 VI :6 Language: try with resources strings in switch Diamond operator binary literals ulti-catch 2011

20 Java VIII V: XI XI :7 8 API: java.time (joda/jsr310) Lambda-fication of core streams C XC C V I XC : 1.0 C VI XC I: 1.1 VI II: 1.2 : 1. 3 II: 1.4 IV :5.0 VI :6 Language: Lambdas default methods Static methods in interfaces 2014

21 II: XV V: XI :7 XI 9 8 Language: odules (jigsaw) C XC C V I XC : 1.0 C VI XC I: 1.1 VI II: 1.2 : 1. 3 II: 1.4 IV :5.0 VI : Java IX API:

22 8 X XVII: XVIII: 9 XVIII: 10 IX 11 XI : 12 X: 13 V: XI :7 XI C XC C V I XC : 1.0 C VI XC I: 1.1 VI II: 1.2 : 1. 3 II: 1.4 IV :5.0 VI :6 The future X: arch 2018 XI: September 2018 XII: arch 2019 XIII: September

23 Java VIII X XVII: XVIII: 9 XVIII: 10 IX 11 XI : 12 X: 13 V: XI XI :7 8 API: java.time (joda/jsr310) Lambda-fication of core streams C XC C V I XC : 1.0 C VI XC I: 1.1 VI II: 1.2 : 1. 3 II: 1.4 IV :5.0 VI :6 Language: Lambdas default methods Static methods in interfaces 2014

24 Java VIII X XVII: XVIII: 9 XVIII: 10 IX 11 XI : 12 X: 13 V: XI XI :7 8 API: java.time (joda/jsr310) Lambda-fication of core streams C XC C V I XC : 1.0 C VI XC I: 1.1 VI II: 1.2 : 1. 3 II: 1.4 IV :5.0 VI :6 Language: Lambdas default methods Static methods in interfaces Repeatable annotations 2014

25 Where did we get these from? JDK Enhancement Proposals (JEPs) Presentations by Brian Goetz, ark Reinhold Conferences OpenJDK mailing lists and hg commit traffic

26 VAR

27 Java I Vector names = new Vector();

28 Java II-IV List names = new ArrayList();

29 Java V List<String> names = new ArrayList<String>();

30 Java V Guava List<String> names = Lists.newArrayList();

31 Java VI-IX List<String> names = new ArrayList<>();

32 Java X var names = new ArrayList<String>();

33 var? var name = "FOO"; name = name.tolowercase(); name = name.subsequence(0, 1); CharSequence! or... String?

34 var? var name = "FOO"; name = name.tolowercase(); name = name.subsequence(0, 1);

35 var? var name = "FOO"; String!

36 Java VI-X Lombok val names = new ArrayList<String>(); var names = new ArrayList<String>();

37

38 8000 bytes int x, y; X Y X X X Y Y X Y Y X X Y X Y Y X Y X Y

39 public class Point { int x, y; } 8000 bytes Point[] p = new Point[1000];

40 public class Point { int x, y; } 8000 bytes bytes bytes Point[] p = new Point[1000]; X X Y X Y X Y X Y Y X X Y Y X Y X X Y Y

41 public class Point { int x, y; } 8000 bytes int[] p = new int[2000]; X Y X Y X Y X Y X Y X Y X Y X Y X Y X Y

42 public class Point { int x, y, z; double luminance; }

43 public struct Point { int x, y; } 8000 bytes Point[] p = new Point[1000]; X Y X Y X Y X Y X Y X Y X Y Performs like an int! X Y X Y X Y

44 public struct Point { int x, y; } 8000 bytes public double vectorlength() { return ath.sqrt(x*x + y*y); } Codes like a class!

45 Not a reference public class Foo { private Point p; } What is the value of p?

46 Not a reference public class Foo { private Point p; } p will be: Point(0, 0);

47 No Object Identity No: synchronized(point) point.wait() point.notify() point.notifyall() point.finalize()

48 Generics new ArrayList<String>(); new ArrayList<Point>(); new ArrayList<int>();

49 Generics new ArrayList<int>(); public class ArrayList<T> { Object[] elementdata; }

50 Generics new ArrayList<int>(); public class ArrayList<T> { int[] elementdata; } The <int> specialization

51 Not subtype of Object List<?> x = new ArrayList<int>();

52 Not subtype of Object List<? extends Object> x = new ArrayList<int>();

53 Not subtype of Object List<? extends Object> x = new ArrayList<int>();... but int does not extend object! Object obj = x.get(0);

54 Not subtype of Object List<? extends Object> x = new ArrayList<int>(); autoboxing! Object obj = x.get(0); obj is a java.lang.integer

55 Not subtype of Object List<?> x = new ArrayList<Point>(); Object obj = x.get(0); valhalla types are their own boxed type.

56 Generics + valhalla Autoboxing Generics specialization

57 equals, hashcode, and tostring Default impl unsuitable: equals() hashcode() new Point(0, 0).equals( new Point(0, 0)); t u o g h t i tin lf! w n rse t e o N plem you im als u eq

58 equals, hashcode, and tostring Default impl unsuitable: tostring()

59 equals, hashcode, and tostring Default impl unsuitable: tostring() Point(x=0, y=0) t u o g! h f t l i n i se w t r n t e you o m N ple g n i m i Str to

60 public class Point { private final int x, y; public Point(int x, int y) { this.x = x; this.y = y; } public int getx() { return x; } public int gety() { return y; public String tostring() { return "Point(x=" + x + ", y=" + y + ");"; public boolean equals(object other) {... public int hashcode() {... } }

61 public struct Point { int x, y; }

62 public struct Point { int x, y; } field-based: equals() hashcode() tostring() constructor

63 public struct Point { int x, y; } public value class Point { int x, y; }

64 class Point { int x, y; }

65 Lombok class Country { String name; List<String> cities; }

66 Lombok feature Country.builder().name("Germany").cities(ImmutableList.of( "Saarbrücken", "annheim", "Kaiserslautern", "Darmstadt")).build();

67 Lombok feature Country.builder().name("Germany").cities(ImmutableList.of( "Saarbrücken", "annheim", "Kaiserslautern", "Darmstadt")).build();

68 Lombok feature Country.builder().name("Germany").city("Saarbrücken").city("annheim").city("Kaiserslautern").city("Darmstadt").build();

69 Lombok class Country { String List<String> cities; }

70 Valhalla: I. II. III. IV. ake-your-own-primitives: Valhalla types Generics specialization: new ArrayList<int>() Autoboxing valhalla types field-based constructor, equals, tostring ake more types!!

71 Lombok: I. II. III. IV. V. ake-your-own-primitives: Valhalla types Generics specialization: new ArrayList<int>() Autoboxing valhalla types field-based constructor, equals, tostring Builders

72

73

74 double length(object obj) { if (obj instanceof Number) { Number number = (Number) obj; return ath.abs(number.doublevalue()); } else if (obj instanceof ComplexNumber) { ComplexNumber complexnumber = (ComplexNumber) obj; return complexnumber.length(); } throw new UnsupportedOperationException(); }

75 double length(object obj) { if (obj instanceof Number) { Number number = (Number) obj; return ath.abs(number.doublevalue()); } else if (obj instanceof ComplexNumber) { ComplexNumber complexnumber = (ComplexNumber) obj; return complexnumber.length(); } throw new UnsupportedOperationException(); }

76 double length(object obj) { if (obj instanceof Number number) { return ath.abs(number.doublevalue()); } else if (obj instanceof ComplexNumber complexnumber) { return complexnumber.length(); } throw new UnsupportedOperationException(); }

77 double length(object obj) { switch (obj) { case Number number: return ath.abs(number.doublevalue()); case ComplexNumber complexnumber: return complexnumber.length(); } default: throw new UnsupportedOperationException(); }

78 double length(object obj) { switch (obj) { case Number number: return ath.abs(number.doublevalue()); case ComplexNumber complexnumber: return complexnumber.length(); } default: throw new UnsupportedOperationException(); }

79 double length(object obj) { return switch (obj) { case Number number -> ath.abs(number.doublevalue()); case ComplexNumber complexnumber -> complexnumber.length(); } default: throw new UnsupportedOperationException(); }

80 Refactoring to Java X 1. Use val / var 2. ake more types (@Value) 3. Review your visitors APIs

81 Refactoring to Java X 1. Use val / var 2. ake more types (@Value) 3. Review your visitors APIs

"Charting the Course... Java Programming Language. Course Summary

Charting the Course... Java Programming Language. Course Summary Course Summary Description This course emphasizes becoming productive quickly as a Java application developer. This course quickly covers the Java language syntax and then moves into the object-oriented

More information

Contents. Figures. Tables. Examples. Foreword. Preface. 1 Basics of Java Programming 1. xix. xxi. xxiii. xxvii. xxix

Contents. Figures. Tables. Examples. Foreword. Preface. 1 Basics of Java Programming 1. xix. xxi. xxiii. xxvii. xxix PGJC4_JSE8_OCA.book Page ix Monday, June 20, 2016 2:31 PM Contents Figures Tables Examples Foreword Preface xix xxi xxiii xxvii xxix 1 Basics of Java Programming 1 1.1 Introduction 2 1.2 Classes 2 Declaring

More information

CONTENTS. PART 1 Structured Programming 1. 1 Getting started 3. 2 Basic programming elements 17

CONTENTS. PART 1 Structured Programming 1. 1 Getting started 3. 2 Basic programming elements 17 List of Programs xxv List of Figures xxix List of Tables xxxiii Preface to second version xxxv PART 1 Structured Programming 1 1 Getting started 3 1.1 Programming 3 1.2 Editing source code 5 Source code

More information

Core Java - SCJP. Q2Technologies, Rajajinagar. Course content

Core Java - SCJP. Q2Technologies, Rajajinagar. Course content Core Java - SCJP Course content NOTE: For exam objectives refer to the SCJP 1.6 objectives. 1. Declarations and Access Control Java Refresher Identifiers & JavaBeans Legal Identifiers. Sun's Java Code

More information

Future of Java. Post-JDK 9 Candidate Features. Jan Lahoda Java compiler developer Java Product Group, Oracle September, 2017

Future of Java. Post-JDK 9 Candidate Features. Jan Lahoda Java compiler developer Java Product Group, Oracle September, 2017 Future of Java Post-JDK 9 Candidate Features Jan Lahoda Java compiler developer Java Product Group, Oracle September, 2017 Safe Harbor Statement The following is intended to outline our general product

More information

Java SE 8 Programming

Java SE 8 Programming Java SE 8 Programming Training Calendar Date Training Time Location 16 September 2019 5 Days Bilginç IT Academy 28 October 2019 5 Days Bilginç IT Academy Training Details Training Time : 5 Days Capacity

More information

CITY UNIVERSITY OF NEW YORK. Creating a New Project in IRBNet. i. After logging in, click Create New Project on left side of the page.

CITY UNIVERSITY OF NEW YORK. Creating a New Project in IRBNet. i. After logging in, click Create New Project on left side of the page. CITY UNIVERSITY OF NEW YORK Creating a New Project in IRBNet i. After logging in, click Create New Project on left side of the page. ii. Enter the title of the project, the principle investigator s (PI)

More information

Java SE 8 Programming

Java SE 8 Programming Oracle University Contact Us: +52 1 55 8525 3225 Java SE 8 Programming Duration: 5 Days What you will learn This Java SE 8 Programming training covers the core language features and Application Programming

More information

Java SE 8 Programming

Java SE 8 Programming Oracle University Contact Us: Local: 1800 103 4775 Intl: +91 80 67863102 Java SE 8 Programming Duration: 5 Days What you will learn This Java SE 8 Programming training covers the core language features

More information

CITY UNIVERSITY OF NEW YORK. i. Visit:

CITY UNIVERSITY OF NEW YORK. i. Visit: CITY UNIVERSITY OF NEW YORK I. ACCESSING IRB NET (New Registration) i. Visit: https://www.irbnet.org/release/index.html ii. New users: Click on New Registration in the top right corner iii. Fill-out the

More information

C# Programming: From Problem Analysis to Program Design. Fourth Edition

C# Programming: From Problem Analysis to Program Design. Fourth Edition C# Programming: From Problem Analysis to Program Design Fourth Edition Preface xxi INTRODUCTION TO COMPUTING AND PROGRAMMING 1 History of Computers 2 System and Application Software 4 System Software 4

More information

CS 520 Theory and Practice of Software Engineering Fall 2018

CS 520 Theory and Practice of Software Engineering Fall 2018 Logistics CS 520 Theory and Practice of Software Engineering Fall 2018 Best and worst programming practices September 11, 2018 Reminder Recap: software architecture vs. design Class website: https://people.cs.umass.edu/~brun/class/2018fall/cs520/

More information

CS 520 Theory and Practice of Software Engineering Fall 2017

CS 520 Theory and Practice of Software Engineering Fall 2017 Logistics CS 520 Theory and Practice of Software Engineering Fall 2017 Best and worst programming practices September 12, 2017 Recap: software architecture vs. design Recap: software architecture examples

More information

Murach s Beginning Java with Eclipse

Murach s Beginning Java with Eclipse Murach s Beginning Java with Eclipse Introduction xv Section 1 Get started right Chapter 1 An introduction to Java programming 3 Chapter 2 How to start writing Java code 33 Chapter 3 How to use classes

More information

CS 520 Theory and Practice of Software Engineering Fall 2017

CS 520 Theory and Practice of Software Engineering Fall 2017 CS 520 Theory and Practice of Software Engineering Fall 2017 Best and worst programming practices September 12, 2017 Logistics Recap: software architecture vs. design Specification Architecture Development

More information

Introduction. Assessment Test. Part I The Programmer s Exam 1

Introduction. Assessment Test. Part I The Programmer s Exam 1 4276FM.fm Page ix Thursday, October 2, 2003 11:22 AM at a Glance Introduction Assessment Test xix xxv Part I The Programmer s Exam 1 Chapter 1 Language Fundamentals 3 Chapter 2 Operators and Assignments

More information

WA1278 Introduction to Java Using Eclipse

WA1278 Introduction to Java Using Eclipse Lincoln Land Community College Capital City Training Center 130 West Mason Springfield, IL 62702 217-782-7436 www.llcc.edu/cctc WA1278 Introduction to Java Using Eclipse This course introduces the Java

More information

Advanced programming for Java platform. Introduction

Advanced programming for Java platform. Introduction Advanced programming for Java platform Introduction About course Petr Hnětynka hnetynka@d3s.mff.cuni.cz http://d3s.mff.cuni.cz/teaching/vsjava/ continuation of "Java (NPRG013)" basic knowledge of Java

More information

OracleAS 10g R3: Java Programming

OracleAS 10g R3: Java Programming OracleAS 10g R3: Java Programming Volume I Student Guide D18382GC20 Edition 2.0 April 2007 D50171 Authors Patrice Daux Kate Heap Technical Contributors and Reviewers Ken Cooper C Fuller Vasily Strelnikov

More information

Mathematics Shape and Space: Polygon Angles

Mathematics Shape and Space: Polygon Angles a place of mind F A C U L T Y O F E D U C A T I O N Department of Curriculum and Pedagogy Mathematics Shape and Space: Polygon Angles Science and Mathematics Education Research Group Supported by UBC Teaching

More information

CHAPTER 1: A GENERAL INTRODUCTION TO PROGRAMMING 1

CHAPTER 1: A GENERAL INTRODUCTION TO PROGRAMMING 1 INTRODUCTION xxii CHAPTER 1: A GENERAL INTRODUCTION TO PROGRAMMING 1 The Programming Process 2 Object-Oriented Programming: A Sneak Preview 5 Programming Errors 6 Syntax/Compilation Errors 6 Runtime Errors

More information

Peter Sestoft. Java Precisely. Third Edition. The MIT Press Cambridge, Massachusetts London, England

Peter Sestoft. Java Precisely. Third Edition. The MIT Press Cambridge, Massachusetts London, England Peter Sestoft Java Precisely Third Edition The MIT Press Cambridge, Massachusetts London, England Contents Preface Notational Conventions xi xii 1 Running Java: Compilation, Loading, and Execution 2 2

More information

Programming in Scala Second Edition

Programming in Scala Second Edition Programming in Scala Second Edition Martin Odersky, Lex Spoon, Bill Venners artima ARTIMA PRESS WALNUT CREEK, CALIFORNIA Contents Contents List of Figures List of Tables List of Listings Foreword Foreword

More information

Introduction to PTC Windchill ProjectLink 11.0

Introduction to PTC Windchill ProjectLink 11.0 Introduction to PTC Windchill ProjectLink 11.0 Overview Course Code Course Length TRN-4756-T 8 Hours In this course, you will learn how to participate in and manage projects using Windchill ProjectLink

More information

1 OBJECT-ORIENTED PROGRAMMING 1

1 OBJECT-ORIENTED PROGRAMMING 1 PREFACE xvii 1 OBJECT-ORIENTED PROGRAMMING 1 1.1 Object-Oriented and Procedural Programming 2 Top-Down Design and Procedural Programming, 3 Problems with Top-Down Design, 3 Classes and Objects, 4 Fields

More information

Contents. iii Copyright 1998 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 1998, Revision B

Contents. iii Copyright 1998 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 1998, Revision B Contents About the Course...xv Course Overview... xvi Course Map... xvii Module-by-Module Overview... xviii Course Objectives... xxii Skills Gained by Module... xxiii Guidelines for Module Pacing... xxiv

More information

CMSC131. Inheritance. Object. When we talked about Object, I mentioned that all Java classes are "built" on top of that.

CMSC131. Inheritance. Object. When we talked about Object, I mentioned that all Java classes are built on top of that. CMSC131 Inheritance Object When we talked about Object, I mentioned that all Java classes are "built" on top of that. This came up when talking about the Java standard equals operator: boolean equals(object

More information

Peers Techno log ies Pv t. L td. Core Java & Core Java &Adv Adv Java Java

Peers Techno log ies Pv t. L td. Core Java & Core Java &Adv Adv Java Java Page 1 Peers Techno log ies Pv t. L td. Course Brochure Core Java & Core Java &Adv Adv Java Java Overview Core Java training course is intended for students without an extensive programming background.

More information

AP COMPUTER SCIENCE JAVA CONCEPTS IV: RESERVED WORDS

AP COMPUTER SCIENCE JAVA CONCEPTS IV: RESERVED WORDS AP COMPUTER SCIENCE JAVA CONCEPTS IV: RESERVED WORDS PAUL L. BAILEY Abstract. This documents amalgamates various descriptions found on the internet, mostly from Oracle or Wikipedia. Very little of this

More information

Domain-Driven Design Activity

Domain-Driven Design Activity Domain-Driven Design Activity SWEN-261 Introduction to Software Engineering Department of Software Engineering Rochester Institute of Technology Entities and Value Objects are special types of objects

More information

Java SE 8 Programmer I and II Syballus( Paper codes : 1z0-808 & 1z0-809)

Java SE 8 Programmer I and II Syballus( Paper codes : 1z0-808 & 1z0-809) Page1 Java SE 8 Programmer 1, also called OCJA 8.0 Exam Number: 1Z0-808 Associated Certifications: Oracle Certified Associate, Java SE 8 Programmer Java Basics Highlights of the Certifications Define the

More information

Index COPYRIGHTED MATERIAL

Index COPYRIGHTED MATERIAL Index COPYRIGHTED MATERIAL Note to the Reader: Throughout this index boldfaced page numbers indicate primary discussions of a topic. Italicized page numbers indicate illustrations. A abstract classes

More information

(800) Toll Free (804) Fax Introduction to Java and Enterprise Java using Eclipse IDE Duration: 5 days

(800) Toll Free (804) Fax   Introduction to Java and Enterprise Java using Eclipse IDE Duration: 5 days Course Description This course introduces the Java programming language and how to develop Java applications using Eclipse 3.0. Students learn the syntax of the Java programming language, object-oriented

More information

Fundamentals of the Java Programming Language

Fundamentals of the Java Programming Language Fundamentals of the Java Programming Language Student Guide SL-110 REV E D61798GC10 Edition 1.0 2009 D62399 Copyright 2006, 2009, Oracle and/or its affiliates. All rights reserved. Disclaimer This document

More information

OLLSCOIL NA héireann THE NATIONAL UNIVERSITY OF IRELAND COLÁISTE NA hollscoile, CORCAIGH UNIVERSITY COLLEGE, CORK. Summer Examination 2013

OLLSCOIL NA héireann THE NATIONAL UNIVERSITY OF IRELAND COLÁISTE NA hollscoile, CORCAIGH UNIVERSITY COLLEGE, CORK. Summer Examination 2013 OLLSCOIL NA héireann THE NATIONAL UNIVERSITY OF IRELAND COLÁISTE NA hollscoile, CORCAIGH UNIVERSITY COLLEGE, CORK Summer Examination 2013 CS5015 Object-oriented Software Development Prof. Ian Gent Prof.

More information

CROSS-REFERENCE TABLE ASME A Including A17.1a-1997 Through A17.1d 2000 vs. ASME A

CROSS-REFERENCE TABLE ASME A Including A17.1a-1997 Through A17.1d 2000 vs. ASME A CROSS-REFERENCE TABLE ASME Including A17.1a-1997 Through A17.1d 2000 vs. ASME 1 1.1 1.1 1.1.1 1.2 1.1.2 1.3 1.1.3 1.4 1.1.4 2 1.2 3 1.3 4 Part 9 100 2.1 100.1 2.1.1 100.1a 2.1.1.1 100.1b 2.1.1.2 100.1c

More information

Table of Contents. Chapter 1 Getting Started with Java SE 7 1. Chapter 2 Exploring Class Members in Java 15. iii. Introduction of Java SE 7...

Table of Contents. Chapter 1 Getting Started with Java SE 7 1. Chapter 2 Exploring Class Members in Java 15. iii. Introduction of Java SE 7... Table of Contents Chapter 1 Getting Started with Java SE 7 1 Introduction of Java SE 7... 2 Exploring the Features of Java... 3 Exploring Features of Java SE 7... 4 Introducing Java Environment... 5 Explaining

More information

Excel Programming with VBA (Macro Programming) 24 hours Getting Started

Excel Programming with VBA (Macro Programming) 24 hours Getting Started Excel Programming with VBA (Macro Programming) 24 hours Getting Started Introducing Visual Basic for Applications Displaying the Developer Tab in the Ribbon Recording a Macro Saving a Macro-Enabled Workbook

More information

ITEC2620 Introduction to Data Structures

ITEC2620 Introduction to Data Structures ITEC2620 Introduction to Data Structures Searching and Sorting It is faster to search a sorted array What happens if our data set changes? We have to keep the array in sorted order Lecture 3b Linked-Lists

More information

Mechanism Design using Creo Parametric 3.0

Mechanism Design using Creo Parametric 3.0 Mechanism Design using Creo Parametric 3.0 Overview Course Code Course Length TRN-4521-T 1 Day In this course, you will learn about creating mechanism connections, configuring the mechanism model, creating

More information

C12a: The Object Superclass and Selected Methods

C12a: The Object Superclass and Selected Methods CISC 3115 TY3 C12a: The Object Superclass and Selected Methods Hui Chen Department of Computer & Information Science CUNY Brooklyn College 10/4/2018 CUNY Brooklyn College 1 Outline The Object class and

More information

The Java Tutorial. A Short Course on the Basics. Raymond Gallardo. Sowmya Kannan. AAddison-Wesley. Sharon Biocca Zakhour.

The Java Tutorial. A Short Course on the Basics. Raymond Gallardo. Sowmya Kannan. AAddison-Wesley. Sharon Biocca Zakhour. The Java Tutorial A Short Course on the Basics Fifth Edition Sharon Biocca Zakhour Sowmya Kannan Raymond Gallardo AAddison-Wesley Upper Saddle River, NJ Boston Indianapolis San Francisco New York Toronto

More information

Java SE 7 Programming Volume I Student Guide

Java SE 7 Programming Volume I Student Guide Java SE 7 Programming Volume I Student Guide D67238GC20 Edition 2.0 November 2011 D74996 Authors Michael Williams Tom McGinn Matt Heimer Technical Contributors and Reviewers Lee Klement Steve Watts Brian

More information

Microsoft. Microsoft Visual C# Step by Step. John Sharp

Microsoft. Microsoft Visual C# Step by Step. John Sharp Microsoft Microsoft Visual C#- 2010 Step by Step John Sharp Table of Contents Acknowledgments Introduction xvii xix Part I Introducing Microsoft Visual C# and Microsoft Visual Studio 2010 1 Welcome to

More information

Oracle Corporation

Oracle Corporation 1 2011 Oracle Corporation Making heads and tails of Project Coin, Small language changes in JDK 7 Joseph D. Darcy Presenting with LOGO 2 2011 Oracle Corporation Project Coin is a suite of language and

More information

OLLSCOIL NA héireann THE NATIONAL UNIVERSITY OF IRELAND COLÁISTE NA hollscoile, CORCAIGH UNIVERSITY COLLEGE, CORK. Summer Examination 2012

OLLSCOIL NA héireann THE NATIONAL UNIVERSITY OF IRELAND COLÁISTE NA hollscoile, CORCAIGH UNIVERSITY COLLEGE, CORK. Summer Examination 2012 OLLSCOIL NA héireann THE NATIONAL UNIVERSITY OF IRELAND COLÁISTE NA hollscoile, CORCAIGH UNIVERSITY COLLEGE, CORK Summer Examination 2012 Computer Science CS5015 Object-oriented Software Development Prof.

More information

Xtend Programming Language

Xtend Programming Language Xtend Programming Language Produced by: Eamonn de Leastar (edeleastar@wit.ie) Department of Computing and Mathematics http://www.wit.ie/ Agenda Subtitle Excellent Xtend User Guide (Version 2.6) API Docs

More information

CONTENTS. Chapter 1 Getting Started with Java SE 6 1. Chapter 2 Exploring Variables, Data Types, Operators and Arrays 13

CONTENTS. Chapter 1 Getting Started with Java SE 6 1. Chapter 2 Exploring Variables, Data Types, Operators and Arrays 13 CONTENTS Chapter 1 Getting Started with Java SE 6 1 Introduction of Java SE 6... 3 Desktop Improvements... 3 Core Improvements... 4 Getting and Installing Java... 5 A Simple Java Program... 10 Compiling

More information

Produced by. Agile Software Development. Eamonn de Leastar

Produced by. Agile Software Development. Eamonn de Leastar Agile Software Development Produced by Eamonn de Leastar (edeleastar@wit.ie) Department of Computing, Maths & Physics Waterford Institute of Technology http://www.wit.ie http://elearning.wit.ie Xtend Programming

More information

G Programming Languages - Fall 2012

G Programming Languages - Fall 2012 G22.2110-003 Programming Languages - Fall 2012 Week 13 - Part 1 Thomas Wies New York University Review Last lecture Object Oriented Programming Outline Today: Scala Sources: Programming in Scala, Second

More information

Certification In Java Language Course Course Content

Certification In Java Language Course Course Content Introduction Of Java * What Is Java? * How To Get Java * A First Java Program * Compiling And Interpreting Applications * The JDK Directory Structure Certification In Java Language Course Course Content

More information

Produced by. Agile Software Development. Eamonn de Leastar

Produced by. Agile Software Development. Eamonn de Leastar Agile Software Development Produced by Eamonn de Leastar (edeleastar@wit.ie) Department of Computing, Maths & Physics Waterford Institute of Technology http://www.wit.ie http://elearning.wit.ie Xtend Programming

More information

Introduction to PTC Windchill PDMLink 11.0 for Heavy Users

Introduction to PTC Windchill PDMLink 11.0 for Heavy Users Introduction to PTC Windchill PDMLink 11.0 for Heavy Users Overview Course Code Course Length TRN-4751-T 16 Hours In this course, you will learn how to complete the day-to-day functions that enable you

More information

CHAPTER 1: INTRODUCING C# 3

CHAPTER 1: INTRODUCING C# 3 INTRODUCTION xix PART I: THE OOP LANGUAGE CHAPTER 1: INTRODUCING C# 3 What Is the.net Framework? 4 What s in the.net Framework? 4 Writing Applications Using the.net Framework 5 What Is C#? 8 Applications

More information

"Charting the Course to Your Success!" MOC D Querying Microsoft SQL Server Course Summary

Charting the Course to Your Success! MOC D Querying Microsoft SQL Server Course Summary Course Summary Description This 5-day instructor led course provides students with the technical skills required to write basic Transact-SQL queries for Microsoft SQL Server 2014. This course is the foundation

More information

Agenda. Objects and classes Encapsulation and information hiding Documentation Packages

Agenda. Objects and classes Encapsulation and information hiding Documentation Packages Preliminaries II 1 Agenda Objects and classes Encapsulation and information hiding Documentation Packages Inheritance Polymorphism Implementation of inheritance in Java Abstract classes Interfaces Generics

More information

UNIVERSITI SAINS MALAYSIA. CIT502 Object-Oriented Programming and Software Engineering

UNIVERSITI SAINS MALAYSIA. CIT502 Object-Oriented Programming and Software Engineering UNIVERSITI SAINS MALAYSIA First Semester Examination Academic Session 2003/2004 September/October 2003 CIT502 Object-Oriented Programming and Software Engineering Duration : 3 hours INSTRUCTION TO CANDIDATE:

More information

Q3. Where can I register DuitNow ID? Login to Bank Islam Internet Banking. Go to Settings > DuitNow ID and click on Add button. Refer to image below.

Q3. Where can I register DuitNow ID? Login to Bank Islam Internet Banking. Go to Settings > DuitNow ID and click on Add button. Refer to image below. Q1. What is DuitNow? DuitNow is a new real-time online fund transfer service that allows consumers and business owners to transfer money using an ID called DuitNow ID instead of having to exchange bank

More information

Application Development in JAVA. Data Types, Variable, Comments & Operators. Part I: Core Java (J2SE) Getting Started

Application Development in JAVA. Data Types, Variable, Comments & Operators. Part I: Core Java (J2SE) Getting Started Application Development in JAVA Duration Lecture: Specialization x Hours Core Java (J2SE) & Advance Java (J2EE) Detailed Module Part I: Core Java (J2SE) Getting Started What is Java all about? Features

More information

Table of Contents. Preface... xxi

Table of Contents. Preface... xxi Table of Contents Preface... xxi Chapter 1: Introduction to Python... 1 Python... 2 Features of Python... 3 Execution of a Python Program... 7 Viewing the Byte Code... 9 Flavors of Python... 10 Python

More information

The Definitive Guide to. NetBeans Platform 7. Heiko Bock. Apress*

The Definitive Guide to. NetBeans Platform 7. Heiko Bock. Apress* The Definitive Guide to NetBeans Platform 7 Heiko Bock Apress* Contents About the Author About the Translator About the Technical Reviewers Acknowledgments Introduction xiv xiv xv xvi xvii * Part 1: Basics

More information

Learning C# 3.0. Jesse Liberty and Brian MacDonald O'REILLY. Beijing Cambridge Farnham Köln Sebastopol Taipei Tokyo

Learning C# 3.0. Jesse Liberty and Brian MacDonald O'REILLY. Beijing Cambridge Farnham Köln Sebastopol Taipei Tokyo Learning C# 3.0 Jesse Liberty and Brian MacDonald O'REILLY Beijing Cambridge Farnham Köln Sebastopol Taipei Tokyo Table of Contents Preface xv 1. C# and.net Programming 1 Installing C# Express 2 C# 3.0

More information

Polymorphism. return a.doublevalue() + b.doublevalue();

Polymorphism. return a.doublevalue() + b.doublevalue(); Outline Class hierarchy and inheritance Method overriding or overloading, polymorphism Abstract classes Casting and instanceof/getclass Class Object Exception class hierarchy Some Reminders Interfaces

More information

Microsoft Visual C# Step by Step. John Sharp

Microsoft Visual C# Step by Step. John Sharp Microsoft Visual C# 2013 Step by Step John Sharp Introduction xix PART I INTRODUCING MICROSOFT VISUAL C# AND MICROSOFT VISUAL STUDIO 2013 Chapter 1 Welcome to C# 3 Beginning programming with the Visual

More information

Contents. I. Classes, Superclasses, and Subclasses. Topic 04 - Inheritance

Contents. I. Classes, Superclasses, and Subclasses. Topic 04 - Inheritance Contents Topic 04 - Inheritance I. Classes, Superclasses, and Subclasses - Inheritance Hierarchies Controlling Access to Members (public, no modifier, private, protected) Calling constructors of superclass

More information

FOR BEGINNERS 3 MONTHS

FOR BEGINNERS 3 MONTHS JAVA FOR BEGINNERS 3 MONTHS INTRODUCTION TO JAVA Why Java was Developed Application Areas of Java History of Java Platform Independency in Java USP of Java: Java Features Sun-Oracle Deal Different Java

More information

Highlights from Java 10, 11 and 12 and Future of Java Javaland by Vadym Kazulkin, ip.labs GmbH

Highlights from Java 10, 11 and 12 and Future of Java Javaland by Vadym Kazulkin, ip.labs GmbH Highlights from Java 10, 11 and 12 and Future of Java Javaland 19.03.2019 by Vadym Kazulkin, ip.labs GmbH Contact Vadym Kazulkin, ip.labs GmbH v.kazulkin@gmail.com https://www.linkedin.com/in/vadymkazulkin

More information

LTBP INDUSTRIAL TRAINING INSTITUTE

LTBP INDUSTRIAL TRAINING INSTITUTE Java SE Introduction to Java JDK JRE Discussion of Java features and OOPS Concepts Installation of Netbeans IDE Datatypes primitive data types non-primitive data types Variable declaration Operators Control

More information

JVA-103. Java Programming

JVA-103. Java Programming JVA-103. Java Programming Version 8.0 This course teaches programming in the Java language -- i.e. the Java Standard Edition platform. It is intended for programmers with experience in languages other

More information

SYLLABUS JAVA COURSE DETAILS. DURATION: 60 Hours. With Live Hands-on Sessions J P I N F O T E C H

SYLLABUS JAVA COURSE DETAILS. DURATION: 60 Hours. With Live Hands-on Sessions J P I N F O T E C H JAVA COURSE DETAILS DURATION: 60 Hours With Live Hands-on Sessions J P I N F O T E C H P U D U C H E R R Y O F F I C E : # 4 5, K a m a r a j S a l a i, T h a t t a n c h a v a d y, P u d u c h e r r y

More information

"Charting the Course... MOC C: Querying Data with Transact-SQL. Course Summary

Charting the Course... MOC C: Querying Data with Transact-SQL. Course Summary Course Summary Description This course is designed to introduce students to Transact-SQL. It is designed in such a way that the first three days can be taught as a course to students requiring the knowledge

More information

Introduction to PTC Windchill PDMLink 11.0 for the Implementation Team

Introduction to PTC Windchill PDMLink 11.0 for the Implementation Team Introduction to PTC Windchill PDMLink 11.0 for the Implementation Team Overview Course Code Course Length TRN-4752-T 16 Hours In this course, you will learn how to complete basic Windchill PDMLink functions.

More information

Java Programming Training for Experienced Programmers (5 Days)

Java Programming Training for Experienced Programmers (5 Days) www.peaklearningllc.com Java Programming Training for Experienced Programmers (5 Days) This Java training course is intended for students with experience in a procedural or objectoriented language. It

More information

COP 3330 Final Exam Review

COP 3330 Final Exam Review COP 3330 Final Exam Review I. The Basics (Chapters 2, 5, 6) a. comments b. identifiers, reserved words c. white space d. compilers vs. interpreters e. syntax, semantics f. errors i. syntax ii. run-time

More information

Courses For Event Java Advanced Summer Training 2018

Courses For Event Java Advanced Summer Training 2018 Courses For Event Java Advanced Summer Training 2018 Java Fundamentals Oracle Java SE 8 Advanced Java Training Java Advanced Expert Edition Topics For Java Fundamentals Variables Data Types Operators Part

More information

Introduction to Creo Elements/Direct 19.0 Modeling

Introduction to Creo Elements/Direct 19.0 Modeling Introduction to Creo Elements/Direct 19.0 Modeling Overview Course Code Course Length TRN-4531-T 3 Day In this course, you will learn the basics about 3-D design using Creo Elements/Direct Modeling. You

More information

dtsearch Text Retrieval Engine -- Java API

dtsearch Text Retrieval Engine -- Java API dtsearch Text Retrieval Engine -- API Copyright (c) 1998-2016 dtsearch Corp. All rights reserved. dtsearch Text Retrieval Engine -- Table of Contents dtsearch Engine API 1 com.dtsearch.engine Package 2

More information

"Charting the Course... MOC A: Developing with the SharePoint Framework. Course Summary

Charting the Course... MOC A: Developing with the SharePoint Framework. Course Summary Course Summary Description This five-day instructor-led course is intended for developers who want to be able to create client-side applications with SharePoint Framework. In this course, students will

More information

CORE JAVA TRAINING COURSE CONTENT

CORE JAVA TRAINING COURSE CONTENT CORE JAVA TRAINING COURSE CONTENT SECTION 1 : INTRODUCTION Introduction about Programming Language Paradigms Why Java? Flavors of Java. Java Designing Goal. Role of Java Programmer in Industry Features

More information

CMSC 132: Object-Oriented Programming II

CMSC 132: Object-Oriented Programming II CMSC 132: Object-Oriented Programming II Object-Oriented Programming Intro Department of Computer Science University of Maryland, College Park Object-Oriented Programming (OOP) Approach to improving software

More information

Remote Access Guide. https://remote.lghealth.org

Remote Access Guide. https://remote.lghealth.org Remote Access Guide https://remote.lghealth.org Created by: Joshua Steele Revision 1.0 7/14/2015 Table of Contents I. Remote Access using Internet Explorer... 2 II. Remote Access using Google Chrome...

More information

Java Programming Course Overview. Duration: 35 hours. Price: $900

Java Programming Course Overview. Duration: 35 hours. Price: $900 978.256.9077 admissions@brightstarinstitute.com Java Programming Duration: 35 hours Price: $900 Prerequisites: Basic programming skills in a structured language. Knowledge and experience with Object- Oriented

More information

All code must follow best practices. Part (but not all) of this is adhering to the following guidelines:

All code must follow best practices. Part (but not all) of this is adhering to the following guidelines: Java Coding Guidelines Version 1.3.2 All code must follow best practices. Part (but not all) of this is adhering to the following guidelines: Development For code development, I recommend the following

More information

Java Classes. Produced by. Introduction to the Java Programming Language. Eamonn de Leastar

Java Classes. Produced by. Introduction to the Java Programming Language. Eamonn de Leastar Java Classes Introduction to the Java Programming Language Produced by Eamonn de Leastar edeleastar@wit.ie Department of Computing, Maths & Physics Waterford Institute of Technology http://www.wit.ie http://elearning.wit.ie

More information

2.) ilit Welcome Screen

2.) ilit Welcome Screen 1.) ilit Login Page a. Single Sign On (VPN) if you are logged in the VPN (getting emails, etc.), no password will be required when you launch I-Lit. You will be taken directly to the welcome screen. b.

More information

CO Java SE 8: Fundamentals

CO Java SE 8: Fundamentals CO-83527 Java SE 8: Fundamentals Summary Duration 5 Days Audience Application Developer, Developer, Project Manager, Systems Administrator, Technical Administrator, Technical Consultant and Web Administrator

More information

Quick start. Robert Bachmann & Dominik Dorn. JSUG Meeting #63

Quick start. Robert Bachmann & Dominik Dorn. JSUG Meeting #63 1.. Java 8 Quick start Robert Bachmann & Dominik Dorn JSUG Meeting #63 Outline: What s new in Java 8 2 Interface additions and lambda syntax (r) Library additions (r) Nashorn (d) Type annotations (d) VM

More information

CHAPTER 1 JAVA 7 FEATURES

CHAPTER 1 JAVA 7 FEATURES CHAPTER 1 JAVA 7 FEATURES OBJECTIVES After completing Java 7 Features, you will be able to: Identify and use new features of the Java language available as of the 7 th edition: Binary literals and underscore

More information

INDIAN SCHOOL SOHAR FIRST TERM EXAM ( ) INFORMATICS PRACTICES

INDIAN SCHOOL SOHAR FIRST TERM EXAM ( ) INFORMATICS PRACTICES INDIAN SCHOOL SOHAR FIRST TERM EXAM (2015-2016) INFORMATICS PRACTICES Page 1 of 5 No. of printed pages: 5 Class: XI Marks: 70 Date: 10-09-15 Time: 3 hours Instructions: a. All the questions are compulsory.

More information

Java Persistence API (JPA) Entities

Java Persistence API (JPA) Entities Java Persistence API (JPA) Entities JPA Entities JPA Entity is simple (POJO) Java class satisfying requirements of JavaBeans specification Setters and getters must conform to strict form Every entity must

More information

News in JDK8 Developer Conference Brno Feb Jiří Vaněk

News in JDK8 Developer Conference Brno Feb Jiří Vaněk News in JDK8 Developer Conference Brno Feb. 2012 Jiří Vaněk News in JDK8 Developer Conference Brno Feb. 2012 Jiří Vaněk FOSDEM 2012: M. Reinhold: There is nothing sure right now Q: JDK 7? Q: JDK < 6? Index

More information

John Hunt and Alex McManus. Key Java. Advanced Tips and Techniques

John Hunt and Alex McManus. Key Java. Advanced Tips and Techniques John Hunt and Alex McManus Key Java Advanced Tips and Techniques Preface xiii Part 1 Java Development 1 Introduction 3 1.1 Introduction 3 1.2 A Brief History of Java 3 1.3 The Three Stages of Java 4 1.4

More information

CSC Java Programming, Fall Java Data Types and Control Constructs

CSC Java Programming, Fall Java Data Types and Control Constructs CSC 243 - Java Programming, Fall 2016 Java Data Types and Control Constructs Java Types In general, a type is collection of possible values Main categories of Java types: Primitive/built-in Object/Reference

More information

Outline. Inheritance. Abstract Classes Interfaces. Class Extension Overriding Methods Inheritance and Constructors Polymorphism.

Outline. Inheritance. Abstract Classes Interfaces. Class Extension Overriding Methods Inheritance and Constructors Polymorphism. Outline Inheritance Class Extension Overriding Methods Inheritance and Constructors Polymorphism Abstract Classes Interfaces 1 OOP Principles Encapsulation Methods and data are combined in classes Not

More information

Object Oriented Programming. Week 1 Part 3 Writing Java with Eclipse and JUnit

Object Oriented Programming. Week 1 Part 3 Writing Java with Eclipse and JUnit Object Oriented Programming Part 3 Writing Java with Eclipse and JUnit Today's Lecture Test Driven Development Review (TDD) Building up a class using TDD Adding a Class using Test Driven Development in

More information

Page 1

Page 1 Java 1. Core java a. Core Java Programming Introduction of Java Introduction to Java; features of Java Comparison with C and C++ Download and install JDK/JRE (Environment variables set up) The JDK Directory

More information

1Z Java SE 7 Programmer II Exam Summary Syllabus Questions

1Z Java SE 7 Programmer II Exam Summary Syllabus Questions 1Z0-804 Java SE 7 Programmer II Exam Summary Syllabus Questions Table of Contents Introduction to 1Z0-804 Exam on Java SE 7 Programmer II... 2 Oracle 1Z0-804 Certification Details:... 2 Oracle 1Z0-804

More information

Programming Languages and Techniques (CIS120)

Programming Languages and Techniques (CIS120) Programming Languages and Techniques (CIS120) Lecture 28 March 30, 2018 Overriding Methods, Equality, Enums, Iterators Chapters 25 and 26 Method Overriding When a subclass replaces an inherited method

More information

Java Platform, Standard Edition (Java SE) From Yes-M Systems LLC Length: Approx 4 weeks/40 hours Audience: Students with experience in

Java Platform, Standard Edition (Java SE) From Yes-M Systems LLC Length: Approx 4 weeks/40 hours Audience: Students with experience in Java Platform, Standard Edition (Java SE) From Length: Approx 4 weeks/40 hours Audience: Students with experience in object-oriented programming Student Location To students from around the world Delivery

More information

"Charting the Course... MOC Programming in C# with Microsoft Visual Studio Course Summary

Charting the Course... MOC Programming in C# with Microsoft Visual Studio Course Summary Course Summary NOTE - The course delivery has been updated to Visual Studio 2013 and.net Framework 4.5! Description The course focuses on C# program structure, language syntax, and implementation details

More information