博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java----牛客练习
阅读量:6713 次
发布时间:2019-06-25

本文共 2333 字,大约阅读时间需要 7 分钟。

一、下面代码的输出结果是什么?

public class ZeroTest {    public static void main(String[] args) {     try{       int i = 100 / 0;       System.out.print(i);  }catch(Exception e){       System.out.print(1);       throw new RuntimeException();  }finally{       System.out.print(2);  }      System.out.print(3); } }
分析:
1、inti = 100/ 0; 会出现异常,会抛出异常,System.out.print(i)不会执行,
2、catch捕捉异常,继续执行System.out.print(1);
3、当执行 thrownewRuntimeException();  又会抛出异常,这时,除了会执行finally中的代码,其他地方的代码都不会执行
4.  还是需要理解Try...catch...finally与直接throw的区别:try catch是直接处理,处理完成之后程序继续往下执行,throw则是将异常抛给它的上一级处理,程序便不往下执行了。本题的catch语句块里面,打印完1之后,又抛出了一个RuntimeException,程序并没有处理它,而是直接抛出,因此执行完finally语句块之后,程序终止了
5.
首先执行try,遇到算术异常,抛出,执行catch,打印1,然后抛出RuntimeException,缓存异常,执行finally,打印2,然后抛出RuntimeException。
如果catch中没有抛出RuntimeException,则执行结果为123。
二、在Java中,以下关于方法重载和方法重写描述正确的是?
目前的问题:父类的功能无法满足子类的需求。
 
方法重写的前提: 必须要存在继承的关系。
 
方法的重写: 子父类出了同名的函数,这个我们就称作为方法的重写。
 
什么是时候要使用方法的重写:父类的功能无法满足子类的需求时。
 
方法重写要注意的事项:
    1.方法重写时, 方法名与形参列表必须一致。
    2.方法重写时,子类的权限修饰符必须要大于或者等于父类的权限修饰符。
    3.方法重写时,子类的返回值类型必须要小于或者 等于父类的返回值类型。
    4.方法重写时, 子类抛出的异常类型要小于或者等于父类抛出的异常类型。
            Exception(最坏)
            RuntimeException(小坏)
 
方法的重载:在一个类中 存在两个或者两个 以上的同名函数,称作为方法重载。
 
方法重载的要求
    1. 函数名要一致。
    2. 形参列表不一致(形参的个数或形参 的类型不一致)
    3. 与返回值类型无关。
三、
方法的重写(override)两同两小一大原则
方法名相同,参数类型相同
子类返回类型小于等于父类方法返回类型,
子类抛出异常小于等于父类方法抛出异常,
子类访问权限大于等于父类方法访问权限。
四、
public class Niuke_java {    public static boolean isAdmin(String userId)    {        return userId.toLowerCase() =="admin";    }    public static void main(String[] args) {        // TODO Auto-generated method stub        System.out.println(isAdmin("Admin"));    }}       //  答案返回false

equals和==的区别 ==操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同。

==是判断地址,string的tolowercase很明显是拿着原有的字符串又new了个地象,所以地址不一样。

五、

class Foo {    final int i;    int j;    public void doSomething() {        System.out.println(++j + i);    }}//不能执行,因为编译有错
 
final作为对象成员存在时,必须初始化;但是,如果不初始化,也可以在类的构造函数中初始
 
因为java允许将数据成员声明为final,却不赋初值。但是,blank finals必须在使用之前初始化,且必须在构造函数中初始化。
final修饰的变量是常量,必须进行初始化,可以显示初始化,也可以通过构造进行初始化,如果不初始化编译会报错。
六、
A. StringBuffer类调用toString()方法后将转换为String类型   正确 
B. String类型中没有append()方法,要追加字符串”+“即可,也没有必要 append 
C. 可以直接将字符串“test”复制给声明的Stirng类的变量,而StringBuffer类的不行 
D. String 实例 是不可变的
String 对象/实例 是不可以被改变的。

当new一个String对象时,会在内存中创建一个String对象,当另外一个String对象值与它一样时,会将该对象直接指向对应的地址。

转载于:https://www.cnblogs.com/simplepaul/p/6505678.html

你可能感兴趣的文章
Ngios plugin for cacti(NPC)
查看>>
求数组中最长递增子序列
查看>>
前端开发面试题(收集贴)
查看>>
Spring Boot cache backed redis
查看>>
有趣的编程----控制自己电脑的CPU
查看>>
linux的目录结构
查看>>
Java中创建对象的5种不同方法
查看>>
Supervisor安装
查看>>
自建框架知识点一命名空间和自动加载
查看>>
21_css布局2_浮动布局.html
查看>>
DateUtils 单元下的公用函数目录
查看>>
构建高效安全的Nginx Web服务器
查看>>
单播,多播,广播的区分
查看>>
jQuery 练习[二]: 获取对象(1) - 基本选择与层级
查看>>
WinAPI: EqualRect、EqualSid、EqualPrefixSid - 判断一个矩形(或其他结构)是否相等
查看>>
ETag
查看>>
【Kafka】《Kafka权威指南》——提交和偏移量
查看>>
GNS3桥接真机网卡
查看>>
Web服务之LNMMP架构及动静分离实现
查看>>
centos6.4搭建zabbix
查看>>