2.1条件结构有哪几种形式?各适用于什么场合?
单分支结构---只在条件为真时候执行
多分支结构---根据条件的真假执行不同语句

2.2可以把switch语句转换成等价的if语句吗?switch的优缺点
可以互换,switch语句功能类似鱼if语句中的多分支结构。
if语句由条件构成多分枝,switch由表达式构成多分枝。当变量趋于多个离散点时候,switch语句会更好。总之,if语句结构灵活,能处理任意多分支;switch结构简单,能处理的问题有限,但用 switch实现的程序逻辑结构清晰。

2.3switch是否能作用在byte上?string?long?
switch之后的表达式必须兼容int类型,其中包含byte,不能是long这种长整型
jdk7后支持string

2.4简述for while do……while三种循环语句的特点和区别
for循环适合循环次数一定的情况,对于循环次数未知而希望通过条件来控制循环的情况,while循环会更加方便

2.5什么是异常?解释抛出、捕获的含义
异常是程序处理中非正常情况
抛出异常:如果程序中出现了异常,没有办法将具体的异常打印出来,不做任何处理
捕获异常:如果程序出现了异常,就能够详细的打印是什么原因导致了异常并且能够做出相应的处理,能够显示详细的Log

2.6简述java异常处理的机制
java异常处理采用一个统一相对简单的机制,一个方法本身可能引发异常,当调用该方法出现异常时,调用者可以捕获异常使之得到处理,得以回避异常,抛给调用它的程序,异常会在堆栈中向下传递,直到被处理。
2.7error和exception的区别
Exception和Error都是继承了Throwable类,在java中只有Throwable类型的实例才可以被抛出(throw)或者捕获(catch),他是异常处理机制的基本组成类型。
Exception和Error体现了java平台设计者对不同异常情况的分类,Exception是程序正常运行中,可以预料的意外情况,可能并且应该被捕获,进行相应的处理。
Error是指正常情况下,不大可能出现的情况,绝大部分的Error都会导致程序(比如JVM自身)处于非正常状态,不可恢复状态。既然是非正常情况,所以不便于也不需要捕获,常见的比如OutOfMemoryError之类,都是Error的子类。
Exception又分为可检查(checked)异常和不检查(unchecked)异常,可检查异常在源码里必须显示的进行捕获处理,这里是编译期检查的一部分。前面我们介绍的不可查的Error,是Throwable不是Exception。
不检查异常就是所谓的运行时异常,类似NullPointerException,ArrayIndexOutOfBoundsExceptin之类,通常是可以编码避免的逻辑错误,具体根据需要来判断是否需要捕获,并不会在编译器强制要求。

2.8检查性异常和非检查性异常区别
1、所有的检查性异常都继承自java.lang.Exception;所有的非检查性异常都继承自java.lang.RuntimeEx ception。
2、检查性异常和非检查性异常最主要的区别在于其处理异常的方式:检查性异常必须使用try catch或者throws等关键字进行处理,否则编译器会报错;非检查性异常一般是程序代码写的不够严谨而导致的问题,可以通过修改代码来规避。

2.9try里面有一个return语句,那么try后的finally里的代码会不会被执行?什么时候被执行?return前后?
在return中间执行