第四章 控制执行流程
老师说得对,第十章以后的那些才是难啃的骨头,对我来说,日子真的过得很快,希望可以在剩下的一年里面得到些东西,不知道自己坚持的是否正确,但是相信没有耕耘就没有回报,坚持每天一章书.
这一章是应该是每种语言都必须具备的,java也不例外,对于我来说,java和c++这里是差不多的,java取消了那个万恶的goto语句,还有多了一个foreach,下面我们来慢慢分析
.for迭代
for(int i=0;i<100;i++){}
这里的变量i是在测下用到它的地方定义的,也就是for循环控制里面,c的作用域就是for控制的表达式范围里面,这样的好处是形成良好的编程风格,让别人也易于理解你的程序,c语言是在这个块的开头定义的
.逗号操作符
,定义相同类型的变量,例如在for里面可以定义多个i,j,注意在其他选择与迭代语句中是不能这样使用的,只有for可以
.foreach语法
这个东西这是非常有用,特别是不知道这个数组的长度时,特别是在我写android程序是,使用foreach能够很方便的列出设备名之类的数组,foreach内部实现其实也是for
.return,break,continue
return有两个用途,一返回什么类型的值,第二使当前方法退出,特别是第二个作用,个人觉得很有用,特别是结合逻辑语句.
break强行退出循环,不执行循环剩余语句,而continue结束这一轮的,继续下一轮。
.goto语句
goto语句的历史源于汇编的程序控制,但是goto会导致程序混乱,所以个人不喜欢,goto是java的保留字,在java中可以使用break和continue达到goto的作用,下面就是讨论
使用方法很简单
hello:
break hello;
continue hello;
也就是说使用break,continue跳到hello:这个标签这里,然后在按顺序执行,那么break+标签的意思是中断迭代,而且不重复进入迭代,而continue+标签,还是会重新进入标签后的迭代
.switch
用法和c++的一样,需要注意的是switch(aa)
aa只能是int或者char,关于这个我个人不是特别喜欢,还有就是case后面一定要加break,否则会继续执行下面语句的,至于default,加不加break没有影响,不过为了编程风格,我个人还是喜欢加,书上说switch可以和enum一起用,这个enum的出现恰恰可以帮我们减轻类型限制的弱点,不过在性能优化里面,还是不建议多用enum.
这一章的内容不多,因为这本书更多讨论的不是java的一下语法基础,而是说java的机制什么的,良好的设计模式,还是那一句,希望来看贴的同志麻烦留一下言,让我开心一下,谢谢
注:关于jit讨论,即时编译技术
什么是JIT?
JIT是just in time,即时编译技术。使用该技术,能够加速java程序的执行速度。下面,就对该技术做个简单的讲解。
首先,我们大家都知道,通常javac将程序源代码编译,转换成java字节码,JVM通过解释字节码将其翻译成对应的机器指令,逐条读入,逐条解释翻译。很显然,经过解释执行,其执行速度必然会比可执行的二进制字节码程序慢。为了提高执行速度,引入了JIT技术。
在运行时JIT会把翻译过的机器码保存起来,已备下次使用,因此从理论上来说,采用该JIT技术可以,可以接近以前纯编译技术。下面我看看,JIT的工作过程。
当JIT编译启用时(默认是启用的),JVM读入.class文件解释后,将其发给JIT编译器。JIT编译器将字节码编译成本机机器代码,下图展示了该过程。
什么是JIT?
JIT是just in time,即时编译技术。使用该技术,能够加速java程序的执行速度。下面,就对该技术做个简单的讲解。
首先,我们大家都知道,通常javac将程序源代码编译,转换成java字节码,JVM通过解释字节码将其翻译成对应的机器指令,逐条读入,逐条解释翻译。很显然,经过解释执行,其执行速度必然会比可执行的二进制字节码程序慢。为了提高执行速度,引入了JIT技术。
在运行时JIT会把翻译过的机器码保存起来,已备下次使用,因此从理论上来说,采用该JIT技术可以,可以接近以前纯编译技术。下面我看看,JIT的工作过程。
JIT 编译过程
当JIT编译启用时(默认是启用的),JVM读入.class文件解释后,将其发给JIT编译器。JIT编译器将字节码编译成本机机器代码,下图展示了该过程。
1.JIT的工作原理图
通过上面的解释,我们了解了JIT的工作原理及过程,同样也发现了个问题,由于JIT对每条字节码都进行编译,造成了编译过程负担过重。为了避免这种情况,当前的JIT只对经常执行的字节码进行编译,如循环等。
需要说明的是,JIT并不总是奏效,不能期望JIT一定能够加速你代码执行的速度,更糟糕的是她有可能降低代码的执行速度。这取决于你的代码结构,当然很多情况下我们还是能够如愿以偿的。
java 美女4
分享到:
相关推荐
### Thinking in Java 自学笔记——第二章 一切皆对象 #### 重要概念解析 ##### 2.1 用引用操纵对象 在Java中,一切都被视为对象,这意味着无论是字符串、数字还是其他数据类型都可以被视为对象来进行操作。当...
### Thinking in Java 读书笔记知识点总结 #### 一、万事万物皆对象 1. **对象存储位置** - **寄存器**:程序无法直接控制。 - **栈(Stack)**:存储基本类型数据和对象引用,但对象本身不在此处。 - **堆(Heap)...
Thinking in Java 自学笔记——第一章 对象导论 本章节总结了面向对象程序设计(Object-oriented Programming, OOP)的基本概念和原则,以帮助读者更好地理解 Java 编程语言。以下是对标题、描述、标签和部分内容的...
### Thinking In Java 学习笔记知识点总结 #### 面向对象编程(OOP)的重要性及其影响 面向对象编程(OOP)在软件开发领域产生了深远的影响。它不仅提高了开发效率和降低了维护成本,还简化了设计流程,使得编程任务...
《中文版Thinking in Java 4th编程思想》是学习Java编程的重要参考资料,它深入浅出地介绍了面向对象编程的核心概念。下面将详细解读其中的主要知识点。 1. **对象导论** - **万物皆对象**:Java编程的核心是对象...
**Java JDK 6.0 学习笔记** Java JDK(Java Development Kit)是Java编程语言的核心组件,包含Java运行环境、编译器、类库以及各种工具,是开发者进行Java程序开发的基础。Java JDK 6.0是Oracle公司发布的一个重要...
Java》学习笔记 [TOC] 阅读计划 章节列表 对象导论 一切都是对象 操作符 控制执行流程 初始化与清理 访问权限控制 复用类 多态 接口 内部类 持有对象 通过异常处理错误 字符串 类型信息 泛型 数组 容器深入研究 Java...
【JAVA语言入门资料】 ...“Java学习.doc”则可能包含了一些学习笔记或实践案例。 总之,这份“JAVA语言入门资料”是全面了解和学习JAVA的好起点,通过阅读和实践,初学者可以逐步掌握JAVA编程,踏上编程之旅。
"thinking-in-java.pdf"是Bruce Eckel的经典之作《Thinking in Java》,书中详尽介绍了Java语言的基本概念、语法和编程思想,是初学者入门和进阶的必备读物。 3. **Spring框架**: “Spring源码深度解析(第2版)...
这份"thinking-in-spring"的学习笔记,旨在帮助读者全面理解Spring的核心概念、主要功能以及实际应用技巧。下面,我们将详细探讨Spring的主要模块和关键特性。 1. **依赖注入(Dependency Injection,DI)** ...
《Thinking in Java》是Bruce Eckel的经典之作,它深入浅出地介绍了Java编程语言的核心概念和技术。本资源包含了这本书第四版的学习笔记和源代码,旨在帮助读者更好地理解和掌握Java编程思想。以下是对这些知识点的...
2. **基本元素**:第二周深入讨论Java语言的基础,如数据类型、变量、运算符以及流程控制语句(如if,for,while等),这些都是构建任何程序的基石。 3. **类和对象**:第三周,将详细讲解类的声明、构造器、析构...
1. **Java语法**:学习Java的语法结构,包括变量、数据类型、运算符、控制流程(如if语句、循环)以及方法定义。 2. **类与对象**:理解面向对象编程的核心概念,如封装、继承、多态,这是Java的基础。 3. **异常...
《Thinking in Java》是一本深度解析Java编程语言的权威书籍,笔记主要涵盖了Java的核心概念和技术。以下是基于笔记内容的关键知识点: 1. **类与对象**: - 类是对象的蓝图,它定义了一组相似对象的属性(数据...
在"spring-in-thinking-master"这个压缩包中,很可能是包含了一个关于Spring学习的项目或者教程资源。可能包括了代码示例、笔记文档、配置文件等,帮助学习者深入了解和实践Spring框架的各个组件。通过研究这些资源...
制定合理的学习计划,并按部就班地执行。这样既能确保覆盖所有重要知识点,又能避免遗漏某些细节。 ### 39. 同时学习C和C++ 虽然两种语言有很多相似之处,但也存在不少差异。通过同时学习二者,可以更好地理解它们...