3、是否可以从一个 static 方法内部发出对非 static 方法的调用? 不可以。 因为非 static 方法是要与对象关联在一起的,必须创建一个对象后,才可以在该对象上进行方法调用,而 static 方法调用时不需要创建对象,可以直接调用。 也就是说,当一个 static 方法被调用时,可能还没有创建任何实例对象,如果从一个 static 方法中发出对非static 方法的调用, 那个非 static 方法是关联到哪个对象上的呢? 这个逻辑无法成立,所以,一个 static 方法内部发出对非 static 方法的调用。
4、Integer 与 int 的区别 int 是 java 提供的8种原始数据类型之一。Java 为每个原始类型提供了封装类,Integer 是 java为 int 提供的封装类。 int 的默认值为0,而 Integer 的默认值为 null,即 Integer 可以区分出未赋值和值为0的区别,int 则无法表达出未赋值的情况, 例如,要想表达出没有参加考试和考试成绩为0的区别,则只能使用 Integer。 在 JSP 开发中,Integer 的默认为 null,所以用el 表达式在文本框中显示时,值为空白字符串,而 int 默认的默认值为0, 所以用 el 表达式在文本框中显示时,结果为0,所以,int 不适合作为 web 层的表单数据的类型。 在 Hibernate 中,如果将 OID 定义为 Integer 类型,那么 Hibernate 就可以根据其值是否为null 而判断一个对象是否是临时的, 如果将 OID 定义为了 int 类型,还需要在 hbm 映射文件中设置其 unsaved-value 属性为0。 另外,Integer 提供了多个与整数相关的操作方法,例如,将一个字符串转换成整数,Integer中还定义了表示整数的最大值和最小值的常量。
5、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.ceil(11.6)的结果为11,Math.ceil(-11.6)的结果是-12; 最难掌握的是 round 方法,它表示“四舍五入”,算法为 Math.floor(x+0.5),即将原来的数字加上0.5后再向下取整,所以,Math.round(11.5)的结果为12, Math.round(-11.5)的结果为-11。
6、下面的代码有什么不妥之处? 1. if(username.equals(“zxx”){} username 可能为 NULL,会报空指针错误;改为"zxx".equals(username) 2. int x = 1; return x==1?true:false; 这个改成 return x==1;就可以!
7、请说出作用域 public,private,protected,以及不写时的区别 这四个作用域的可见范围如下表所示。 说明:如果在修饰的元素上面没有写任何访问修饰符,则表示 friendly。 作用域 当前类 同一包(package) 子孙类 其他包(package) public √ √ √ √ protected √ √ √ × friendly √ √ × × private √ × × × 备注:只要记住了有4种访问权限,4个访问范围,然后将全选和范围在水平和垂直方向上 分别按排从小到大或从大到小的顺序排列,就很容易画出上面的图了。 file:///C:/Users/lenovo/AppData/Local/Temp/ksohtml/wps478B.tmp.png
|