21、是否可以从一个static方法内部调用非static方法?

不可以。静态成员不能调用非静态成员。
非static方法属于对象,必须创建一个对象后,才可以在通过该对象来调用static方法。而static方法调用时不需要创建对象,通过类就可以调用该方法。也就是说,当一个static方法被调用时,可能还没有创建任何实例对象,如果允许从一个static方法中调用非static方法的调用,那个非static方法是没有调用对象的。因此Java不允许static方法内部调用非static方法。
22、Math.round(11.5)等於多少? Math.round(-11.5)等於多少?

Math类中提供了三个与取整有关的方法:ceil、floor、round,这些方法的作用与它们的英文名称的含义相对应,例如,ceil的英文意义是天花板,该方法就表示向上取整,所以,Math.ceil(11.3)的结果为12,Math.ceil(-11.3)的结果是-11;floor的英文意义是地板,该方法就表示向下取整,所以,Math.floor(11.6)的结果为11,Math.floor(-11.6)的结果是-12;最难掌握的是round方法,它表示“四舍五入”,算法为Math.floor(x+0.5),即将原来的数字加上0.5后再向下取整,所以,Math.round(11.5)的结果为12,Math.round(-11.5)的结果为-11。

23、请说出作用域public,private,protected,以及不写时的区别
这四个作用域的可见范围如下表所示。

作用域 当前类 同一package 子类 全局
public √ √ √ √
protected √ √ √ ×
default √ √ × ×
private √ × × ×

说明:如果在修饰的元素上面没有写任何访问修饰符,则表示default。
只要记住访问权限由小到大依次是private → default → protected → public,然后再记住Java存在的4个访问范围,就很容易画出上面的表格了。

24、外部类能用private、protected修饰吗?内部类可以用private、protected修饰吗?
外部类不能用private、protected修饰不能。内部类能用private、protected修饰不能。
外部类的上一级程序单位是包,因此它只有两个使用范围:包内和包外,因此它只能用public(表示可以在全局位置使用)和默认修饰符(default,表示只能被同一个包的其他类使用)修饰。

25、一个类定义多个重载方法,参数分别是int ,char,和double,然后将double x = 2,传递进去,会选择哪个方法?
选择参数类型为double的方法。