Java数据类型(primitive)原始数据类型

时间:2021-06-08 16:26:18

1.小心别溢出来。

要确保变量能存下来所保存的值。

你无法用小杯子装大值。好吧,其实可以,但是会损失某些信息,也就是所说的溢位。当判断到所使用的容器不足以装载时,编译器会试着防止珍重情况发生。举例来说,你无法使用像下面这样的把int大小的东西装进byte的容器中:

int x = 24;

byte b = x;   //不行。

你可以用以下几种方式来给变量赋值:

1.在等号后面直接打出(x = 12,isGood = true)

2.指派其他变量的值(x = y)

3.上述两种方式的组合。(x = y + 43)。

下面粗体字部分是直接打出值的例子:

int size = 32; int 类型的32,名称为size

char initial = ‘j’; char类型的'j',名称为initial

int y  = x  + 456; 名称为y的int类型变量,其值为x与456相加运算的结果

 

避开关键字:(keyword)!

你已经知道变量需要名称和类型。

你已经知道什么是primitive主数据类型。

boolean  byte  char  double   float   int  long  short  

public private protected  abstract final native  static  strictfp

sybchronized  transient  volatile  if  else  do  while  switch  case  default  for  break  continue  assert

class extends  implements  import  instanceof   interface  new  package  super  this  catch  finally  try  throw  throws  

return void  const  goto  enum 这些是Java的保留字,如果你把它们用在名称上面,编译器会列出混乱的结果。

 

二、对象引用

控制Dog对象  你已经知道要如何声明primitive主数据类型并赋值给它。但非primitive主数据类型的变量又该如何处理呢?换句话说,对象要怎么处理呢?

1.引用变量不知道大小(根据Java虚拟机有关。);

2.引用变量都具有相同的大小,而不管它实际上所引用的对象大小。

3.不可以对引用变量进行运算。

 

数组犹如杯架

1.声明一个int数组变量。数组变量是数组对象的遥控器。

int[] nums;

2.创建大小为7的数组,并将它赋值给之前声明为int[] 的变量nums。

nums = new int[7];

3.赋予int数组的每一个元素一个int值。要记得在int数组中的每个元素皆为int类型的变量。

数组也是对象

Java的标准函数库包含了许多复杂的数据结构,比如map、tree、和set(见附录B),但如果需要快速、有序、有效率地排列元素时,数组是不错的选择。数组能够让你使用位置索引来快速、随机地存取其中的元素。

在上面的图中有一项要注意的:数组是个对象,不管里面放的是不是primitive主数据类型。

无论被声明来承载的是primitive主数据类型或对象引用,数组永远是对象。但你可以声明出可以装载primitive主数据类型值的数组。换句话说,数组对象可以有primitive主数据类型的元素,但数组本身绝对不会是primitive主数据类型。不管数组带有什么,它一定是对象!

1.Dog [] = pets;

2.pets = new  Dog[7];

3.pets[0] = new Dog();

 pets[1] =  new Dog();

pets[2] = new Dog();

 

Dog[] myDogs =new Dog[3];

myDogs[0] = new Dog();

myDogs[1] = new Dog();

myDogs[2] = new Dog();

myDogs[0].name = "Fido";

myDogs[0].bark();

此处的说明还未用到封装的概念,我们会在第4章中加以讨论。

 

class Dog{

String name;

public static void main(String[] args){

//创建Dog对象

Dog dog1 = new Dog();

dog1.bark();

dog1.name = "Bart";

 

//创建Dog数组

Dog[] myDogs = new Dog[3];

//关门放狗

 myDogs[0] = new Dog();

myDogs[1] = new Dog();

myDogs[2] = dog1;

//通过数组引用存取Dog

myDog[0].name = "Fred";

myDog[1].name = "Marge";

 

System.out.print(" last dog's name is ");

System.out.print(myDogs[2].name);

 

int x = 0;

while(x < myDogs.length){

myDog[x].bark();

x = x + 1;

}

}

public void bark(){

System.out.print(name  + " says Ruff! ");

}

}