`
天朗java
  • 浏览: 34003 次
  • 性别: Icon_minigender_1
  • 来自: 河南
社区版块
存档分类
最新评论

一道try,finally的面试题

 
阅读更多

今天一朋友去面试,带回来一道面试题:

 

public class TryTest {

 

/**

* @param args

*/

public static void main(String[] args) {

            System.out.println(trytest());

}

private static int trytest()

{

try{

return 1;

}

finally{

return 2;

}

}

 

}

程序运行后输出2,请添加一些代码,让程序输出1。


-------------------------以下是我的解决方案请思考后再看------------------------------------
 方法1: 
public class TryTest {

/**
* @param args
*/
public static void main(String[] args) {  
            System.out.println(trytest());
}
private static int trytest()
{  
try{ 
return 1; 
}
finally{
if(true)
try {
throw new Throwable("cccc");
//  throw   new   ArrayIndexOutOfBoundsException();
} catch (Throwable e) {
// TODO Auto-generated catch block
}
else 
return 2;
}
}

}
方法二:
      
public class TryTest {

/**
* @param args
*/
public static void main(String[] args) {  
            System.out.println(trytest());
}
private static int trytest()
{  
                    try{
                                try{ 
return 1; 
}
finally{
return 2;
         }
                         }finally{
                           return 1;
                        } 
}

}
----------------------------------------------------------------------------------------------------
这个问题你是怎么解决的?
谢谢大家的光顾^_^!! 

 

分享到:
评论
13 楼 天朗java 2011-07-30  
我想面试官的意思应该是不改变 这段代码
try{

return 1;

}

finally{

return 2;



}
的基础上让返回值为1,所以我添加了第二种解决方法,希望大家分享更好的解决方法……
12 楼 wenhanqiang 2011-07-27  
package com.test;

public class TryTest {
public static void main(String[] args) {     
    System.out.println(trytest());    
}    
   
public static int trytest() {     
    try{
        return 1;    
        
    }
    finally {    
        return 2>>1;    
    }    
}    
}
11 楼 wenhanqiang 2011-07-27  
package com.test;

public class TryTest {
	public static void main(String[] args) {      
	    System.out.println(trytest());     
	}     
	    
	public static int trytest() {      
	    try{
	        return 1;     
	         
	    }
	    finally {     
	        return 2>>1;     
	    }     
	}     
}


这样写不知道对不对,这个是C程序员出的题
10 楼 $会飞的鱼$ 2011-07-27  
try {
int i = 1/0;
    return 1;

}finally {
   //return 2;
}
这样不就可以了吗?finally是最后执行的,要程序最后返回1,无非两种情况,1、在finally中返回1,就是楼主给的那种;2、finally不反回任何值。
9 楼 liweixw 2011-07-27  
finally 执行顺序问题吗?  考的是?  
8 楼 liweixw 2011-07-27  
public static int   foo() {
		try{
			return 1;
		} finally {
			if(false==true)
				return 2;
		}
	}

7 楼 fengxiaokai 2011-07-27  
try {
int i = 1/0;
return 1;

}finally {
return 2;
}
6 楼 a11ght 2011-07-27  
603035273 写道
try {
    return 1;
    System.exit(0);
} finally {
     ......
}
这是正解,当try 部分写入了System.exit(0)后,此语句块会停止执行,自动跳出。

你试过了吗?连编译都过不去。
5 楼 天朗java 2011-07-26  
等待更有说服力的答案……
4 楼 fredduxiao 2011-07-26  
try {
return 1;
} finally{
if(true){
return 1;
}
return 2;
}
3 楼 bywyu 2011-07-25  
return 后面是不能执行语句的.
try{
   return 1;
   //这个位置不能存在语句的.
}
2 楼 603035273 2011-07-25  
try {
    return 1;
    System.exit(0);
} finally {
     ......
}
这是正解,当try 部分写入了System.exit(0)后,此语句块会停止执行,自动跳出。
1 楼 goldenfish1919 2011-07-25  
try{
   return 1;
   System.exit(0);
}

相关推荐

    2019互联网面试题第2季,互联网面试题及答案,Java

    4. **异常处理**:理解异常的分类,如何使用try-catch-finally语句块,以及自定义异常。 5. **字符串处理**:String类的特点,StringBuilder和StringBuffer的区别,以及常用的字符串操作方法。 6. **内存管理**:...

    计算机和JAVA 面试题大全

    - 面试题:解释Java中的try-catch-finally语句块的作用。 - 介绍异常类的层次结构,理解Checked和Unchecked异常的区别。 6. **面向对象编程** - 解释构造器、抽象类、接口的概念和作用。 - 面试题:什么是多态...

    Java面试题和练习题

    6. 异常处理:学习try-catch-finally结构,理解不同类型的异常以及如何抛出和捕获异常。 二、面向对象 1. 类与对象:掌握类的定义、对象的创建以及构造函数的应用。 2. 继承:理解单一继承的特点,以及super...

    .net面试题.net面试题.net面试题.net面试题(经典)

    4. **异常处理**:理解异常类层次结构,何时使用try-catch-finally块,何时使用throw和throw new关键字,以及如何自定义异常。 5. **集合与数据结构**:熟悉ArrayList、LinkedList、HashSet、Dictionary等常用集合...

    阿里巴巴Android面试题集(答案解析)1

    - 异常处理:try-catch-finally语句块,自定义异常。 - 类加载机制:了解类加载器的工作原理。 **第二节 Java并发面试题** - 并发工具类:Semaphore、CountDownLatch、CyclicBarrier、ThreadPoolExecutor等。 - ...

    java面试题 谈谈final, finally, finalize的区别

    这里的 `finally` 块是确保即使在 `try` 或 `catch` 中发生异常,`finally` 里的代码也能得到执行,这对于资源管理非常重要,如关闭数据库连接、文件流等。 3. `finalize()` 方法: `finalize()` 是一个特殊的...

    2017java面试题

    "2017java面试题"这个压缩包文件提供了丰富的资源,帮助Java开发者准备面试,深化对Java开发的理解。 文档"Java面试宝典2017.doc"可能包含了以下核心Java知识点: 1. **基础语法**:这包括变量、数据类型、运算符...

    java 面试题基础题,sql 面试题 带答案

    Java 异常处理通过 `try-catch-finally` 语句块进行,确保关键代码即使在出现错误时也能执行清理操作。 5. **垃圾回收(Garbage Collection):** Java 自动进行内存管理,当对象不再被引用时,垃圾回收器会回收...

    sql面试题,java面试题

    3. 异常处理:掌握try-catch-finally语句块,以及自定义异常。 4. 集合框架:理解List、Set、Map接口及其实现类的特性和使用场景。 5. 多线程:了解并发编程的基础,如线程同步、死锁、线程池。 6. 文件I/O:掌握...

    java面试题总结资料

    4. **异常处理**:理解Checked异常和Unchecked异常的区别,学习如何使用try-catch-finally语句块进行异常捕获和处理。 5. **集合框架**:熟练掌握ArrayList、LinkedList、HashSet、HashMap等容器的特性和使用场景。...

    各大软件公司C#笔试面试题

    - **异常处理**:使用try-catch-finally处理运行时错误,理解Exception类及其子类。 2. **C#高级特性** - **LINQ**:Language Integrated Query,用于数据库查询,支持集合、XML和数据库操作。 - **Lambda表达式...

    C#面试题汇总

    4. **异常处理**:掌握try-catch-finally语句块,理解不同类型的异常(如System.ArgumentException、System.NullReferenceException等),以及如何自定义异常。 5. **LINQ**:语言集成查询(Language Integrated ...

    5年java面试题汇总.docx

    异常处理的最佳实践,比如何时使用try-catch-finally,以及自定义异常的应用;还有关于反射的应用,例如动态加载类、调用方法和字段。 其次,数据库部分通常会涉及到SQL查询优化、事务管理、索引原理、存储过程等。...

    C#面试题(近期在各公司中比较流行的面试题)

    - **try-catch-finally**:了解异常处理结构,理解finally块的用途。 - **自定义异常**:如何创建新的异常类型并适当地抛出。 - **using语句**:理解资源自动管理的概念及其工作原理。 4. **内存管理** - **...

    c#,.net 程序员常见面试题大全(含答案)

    《C#与.NET程序员面试题大全》是一份全面的指南,专为准备C#和.NET技术面试的程序员设计。这份资料包含了大量的问题和答案,旨在帮助求职者在面试前做好充分的准备,提升成功的机会。 1. **C#基础知识**: - **...

    c++50道经典面试题pdf格式

    6. **异常处理**:理解何时使用try-catch-finally结构以及如何有效地抛出和捕获异常,是C++开发者必须掌握的知识。 7. **命名空间**:命名空间用于避免命名冲突,面试题可能会涉及如何使用和管理命名空间。 8. **...

    java 面试题大全 各大公司面试题总汇

    2. **异常处理**:Java异常处理是面试中的常见话题,包括异常的分类(检查型和运行时异常)、try-catch-finally语句块的使用、自定义异常以及如何有效地使用异常处理。 3. **集合框架**:集合框架是Java中非常重要...

    Java后端面试题

    ### Java面试题知识点概览 #### 面向对象概念 1. **super()与this()的区别**: - `super()`用于调用父类的构造方法或父类成员方法。 - `this()`用于调用本类中的其他构造方法。 2. **作用域public, protected, ...

    Java面试题合集最新版2024.zip

    异常处理:了解try-catch-finally块的使用,以及自定义异常的处理。 二、Java进阶知识 集合框架:熟悉Java集合框架中的List、Set、Map等接口及其实现类,如ArrayList、HashSet、HashMap等。 泛型:理解泛型的概念...

    常见的java,android面试题整理

    Java和Android面试题涵盖了许多核心概念,以下是这些知识点的详细说明: 1. **面向对象** (Object-Oriented Analysis and Design Principle, OOADP): 面向对象编程是Java和Android开发的基础,它涉及类、对象、继承...

Global site tag (gtag.js) - Google Analytics