【回顾】java基本数据类型

java数据类型概述

跟php、javaScript等弱类型语言相比,java是一种强类型(strongly typed)编程语言,
体现在下面2点:

  • 变量必须先申明、后使用
  • 指定类型的变量只能接受与之匹配的值

 

java数据类型

 下面主要对基本数据类型做一个解释:

 

 整数类型

 1 字节(byte) = 8 位(bit),在计算机中,正数用原码表示,负数用补码表示,因此4种整数类型表数范如下(详细见《【转】负数在计算机中的表示 》):

 

note:

整数默认是int类型,如果要转为Long,需要加上L或者l。

 

浮点类型

同样的,浮点数表数范围如下:

 

note:

1.浮点数默认是double,如果要定义为float,需要加上F或者f。

2.浮点数有十进制和科学计数法2种表现形式。

 

字符类型

char型(字符型)数据在内存中占用2个字节。char型数据用来表示通常意义上的字符,每个字符占2个字节,Java字符采用16位的Unicode编码,它的前128字节编码与ASCII兼容字符的存储范围在\u0000~\uFFFF(65,535,即2的16次方-1),在定义字符型的数据时候要注意加' ',比如 '1'表示字符'1'而不是数值1。

        char c = '1';
        System.out.println(c);
        char d = '\u0031';
        System.out.println(d); //c、d输出的值是一样的

 

note:

1.char是用单引号,字符串用双引号。

2.这块要复习下askii码、unicode等编码相关知识。 参考文章

 

布尔型

数据值只有true或false,适用于逻辑计算。

note:

boolen本来只需要1个bit位就可以表示,但是目前占用的是1个字节(8个bit),这是因为大部分计算机分配内存的最小单元是1字节。

 

 

数据类型转换

java提供的7种数值类型直接可以相互转换。

 

自动类型转换

小转大,相当于把小瓶里的水倒入大瓶,不会有任何问题。

 

 

强制类型转换

大转小,转换的格式是:(targetType)value。
如果大瓶子里的水很多,将会引起溢出,从而造成数据丢失,因此这种转换也被称为“缩小转换(narrow conversion)”。

 

引用数据类型

基本数据类型在栈中直接分配内容;引用数据类型的数据在栈中,对象的引用在堆中。


JVM的内存空间:
 a. Heap 堆空间:分配对象 

 b. Stack 栈空间:临时变量 

 c.Code 代码区 :类的定义,静态资源 

Student stu = new Student(); //new 在内存的堆空间创建对象
stu.study(); //把对象的地址赋给stu引用变量

 

上例实现步骤:
 a.JVM加载Student.class 到Code区

 b.new Student()在堆空间分配空间并创建一个Student实例

  c.将此实例的地址赋值给引用stu, 栈空间。

 

自动装箱拆箱

在java数据类型的基础上,要理解装箱拆箱机制。

装箱:把基本类型用它们相应的引用类型包装起来,使其具有对象的性质。int包装成Integer、float包装成Float

拆箱:和装箱相反,将引用类型的对象简化成值类型的数据

Integer a = 100; //这是自动装箱  (编译器调用的是static Integer valueOf(int i))
int     b = new Integer(100); //这是自动拆箱

note:

这块详细可以参考《 Java装箱和拆箱的基本概念及使用
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值