A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

DottedL

初级黑马

  • 黑马币:26

  • 帖子:10

  • 精华:0

© DottedL 初级黑马   /  2018-8-29 19:14  /  558 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

     java语言是一种强类型语言,每当定义一个变量时的同时,需要为其声明一种类型.


     数据类型大方向可以分为两类:1 基本数据类型,2 引用数据类型.
     基本数据类型(primitive date type):
     包括4种整形:byte,short,int,long;2种浮点型:float,double;1种字符类型char用于表示Unicode编码字符单元,以及1种boolean类型.当使用一个简单的,小的变量时,java采用了C,C++相同的方法,不通过new来创建变量,而是创建一个不是引用的"自动"变量,并且这个变量能够直接存储相关的"值",存储在栈(stack)中,更加高效便捷的使用.java定义的基本数据类型占的存储空间是不变的,这使得java程序比其他语言编写的程序更具有可移植性.在javaSE5中,基本数据类型和包装器类型可以实现自动装箱和自动拆箱,而进行自由转换.
     引用数据类型(Reference data type):
     包括:类(class),接口(interface),数组(array).这种类型的变量不包含类型的对象(实例),只是该对象(实例)的引用.对象本身存储在堆(heap)中.这三种数据类型,类似于C/C++中的指针.引用数据类型在声明时,变量不会分配内存.


     数据类型转化:
     ①基本数据类型转化原则:(类型转化发生在赋值,算术运算,方法调用这三种情况下)
     a) 赋值和方法调用: 从表达范围小的类型到范围大的类型进行自动转换; 从大范围的数据类型到小范围的数据类型需要强制类型转化. 其中布尔类型不能和其他类型之间进行转化.
     b)算术运算: 从小范围的数据类型转换为大范围的数据类型,之后再参与运算,得到的结果时大范围的数据类型,比如:byte,short.char在运算过程中会自动转换成int;编译器会对代码进行一定优化,当= 右边全部是时常量时,编译时会先计算右边结果再进行赋值,并且判断其结果是否再byte,short,char的范围之内,在其范围之内,不会报错,而是自动的补上(byte)(short)(char).因此不会因为高位类型转地位类型而报错.
     ②引用数据类型转化原则:
     a)JavaSE5中基本类型和对应的包装类可以自动转换,即自动装箱和自动拆箱.
     b)引用数据类型之间本不允许进行类型转换.如果需要将一种类型转换成另一种类型,必须通过一下方法:1 子类直接转换成父类或者接口类型(向上转型); 2 父类转换成子类通过强制类型转换. 如果是没有关系的类之间进行转化会抛出ClassCastException运行异常.
         

   
   


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马