本帖最后由 辉Se天空 于 2014-11-17 22:40 编辑
一.常量与变量 1. 常量 l 概念:常量表示不能改变的数值。 Java中常量的分类: 1,整数常量。所有整数 2,小数常量。所有小数 3,布尔型常量。较为特有,只有两个数值。true false。 4,字符常量。将一个数字字母或者符号用单引号( ' ' )标识。 5,字符串常量。将一个或者多个字符用双引号标识。 6,null常量。只有一个数值就是:null. l 对于整数,java有三种表现形式:•十进制:0-9,满10进1.•八进制:0-7,满8进1.用0开头表示。•十六进制:0-9, A-F,满16进1.用0x开头表示。 注意:java中没有二进制。 l 进制转换: 注意:负数的二进制表现形式对应的正数二进制取反加1 例:-7的二进制表示: 首先7在PC内存中表示形式为: 00000000000000000000000000000111 取反得 11111111111111111111111111111000 加一得: 11111111111111111111111111111001 如果要计算负数的16进制和8进制可先计算负数二进制,然后转化为16进制和8进制。 2. 变量 l 变量的概念:•内存中的一个存储区域•该区域有自己的名称(变量名)和类型(数据类•该区域的数据可以在同一类型范围内不断变化 l 为什么要定义变量:•用来不断的存放同一类型的常量,并可以重复使用 l 使用变量注意:•变量的作用范围(一对{}之间有效)•初始化值 l 定义变量的格式:•数据类型 变量名=初始化值; l 数据类型: 注意: 整数默认:int小数默认:double 拓展: 占用位数: 主类型 大小 boolean 1位 - - char 16位 byte 8位 short 16位 int 32 位 long 64位 float 32位 double 64位 通过以下代码课的出各类型的最大值和最小值
- public classTestOutOfBound {
- public static void main(String[] args) {
- System.out.println(Integer.MAX_VALUE-(-Integer.MAX_VALUE));//内存溢出
- System.out.println(Integer.MAX_VALUE); //2的31次方-1,10个数位,正的20亿左右,用在钱上面不一定够
- System.out.println(Integer.MIN_VALUE); //负的2的31次方
- System.out.println(Long.MAX_VALUE); //2的64次方-1,19个数位,很大了,可放心用在钱上面
- System.out.println(Long.MIN_VALUE); //负的2的64次方
- System.out.println(Float.MAX_VALUE); //2的128次方-1,38个数位,比long多了一倍,这个主要用来做简单数学精确运算使用
- System.out.println(Float.MIN_VALUE); //2的-149次方
- System.out.println(Double.MAX_VALUE); //2的1024次方-1,308个数位,是float数位的10倍,主要用来做复杂运算和天文运算
- System.out.println(Double.MIN_VALUE); //2的-1074次方
- }
- }
复制代码
结果
-2
2147483647
-2147483648
9223372036854775807
-9223372036854775808
3.4028235E38
1.4E-45
1.7976931348623157E308
4.9E-324 (引用自博客http://nannan408.iteye.com/blog/1255315/) l 强制类型转化 格式:(想要转化的类型)原类型 例:(char)(2)把2(int型)转化为char型 注意: 如果将一个类型强制转化成另一个类型,而又超出了目标类型的范围则结果会截断成完全不同的值(char)300结果为44. l 表达式的数据类型自动提升
•所有的byte型、short型和char的值将被提升到int型。
•如果一个操作数是long型,计算结果就是long型;
•如果一个操作数是float型,计算结果就是float型;
•如果一个操作数是double型,计算结果就是double型。 l 常见问题: (引用自黑马程序员论坛就业指导-许瑞航老师) 问题一: [img]file:///C:/Users/huihui/Desktop/java/Java%E5%9F%BA%E7%A1%80%E7%AC%AC%E4%BA%8C%E5%A4%A9/02-Java%E5%9F%BA%E7%A1%80%E8%AF%AD%E6%B3%95%EF%BC%88Part%201%EF%BC%89_files/Image%20[6].png[/img]
错误原因: 由于整数默认类型是int类型,如果数值超过了int类型的范围,那么就会报出如上错误。 即使是赋值给long类型的变量,但是后面的常量已经超过了int类型的范围,同样会报错。 解决方法: 在数值后面加上一个“l”,就可以让编译器知道后面的常量是long类型的。
|