The Java Crypto API • Generate and Handle Keys

Total Page:16

File Type:pdf, Size:1020Kb

The Java Crypto API • Generate and Handle Keys The Java Technical Details ICW Lecture 3 Tom Chothia Reminder of Last Time: • Your programs defines “Classes”. • Each class defines “Objects”. • An Object is defined as having a number of “Fields” that store data... • ...and a number of “Methods” that perform computation. This Time: • How does Java actually work. – Byte code, JVMs, Classpaths, ... • A short history of Java – What was added when – and what’s coming next. • Pasrsing – How to turn test into a data structure you can work with. To Run a Java Program • Write the source .java program. • Compile the source using javac to get a .class file. • Run the source using java. To Run a Java Program • Write the source .java program. • Compile the source using javac to get a .class file. • Run the source using java. • but the .class file runs on any computer! How? Multi-platform. • Java does compile to machine code. • Java compiles to Java Byte Code. – Type: “javap -c <ClassName>” to see the byte code. • Every computer must have its own Java Virtual Machine (JVM) which runs the the byte code. • Every different OS must have it’s own JVM Java Program Compile Java to Byte .java Code Using “javac” Java Byte Code .class Run Byte Code On JVM using “java” Windows Linux Phone JVM JVM JVM Windows Linux Mobile Computer Computer Phone Java Byte Code • Java Byte Code is very close to assembler. • But where is the system.print code? APIs • The best aspect of Java is all it's libraries, or “Application Programming Interfaces (APIs)” • For a list standard packages see: http://java.sun.com/javase/6/docs/api/ • Third party APIs exist for almost any functions. Classloaders • A “classloader” will load the byte code for other classes, as it is needed. • This lets your byte code stay small, but still have access to all the libraries. • Classloaders will be discussed futher in lecture 18. Classpath • The “classpath” tells the classloader where to look for the byte code. • If you want to use your own libraries you must add them to the classpath. – Linux/Unix: use setenv command. – Windows: Control Panel>System utility. – Eclipse: Eclipse>Preferences>Java>Build Path>Classapth variable Jar Files • If you want to bundle classes together, use a Java Archive (JAR) file. • A JAR file is a zipped directory of java class files. • To run a jar file type: java -jar filename • To create a jar file use: jar cf jar-file input-files • Or in Eclipse: File>Export>Java>Jar Running a Java Program • Write source. • Compile with javac which – checks the classpath packages – checks types – Generates byte code • Run with java – Java verifies the byte code – Loads the byte code into the JVM. • The JVM runs the program – JVM execute the byte code – And loads more classes as needed. What You Need to Know • Javac to compile, java to run. • Set Classpath to file other class files. • Normal you don’t need to know about JVMs and byte code What You Need to Know • Javac to compile, java to run. • Set Classpath to file other class files. • Normal you don’t need to know about JVMs and byte code but you might get errors when the version changes. The Version Changes??? • Yes, every few years there is a new version of Java. • New JVMs can run old classes. • Old JVMs cannot run all new classes. – So Java is platform independed, but not JVM independed. Java Version History • Pre-Java: 1991 Sun built “Oak” • a language for home devices. • 1996: home devices going no-where. Web is huge, Oak is made into Java Development Kit 1 (JDK 1) and released. Java Version History • 1997 JDK 1.1 released. Adds: – JDBC (database access) – RMI (Remote Method Innvocation) • 1998 J2SE 1.2 (Java 2 Platform, Standard Edition) – CORBA for interaction with other languages. – Swing (GUIs) becomes core. – JVM updated to JIT Java Version History • 2000 J2SE 1.3 – RMI now works with CORBA – Support for clients to look up remote services (JNDI). – Serious debugging added. • 2002 JDK 1.4 – assertions – Reguler expressions (later in this lecture) – IP6 support – XML parser and XSLT – Java Crypto (JCE) Java Version History • 2004 J2SE 5.0 – Generics Types – Better type conversion – Static inport – No more stubs in RMI • 2006 Java SE 6 – Support for old windows systems dropped – 64-bit support – Rhino scripting language – Better JDBC Java Version Future • Java 7 (codeman Dolphin) is likely to be released in 2010. • Dynamic language features (code can be changed and passed at run time). • Support better support for parallel processers. • Super packages. Regular Expressions and Parsing Regular Expressions • Regular expressions describe strings based on common characteristics. • They can be used to search, edit, or manipulate text and data. • Once you understand the basics you'll be able to process any text you want. Pattern and Matcher Classes • Use the java.until.regex.Pattern Object to define what you want to match: Pattern p = Pattern.compile(“gmail”); • Link it to the String you want to scan: Matcher m = p.matcher(myString); • m.match() is true is String contains “gmail”. Wild Cards [abc] = a,b or c [a-z] = lowercase XY X then Y letter X|Y X or Y (not both) [a-zA-Z] = any letter X? one or zero Xs \\n = new line X* zero or more Xs \\d = any digit X+ one of more Xs \\s =white space What Matches With What? A: [abcd][bcde][cdef] 1 [email protected] B: [a-z]+@[.a-z]+ 2 bed C: [a-zA-Z]@[.a-z].[a-z]+ 3 PUT@911 D: GET|PUT[\\s]+[//.:a-z@]* 4 GET http://www.x.com E: [A-Z@\\d]+[\\d] 5 [email protected] Capture Groups ● Capture Groups let you process data. ● Put brackets round the bit you want to use. ● And use matcher.group(n) to match the n-th group Finding email addresses. Pattern p = Pattern.compile (“([a-zA-Z\d])@([a-zA-Z\d]).com”) Matcher matcher = pattern.matcher(terms[0].trim()); While (m.match()) { System.out.print(“user: ”+m.group(1)); System.out.println(“ host: ”+m.group(2)); } Full Parsers • You could parse the syntax of a language using pattern matching, but it would be a lot of work. • For big grammars you should use a ``parser generator'' such as antlr or yacc. • You specific the grammar and the tool builds the parser for you. Conclusion • Java byte code can run the any computer with a JVM. • Set you classpath to point to the classes/JAR files you want to use. • Java is updating all the time. • Parsers and Regular Expressions. Next Time: The Java Crypto API • Generate and handle keys. • How to encrypt and decrypt – public key encryption, – and symmetric key encryption. • Hashes • Keystores .
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]