Java学习(一)之数据类型

  • 数据类型
    • 基本数据类型 8个
      • 4整型 byte,short,int, long
        (内存空间大小不一致,表示范围不一样)
        byte: 字节型------>8个bit 1byte= 0 0000000 256种组合
        用第一个bit记录符号,0整数,1负数,表示范围为 − 2 7 -2^7 27~ 2 7 − 1 2^7-1 271 即 -128~127
        以上的其他整数类型 依次乘2
        short 2字节 = 16bit 65526种 -32768~32767
        int 4个字节 = 32bit
        long 8个字节 = 65bit
      • 2浮点 float,double
        float 32bit 4字节
        符号 整数部分(9) 小数部分
        0 000000000 0000000000000000000000
        double 64bit 8字节
        符号位(1)整数部分(19)小数部分
      • 1字符型 char
        char 16bit 2字节 中文使用Unicode编码
        因为字符中数字和整数的数字冲突,为了以示区分,字符型前后用单引号括起来
        为什么英文和数字是一个字节,中文是两个字节?
        计算机存储时使用ASCII码存储信息,a-----00000000-----97
        因为英文和数字的种类较少,可以使用8个bit完全表示,
        而中文种类太多,所以至少需要两个字符来表示。
      • 1布尔型 boolean 1bit true false
        在Java种布尔类型和1,0 不能互相转换

==========================================================================================

float num = 3.4;
编译会显示错误: Type mismatch: cannot convert from double to float
因为1,3.4都是常量值,存储在常量缓冲区中,存储形式是以二进制形式存储的,
1 ------->32bit (int)
3.4 ----->64bit (为了保证精确程度更高,相当于double)
所以定义float变量时应该定义为 float num=3.4F;(F大小写均可,一般大写)
但是 byte c = 1; 可以编译,为什么?
1 -----> 32bit
00000000 00000000 00000000 00000001
a -----> 8bit
= 赋值操作时进行了自动转化,将32bit的1 转化成8bit的1,前提是必须在byte的取值范围内,如果超出则不可以自动转化。
long b = 214783648L;
int类型的取值范围为(-2147483648~-2147483647)
如果创建的常量值超过以上范围,程序编译检测的时候会认为数字太大,如果需要定义一个长整型数字,必须在后面加上L告知
字符字符串
charString
基本引用
‘a’“a” “abc” “” null

==========================================================================================
以下后续补充
* 引用数据类型
+ 数组[]
+ 类class(抽象类 abstract class)
+ 接口interface
+ 枚举enum
+ 注解@interface

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值