1 / 24

Differences between Java and C

Differences between Java and C. CS-2303, System Programming Concepts (Slides include materials from The C Programming Language , 2 nd edition, by Kernighan and Ritchie and from C: How to Program , 5 th and 6 th editions, by Deitel and Deitel). Java and C. Java is derived from C

magar
Download Presentation

Differences between Java and C

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Differences between Java and C CS-2303, System Programming Concepts (Slides include materials from The C Programming Language, 2nd edition, by Kernighan and Ritchie and from C: How to Program, 5th and 6th editions, by Deitel and Deitel) Differences between Java and C

  2. Java and C • Java is derived from C • Many of its syntactic characteristics are similar to C • However, there are some huge differences Differences between Java and C

  3. Expressions • Arithmetic operators are the same:– +, –, *, /, %, ++, –– • Numerical type conversion is mostly the same • Java spells out divide by zero, NaN (not a number, etc.) • C & C++ are machine dependent • Check the textbooks for details Differences between Java and C

  4. Very important! Relational Operators • Relational operators work the same way but return different results:– >, >=, <, <=, ==, != • In Java, they return values FALSE and TRUE • In C/C++, they return values 0 and 1 • In C/C++, • a value of zero means false • any value that is not zero means true • E.g., 1, 5, -1000000, 3.14159, 6.626068 × 10-34 Differences between Java and C

  5. Conditional and Bitwise Operators • Conditional execution operators are same in Java and C/C++:– ||, &&, ? followed by : • Bitwise operators are same in Java and C/C++:– |, &, ^ for bit-by-bit operations with a word • Shift operators differ a little bit << (left shift)is the same >> (right shift)is machine dependent in C/C++ • I.e., whether to fill from left with zeros or sign bits Differences between Java and C

  6. Assignment and Unary Operators • Assignment operators work the same:– =, +=, -=, *=, /=, &=, |=, ^= • The following unary operators are available C/C++ but not in Java ~ invert the bits of a word * pointer dereference & pointer creation (type) cast (i.e., forceable type conversion) sizeof # of bytes in operand or data type -> pointer dereference with field selection Differences between Java and C

  7. Summary about Expressions and Operators • Pretty much the same in C/C++ and Java • Be sure to check details in textbook • Be sure to check operator precedence • Table 2-1 in K&R • Distributed throughout text in D&D Differences between Java and C

  8. Statements • Statements in C/C++:– • Labeled statement • Expression statement • Compound statement • Selection statement • Iteration statement • Jump statement Differences between Java and C

  9. E.g., cases of a switchstatement Similar to Java Statements • Statements in C/C++:– • Labeled statement • Expression statement • Compound statement • Selection statement • Iteration statement • Jump statement Differences between Java and C

  10. Any expression followed by ';' Much like to Java Statements • Statements in C/C++:– • Labeled statement • Expression statement • Compound statement • Selection statement • Iteration statement • Jump statement Differences between Java and C

  11. Sequence of statementsenclosed in "{}" Called a “block” in Java Statements • Statements in C/C++:– • Labeled statement • Expression statement • Compound statement • Selection statement • Iteration statement • Jump statement Differences between Java and C

  12. switch (expr) if (expr)statement if (expr) statementelse statement Same as in Java Statements • Statements in C/C++:– • Labeled statement • Expression statement • Compound statement • Selection statement • Iteration statement • Jump statement Differences between Java and C

  13. while (expr) statement do statement while (expr); for (exp1; exp2, exp3) statement Very similar to Java Statements • Statements in C/C++:– • Labeled statement • Expression statement • Compound statement • Selection statement • Iteration statement • Jump statement Differences between Java and C

  14. goto Not present in Java Not allowed in this course break; continue; return expr Very similar to Java Statements • Statements in C/C++:– • Labeled statement • Expression statement • Compound statement • Selection statement • Iteration statement • Jump statement Differences between Java and C

  15. Summary about Statements • Pretty much the same in C/C++ and Java • Be sure to check details in textbooks Differences between Java and C

  16. Formatted Input & Output • Very different between C and Java • Very different between C and C++ • Handled by library functions in C • printf() • scanf() • getc() • putc() • Many others! Differences between Java and C

  17. printf() – Print formatted data printf("string containing '%' specifiers",expr1, expr2, expr3, …); • Copy the string, character-by-character, to the output. • When the ith'%' is encountered, treat it as a conversion specifier for converting the value of expri • Copy the converted value to the output per instructions encoded in the conversion specifier • Return number of characters printed Differences between Java and C

  18. printf() conversion specifiers • See K&R, p 154 & 244 or D&D Chapter 9 • %d or %i • Treat expression as a decimal number (with sign) • %u • Treat expression as unsigned decimal number • %f • Treat expression as double precision floating point number; print without exponent • %e or %E • Treat expression as double precision floating point number; print with exponent (base 10) — scientific notation • %c • Treat value of expression as the code for a single character • %s • Treat expression as a pointer to a string • … Later in this course Differences between Java and C

  19. printf() conversion specifiers (continued) • Conversion specifiers may optionally contain • Right or left alignment in the field • Minimum field width (padded on right or left) • Precision – i.e., • Maximum length of string • Number of decimal places of floating point value • Examples %6d – print signed decimal number in 6-char field %8.4f – print floating point number with four places after decimal point, field width of 8 characters Differences between Java and C

  20. scanf() – Scan formatted data scanf("string containing '%' specifiers",&var1, &var2, &var3, …); • Scan the input, matching the string character by character. • When the ith'%' is encountered, treat as a conversion specifier for converting next sequence of characters and storing result in vari • Copy the converted value to the output per instructions encoded in the conversion specifier • Stop if input does not match string or conversion not successful • Return number of successful conversions. Differences between Java and C

  21. scanf() – Typical Usage int j; double x; scanf("%d%f", &j, &x); • Scan the input, skipping blanks and tabs • Try to match a signed integer; if successful, store result in j • Continue scanning, skipping blanks and tabs • Try to match a floating point number. If successful, store in x • Return number of items stored. Differences between Java and C

  22. scanf() Details • K&R Table B-2 (p. 246), D&D Chapter 9 printf() and scanf() are both needed for Lab #1Programming Assignment #1 Differences between Java and C

  23. Summary • Differences and similarities between Java and C • Expressions • Statements • There are lots of other differences • Will be covered during the course Differences between Java and C

  24. Questions? Differences between Java and C

More Related