Java Virtual Machine 2015-9-201. Java Virtual Machine A Java Virtual Machine (JVM) is a set of computer software programs and data structures that use.

Slides:



Advertisements
Similar presentations
Introduction To Java Objectives For Today â Introduction To Java â The Java Platform & The (JVM) Java Virtual Machine â Core Java (API) Application Programming.
Advertisements

Java Applet Security Diana Dong CS 265 Spring 2004.
Lab Information Security Using Java (Review) Lab#0 Omaima Al-Matrafi.
Lab#1 (14/3/1431h) Introduction To java programming cs425
1 GWT Google Web Toolkit Build AJAX apps in the Java language
Object Orientated Programming
got ? Research Project – April 1998 Hang Xia, Mark Wang, Richard S. Chang Updated: R Norman, August 1999.
Java: History and Introduction (Lecture # 1). History… Java – Based on C and C++ – Developed in 1991 for intelligent consumer electronic devices – Green.
Introduction to Java Programming
Java for High Performance Computing Jordi Garcia Almiñana 14 de Octubre de 1998 de la era post-internet.
A. Frank - P. Weisberg Operating Systems Structure of Operating Systems.
Introduction to Java.
COP4020 Programming Languages
Session-02. Objective In this session you will learn : What is Class Loader ? What is Byte Code Verifier? JIT & JAVA API Features of Java Java Environment.
L EC. 01: J AVA FUNDAMENTALS Fall Java Programming.
01 Introduction to Java Technology. 2 Contents History of Java What is Java? Java Platforms Java Virtual Machine (JVM) Java Development Kit (JDK) Benefits.
Marlene Galea.  The JDK (Java Development Kit)  An IDE (Integrated Development Environment) ◦ Different IDEs include:  JCreator  NetBeans  BlueJ.
Source Code Basics. Code For a computer to execute instructions, it needs to be in binary Each instruction is given a number Known as “operation code”
Page 1 Sandboxing & Signed Software Paul Krzyzanowski Distributed Systems Except as otherwise noted, the content of this presentation.
Advanced OOP MCS-3 OOP BSCS-3 Lecture # 1
A Java Virtual Machine (JVM) enables a set of computer software programs and data structures to use a virtual machine model for the execution of other.
JAVA v.s. C++ Programming Language Comparison By LI LU SAMMY CHU By LI LU SAMMY CHU.
Ch 1. Introduction Dr. Bernard Chen Ph.D. University of Central Arkansas Spring 2012.
Java Security. Topics Intro to the Java Sandbox Language Level Security Run Time Security Evolution of Security Sandbox Models The Security Manager.
JVM And CLR Dan Agar April 16, Outline Java and.NET Design Philosophies Overview of Virtual Machines Technical Look at JVM and CLR Comparison of.
Arpit Jain Mtech1. Outline Introduction Dalvik VM Java VM Examples Comparisons Experimental Evaluation.
An intro to programming. The purpose of writing a program is to solve a problem or take advantage of an opportunity Consists of multiple steps:  Understanding.
Implement High-level Program Language on JVM CSCE 531 ZHONGHAO LIU ZHONGHAO LIU XIAO LIN.
Java Introduction Lecture 1. Java Powerful, object-oriented language Free SDK and many resources at
Programming language A programming language is an artificial language designed to communicate instructions to a machine,languageinstructionsmachine particularly.
Introduction to the Java Virtual Machine 井民全. JVM (Java Virtual Machine) the environment in which the java programs execute The specification define an.
The Basics of Javadoc Presented By: Wes Toland. Outline  Overview  Background  Environment  Features Javadoc Comment Format Javadoc Program HTML API.
1 Module Objective & Outline Module Objective: After completing this Module, you will be able to, appreciate java as a programming language, write java.
Advanced Programming Collage of Information Technology University of Palestine, Gaza Prepared by: Mahmoud Rafeek Alfarra Lecture 2: Major Concepts of Programming.
Proof Carrying Code Zhiwei Lin. Outline Proof-Carrying Code The Design and Implementation of a Certifying Compiler A Proof – Carrying Code Architecture.
1 Comp 104: Operating Systems Concepts Java Development and Run-Time Store Organisation.
Java Security Nathan Moore CS 665. Overview Survey of Java Inherent Security Properties Java Runtime Environment Java Virtual Machine Java Security Model.
Introduction and Features of Java. What is java? Developed by Sun Microsystems (James Gosling) A general-purpose object-oriented language Based on C/C++
Java 2 security model Valentina Casola. Components of Java the development environment –development lifecycle –Java language features –class files and.
Java Security Model For Mobile Code Abdo Achkar. Mobile Code A mobile object is a “self contained piece” of executable code. Definition:  Code that can.
Getting started with Programming using IDE. JAVA JAVA IS A PROGRAMMING LANGUAGE AND A PLATFORM. IT CAN BE USED TO DELIVER AND RUN HIGHLY INTERACTIVE DYNAMIC.
CT1513 Introduction To java © A.AlOsaimi.
A compiler is a computer program that translate written code (source code) into another computer language Associated with high level languages A well.
A. Frank - P. Weisberg Operating Systems Structure of Operating Systems.
Ch 1. A Python Q&A Session. Why do people use Python? Software Quality Developer productivity Program portability Support Libraries Component integration.
By: Cheryl Mok & Sarah Tan. Java is partially interpreted. 1. Programmer writes a program in textual form 2. Runs the compiler, which converts the textual.
introductory lecture on java programming
Software Development Introduction
CSCI 212 Object-Oriented Programming in Java. Prerequisite: CSCI 111 variable assignment statement while loop for loop post-increment (i++) strong typing.
1 Introduction Read D&D Sec 1.8; Sec 1.13 THE Java tutorial -
ITP 109 Week 2 Trina Gregory Introduction to Java.
Introduction to Programming 1 1 2Introduction to Java.
Language Based Operating Systems by Sean Olson What is a virtual machine? What is managed code? Kernels. Memory and security models. What is a language.
Sung-Dong Kim, Dept. of Computer Engineering, Hansung University Java - Introduction.
Computer System Structures
Applications Active Web Documents Active Web Documents.
Why don’t programmers have to program in machine code?
Before You Begin Nahla Abuel-ola /WIT.
Lecture 1: Introduction to JAVA
Topic: Difference b/w JDK, JRE, JIT, JVM
Internet and Java Foundations, Programming and Practice
Introduction Enosis Learning.
Introduction Enosis Learning.
Getting Started ARCS Lab..
CS-0401 INTERMEDIATE PROGRAMMING USING JAVA
(Computer fundamental Lab)
Computer Programming-1 CSC 111
Programming language translators
Outcome of the Lecture Upon completion of this lecture you will be able to understand Fundamentals and Characteristics of Java Language Basic Terminology.
Presentation transcript:

Java Virtual Machine

Java Virtual Machine A Java Virtual Machine (JVM) is a set of computer software programs and data structures that use a virtual machine model for the execution of other computer programs and scripts

Java Virtual Machines operate on Java bytecode, which is normally (but not necessarily) generated from java source code; a JVM can also be used to implement programming languages other than Java For example,Ada source code can be compiled to Java bytecode, which may then be executed by a JVM

The JVM is a crucial component of the Java Platform. Because JVMs are available for many hardware and software platforms, Java can be both middleware and a platform in its own right — hence the trademark write once run anywhere

The JVM is distributed along with a set of standard class libraries that implement the Java API (Application Programming Interface). An application programming interface is what a computer system, library or application provides in order to allow data exchange between them

Execution environment Programs intended to run on a JVM must be compiled into a standardized portable binary format, which typically comes in the form of.class files

Like most virtual machines, the Java Virtual Machine has a stack-based architecture akin to a microcontroller/microprocessor The JVM, which is the instance of the JRE (Java Runtime Environment), comes into action when a Java program is executed

Support for dynamic languages Although the JVM was primarily aimed at running compiled Java programs, other languages can now run on top of it, such as: – Ruby, with JRubv – JavaScript, with Rhino – Python, with Jython – Groovy – Scala – PHP, with Quercus – Clojure

The JVM has currently no built-in support for Dynamically typed languages: the existing JVM instruction set is statically typed The JVM has a limited support for dynamically modifying existing classes and methods It currently only works in a debugging environment

Bytecode verifier A basic philosophy of Java is that it is inherently "safe" from the standpoint that no user program can "crash" the host machine or otherwise interfere inappropriately with other operations on the host machine

that it is possible to protect certain functions and data structures belonging to "trusted" code from access or corruption by "untrusted" code executing within the same JVM Several features of Java combine to provide this safety, including the class model, the garbage-collected heap, and the verifier

The JVM verifies all bytecode before it is executed. This verification consists primarily of three types of checks: – Branches are always to valid locations – Data is always initialized and references are always type-safe – Access to "private" or "package private" data and methods is rigidly controlled