Java语言的编程基础_数据类型
数据类型
数据类型的分类
•在Java语言中数据类型主要分为两大类:
•(1)基本数据类型(记住)
byte、short、int、long、float、double、boolean、char
•(2)引用数据类型(了解)
数组、类、接口、枚举、标注
常用的进制
•在日常生活中采用十进制进行数据的描述,逢十进一,十进制权重是:10^0、10^1、10^2、...
•在计算机的底层采用0和1组成的二进制序列进行数据的描述,逢二进一,二进制的权重是2^0、2^1、2^2、...
•二进制中的最高位(最左边)用于代表符号位,若该位是0则表示非负数,若该位是1则表示负数。
•八进制和十六进制其实都是二进制的简写
进制之间的转换
•正十进制转换为二进制的方式
a.除2取余法,使用十进制整数不断地除以2取出余数,直到商为0时将余数逆序排序。
b.拆分法,将十进制整数拆分为若干个二进制权重的和,有该权重下面写1,否则写0。
•正二进制转换为十进制的方式
a.加权法,使用二进制中的每个数字乘以当前位的权重再累加起来
•负十进制转换为二进制的方式
a.先将十进制的绝对值转换为二进制,然后进行按位取反再加1。
•负数的需要补码:按位取反,再加1 。
•负二进制转换为十进制的方式
a.先减1再按位取反,合并为十进制整数后添加负号。
单个字节表示的整数范围(重中之重)
•在计算机中单个字节表示八位二进制位,其中最高位(最左边)代表符号位,使用0代表非负数,使用1代表负数,具体表示的整数范围如下:
•非负数表示范围:0000 0000 ~ 0111 1111 => 0 ~ 127 => 0 ~ 2^7-1
•负数表示范围:1000 0000 ~ 1111 1111 => -128 ~ -1 => -2^7 ~ -2^0
•单个字节表示的整数范围是:-2^7 ~ 2^7-1,也就是-128 ~ 127.
整数类型
•Java语言中描述整数数据的类型有:byte、short、int、long,荐int类型
•其中byte类型在内存空间中占1个字节,表示范围是:-2^7 ~ 2^7-1.
•其中short类型在内存空间中占2个字节,表示范围是:-2^15 ~ 2^15-1.
•其中int类型在内存空间中占4个字节,表示范围是:-2^31 ~ 2^31-1.
•其中long类型在内存空间中占8个字节,表示范围是:-2^63 ~ 2^63-1.
•在Java程序中直接写出的整数数据叫做直接量/字面值/常量,默认为int类型。若希望表达更大的直接量,则在直接量的后面加上l或者L,推荐L。
浮点类型
•Java语言中用于描述小数数据的类型:float 和double,推荐double类型
•其中float类型在内存空间占4个字节,叫做单精度浮点数,可以表示7位有效数字,范围:-3.403E38~3.403E38。
•其中double类型在内存空间占8个字节,叫做双精度浮点数,可以表示15位有效数字,范围:-1.798E308~1.798E308。
•Java程序中直接写出的小数数据叫做直接量,默认为double类型,若希望表达float类型的直接量,则需要在直接量的后面加上f或者F.
布尔类型
•Java语言中用于描述真假信息类型有:boolean,数值只有:true 和false。
•布尔类型在内存空间中所占大小没有明确的规定,可以认为是1个字节。
字符类型
•Java语言中用于描述单个字符的数据类型:char类型。如:'a'、'中'等。
•其中char类型在内存空间中占2个字节并且没有符号位,表示的范围是:0 ~ 65535,由于现实生活中很少有数据能够被单个字符描述,因此以后的开发中更多的使用由多个字符串起来组成的字符串,使用String类型加以描述,如:“hello”、“奇点”等。
•计算机的底层只识别0和1组成的二进制序列,对于字符'a'这样的图案来说不满足该规则,因此该数据无法直接在计算机中存储,但现实生活中存在这样的图案数据需要计算机存储,为了使得该数据能够存储起来就可以给该数据指定一个编号,然后将编号存储起来即可,该编号就叫做ASCII。
•要求掌握的ASCII有:'0' -48 'A' -65 'a' -97 空格-32 换行符-10
•Java字符类型采用Unicode字符集编码。Unicode是世界通用的定长字符集,所有的字符都是16位。
•要求掌握的转义字符有:\" -" \' -' \\-\\t -制表符\n -换行符
基本数据类型之间的转换
•Java语言中基本数据类型之间的转换方式:自动类型转换和强制类型转换。
•其中自动类型转换主要指从小类型到大类型之间的转换。
•其中强制类型转换主要指从大类型到小类型之间的转换,语法格式如下:
目标类型变量名= (目标类型)源类型变量名;
•强转有风险,操作需谨慎!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示