一、数据类型
基本类型: 逻辑(布尔)类型 boolean 字符类型 char 整数类型 byte, short, int, long 浮点类型 float , double
引用类型 :对象引用类型 和数组引用类型
注意:String是类
对于long、float和double型直接数,可以分别加喉缀L或l、F或f,以及D或d
public class Student{
private int id; //学号
private String name; //姓名
private char gender; //性别
private String address; //家庭住址
private int phone; //联系电话
}
类的属性也称为成员变量,以上每个成员变量都属于某种数据类型
在java语言中,如果表达式中都是整数,那么表达式的返回值必定是int类型和long类型,如果返回值赋给byte类型的变量,就必须进行强制类型的转换。
byte x,y;
y = x + 8; //非法,x+2返回int类型
y = (byte)(x + 8); //合法 int类型表达式的值强制转换为byte类型
二、转义字符
转义字符 | 意义 | ASCII码值(十进制) |
\a | 响铃(BEL) | 007 |
\b | 退格(BS) ,将当前位置移到前一列 | 008 |
\f | 换页(FF),将当前位置移到下页开头 | 012 |
\n | 换行(LF) ,将当前位置移到下一行开头 | 010 |
\r | 回车(CR) ,将当前位置移到本行开头 | 013 |
\t | 水平制表(HT) (跳到下一个TAB位置) | 009 |
\v | 垂直制表(VT) | 011 |
\\ | 代表一个反斜线字符''\' | 092 |
\' | 代表一个单引号(撇号)字符 | 039 |
\" | 代表一个双引号字符 | 034 |
\0 | 空字符(NULL) | 000 |
\ddd | 1到3位八进制数所代表的任意字符 | 三位八进制 |
\xhh | 1到2位十六进制所代表的任意字符 | 二位十六进制 |
三、基本类型和引用类型的区别
1)、基本类型代表简单的数据类型,如整数,字符
引用类型所引用的对象能表示任意一种复杂的数据结构。(复杂的数据类型还有操纵数据类型的行为)
public class Student{
String name;
int age;
char gender;
Student monther; //母亲
public Student(){}
public Student(String name){}
public static void main(String args[])
{
Student mary = new Student();
mary.name = "Mary";
mary.monther = null; //Mary的名字未知
Student tom = new Student();
tom.name = "Tom";
tom.monther = mary; //Tom的母亲是Mary
System.out.println(tom.monther.name); //打印: Mary
}
}
以上程序代码创建了两个Student对象:Tom和Mary。
引用变量tom和mary分别引用两个Student对象。通过“.”运算符就能访问引用变量所引用的对象的属性和方法。
tom.monther.name表示先定位到tom变量所引用的Student对象的monther属性,由于monther属性是Student引用类型变量,因此再访问monther变量所引用的Student对象的name属性。
2)、java虚拟机处理引用类型变量和基本类型变量的方法是不一样的:
对于基本类型的变量Java虚拟机会为其分配数据类型实际占用的内存大小。
引用类型变量,仅仅是一个指向内存中某个对象的指针。
public class Counter{
int count = 0;
}
Counter counter = new Counter();
定义了一个counter引用变量,它引用一个Counter对象
下图是Java虚拟机为count变量和counter变量分配的内存
count变量为int基本类型,它占用4个字节的内存空间,取值为0.
counter引用变量的取值为Counter对象的内存地址。counter引用变量本身也占用少数的内存,到底占用多少内存,取决于Java虚拟机的实现,这对Java程序是透明的,即Java程序无从知晓它占用多少内存空间。