01 数据类型及拓展

一、数据类型

强类型语言

          要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用

   例如:JAVA、C++等

   一旦一个变量被指定了某个数据类型,如果不经过强制转换,那么它就永远是这个数据类型。

   优缺点:安全性高 <——> 速度慢

∎弱类型语言

          要求变量的使用要严格符合规定,它与强类型定义语言相反, 一个变量可以赋不同数据类型的值。

        例如:JavaScript( J S )、Visual Basic(VB) 等

         在J S中,可以将字符串‘12’和整数3进行连接得到字符串‘123’,然后可以把它看成整数123,而不需要显示转换。但其实它们的类型没有改变,只是自动在这些变量前加了一个 clong()或(int)()这样的转换函数。这归功于JS的编译器的智能化

∎Java的数据类型分为两大类

       ∎基本数据(primitive type)

       ∎引用类型(reference type)

八大基本数据类型

1.1 什么是字节

    位(bit):是计算机 内部数据 储存的最小单位,11001100是一个八位二进制。

    字节(byte):是计算机中 数据处理 的基本单位,习惯上用大写 B 表示。

    1 B (byte) = 8 bit (位)

     字符 : 指计算机中使用的字母、数字、字和符号

  关系:

  •           1 bit 表示 1 位
  •           1 byte 表示一个字节 1 B = 8 b
  •           1024 B = 1 KB
  •           1024 KB = 1 M
  •           1024 M = 1 G

2.1 数据类型拓展

2.1.1整数拓展: 常见进制
  •   二进制由0和1组成,逢2进1,以 0b / 0B开头
  •   八进制由0~7组成,逢8进1,以0开头
  •   十进制由0~9组成,逢10进1,没有前缀默认为十进制
  •   十六进制由0 ~ 9和a ~ f(不分大小写)组成,以 0x / 0X 开头
int i = 10;                              //  10
​
int a = 010; //八进制0                         8             
​
int c = 0x10; //个六进制0x   (0~9  A~F)       16

2.1.2 浮点数拓展:精度问题

    单精度float:有限 离散 舍入误差 大约 接近但不等于

    双精度double:

float f = 0.1f; //0.1
double d = 1.0/10;  //0.1
System.out.println(f==d); //false
​
float d1 = 23131312312312313f;
float d2 = d1 + 1;
System.out.println(d1==d2);//true

    BigDecimal 类 进行浮点运算   最好完全避免使用浮点数进行比较

2.1.3 字符拓展:字符本质
char c1 ='a';
char c2 ='中';
System.out.println(c1);           //      a
System.out.println((int)c1); //制换行     97
System.out.println(c2);         //       中
System,out.println((int)c2); //制换行     20013
//所有的字符本质还是数字

    Unicode编码 可以表示所有字符,编码范围很大 ;U0000 — UFFFF

    97 = a 65 = A;

2.1.4 布尔值拓展
//代码要精简易读
boolean flag = true;
​
if ( flag = true ){ }  //新手
if ( flag ){ }         //老手

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值