一.八种基本数据类型

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循环,不关心第几次

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