java基础之数据类型(三)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/cheng__lu/article/details/86569961

一、数据类型

基本类型: 逻辑(布尔)类型   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程序无从知晓它占用多少内存空间。

猜你喜欢

转载自blog.csdn.net/cheng__lu/article/details/86569961