Java和C的区别

一.八种基本数据类型

  • char类型默认初始化的值是\u0000
  • 这个unicode字符代表的就是空格
  • 本地采用的是ASCII编码,char是unicode,所以打印乱码

二.引用类型

  • 除了八种基本类型(原始类型,内置类型)外,其它的类型都是引用类型。

  • 在Java里面只有基本类型和按照下面这种定义方式的String是按值传递,其它的都是按引用传递。就是直接使用双引号定义的字符串方式:String str = "Java快车";

  • 引用类型是一个对象类型,它的值是指向内存空间的引用,就是地址,所指向的内存中保存中变量所表示的一个值或者一组值。

  • 对象引用实例变量的缺省值(默认值)为 null,而原始类型实例变量的缺省值与它们的类型有关。

  • 同时为了面向对象操作的一致性。这些基本类型都有相应的封装类型:Integer、Short、Long、Byte、Float、Double、Character等。

代码例子:

class Test {
   public static void main(String[] args){
        int x = 7;
        int y = x;
        String s = "Hello";
        String t = s;
   }
}


1. 基本类型int,y = x,是将 x 的值复制到 y ,x 和 y 是两个独立的变量,不会相互影响。
2. 引用类型String,t = s,只有一个String对象存在,就是"Hello",t 和 s都指向这个String,可以相互影响。

三.Java和C在某些方面的区别

1.打印方式

//数据后面必须明确指定
float version = 9.0f;
long size = 1234L;

//输出用 + 连接不同的部分
System.out.print("Android "+version+" size is "+size+".");
System.out.println("Android "+version+" size is "+size+".");
  • 有些基本类型后面必须明确类型

  • print和println的区别是后者自动换行,两者输出都用 + 连接

2.输入方式

//输入
//创建一个Scanner扫描仪
//终端输入 文件 字符串
Scanner sc = new Scanner(System.in);

//接受一个整数
int num = sc.nextInt();
System.out.println("输入的数字是:"+num);

//next各种,特殊的boolean
boolean b = sc.nextBoolean();
System.out.println("输入的内容:"+b);

//hasNext() 判断是否还有数据
while (sc.hasNext()){
    int newNum = sc.nextInt();
    System.out.println("输入的数字是:"+newNum);
}
  • 输入数据需要调用Scanner类的对象,它有多个输入数据的方法

  • 如果想要输入多个数据利用hasNext()判断是否还有数据

3.产生随机数

Random r = new Random();
for (int i = 0; i < 100; i++) {
    //0到9
    int num = r.nextInt(10);
    System.out.println(num);
}
  • 产生随机数需要调用Random类的对象的nextInt()方法

  • 产生的随机数范围:向nextInt()方法传入的参数取余结果

四.与C中不同的布尔值,字符串,数组

1. 布尔值
boolean类型,有true和false两种类型。

2. 字符串
Java封装了一个String类型,对象类型,用来表示字符串。

String name = "jack";

3. 数组
创建数组的时候一定要明确数组的大小

数组类型[] 数组名 = new 数组类型[数据个数];

int[] score = {1,2,3};
int[] score = new int[3];
String[] name = new String[3];

打印数组的三种方式

public static void main(String[] args){

    Random r = new Random();
    //尽量不要扩大变量的作用域
    int[] count = new int[10];
    for (int i = 0; i < 10; i++) {
        count[i] = r.nextInt(10);
    }

    //数组第一种方式输出
    for (int i = 0; i < 10; i++) {
        System.out.print(count[i]+" ");
    }

    System.out.println("");

    //数组第二种方式输出
    for (int temp : count) {
        System.out.print(count[temp]+" ");
    }

    System.out.println("");

    //数组第三种输出方式
    System.out.println(Arrays.toString(count));
}
  • 正常for循环方式

  • foreach循环,不关心第几次

  • 将数组转换成字符串打印出来

你可能感兴趣的:(Java和C的区别)