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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 打工人 金牌黑马   /  2013-2-27 22:19  /  6474 人查看  /  32 人回复  /   11 人收藏 转载请遵从CC协议 禁止商业使用本文

1.2 基本数据类型

Q. 为什么 -0/3 结果是 0,而 -0.0/3.0 结果是 -0.0?(注意后边的结果0带负号)

A. 在Java里,整数是用补码表示的。在补码中0只有一种表示方法。另一方面,浮点数则是用 IEEE 标准表示的, 对于0有两种表示方法, 0 和 -0。

Q. 我可以用 % 除以一个小数吗?

A. 当然可以。比如,如果 angle 是一个非负数,那么 angle % (2 * Math.PI) 就会把 angle 转换到 0 到 2 π 之间。

Q. 当 a b 都是基本类型变量时,a += b 和 a = a + b 的效果有区别吗?

A. 当 a 和 b 的类型不同时,那两条语句的效果就可能有区别。 a += b 等同于 a = (int) (a + b),这种情况下可以是 a是int型,b是float型。但是同等情况下 a = a + b 就会编译报错。


1.3 条件语句和循环语句

Q. 为什么判断字符串相等不能使用 == ?

A. 这反映了基础类型(int, double, boolean)和引用类型(String)的区别。

Q. 有没有在什么情况下,一条语句块的花括号不能省略的?

A. 在下面的例子中,第一段代码是合法的,第二段代码会引发编译错误。从技术角度说,那一条语句是一个变量声明,而不是语句,所以会报错。

  • // legal  
  • for (int i = 0; i <= N; i++) {  
  •    int x = 5;  
  • }  
  • // illegal
  • for (int i = 0; i <= N; i++)  
  •    int x = 5;

Q. 在下面的两段代码里,有没有情况,它们的效果不一样?

  • for (<init stmnt> <boolean expr>; <incr stmnt>) {  
  •    <body statements>  
  • }  
  • <init stmnt>;  
  • while (<boolean expr>) {  
  •    <body statements>  
  •    <incr stmnt>  
  • }

A. 有的。如果在循环块里使用 continue 语句。在for的代码里,计数器会加一;而在while的代码里,因为被continue略过了,计数器不加一。


1.4 数组

Q. 某些Java开发人员使用 int a[] 而不是 int[] a 去声明一个数组。这两者有什么区别?

A. 在Java中这两种用法都是合法的,他们的作用都是一样的。前者是在C中的定义数组的方法。后者是JAVA推荐的方法,因为它的写法 int[] 更能表明这是一个 int 的数组。

Q. 为什么数组下标从0 开始 而不是从 1 开始?

A. 这种传统起源于机器语言的编程方法。在机器语言中,数组下标被用来计算元素位置与第一个元素之间的偏移量。如果从1开始的话,计算偏移时还需要做一次减法运算,那是种浪费。

Q. 如果我用 负数 作为数组下标会发生什么事?

A. 下标小于0 或者 大于等于数组长度,JAVA运行时会抛出 ArrayIndexOutOfBoundsException 异常,并且中止程序运行。

Q. 使用数组时还有其他需要注意的陷阱吗?

A. 需要记住,JAVA在你创建一个数组时会去初始化它,所以声明一个数组需要 O(N)的时间。

Q. 既然 a[] 是一个数组,为什么 System.out.println(a) 会打印出一个16进制的数,就像 @f62373 这样,而不是打印出数组的元素?

A. 好问题。这条语句打印出的是 数组在内存中的地址,不幸的是,在绝大多数情况下,这不是你需要的。




评分

参与人数 1黑马币 +15 收起 理由
陈丽莉 + 15 很给力!

查看全部评分

32 个回复

正序浏览
不错,不错:kiss:
回复 使用道具 举报
谢谢楼主分享
回复 使用道具 举报
不错 很涨知识 也巩固了基础知识 谢谢楼主分享
回复 使用道具 举报
受教了!!!
回复 使用道具 举报
赞一个!细节决定成败!
回复 使用道具 举报
jonn 高级黑马 2013-3-14 23:35:56
28#
都是一些细节上注意的几点...不错,有点收获....{:soso_e113:}
回复 使用道具 举报
王俊杰 来自手机 中级黑马 2013-3-14 13:11:58
27#
受益不浅!感谢分享!中国共产党万岁!!
回复 使用道具 举报
楼主辛苦!自己看了还不忘分享!!好人平安............
回复 使用道具 举报
好帖子   
我喜欢这样的
回复 使用道具 举报
好东西,。
回复 使用道具 举报
谢谢分享
回复 使用道具 举报
收下,很好
回复 使用道具 举报
挺好的,受教了
回复 使用道具 举报
好贴。先留着。值得学习
回复 使用道具 举报
余勇 来自手机 中级黑马 2013-3-1 23:00:51
19#
心里没底
回复 使用道具 举报
不错啊
回复 使用道具 举报
不错啊
回复 使用道具 举报
{:soso_e176:}收啦{:soso_e142:}
回复 使用道具 举报
陈迎春 来自手机 中级黑马 2013-3-1 10:13:05
15#
好帖    啊来自: Android客户端
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马