zoukankan      html  css  js  c++  java
  • C Programming vs. Java Programming

    ThingCJava
    type of language function oriented object oriented
    basic programming unit function class = ADT
    portability of source code possible with discipline yes
    portability of compiled code no, recompile for each architecture yes, bytecode is "write once, run anywhere"
    security limited built-in to language
    compilation gcc hello.c creates machine language code javac Hello.java creates Java virtual machine language bytecode
    linking in the Math library gcc -lm calculate.c no special flags needed
    joint compilation gcc main.c helper1.c helper2.c javac Main.java - any dependent files are automatically re-compiled if needed
    execution a.out loads and executes program java Hello interprets byte code
    hello, world #include<stdio.h>
    int main(void) {
       printf("Hello ");
       return 0;
    }
    public class HelloWorld {
       public static void main(String[] args) { 
           System.out.println("Hello");
       }
    }
    integer types int usually 32 bit 2's complement;
    long usually 32 bit 2's complement
    int is 32 bit 2's complement;
    long is 64 bit 2's complement
    floating point types float usually 32 bit;
    double usually 64 bit
    float is 32 bit IEEE 754 binary floating point;
    double is 64 bit IEEE 754
    boolean type use int: 0 for false, nonzero for true boolean is its own type - stores value true or false
    character type char is usually 8 bit ASCII char is 16 bit UNICODE
    for loops for (i = 0; i < N; i++) for (int i = 0; i < N; i++)
    array declarations int *a = malloc(N * sizeof(*a)); int[] a = new int[N];
    array size arrays don't know their own size a.length
    strings ''-terminated character array built-in immutable String data type
    accessing a library #include <stdio.h> import java.io.File;
    accessing a library function #include "math.h"
    x = sqrt(2.2);
     
    all function and variables names are global
    x = Math.sqrt(2.2); 
    functions have different namespaces
    printing to standard output printf("sum = %d", x); System.out.println("sum = " + x);
    formatted printing printf("avg = %3.2f", avg); System.out.printf("avg = %3.2f", avg)
    reading from stdin scanf("%d", &x); Java library support, but easier to use our library
    int x = StdIn.readInt();
    memory address pointer reference
    manipulating pointers *, &, + no direct manipulation permitted
    functions int max(int a, int b) public static int max(int a, int b)
    pass-by-value primitive data types, structs, and pointers are passed by value; array decays to pointer all primitive data types and references (which includes arrays), are passed by value
    defining a data structure struct class - key difference is language support for defining methods to manipulate data
    accessing a data structure a.numerator for elements a.numerator for instance variables,
    c = a.plus(b) for methods
    pointer chasing x->left->right x.left.right
    allocating memory malloc new
    de-allocating memory free automatic garbage collection
    memory allocation of data structures and arrays heap, stack, data, or bss heap
    buffer overflow segmentation fault, core dump, unpredicatable program checked run-time error exception
    declaring constants const and #define final
    variable auto-initialization not guaranteed instance variables (and array elements) initialized to 0null, or false, compile-time error to access uninitialized variables
    data hiding opaque pointers and static private
    interface method non-static function public method
    data type for generic item void * Object
    casting anything goes checked exception at run-time or compile-time
    demotions automatic, but might lose precision must explicitly cast, e.g., to convert from long to int
    polymorphism union inheritence
    overloading no yes for methods, no for operators
    graphics use external libraries Java library support, use our standard drawing library
    null NULL null
    enumeration enum typesafe enum
    preprocessor yes no
    variable declaration at beginning of a block before you use it
    variable naming conventions sum_of_squares sumOfSquares
    commenting /* */ /* */ or //
    file naming conventions stack.cstack.h Stack.java - file name matches name of class
    callbacks pointers to global functions use interfaces for commmand dispatching
    variable number of arguments varargs String ...
    assertions assert assert
    exit and return value to OS exit(1) System.exit(1)
  • 相关阅读:
    赋值问题
    构造方法的作用
    this的使用
    三目运算符和形参的使用
    构造方法作用:给所有对象进行相同的初始化操作
    成员变量和局部变量
    相关开发的书籍名汇集
    html ---- web sql 例子
    让input表单输入框不记录输入过信息的方法
    css实现两端对齐的3种方法
  • 原文地址:https://www.cnblogs.com/kungfupanda/p/7116198.html
Copyright © 2011-2022 走看看