A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 辉Se天空 中级黑马   /  2014-11-17 22:07  /  1368 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 辉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位  
通过以下代码课的出各类型的最大值和最小值

  1. public classTestOutOfBound {
  2. public static void main(String[] args) {
  3. System.out.println(Integer.MAX_VALUE-(-Integer.MAX_VALUE));//内存溢出
  4. System.out.println(Integer.MAX_VALUE); //2的31次方-1,10个数位,正的20亿左右,用在钱上面不一定够
  5. System.out.println(Integer.MIN_VALUE); //负的2的31次方
  6. System.out.println(Long.MAX_VALUE); //2的64次方-1,19个数位,很大了,可放心用在钱上面
  7. System.out.println(Long.MIN_VALUE); //负的2的64次方
  8. System.out.println(Float.MAX_VALUE); //2的128次方-1,38个数位,比long多了一倍,这个主要用来做简单数学精确运算使用
  9. System.out.println(Float.MIN_VALUE); //2的-149次方
  10. System.out.println(Double.MAX_VALUE); //2的1024次方-1,308个数位,是float数位的10倍,主要用来做复杂运算和天文运算
  11. System.out.println(Double.MIN_VALUE); //2的-1074次方
  12. }
  13. }
复制代码


结果
-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类型的。


1 个回复

倒序浏览
问题二:


错误原因:
由于小数默认是double(8byte)类型,赋值给float(4byte)类型的变量,当然可能会损失精度。
解决方法:

在数值后面加上一个“f”,就可以让编译器知道后面的常量是float类型的。
问题三:

错误原因:
由于变量y是未初始化的,所以不能直接操作。
解决方法:
一定要为变量y先赋值,再打印输出。
问题四:


错误原因:
由于变量z的作用范围是在一对{}之间有效,超出这个范围就失效了。所以,找不到z这个符号。
解决方法:
将大括号去掉,或者在大括号里面打印变量z。
本人java新人,有疏忽和错误、误之处欢迎大家指出
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马