一.八种基本数据类型
- 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循环,不关心第几次
将数组转换成字符串打印出来