今天一朋友去面试,带回来一道面试题:
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;
}
}
}
----------------------------------------------------------------------------------------------------
这个问题你是怎么解决的?
谢谢大家的光顾^_^!!
分享到:
相关推荐
4. **异常处理**:理解异常的分类,如何使用try-catch-finally语句块,以及自定义异常。 5. **字符串处理**:String类的特点,StringBuilder和StringBuffer的区别,以及常用的字符串操作方法。 6. **内存管理**:...
- 面试题:解释Java中的try-catch-finally语句块的作用。 - 介绍异常类的层次结构,理解Checked和Unchecked异常的区别。 6. **面向对象编程** - 解释构造器、抽象类、接口的概念和作用。 - 面试题:什么是多态...
6. 异常处理:学习try-catch-finally结构,理解不同类型的异常以及如何抛出和捕获异常。 二、面向对象 1. 类与对象:掌握类的定义、对象的创建以及构造函数的应用。 2. 继承:理解单一继承的特点,以及super...
4. **异常处理**:理解异常类层次结构,何时使用try-catch-finally块,何时使用throw和throw new关键字,以及如何自定义异常。 5. **集合与数据结构**:熟悉ArrayList、LinkedList、HashSet、Dictionary等常用集合...
- 异常处理:try-catch-finally语句块,自定义异常。 - 类加载机制:了解类加载器的工作原理。 **第二节 Java并发面试题** - 并发工具类:Semaphore、CountDownLatch、CyclicBarrier、ThreadPoolExecutor等。 - ...
这里的 `finally` 块是确保即使在 `try` 或 `catch` 中发生异常,`finally` 里的代码也能得到执行,这对于资源管理非常重要,如关闭数据库连接、文件流等。 3. `finalize()` 方法: `finalize()` 是一个特殊的...
"2017java面试题"这个压缩包文件提供了丰富的资源,帮助Java开发者准备面试,深化对Java开发的理解。 文档"Java面试宝典2017.doc"可能包含了以下核心Java知识点: 1. **基础语法**:这包括变量、数据类型、运算符...
Java 异常处理通过 `try-catch-finally` 语句块进行,确保关键代码即使在出现错误时也能执行清理操作。 5. **垃圾回收(Garbage Collection):** Java 自动进行内存管理,当对象不再被引用时,垃圾回收器会回收...
3. 异常处理:掌握try-catch-finally语句块,以及自定义异常。 4. 集合框架:理解List、Set、Map接口及其实现类的特性和使用场景。 5. 多线程:了解并发编程的基础,如线程同步、死锁、线程池。 6. 文件I/O:掌握...
4. **异常处理**:理解Checked异常和Unchecked异常的区别,学习如何使用try-catch-finally语句块进行异常捕获和处理。 5. **集合框架**:熟练掌握ArrayList、LinkedList、HashSet、HashMap等容器的特性和使用场景。...
- **异常处理**:使用try-catch-finally处理运行时错误,理解Exception类及其子类。 2. **C#高级特性** - **LINQ**:Language Integrated Query,用于数据库查询,支持集合、XML和数据库操作。 - **Lambda表达式...
4. **异常处理**:掌握try-catch-finally语句块,理解不同类型的异常(如System.ArgumentException、System.NullReferenceException等),以及如何自定义异常。 5. **LINQ**:语言集成查询(Language Integrated ...
异常处理的最佳实践,比如何时使用try-catch-finally,以及自定义异常的应用;还有关于反射的应用,例如动态加载类、调用方法和字段。 其次,数据库部分通常会涉及到SQL查询优化、事务管理、索引原理、存储过程等。...
- **try-catch-finally**:了解异常处理结构,理解finally块的用途。 - **自定义异常**:如何创建新的异常类型并适当地抛出。 - **using语句**:理解资源自动管理的概念及其工作原理。 4. **内存管理** - **...
《C#与.NET程序员面试题大全》是一份全面的指南,专为准备C#和.NET技术面试的程序员设计。这份资料包含了大量的问题和答案,旨在帮助求职者在面试前做好充分的准备,提升成功的机会。 1. **C#基础知识**: - **...
6. **异常处理**:理解何时使用try-catch-finally结构以及如何有效地抛出和捕获异常,是C++开发者必须掌握的知识。 7. **命名空间**:命名空间用于避免命名冲突,面试题可能会涉及如何使用和管理命名空间。 8. **...
2. **异常处理**:Java异常处理是面试中的常见话题,包括异常的分类(检查型和运行时异常)、try-catch-finally语句块的使用、自定义异常以及如何有效地使用异常处理。 3. **集合框架**:集合框架是Java中非常重要...
### Java面试题知识点概览 #### 面向对象概念 1. **super()与this()的区别**: - `super()`用于调用父类的构造方法或父类成员方法。 - `this()`用于调用本类中的其他构造方法。 2. **作用域public, protected, ...
异常处理:了解try-catch-finally块的使用,以及自定义异常的处理。 二、Java进阶知识 集合框架:熟悉Java集合框架中的List、Set、Map等接口及其实现类,如ArrayList、HashSet、HashMap等。 泛型:理解泛型的概念...
Java和Android面试题涵盖了许多核心概念,以下是这些知识点的详细说明: 1. **面向对象** (Object-Oriented Analysis and Design Principle, OOADP): 面向对象编程是Java和Android开发的基础,它涉及类、对象、继承...