程序员经常都会忘记其他优先级规则,所以应该用括号明确规定计算顺序。
// Assignment with objects is a bit tricky class Number{ int i; } public class Assignment { public static void main(String[] args) { Number n1 = new Number(); Number n2 = new Number(); n1.i = 9; n2.i = 47; System.out.println("[1] n1.i: " + n1.i + " , n2.i: " + n2.i); n1=n2; System.out.println("[2] n1.i: " + n1.i + " , n2.i: " + n2.i); n1.i = 27; System.out.println("[3] n1.i: " + n1.i + " , n2.i: " + n2.i); } } /* [1] n1.i: 9 , n2.i: 47 [2] n1.i: 47 , n2.i: 47 [3] n1.i: 27 , n2.i: 27 */
// Passing objects to methods can be a bit tricky class Letter{ char c; } public class PassObject { static void f(Letter y){ y.c = 'z'; } public static void main(String[] args) { Letter x = new Letter(); x.c = 'a'; System.out.println("[1] x.c: " + x.c); f(x); System.out.println("[2] x.c: " + x.c); } } /* [1] x.c: a [2] x.c: z */
// Demonstrates the ++ and -- operators public class AutoInc { static void prt(String s) { System.out.println(s); } public static void main(String[] args) { int i = 1; prt("i: " + i); prt("++i: " + ++i); prt("i++: " + i++); prt("i: " + i); prt("--i: " +--i); prt("i--: " + i--); prt("i: " + i); } } /* i: 1 ++i: 2 i++: 2 i: 3 --i: 2 i--: 2 i: 1 */
//由于 equals()的默认行为是比较句柄。所以除非在自己的新类中改变了equals(),否则不可能表现出我们希望的行为 //大多数Java 类库都实现了equals(),所以它实际比较的是对象的内容,而非它们的句柄。 class Value{ int i; } public class Test { public static void main(String[] args) { Value v1 = new Value(); Value v2 = new Value(); v1.i = v2.i = 100; System.out.print(v1.equals(v2)); Integer i1 = new Integer(1); Integer i2 = new Integer(1); System.out.print(i1.equals(i2)); } } /* false true */
// Surprise! Java lets you overflow. // 如果对两个足够大的 int 值执行乘法运算,结果值就会溢出。 public class Oveflow { public static void main(String[] args) { int big = 0x7fffffff; // max int value prt("big = " + big); int bigger = big * 4; prt("bigger = " + bigger); } static void prt(String s){ System.out.println(s); } }
return:
- 指定一个方法返回什么值(假设它没有void返回值)
- 并立即返回那个值。
break & continue:
- break 强行退出循环,不再执行循环中剩下的语句
- 停止执行当前的循环,然后退回循环起始处,开始新的循环
//Demonstrates break and continue keywords public class BreakAndContinue { public static void main(String[] args) { for(int i=0; i<100; i++){ if(i==74) break; //out of for loop if(i%9 != 0) continue; //next iteration System.out.println(i); } int i=0; //an "infinite loop" while(true){ i++; int j = i*27; if(j==1269) break; //out of loop if(i%10 != 0) continue; // top of loop System.out.println(i); } } } /* 0 9 18 27 36 45 54 63 72 10 20 30 40 */
标签:
label:
- 简单的一个 continue 会退回最内层循环的开头(顶部),并继续执行。
- 带有标签的 continue 会到达标签的位置,并重新进入紧接在那个标签后面的循环。
- break 会中断当前循环,并移离当前标签的末尾。
- 带标签的break 会中断当前循环,并移离由那个标签指示的循环的末尾。
Switch:
根据一个整数表达式的值,switch语句可从一系列代码选出一段执行。
要求使用一个选择因子,并且必须是int 或char 那样的整数值。
假若将一个字串或者浮点数作为选择因子使用,那么它们在switch语句里是不会工作的。
对于非整数类型,则必须使用一系列if语句。
//What happen when you cast a float or double to an integral value? //将一个 float或double 值造型成整数值后,总是将小数部分“砍掉”,不作任何进位处理。 public class CastingNumbers { public static void main(String[] args) { double above = 0.7, below = 0.4; System.out.println("above : " + above); System.out.println("below : " + below); System.out.println("(int)above : " + (int)above); System.out.println("(int)below : " + (int)below); System.out.println("(char)('a' + above): " + (char)('a' + above)); System.out.println("(char)('a' + below): " + (char)('a' + below)); } } /* above : 0.7 below : 0.4 (int)above : 0 (int)below : 0 (char)('a' + above): a (char)('a' + below): a */
相关推荐
### 《Think-in-JAVA-4th-Edition》核心知识点概览 #### 一、书籍简介 《Thinking in Java》是一本由Bruce Eckel撰写的经典Java编程书籍,被誉为是学习Java的最佳参考资料之一。该书适合具有一定Java基础的学习者...
《Think in Java》是Java编程领域的一本经典著作,由Bruce Eckel撰写,中文版的出现使得更多中国程序员能够深入理解和掌握Java编程语言的核心概念。这本书以其深入浅出的讲解方式,深受程序员们的喜爱,是许多初学者...
《Think in Java 3》是一本深受欢迎的Java编程指南,由Bruce Eckel撰写,它以其详尽的解释和丰富的示例闻名。这本书是许多Java初学者和专业开发者的重要参考资料,旨在帮助读者深入理解Java语言的核心概念和机制。...
作者:贯穿本书,我试图在您的大脑里建立一个模型——或者说一个“知识结构”。这样可加深对语言的理解。若遇到难解之处,应学会把它填入这个模型的对应地方,然后自行演绎出答案。事实上,学习任何语言时,脑海里有...
think java - java思维
1. `tij.jcsc`:这可能是《Think in Java》书中某个章节或习题的Java类文件,包含了具体的程序实现。类文件通常包含了方法和变量定义,是Java程序编译后的二进制格式。 2. `BangBean.mf`:这个文件名可能暗示它是一...
Think-In-Java-Code Thinking In Java 书中源码以及课后练习代码(从第7章开始随着看书的进度一步步更新) 第七章 复用类 7.1 组合语法 7.2 继承语法 7.2.1 初始化基类 7.3 代理 7.4 结合使用组合和继承 7.4.1 确保...
《Think in Java》是Bruce Eckel的经典编程教材,它深入浅出地讲解了Java语言的基础概念和高级特性。源码整理则为读者提供了实践和学习的机会,帮助理解书中的示例和理论。以下是对《Think in Java》源码中一些重要...
Think Data Structures in Java 英文azw3 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除
《深入思考Java》是一套备受推崇的学习Java编程的资源,其RAR压缩包“think-in-java.rar”包含了丰富的学习材料,旨在帮助程序员从基础到高级全面理解Java语言。这个压缩包的核心内容围绕“java 学习 面向对象”这三...
《Think in Java 中文文档》作为一本深入讲解Java编程语言的教材,不仅适合有志于深入学习Java的程序员,也适合那些希望拓展自己技术栈的初学者。本书通过系统性的结构和丰富的实例,帮助读者全面理解Java,并最终...
Think Data Structures Algorithms and Information Retrieval in Java-OReilly(2017)
《Think in Java》是 Bruce Eckel 的经典著作,它深入浅出地讲解了Java编程语言的核心概念和技术。这本书强调理解编程思想,而不仅仅是学习语法。练习题是学习过程中的重要部分,它们帮助我们巩固理论知识,提升实际...
java think in java (英文第四版)至今为止 被认为是java教程之中权威作品之一
Think in java 源码构建编译
Think4V-UtubeDown-setup-3.2.6.exe
《Think in Patterns-0.9》是一本专门针对Java编程中的设计模式进行深入解析的教程。作者将《Think in Java》中的模式部分单独提取出来,旨在为读者提供一个更为集中、深入的学习资源,以帮助他们更好地理解和应用...
think in java 文档
《Think In Java 4》是Java编程领域里一本极具影响力的著作,由资深程序员 Bruce Eckel 编著。这本书以其深入浅出的讲解方式和全面的知识覆盖而闻名,被誉为Java学习者的经典读物。中文版的完美高清版本为国内读者...
然后,学习Java的基本语法,如数据类型(整型、浮点型、字符型、布尔型)、变量声明、运算符、流程控制(if-else、switch、for、while循环)以及方法的定义和调用。 2. **面向对象编程(OOP)**:Java的核心是OOP,...