`
- 浏览:
7797 次
- 性别:
- 来自:
广州
-
1、final, finally, finalize的区别。 final—修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载。 -------可用于变量、方法、类。finally—再异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常,那么相匹配的 catch 子句就会执行,然后控制就会进入 finally 块(如果有的话)。 finalize—方法名。Java 技术允许使用 finalize() 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在 Object 类中定义的,因此所有的类都继承了它。子类覆盖 finalize () 方法以整理系统资源或者执行其他清理工作。finalize() 方法是在垃圾收集器删除对象之前对这个对象调用的。
2、sleep() 和 wait() 有什么区别? sleep()方法是使线程停止一段时间的方法。在sleep 时间间隔期满后,线程不一定立即恢复执行。这是因为在那个时刻,其它线程可能正在运行而且没有被调度为放弃执行,除非(a)“醒来”的线程具有更高的优先级。 (b)正在运行的线程因为其它原因而阻塞。 wait()是线程交互时,如果线程对一个同步对象x 发出一个wait()调用,该线程会暂停执行,被调对象进入等待状态,直到被唤醒或等待时间到。
3、Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型? 方法的重写Overriding和重载Overloading是Java多态性的不同表现。 重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。 如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。
4、构造器Constructor是否可被override? 构造器Constructor不能被继承,因此不能重写Overriding,但可以被重载Overloading。 5、GC是什么? 为什么要有GC? GC是垃圾收集器。Java 程序员不用担心内存管理,因为垃圾收集器会自动进行管理。要请求垃圾收集,可以调用下面的方法之一: System.gc() Runtime.getRuntime().gc()
6、error和exception有什么区别? error 表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况。 exception 表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。
7、abstract class和interface有什么区别? 声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。 接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽象的,没有一个有程序体。接口只可以定义static final成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换,instanceof 运算符可以用来决定某对象的类是否实现了接口。 8、启动一个线程是用run()还是start()? 启动一个线程是调用start()方法,使线程所代表的虚拟处理机处于可运行状态,这意味着它可以由JVM调度并执行。这并不意味着线程就会立即运行。run()方法可以产生必须退出的标志来停止一个线程。[align=center][/align][size=medium][/size]
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
下面将详细解析几个关键的知识点,帮助理解Java中的核心概念。 ### 1. 面向对象的四大特征 #### 抽象 抽象是面向对象编程的核心思想之一,它允许程序员将复杂的问题简化,关注于问题的关键部分,而忽略不相关的...
代码混淆的具体实现通常涉及以下几个步骤: 1. 预处理:分析输入的Java源代码或编译后的字节码,提取出关键元素,如类、方法、变量等。 2. 混淆规则定义:根据预处理结果,制定混淆规则,例如设置保留关键字、类名...
`final`关键字可以应用于以下几个方面: 1. **final变量**:当一个变量被声明为`final`时,它成为了一个不可修改的常量。这意味着一旦赋值后,变量的值就不能再改变。对于成员变量,它们必须在声明时或构造器中初始...
* 关键字和保留字:Java 中的一些关键字和保留字,例如 `public`、`static`、`void` 等 * 标识符:Java 中的标识符,例如变量名、方法名等 * 变量:Java 中的变量,包括基本数据类型和引用类型 * 常量:Java 中的...
`this`关键字主要有以下几个方面的应用: 1. **引用当前对象的属性:** 当类中的方法或构造器有与局部变量同名的成员变量时,`this`可以用来明确地引用当前对象的属性。例如: ```java public class Student { ...
以下是对`this`关键字在Java中的几种主要用法的详细解析: ### 1. 当前对象的引用 `this`最基本的作用是作为当前对象的引用。当你在一个类的方法内部使用`this`时,它指向调用该方法的对象。例如,在`ThisTest`类...
以上只是Java中部分常见的难点和易混淆点。通过深入学习和实践,初学者可以逐渐克服这些疑惑,成为一名熟练的Java开发者。"JAVA解惑.pdf"这份文档很可能详细阐述了这些问题,建议仔细阅读,以便更好地理解Java编程。
在Java中,`this`关键字有以下几种常见用法: 1. **访问实例变量**:当成员变量与局部变量或参数变量重名时,`this`可以帮助我们明确地访问类的实例变量。例如,在下面的代码中,`this.name`和`this.age`用于访问...
方法重写主要涉及到以下几个关键点: 1. **重写条件**:子类必须与父类具有相同的方法名、参数列表以及返回类型。返回类型可以更具体,但不能更抽象。重写的方法不能降低访问权限,例如,如果父类方法是public,...
在Java世界中,有几个知名的反编译工具,如JAD、FernFlower、Procyon以及我们这里提到的JD-GUI。 JD-GUI是一个直观的图形用户界面应用程序,允许用户直接打开并查看单个Java类文件的源代码。它无需编程知识,非常...
在 Java 中,final、finally 和 finalize 三个概念经常被混淆,但它们的作用和用途完全不同。 首先,final 是一个修饰符(关键字),如果一个类被声明为 final,意味着它不能再派生出新的子类,不能作为父类被继承...
以下将详细解析几个可能遇到的知识点: 1. **类型转换与自动装箱拆箱**:Java中存在基本类型与其对应的包装类,如`int`与`Integer`。自动装箱与拆箱可以简化代码,但也会引入一些问题,例如在循环中使用`Integer`而...
关键字在Java中具有特殊含义,它们被系统保留使用,不能用作标识符。Java中的关键字包括但不限于: - **基本数据类型关键字**:`byte`, `int`, `short`, `long` 等,用于声明基本类型的变量。 - **访问控制关键字**...
我们可以从中提炼出以下几个关键的Java编码规范要点: 1. 命名规范:包括类名、方法名、变量名、常量名等,应遵循一定的命名规则以保持代码清晰易读。例如,类名通常采用大驼峰命名法(每个单词的首字母大写),如`...
* 接口的用处体现在以下几个方面: + 通过接口实现不相关类的相同行为,而无需考虑这些类之间的关系。 + 通过接口指明多个类需要实现的方法。 + 通过接口了解对象的交互界面,而无需了解对象所对应的类。 * 接口...
题目中提到的几个版本: 1. **JAVA2 EE(Enterprise Edition)** - 针对企业级应用开发设计。 2. **JAVA2 Card** - 专为智能卡等嵌入式设备设计。 3. **JAVA2 ME(Micro Edition)** - 适用于移动设备和嵌入式系统的...
文档“java_disabuse.doc”可能包含了以下几个方面的重要知识点: 1. **基础语法**:Java的基础语法包括数据类型(如整型、浮点型、字符型和布尔型)、变量声明、运算符、流程控制(如if语句、for循环和while循环)...
- **1.3 几个建议**:基于作者的经验和个人观察,为即将进入职场的Java软件工程师提供了一些宝贵的建议。 - **1.4 本章小结**:总结了本章的主要内容,并强调了作为Java软件工程师在求职过程中需要注意的关键点。 #...
APK文件主要由以下几个部分组成: - **res**:包含应用的各种资源文件,如图像、布局文件等。这些资源文件会被编译并映射到`.R`文件中,便于在代码中引用。 - **assets**:存放不受资源管理器约束的任意格式文件,...