Java基础(数据类型)

本文详细介绍了Java中的数据类型,包括基本数据类型如整型、浮点型、字符型,以及引用数据类型如类、接口和数组。讨论了类型转换规则和数据计算原理,还涉及了精度问题及常见面试题解答,如浮点数比较和防止溢出的技巧。
摘要由CSDN通过智能技术生成

数据类型

数据类型分为 基本数据类型 和 引用数据类型

基本数据类型

整型         byte(字节整型)  1字节 

                short(短整型)     2字节

                int(整型)             4字节

                long(长整型)       8字节

浮点型      float(单精度浮点型)       4字节

                double(双精度浮点型)    8字节

字符型     char     采用unicode编码   2字节

布尔型     boolean   boolean数组中每一个boolean数据元素是1字节

基本数据类型介绍

byte(字节整型) 1字节 第一位表示符号位(0 正 1 负) 剩下七位表示数值

  2^7(128个数) 正数 表示范围 0--127

                        负数 表示范围 -128 -- -1

short 短整型 (2字节)  (-2^15----2^15-1)

int 整型 (4字节)  (-2^31----2^31-1) (10位数) (存不了手机号11位)

long (长整型) (8字节) (-2^63----2^63-1) long类型定义的数据最后加 " l"(L)

Byte

byte 第一位代表符号位 七位代表数值位

Float

float第一位代表符号位( 0正1负)       后8位代表阶位 剩下23位代表数值 1+8+23=32

       2^(阶位-127) *数值位 127:2^8/2

Double

double 第一位代表符号位( 0正1负) 后11位代表阶位 剩下52位代表数值位1+11+52=64

            2^(阶位-1024) *数值位 1024:2^11/2

char的字节分类

ASCli(1字节) 256

Unicode(2字节) 2^16 具体实现 UTF-8 (0-2^16-1)

java中的char是2字节 采用Unicode编码

char赋值

1.直接赋值

char k = 'f'

2.赋值字符对应的数字

char a =20013

int kk ='中'
system.out.println(kk) //这个打印出来和a一样

3.赋值字符对应的数字的十六进制的值

char p = '\u4ewd' \u是格式  后面是十六进制代表的数

引用数据类型

引用数据类型分为 类  接口  数组        等等

其中字符串属于引用数据类型

字节 1Byte = 8 bit 计算机存的都是比特流 磁盘上的磁颗粒

8个比特流 是1 个字节

32位电脑 cpu让内存从磁盘中读取32位数据

64位电脑 cpu让内存从磁盘中读取64位数据

类型转换

自动类型转换 小类型-->大类型

强制类型转换 大类型-->小类型 转换语法: (转换类型)变量

long num1 = 123123;
int num2 = (int) num1;

等号左边是句柄 和变量

数据计算

原码 反码 补码都是比特流

正数的原码 反码 补码都是一样

负数的反码 是原码的符号位不变 其他位取反

           补码 是反码+1

反码是用来解决计算机 计算 减法问题

补码是用来解决反码 计算 差一 和 正负0 的问题

经典面试题

byte (127+1)为啥是 -128

byte存不下128 127+1 是-0 在补码中-0 代表的是-128 用反码计算会浪费一个编码的使用 127+1=10000000 而10000000在byte中对应得就是-128

int 和float 谁的精度更高

int高 float只能散列的呈现数值,不能准确的表述,会出现精度丢失 所以不如int

java中提高精度的方法

浮点型的比较最好用 差值 比较

浮点型默认是double

报错是因为3.0默认的是double 而float类型比double小 所以要强转

修改:

一: float g = (float)3.0

二: float g = 3.0f

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值