Java基础知识体系变量与类型

导读:本篇文章讲解 Java基础知识体系变量与类型,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

Java基础知识体系 (一)、计算机与java (二)、变量与类型 (三)、运算符 (四)、流程控制 (五)、数组

(二)、变量与类型 常量 程序运行中 其值 不可改变的量 变量 在一定范围内 其值可以改变的量

1,常量 自定义常量 面向对象

字面值常量: 字符串常量 “世界,您好!” 整数常量 10 20 300 小数常量 1.10 12.33 字符常量 用英文半角下的单引号引起来的单个字符 ‘a’ ‘A’ 空字符常量 ‘’ 布尔常量 true false 空常量 vnull 即NullPointException

2,进制 计算机中存储的最小单位是bit (比特) ,最小的计量单位是byte (一个字节) 1 byte = 8 bit 1 k = 1024 byte 1 m = 1024 k 1 g = 1024 m 1 t = 1024 g 1 p = 1024 t

单个字节表示的整数范围 在计算机中单个字节表示八位二进制位,其中最高位(最左边)代表符号位,使用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.

进制分类 二进制: 以0b(0B)开头, 由0和1组成 ; 举例:0b10100 ,最高位(最左边)代表符号位,若该位是0则表示非负数,若该位是1则表示负数 在计算机的底层采用0和1组成的二进制序列进行数据的描述,逢二进一,二进制的权重是20、21、2^2、… 十进制: 开头没有符号,由0…9 开头不能为0 举例:100, 在日常生活中采用,逢十进一,十进制权重是:100、101、10^2、… 八进制: 以0 开头, 由0-7 组成 ; 举例: 01237,对二进制的缩写 十六进制: 以0x(0X)开头, 由0 – 9, a,b,c,d,e,f 举例: 0x3C 0X2B,对二进制的缩写

进制转换 任意进制转换成十进制: 正进制数 系数: 一个数每一位上的数就是系数 基数: 几机制就是基数就是几 , 十进制基数是是10 , 八进制基数是8 … 权: 从右向左,从0开始编号,每一位上的编号就是权 结果: 系数 * 基数^权 之和 十进制 位全展开法: 12345 = 1 * 10 ^ 4 + 2 * 10 ^ 3 + 3 * 10 ^2 + 4* 10 ^ 1 + 5 * 10 ^0

练习: 二进制转十进制 0b111 = 12^2 + 12^1 + 1 * 2^0 = 7 八进制转十进制 077 = 78^1 + 78^0 = 56+ 7 = 63 十六进制转十进制 0x9a = 9* 16^1 + 10 * 16 ^0 = 144 + 10 = 154 十进制转其他进制 十进制变到其他任意进制: 正进制数 除基倒取余,直到商为0 举例: 80 算二进制除的是2, 商为0的的时候, 倒取语句 结果: 二进制 0b1010000 八进制 o120 十六进制 ox50

正十进制转换为二进制的方式 a.除2取余法,使用十进制整数不断地除以2取出余数,直到商为0时将余数逆序排序。 b.拆分法,将十进制整数拆分为若干个二进制权重的和,有该权重下面写1,否则写0 拆分法

正二进制转换为十进制的方式 a.加权法,使用二进制中的每个数字乘以当前位的权重再累加起来。 加权法

负十进制转换为二进制的方式 a.先将十进制的绝对值转换为二进制,然后进行按位取反再加1,负数的需要补码:按位取反,再加1 。 负10进制转2进制 负二进制转换为十进制的方式 a.先减1再按位取反,合并为十进制整数后添加负号。 负2进制转十进制 3,原码反码补码 原码: 二进制的定点标示法. 0 和 1组成. 最高位是符号位 1负数, 0 代表正数 -5 : 10000101 5 : 00000101 反码: 正数的反码和原码一样, 负数的反码符号位不变,其他为按位取反. 5 的反码: 00000101 -5 的反码: 11111010 补码: 正数的补码和原码也相同, 负数的补码,在其反码的基础上 +1 5 的补码: 00000101 -5的补码: 11111011 练习: 10101011 (原码) —– 求补码 – (32 + 8 + 2 + 1) = -43 11010101 10001110 (是补码) —– 求原码 11110010

4,变量 变量概念 当需要在程序中记录单个数据内容时,则声明一个变量,而声明变量的本质就是在内存中申请一个存储单元,由于该存储单元中的数据内容可以发生改变,因此得名为”变量”。 由于存放的数据内容大小不一样,导致所需存储单元的大小不一样,在Java语言中使用数据类型加以描述,为了便于下次访问还需要给该变量指定一个名字,用于记录该变量对应的存储单元。

变量声明 定义变量: 1)数据类型 2)变量名(标识符) 3) 变量值 格式: 数据类型 变量名 = 变量值; //将变量值给变量名,变量值就相当于未知数x保存了这个数,变量值可以省略,后续再传递值

变量注意事项 Java是强类型语言,变量在使用前必须声明来指明其数据类型。 变量在使用之前必须初始化。 变量不能重复声明

Java标识符 由数字、字母、下划线以及$等组成,其中数字不能开头(后面讲到)。 不能使用Java语言的关键字。 区分大小写,长度没有限制但不宜过长。 尽量做到见名知意,支持中文但不推荐使用。 标识符可以给类/变量/属性/方法/包 起名 关键字

数据类型 引用数据类型:String,数组,对象,接口,枚举,标注 基本数据类型:4类8种 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

float 浮点型: 4个字节,叫做单精度浮点数,可以表示7位有效数字,范围:-3.403E38~3.403E38。 double 浮点型: 4个字节,叫做单精度浮点数,可以表示7位有效数字,范围:-3.403E38~3.403E38。 Java程序中直接写出的小数数据叫做直接量,默认为double类型,若希望表达float类型的直接量,则需要在直接量的后面加上f或者F

boolean 布尔型: 默认1个字节,Java语言中用于描述真假信息类型有:boolean,数值只有:true 和 false

char 字符型: 占2个字节并且没有符号位,表示的范围是:0 ~ 65535,Java语言中用于描述单个字符的数据类型 ‘a’、’中’等 由于现实生活中很少有数据能够被单个字符描述,因此以后的开发中更多的使用由多个字符串起来组成的字符串,使用String类型加以描述,如:“hello”、“奇点”等。

计算机的底层只识别0和1组成的二进制序列,对于字符’a’这样的图案来说不满足该规则,因此该数据无法直接在计算机中存储,但现实生活中存在这样的图案数据需要计算机存储,为了使得该数据能够存储起来就可以给该数据指定一个编号,然后将编号存储起来即可,该编号叫做ASCII。 常见ASCII有:‘0’ – 48 ‘A’ – 65 ‘a’ – 97 空格 – 32 换行符 – 10 ascii码表

Java字符类型采用Unicode字符集编码。Unicode是世界通用的定长字符集,所有的字符都是16位。 常用的转义字符:” – ” ’ – ’ \ – \ \t – 制表符 \n – 换行符

5,数据类型之间转换 自动类型转换:从小类型到大类型之间的转换 强制类型转换:从大类型到小类型之间的转换,语法格式如下:目标类型 变量名 = (目标类型)源类型变量名; 基本数据类型关系 注意:强转有风险,操作需谨慎! 把大的数据类型的数据给小的数据类型, 就会发生数据溢出,导致损失精度

举例: int x = 20; // int x 是4个字节 byte b = x; //会报错 // byte b是一个字节 解决办法: byte b = (byte)x; //强制类型转换, 告诉编译器,你转把,我知道会发生精度损失.

class Demo3{ public static void main(String[] args){ char c = ‘a’; byte b = 10; short s = (short)(c + b); //byte char short 他们三个再做运算的时候都会提升为int数据类型. } } 变量与常量参与运算 byte b = 8 + 8; 常量优化机制, 8+8 的结果先运算出来, 判断是不是在byte的取值范围内,如果在就赋值,如果不在报错 byte b1 = 10; short b2 = 20; byte b3 = b1 + b2; //变量相加没有优化机制, b1 + b2 都会提升为int类型, 会把一个int类型赋值给一个byte,损失精度,且报错 小总结:byte,short,char,int 之间的运算,都先自动转换为int型,后再运算;小数,则自动转为double型再计算

6,变量作用域

  • 1)一般变量的作用范围在一个大括号中,超过这个范围报错
  • 2)变量定义在上面,使用在下面
    1. 同一个作用域不能有相同名称的变量 全局变量 局部变量 成员变量 类变量 对象变量

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/2113.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!