JAVA Native Interface
|
|
- Dustin Bradley
- 6 years ago
- Views:
Transcription
1 CSC System Development with Java JAVA Native Interface Department of Statistics and Computer Science
2 Java Native Interface Is a programming framework JNI functions written in a language other than Java They could be C, C++, or even Assembly Native methods are compiled into a dynamic link library (.dll,.so, etc.) Operating System loads and links the library into the process that is running the Java Virtual Machine 2
3 JNI Overview 3
4 Why Native Interface? Some functionality are not provided by java Low-level drives/devices specific to OS Increase performance by implementing rigorous tasks in native language Java is slow in general and may not be suitable for some functions (e.g., image compression and decompression) Try to use existing legacy library and could not afford to rewrite it in java JNI can be used as a wrapper of these legacy codes Can slowly migrate legacy code to a newer platform Improve efficiency of integration TCP/IP sockets can be used, but there are overhead in data transmission 4
5 Java Native Interface contd. Advantages Use the existing library that was previously written in another language. Use of windows API functions Increasing the speed of execution Invoke API functions from server product that is developed in C or C++ from a java client. Disadvantages Write Once Run Anywhere is not possible Run time errors debugging is difficult in native code An applet can not call a native method Security risk is potential 5
6 How JNI works? Native functions are implemented in separate.c or.cpp files JVM invokes the function it passes a JNIEnv pointer, a jobject pointer, and any Java arguments declared by the Java method The env pointer is a structure that contains the interface to the JVM Function format JNIEXPORT void JNICALL Java_ClassName_MethodName (JNIEnv *env, jobject obj) /*Implement Native Method Here*/ 6
7 JNI Development Steps 1. Declare native methods in the java class 2. Compile the java class 3. Generate C header for the java class 4. Create C file (for DLL) 5. Compile and Create DLL file 6. Copy DLL to Java Path 7. RUN the JAVA Program 7
8 Declare native methods Example : HelloWorld.java Native Method class HelloWorld public native void displayhelloworld(); static System.loadLibrary("hello"); public static void main(string[] args) new HelloWorld().displayHelloWorld(); Call hello.dll file Invoke native Method 8
9 Generate JNI Header Compile HelloWorld.java javac HelloWorld.java Generate HelloWorld.h javah HelloWorld 9
10 Sample: HelloWorld.h #include jni.h /* Header for class HelloWorld */ #ifndef _Included_HelloWorld #define _Included_HelloWorld #ifdef cplusplus extern C #endif /* * Class: HelloWorld * Method: displayhelloworld * Signature: ()V */ JNIEXPORT void JNICALL Java_HelloWorld_displayHelloWorld(JNIEnv *env, jobject); #ifdef cplusplus #endif #endif The JVM reference The calling object 10
11 HelloWorld.C #include <jni.h> #include "HelloWorld.h" #include <stdio.h> JNIEXPORT void JNICALL Java_HelloWorld_displayHelloWorld(JNIEnv *env, jobject obj) printf("hello world!\n"); return; 11
12 Data types Java Type Native Type Size in bits boolean jboolean 8, unsigned byte jbyte 8 char jchar 16, unsigned short jshort 16 int jint 32 long jlong 64 float jfloat 32 double jdouble 64 void void n/a 12
13 JNI Data Mapping Example 01: class Prompt private native String getline(string prompt); JNIEXPORT jstring JNICALL Java_Prompt_getLine(JNIEnv *, jobject, jstring); Example 02: public native int jsum(int x, int y); JNIEXPORT jint JNICALL Java_JMaths_jsum(JNIEnv *env, jobject obj, jint x, jint y) return x + y; 13
14 Object Types 14
15 Create a DLL (mingw gcc) Type the following command (Command prompt) Gcc -Wall -D_JNI_IMPLEMENTATION_ -Wl,--kill-at -I HederLibariers -shared C_program -o output_file Example: gcc -Wall -D_JNI_IMPLEMENTATION_ -Wl,--kill-at -I C:/Program Files/Java/jdk1.6.0_02/include -I C:/Program Files/Java/jdk1.6.0_02/include/win32 -shared c:/budditha/helloword.c -o c:/budditha/hw.dll Input file Output file 15
16 Run the Program Command: java HelloWorld Result: Hello World! Possible exceptions: java.lang.unsatisfiedlinkerror: no hello in shared library path at java.lang.runtime.loadlibrary(runtime.java) at java.lang.system.loadlibrary(system.java) at java.lang.thread.init(thread.java) Copy hello.dll to: C:\Program Files\Java\jdk1.6.0_02\jre\bin\ 16
17 Example Create a.dll file named jm.dll Implement the following methods printmessage(): Print the message User define java native interface Jsum(int, int): Return the summation of the given two integer values Jmul(int, int): Return the multiplication of the given two integer values Create a java class named JMaths.java to implement the above Native methods Create a class named Calculator.java to run the program (use JMaths class) 17
18 Answer: JMaths.java class JMaths public native void printmessage(); public native int jsum(int x, int y); public native int jmul(int c, int g); public void calculate() System.out.println("JSUM " + jsum(2,4)); System.out.println("JMUL " + jmul(2,4)); static System.loadLibrary("jm"); Calculator.java public class Calculator public static void main(string[] args) JMaths j = new JMaths(); j.calculate(); 18
19 Generate a C header file Compile the JMaths.java Javac JMaths.java Create a header file Javah Jmaths /* DO NOT EDIT THIS FILE - it is machine generated */ #include <jni.h> /* Header for class JMaths */ #ifndef _Included_JMaths #define _Included_JMaths #ifdef cplusplus extern "C" #endif /* * Class: JMaths * Method: printmessage * Signature: ()V */ JNIEXPORT void JNICALL Java_JMaths_printMessage (JNIEnv *, jobject); /* * Class: JMaths * Method: jsum * Signature: (II)I */ JNIEXPORT jint JNICALL Java_JMaths_jsum (JNIEnv *, jobject, jint, jint); /* * Class: JMaths * Method: jmul * Signature: (II)I */ JNIEXPORT jint JNICALL Java_JMaths_jmul (JNIEnv *, jobject, jint, jint); #ifdef cplusplus #endif #endif 19
20 Answers JMaths.c #include <jni.h> #include <stdio.h> #include JMaths.h JNIEXPORT void JNICALL Java_JMaths_printMessage(JNIEnv *env, jobject obj) printf("java JNI Mathamatics!\n"); return; JNIEXPORT jint JNICALL Java_JMaths_jsum(JNIEnv *env, jobject obj, jint x, jint y) return x + y; JNIEXPORT jint JNICALL Java_JMaths_jmul(JNIEnv *env, jobject obj, jint x, jint y) return x * y; 20
21 Files Jmaths.c : Source files for the DLL Jmaths.java: Java class for native interface Jmaths.h: C Header file for the native interface Calculator.java: Calculator class Jm.dll: Created DLL file 21
22 Commands Javac Jmath.java Javah Jmaths Cd C:\Program Files\CodeBlocks\MinGW gcc -Wall -D_JNI_IMPLEMENTATION_ -Wl,--kill-at -I C:/Program Files/Java/jdk1.6.0_02/include -I C:/Program Files/Java/jdk1.6.0_02/include - shared c:/budditha/javamaths.c -o jm.dll Javac Calculator.java Java Calculator 22
23 Useful Tips for JNI developers Install Code::block for C programming Download: Install JDK Install Textpad for Java based programming Download: Use gcc compilers (Use MinGW gcc compiler on code::block) C:\Program Files\CodeBlocks\MinGW\bin 23
Java Native Interface. Diego Rodrigo Cabral Silva
Java Native Interface Diego Rodrigo Cabral Silva Overview The JNI allows Java code that runs within a Java Virtual Machine (VM) to operate with applications and libraries written in other languages, such
More informationInvoking Native Applications from Java
2012 Marty Hall Invoking Native Applications from Java Originals of Slides and Source Code for Examples: http://courses.coreservlets.com/course-materials/java.html Customized Java EE Training: http://courses.coreservlets.com/
More informationLecture 5 - NDK Integration (JNI)
Lecture 5 - NDK Integration (JNI) This work is licensed under the Creative Commons Attribution 4.0 International License. To view a copy of this license, visit http://creativecommons.org/licenses/by/4.0/
More informationCalling C Function from the Java Code Calling Java Method from C/C++ Code
Java Native Interface: JNI Calling C Function from the Java Code Calling Java Method from C/C++ Code Calling C Functions From Java Print Hello Native World HelloNativeTest (Java) HelloNative.c HelloNative.h
More information1 class HelloWorld 2 { 3 public native void displayhelloworld(); 4 static 5 { 6 System.loadLibrary("hello"); 7 }
JNI Java Native Interface C and C++. JNI and STL Alan Mycroft University of Cambridge (heavily based on previous years notes thanks to Alastair Beresford and Andrew Moore) Michaelmas Term 2012 20 Java
More informationC and C++ 8. JNI and STL. Alan Mycroft. University of Cambridge (heavily based on previous years notes thanks to Alastair Beresford and Andrew Moore)
C and C++ 8. JNI and STL Alan Mycroft University of Cambridge (heavily based on previous years notes thanks to Alastair Beresford and Andrew Moore) Michaelmas Term 2013 2014 1 / 41 JNI and STL This lecture
More informationJNI and STL. Justification
JNI and STL C and C++. JNI and STL Alan Mycroft University of Cambridge (heavily based on previous years notes thanks to Alastair Beresford and Andrew Moore) Michaelmas Term 2013 201 This lecture looks
More informationStudy on Programming by Combining Java with C++ Based on JNI
doi: 10.14355/spr.2016.05.003 Study on Programming by Combining Java with C++ Based on JNI Tan Qingquan 1, Luo Huachun* 2, Jiang Lianyan 3, Bo Tao 4, Liu Qun 5, Liu Bo 6 Earthquake Administration of Beijing
More informationSUB CODE:IT0407 SUB NAME:INTEGRATIVE PROGRAMMING & TECHNOLOGIES SEM : VII. N.J.Subashini Assistant Professor,(Sr. G) SRM University, Kattankulathur
SUB CODE:IT0407 SUB NAME:INTEGRATIVE PROGRAMMING & TECHNOLOGIES SEM : VII N.J.Subashini Assistant Professor,(Sr. G) SRM University, Kattankulathur 1 UNIT I 2 UNIT 1 LANGUAGE INTEROPERABILITY IN JAVA 9
More informationNDK Integration (JNI)
NDK Integration (JNI) Lecture 6 Operating Systems Practical 9 November 2016 This work is licensed under the Creative Commons Attribution 4.0 International License. To view a copy of this license, visit
More informationJava TM Native Methods. Rex Jaeschke
Java TM Native Methods Rex Jaeschke Java Native Methods 1999, 2007, 2009 Rex Jaeschke. All rights reserved. Edition: 2.0 (matches JDK1.6/Java 2) All rights reserved. No part of this publication may be
More informationThe Java Native Interface. Programmer s Guide and Specification
The Java Native Interface Programmer s Guide and Specification The Java Native Interface Programmer s Guide and Specification Sheng Liang ADDISON-WESLEY An imprint of Addison Wesley Longman, Inc. Reading,
More informationEMBEDDED SYSTEMS PROGRAMMING Android NDK
EMBEDDED SYSTEMS PROGRAMMING 2014-15 Android NDK WHAT IS THE NDK? The Android NDK is a set of cross-compilers, scripts and libraries that allows to embed native code into Android applications Native code
More informationPorting Guide - Moving Java applications to 64-bit systems. 64-bit Java - general considerations
Porting Guide - Moving Java applications to 64-bit systems IBM has produced versions of the Java TM Developer Kit and Java Runtime Environment that run in true 64-bit mode on 64-bit systems including IBM
More informationJava/JMDL communication with MDL applications
m with MDL applications By Stanislav Sumbera [Editor Note: The arrival of MicroStation V8 and its support for Microsoft Visual Basic for Applications opens an entirely new set of duallanguage m issues
More informationJava TM : A Quick Look.
Java TM : A Quick Look somchaip@chula.ac.th Programming Languages 1957 : Fortran 1959 : Cobol, Lisp 1964 : Basic 1971 : Pascal 1972 : C, Prolog 1983 : C++ 1995 : Java 2001 : C#, J# Sun s s Green Project
More informationGoals. Java - An Introduction. Java is Compiled and Interpreted. Architecture Neutral & Portable. Compiled Languages. Introduction to Java
Goals Understand the basics of Java. Introduction to Java Write simple Java Programs. 1 2 Java - An Introduction Java is Compiled and Interpreted Java - The programming language from Sun Microsystems Programmer
More informationLEVERAGING EXISTING PLASMA SIMULATION CODES. Anna Malinova, Vasil Yordanov, Jan van Dijk
136 LEVERAGING EXISTING PLASMA SIMULATION CODES Anna Malinova, Vasil Yordanov, Jan van Dijk Abstract: This paper describes the process of wrapping existing scientific codes in the domain of plasma physics
More informationHandwriting Recognition
Handwriting Recognition Yu-Hong Wang Senior Developer, GUI Maplesoft http://www.maplesoft.com/ TS-3690 Goal Learn how to apply handwriting recognition to your Java product 2 Agenda Application Implementation
More informationAn overview of Java, Data types and variables
An overview of Java, Data types and variables Lecture 2 from (UNIT IV) Prepared by Mrs. K.M. Sanghavi 1 2 Hello World // HelloWorld.java: Hello World program import java.lang.*; class HelloWorld { public
More informationCS 11 java track: lecture 1
CS 11 java track: lecture 1 Administrivia need a CS cluster account http://www.cs.caltech.edu/ cgi-bin/sysadmin/account_request.cgi need to know UNIX www.its.caltech.edu/its/facilities/labsclusters/ unix/unixtutorial.shtml
More informationAndroid NDK. Federico Menozzi & Srihari Pratapa
Android NDK Federico Menozzi & Srihari Pratapa Resources C++ CMake https://cmake.org/cmake-tutorial/ http://mathnathan.com/2010/07/getting-started-with-cmake/ NDK http://www.cplusplus.com/doc/tutorial/
More informationEMBEDDED SYSTEMS PROGRAMMING Android NDK
EMBEDDED SYSTEMS PROGRAMMING 2015-16 Android NDK WHAT IS THE NDK? The Android NDK is a set of cross-compilers, scripts and libraries that allows to embed native code into Android applications Native code
More informationProjektarbeit. Virtualisierung der NAG Bibliotheken
Projektarbeit Virtualisierung der NAG Bibliotheken Jianping Shen Sept. 2004 Betreuer: Prof. Dr. Paul Müller Dipl. Inform. Markus Hillenbrand Fachbereich Informatik AG Integrierte Kommunikationssysteme
More informationC - Basics, Bitwise Operator. Zhaoguo Wang
C - Basics, Bitwise Operator Zhaoguo Wang Java is the best language!!! NO! C is the best!!!! Languages C Java Python 1972 1995 2000 (2.0) Procedure Object oriented Procedure & object oriented Compiled
More informationPage 1. Agenda. Programming Languages. C Compilation Process
EE 472 Embedded Systems Dr. Shwetak Patel Assistant Professor Computer Science & Engineering Electrical Engineering Agenda Announcements C programming intro + pointers Shwetak N. Patel - EE 472 2 Programming
More informationC-Programming. CSC209: Software Tools and Systems Programming. Paul Vrbik. University of Toronto Mississauga
C-Programming CSC209: Software Tools and Systems Programming Paul Vrbik University of Toronto Mississauga https://mcs.utm.utoronto.ca/~209/ Adapted from Dan Zingaro s 2015 slides. Week 2.0 1 / 19 What
More informationInlining Java Native Calls at Runtime
Inlining Java Native Calls at Runtime (CASCON 2005 4 th Workshop on Compiler Driven Performance) Levon Stepanian, Angela Demke Brown Computer Systems Group Department of Computer Science, University of
More informationOutline. Lecture 1 C primer What we will cover. If-statements and blocks in Python and C. Operators in Python and C
Lecture 1 C primer What we will cover A crash course in the basics of C You should read the K&R C book for lots more details Various details will be exemplified later in the course Outline Overview comparison
More informationIntroduction to Programming Using Java (98-388)
Introduction to Programming Using Java (98-388) Understand Java fundamentals Describe the use of main in a Java application Signature of main, why it is static; how to consume an instance of your own class;
More informationTopic 6: A Quick Intro To C
Topic 6: A Quick Intro To C Assumption: All of you know Java. Much of C syntax is the same. Also: Many of you have used C or C++. Goal for this topic: you can write & run a simple C program basic functions
More informationCE221 Programming in C++ Part 1 Introduction
CE221 Programming in C++ Part 1 Introduction 06/10/2017 CE221 Part 1 1 Module Schedule There are two lectures (Monday 13.00-13.50 and Tuesday 11.00-11.50) each week in the autumn term, and a 2-hour lab
More informationTony Valderrama, SIPB IAP 2010
Today Java API java.util java.io More OOP Generics Enum.jar files JNI Q & A Announcements Course website: http://sipb.mit.edu/iap/java/ Email: sipb-iap-java@mit.edu package java.io Images from the Java
More informationJOURNAL OF OBJECT TECHNOLOGY
JOURNAL OF OBJECT TECHNOLOGY Online at www.jot.fm. Published by ETH Zurich, Chair of Software Engineering JOT, 2002 Vol. 1, no. 4, September-October 2002 Easing the Transition from C++ to Java (Part 2)
More informationLecture 1: Overview of Java
Lecture 1: Overview of Java What is java? Developed by Sun Microsystems (James Gosling) A general-purpose object-oriented language Based on C/C++ Designed for easy Web/Internet applications Widespread
More informationCS 61C: Great Ideas in Computer Architecture Introduction to C
CS 61C: Great Ideas in Computer Architecture Introduction to C Instructors: Vladimir Stojanovic & Nicholas Weaver http://inst.eecs.berkeley.edu/~cs61c/ 1 Agenda C vs. Java vs. Python Quick Start Introduction
More informationEMBEDDED SYSTEMS PROGRAMMING Android NDK
EMBEDDED SYSTEMS PROGRAMMING 2017-18 Android NDK WHAT IS THE NDK? The Android NDK is a set of cross-compilers, scripts and libraries that allows to embed native code into Android applications Native code
More informationHistory of Java. Java was originally developed by Sun Microsystems star:ng in This language was ini:ally called Oak Renamed Java in 1995
Java Introduc)on History of Java Java was originally developed by Sun Microsystems star:ng in 1991 James Gosling Patrick Naughton Chris Warth Ed Frank Mike Sheridan This language was ini:ally called Oak
More informationLecture 2 summary of Java SE section 1
Lecture 2 summary of Java SE section 1 presentation DAD Distributed Applications Development Cristian Toma D.I.C.E/D.E.I.C Department of Economic Informatics & Cybernetics www.dice.ase.ro Cristian Toma
More informationLecture 2. COMP1406/1006 (the Java course) Fall M. Jason Hinek Carleton University
Lecture 2 COMP1406/1006 (the Java course) Fall 2013 M. Jason Hinek Carleton University today s agenda a quick look back (last Thursday) assignment 0 is posted and is due this Friday at 2pm Java compiling
More informationCS 326 Operating Systems C Programming. Greg Benson Department of Computer Science University of San Francisco
CS 326 Operating Systems C Programming Greg Benson Department of Computer Science University of San Francisco Why C? Fast (good optimizing compilers) Not too high-level (Java, Python, Lisp) Not too low-level
More informationA Politically Correct Use for Native Methods Loading Database Tables
A Politically Correct Use for Native Methods Loading Database Tables James W. Cooper You probably know that you can write Java programs to connect to native code. I always assumed that this feature was
More informationGetting started with Java
Getting started with Java by Vlad Costel Ungureanu for Learn Stuff Programming Languages A programming language is a formal constructed language designed to communicate instructions to a machine, particularly
More informationMathematical computations with GPUs
Master Educational Program Information technology in applications Mathematical computations with GPUs Using GPUs for mathematical problems in Fortran, Java and C# Alexey A. Romanenko arom@ccfit.nsu.ru
More informationWriting a Client Application for Genesis II Contributors: Chris Sosa Last Modified: 06/05/2007
Writing a Client Application for Genesis II Contributors: Chris Sosa (sosa@virginia.edu) Last Modified: 06/05/2007 Introduction The purpose of this White Paper is to discuss the use of the University of
More informationAtelier Java - J1. Marwan Burelle. EPITA Première Année Cycle Ingénieur.
marwan.burelle@lse.epita.fr http://wiki-prog.kh405.net Plan 1 2 Plan 3 4 Plan 1 2 3 4 A Bit of History JAVA was created in 1991 by James Gosling of SUN. The first public implementation (v1.0) in 1995.
More informationJOURNAL OF OBJECT TECHNOLOGY
JOURNAL OF OBJECT TECHNOLOGY Online at www.jot.fm. Published by ETH Zurich, Chair of Software Engineering JOT, 2002 Vol. 1, No. 2, July-August 2002 Easing the Transition from C++ to Java (Part 1) Timothy
More informationThe Java programming environment. The Java programming environment. Java: A tiny intro. Java features
The Java programming environment Cleaned up version of C++: no header files, macros, pointers and references, unions, structures, operator overloading, virtual base classes, templates, etc. Object-orientation:
More informationPRINCIPLES OF OPERATING SYSTEMS
PRINCIPLES OF OPERATING SYSTEMS Tutorial-1&2: C Review CPSC 457, Spring 2015 May 20-21, 2015 Department of Computer Science, University of Calgary Connecting to your VM Open a terminal (in your linux machine)
More informationIntroduction to Java
Introduction to Java Module 1: Getting started, Java Basics 22/01/2010 Prepared by Chris Panayiotou for EPL 233 1 Lab Objectives o Objective: Learn how to write, compile and execute HelloWorld.java Learn
More informationTopic 6: A Quick Intro To C. Reading. "goto Considered Harmful" History
Topic 6: A Quick Intro To C Reading Assumption: All of you know basic Java. Much of C syntax is the same. Also: Some of you have used C or C++. Goal for this topic: you can write & run a simple C program
More informationCMPT 115. C tutorial for students who took 111 in Java. University of Saskatchewan. Mark G. Eramian, Ian McQuillan CMPT 115 1/32
CMPT 115 C tutorial for students who took 111 in Java Mark G. Eramian Ian McQuillan University of Saskatchewan Mark G. Eramian, Ian McQuillan CMPT 115 1/32 Part I Starting out Mark G. Eramian, Ian McQuillan
More informationLec 3. Compilers, Debugging, Hello World, and Variables
Lec 3 Compilers, Debugging, Hello World, and Variables Announcements First book reading due tonight at midnight Complete 80% of all activities to get 100% HW1 due Saturday at midnight Lab hours posted
More informationTwo s Complement Review. Two s Complement Review. Agenda. Agenda 6/21/2011
Two s Complement Review CS 61C: Great Ideas in Computer Architecture (Machine Structures) Introduction to C (Part I) Instructor: Michael Greenbaum http://inst.eecs.berkeley.edu/~cs61c/su11 Suppose we had
More informationProgramming Language Concepts: Lecture 2
Programming Language Concepts: Lecture 2 Madhavan Mukund Chennai Mathematical Institute madhavan@cmi.ac.in http://www.cmi.ac.in/~madhavan/courses/pl2011 PLC 2011, Lecture 2, 6 January 2011 Classes and
More informationProgramming. Syntax and Semantics
Programming For the next ten weeks you will learn basic programming principles There is much more to programming than knowing a programming language When programming you need to use a tool, in this case
More informationMPATE-GE 2618: C Programming for Music Technology. Unit 4.1
MPATE-GE 2618: C Programming for Music Technology Unit 4.1 Memory Memory in the computer can be thought of as a long string of consecutive bytes. Each byte has a corresponding address. When we declare
More informationApplication of Java in UG Based CAD Tool Development. Xuefeng Zhang GE Global Research Niskayuna, NY
Application of Java in UG Based CAD Tool Development Xuefeng Zhang GE Global Research Niskayuna, NY 1 Outline Overview of Java technology UG based CAD tool development using Java Ufunc and common API Development
More information1 You seek performance 3
Why? 2 1 You seek performance 3 1 You seek performance zero-overhead principle 4 2 You seek to interface directly with hardware 5 3 That s kinda it 6 C a nice way to avoid writing assembly language directly
More informationGetting Started with Java. Atul Prakash
Getting Started with Java Atul Prakash Running Programs C++, Fortran, Pascal Python, PHP, Ruby, Perl Java is compiled into device-independent code and then interpreted Source code (.java) is compiled into
More informationSection 2.2 Your First Program in Java: Printing a Line of Text
Chapter 2 Introduction to Java Applications Section 2.2 Your First Program in Java: Printing a Line of Text 2.2 Q1: End-of-line comments that should be ignored by the compiler are denoted using a. Two
More informationCS 261 Fall C Introduction. Variables, Memory Model, Pointers, and Debugging. Mike Lam, Professor
CS 261 Fall 2017 Mike Lam, Professor C Introduction Variables, Memory Model, Pointers, and Debugging The C Language Systems language originally developed for Unix Imperative, compiled language with static
More informationIntroduction to Visual Basic and Visual C++ Introduction to Java. JDK Editions. Overview. Lesson 13. Overview
Introduction to Visual Basic and Visual C++ Introduction to Java Lesson 13 Overview I154-1-A A @ Peter Lo 2010 1 I154-1-A A @ Peter Lo 2010 2 Overview JDK Editions Before you can write and run the simple
More informationCertified Core Java Developer VS-1036
VS-1036 1. LANGUAGE FUNDAMENTALS The Java language's programming paradigm is implementation and improvement of Object Oriented Programming (OOP) concepts. The Java language has its own rules, syntax, structure
More informationJava Bytecode (binary file)
Java is Compiled Unlike Python, which is an interpreted langauge, Java code is compiled. In Java, a compiler reads in a Java source file (the code that we write), and it translates that code into bytecode.
More informationChapter Two Bonus Lesson: JavaDoc
We ve already talked about adding simple comments to your source code. The JDK actually supports more meaningful comments as well. If you add specially-formatted comments, you can then use a tool called
More informationCompiling Techniques
Lecture 10: Introduction to 10 November 2015 Coursework: Block and Procedure Table of contents Introduction 1 Introduction Overview Java Virtual Machine Frames and Function Call 2 JVM Types and Mnemonics
More informationJava Programming. Manuel Oriol, March 22nd, 2007
Java Programming Manuel Oriol, March 22nd, 2007 Goal Teach Java to proficient programmers 2 Roadmap Java Basics Eclipse Java GUI Threads and synchronization Class loading and reflection Java Virtual Machines
More informationColor Calibration in ERS-210
Color Calibration in ERS- Carl Axelsson Jens Törner October Examensarbete, p, Institutionen för datavetenskap, Naturvetenskapliga fakulteten; Lunds universitet. Thesis for a diploma in computer science,
More informationEL2310 Scientific Programming
(yaseminb@kth.se) Overview Overview Roots of C Getting started with C Closer look at Hello World Programming Environment Discussion Basic Datatypes and printf Schedule Introduction to C - main part of
More informationLectures 5-6: Introduction to C
Lectures 5-6: Introduction to C Motivation: C is both a high and a low-level language Very useful for systems programming Faster than Java This intro assumes knowledge of Java Focus is on differences Most
More information1. Java is a... language. A. moderate typed B. strogly typed C. weakly typed D. none of these. Answer: B
1. Java is a... language. A. moderate typed B. strogly typed C. weakly typed D. none of these 2. How many primitive data types are there in Java? A. 5 B. 6 C. 7 D. 8 3. In Java byte, short, int and long
More informationFull file at
Chapter 2 Introduction to Java Applications Section 2.1 Introduction ( none ) Section 2.2 First Program in Java: Printing a Line of Text 2.2 Q1: End-of-line comments that should be ignored by the compiler
More informationIntroduction to Programming (Java) 2/12
Introduction to Programming (Java) 2/12 Michal Krátký Department of Computer Science Technical University of Ostrava Introduction to Programming (Java) 2008/2009 c 2006 2008 Michal Krátký Introduction
More informationBIT Java Programming. Sem 1 Session 2011/12. Chapter 2 JAVA. basic
BIT 3383 Java Programming Sem 1 Session 2011/12 Chapter 2 JAVA basic Objective: After this lesson, you should be able to: declare, initialize and use variables according to Java programming language guidelines
More informationIntroduction to Java https://tinyurl.com/y7bvpa9z
Introduction to Java https://tinyurl.com/y7bvpa9z Eric Newhall - Laurence Meyers Team 2849 Alumni Java Object-Oriented Compiled Garbage-Collected WORA - Write Once, Run Anywhere IDE Integrated Development
More informationLecture 4: Introduction to Java and your Development Environment
Lecture 4: Introduction to Java and your Development Environment COMP 250 Winter 2018 Carlos G. Oliver, Jérôme Waldispühl Slides adapted from Mathieu Blanchette 1 2 About me» 2nd Year PhD Student in Computer
More informationCS 220: Introduction to Parallel Computing. Beginning C. Lecture 2
CS 220: Introduction to Parallel Computing Beginning C Lecture 2 Today s Schedule More C Background Differences: C vs Java/Python The C Compiler HW0 8/25/17 CS 220: Parallel Computing 2 Today s Schedule
More informationFormatting Output & Enumerated Types & Wrapper Classes
Formatting Output & Enumerated Types & Wrapper Classes Quick review of last lecture September 8, 2006 ComS 207: Programming I (in Java) Iowa State University, FALL 2006 Instructor: Alexander Stoytchev
More informationIndex. Course Outline. Grading Policy. Lab Time Distribution. Important Instructions
Index Course Outline Grading Policy Lab Time Distribution Important Instructions 2 Course Outline Week Topics 1 - History and Evolution of Java - Overview of Java 2 - Datatypes - Variables 3 - Arrays 4
More informationEC 413 Computer Organization
EC 413 Computer Organization C/C++ Language Review Prof. Michel A. Kinsy Programming Languages There are many programming languages available: Pascal, C, C++, Java, Ada, Perl and Python All of these languages
More informationCS/B.TECH/CSE(New)/SEM-5/CS-504D/ OBJECT ORIENTED PROGRAMMING. Time Allotted : 3 Hours Full Marks : 70 GROUP A. (Multiple Choice Type Question)
CS/B.TECH/CSE(New)/SEM-5/CS-504D/2013-14 2013 OBJECT ORIENTED PROGRAMMING Time Allotted : 3 Hours Full Marks : 70 The figures in the margin indicate full marks. Candidates are required to give their answers
More information1. Download the JDK 6, from
1. Install the JDK 1. Download the JDK 6, from http://java.sun.com/javase/downloads/widget/jdk6.jsp. 2. Once the file is completed downloaded, execute it and accept the license agreement. 3. Select the
More informationLecture Notes CPSC 224 (Spring 2012) Today... Java basics. S. Bowers 1 of 8
Today... Java basics S. Bowers 1 of 8 Java main method (cont.) In Java, main looks like this: public class HelloWorld { public static void main(string[] args) { System.out.println("Hello World!"); Q: How
More informationINDEX. A SIMPLE JAVA PROGRAM Class Declaration The Main Line. The Line Contains Three Keywords The Output Line
A SIMPLE JAVA PROGRAM Class Declaration The Main Line INDEX The Line Contains Three Keywords The Output Line COMMENTS Single Line Comment Multiline Comment Documentation Comment TYPE CASTING Implicit Type
More information6.s096. Introduction to C and C++
6.s096 Introduction to C and C++ I know C and C++ Java Python C C++ Java Python C C++ Idioms & Best Practices Tom Lieber Kyle Murray Frank Li Damon Doucet Leonid Grinberg Evan Wang Chen Zhao web.mit.edu/6.s096/
More informationB2.52-R3: INTRODUCTION TO OBJECT-ORIENTED PROGRAMMING THROUGH JAVA
B2.52-R3: INTRODUCTION TO OBJECT-ORIENTED PROGRAMMING THROUGH JAVA NOTE: 1. There are TWO PARTS in this Module/Paper. PART ONE contains FOUR questions and PART TWO contains FIVE questions. 2. PART ONE
More informationLectures 5-6: Introduction to C
Lectures 5-6: Introduction to C Motivation: C is both a high and a low-level language Very useful for systems programming Faster than Java This intro assumes knowledge of Java Focus is on differences Most
More informationDesign and development of embedded systems for the Internet of Things (IoT) Fabio Angeletti Fabrizio Gattuso
Design and development of embedded systems for the Internet of Things (IoT) Fabio Angeletti Fabrizio Gattuso Why C? Test on 21 Android Devices with 32-bits and 64-bits processors and different versions
More informationSource level debugging. October 18, 2016
Source level debugging October 18, 2016 Source level debugging Source debugging is a nice tool for debugging execution problems; it can be particularly useful when working with crashed programs that leave
More informationCS240: Programming in C. Lecture 2: Overview
CS240: Programming in C Lecture 2: Overview 1 Programming Model How does C view the world? Stack Memory code Globals 2 Programming Model Execution mediated via a stack function calls and returns local
More information1 Shyam sir JAVA Notes
1 Shyam sir JAVA Notes 1. What is the most important feature of Java? Java is a platform independent language. 2. What do you mean by platform independence? Platform independence means that we can write
More informationCS 231 Data Structures and Algorithms, Fall 2016
CS 231 Data Structures and Algorithms, Fall 2016 Dr. Bruce A. Maxwell Department of Computer Science Colby College Course Description Focuses on the common structures used to store data and the standard
More informationMotivation was to facilitate development of systems software, especially OS development.
A History Lesson C Basics 1 Development of language by Dennis Ritchie at Bell Labs culminated in the C language in 1972. Motivation was to facilitate development of systems software, especially OS development.
More information13 th Windsor Regional Secondary School Computer Programming Competition
SCHOOL OF COMPUTER SCIENCE 13 th Windsor Regional Secondary School Computer Programming Competition Hosted by The School of Computer Science, University of Windsor WORKSHOP I [ Overview of the Java/Eclipse
More informationG52PGP. Lecture oo3 Java (A real object oriented language)
G52PGP Lecture oo3 Java (A real object oriented language) 1 Last lecture Associating functions with data into objects is an alternative way to decompose a program Can then consider each object on its own
More informationProgramming in C. What is C?... What is C?
C Programming in C UVic SEng 265 Developed by Brian Kernighan and Dennis Ritchie of Bell Labs Earlier, in 1969, Ritchie and Thompson developed the Unix operating system We will be focusing on a version
More informationProgramming in C UVic SEng 265
Programming in C UVic SEng 265 Daniel M. German Department of Computer Science University of Victoria 1 SEng 265 dmgerman@uvic.ca C Developed by Brian Kernighan and Dennis Ritchie of Bell Labs Earlier,
More informationReview -- an Exercise. Use the Elevator example as a context, develop a: Use case diagram Class diagram Sequence diagram Start Chart diagram
Review -- an Exercise Use the Elevator example as a context, develop a: Use case diagram Class diagram Sequence diagram Start Chart diagram Two software design problems DNAPredict(int type, String DNA_sequence)
More informationChapters 1-4 Summary. Syntax - Java or C? Syntax - Java or C?
Chapters 1-4 Summary These slides are brief summary of chapters 1-4 for students already familiar with programming in C or C++. Syntax - Java or C? int x[]={1,2,3,4,5,6,7,8,9,10; int i; int sum=0; float
More information