java记忆性题目

一、抽象类和接口的区别。
接口只有定义,                                        抽象类可以有定义和实现
接口的字段定义默认为:public static final,    抽象类字段默认是"friendly"(本包可见)
接口可以被多重implements,                     抽象类只能被单一extends

当功能需要累积时用抽象类,不需要累积时用接口。

三、Overload和Override的区别。

Override(重写):子类覆盖父类的方法。将子类传与父类的引用,调用的还是子类的方法。
Overload(重载):在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型。这些方法的返回值类型也可以不同。
两者都是Java多态性的不同表现。

三、final, finally, finalize的区别。

final修饰的类不能被继承(String就是一个被final修饰的类);final修饰的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。一般用于声明常量,或者系统设置的值。final修饰的方法也同样只能使用,不能重写。

finally在异常处理中使用,用于必须处理的事情,如关闭连接。

finalize—方法名。在垃圾收集器将对象从内存中清除出去之前,对这个对象调用finalize方法,做必要的清理工作。这个方法是在 Object 类中定义的,因此所有的类都继承了它。子类覆盖 finalize() 方法以整理系统资源或者执行其他清理工作。

二、super()与this()的区别?
This():当前类的对象, 而this他代表当前对象,当然所有的资源都可以访问.
super父类对象。Super():在子类访问父类的成员和行为,必须受类继承规则的约束

在构造函数中,如果第一行没有写super(),编译器会自动插入.
但是如果父类没有不带参数的构造函数,或这个函数被私有化了.此时你必须加入对父类的实例化构造.

而this就没有这个要求,因为它本身就进行实例化的构造.

而在方法中super和this使用的方法就差不多了.只不过super 要考虑是否能访问其父类的资源.

三、JAVA的事件委托机制和垃圾回收机制。
Java事件委托机制:
一个源产生一个事件并将它送到一个或多个监听器那里。
在这种方案中,监听器简单的等待,直到它收到一个事件。
一旦事件被接受,监听器将处理这个事件,然后返回。
垃圾回收机制:
垃圾收集是将分配给对象但不再使用的内存回收或释放的过程。
如果一个对象没有指向它的引用或者其赋值为null,则该对象适合进行垃圾回收。

四、什么是java序列化,如何实现java序列化?(写一个实例)
序列化:
处理对象流的机制,所谓对象流也就是将对象的内容进行流化。
可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。
序列化是为了解决在对对象流进行读写操作时所引发的问题。

序列化的实现:
将需要被序列化的类实现Serializable接口,该接口没有需要实现的方法,
implementsSerializable只是为了标注该对象是可被序列化的,
然后使用一个输出流(如:FileOutputStream)来构造一个ObjectOutputStream(对象流)对象,
接着,使用ObjectOutputStream对象的writeObject(Object obj)方法就可以将参数为obj的对象写出(即保存其状态),
要恢复的话则用输入流。

19、什么是类的反射机制?
通过类(Class对象),可以得出当前类的fields、method、construtor、interface、superClass、modified等,
同是可以通过类实例化一个实例、设置属性、唤醒方法。
Spring中一切都是返射、struts、hibernate都是通过类的返射进行开发的。

时间: 2024-10-10 17:17:55

java记忆性题目的相关文章

Java 并发和多线程(一) Java并发性和多线程介绍[转]

作者:Jakob Jenkov 译者:Simon-SZ  校对:方腾飞 http://tutorials.jenkov.com/java-concurrency/index.html 在过去单CPU时代,单任务在一个时间点只能执行单一程序.之后发展到多任务阶段,计算机能在同一时间点并行执行多任务或多进程.虽然并不是真正意义上的“同一时间点”,而是多个任务或进程共享一个CPU,并交由操作系统来完成多任务间对CPU的运行切换,以使得每个任务都有机会获得一定的时间片运行. 随着多任务对软件开发者带来的

如何禁止文本框的记忆性输入

HTML中禁止自动完成和禁用输入法收藏 IE提供了一个自动完成功能可以记忆我们的输入内容(如登录帐号等),方便下一次快速地录入类似资料.这确实是一个非常友好的功能, 在操作时只需用鼠标双击文本框或输入前几个字符, 系统会自动列出以前的录入历史供你选择, 大大提高录入速度及准确性. 相信大多数IE的用户都启用了这项功能.      然而做为网站开发者来说, 并不希望什么资料都记忆在用户的电脑上(如银行帐号和其它重要的帐号及密码), 但是我们又不能要求用户禁用自动完成的功能. 幸好IE5.0后为 I

基于记忆性的中值滤波O(r)与O(1)复杂度的算法实现

本文参考博客:https://www.cnblogs.com/Imageshop/archive/2013/04/26/3045672.html 原生的中值滤波是基于排序算法的,这样的算法复杂度基本在O(r2)左右,当滤波半径较大时,排序算法就显得很慢.对此有多种改进算法,这里介绍经典 的Huang算法与O(1)算法,两者都是基于记忆性的算法,只是后者记性更强. 排序算法明显的一个不足之处就是无记忆性.当核向右移动一列后,只是核的最左和最右列数据发生了变化,中间不变的数据应当被存储起来,而排序算

概率统计21——指数分布和无记忆性

指数分布(Exponential distribution)是一种连续型概率分布,可以用来表示独立随机事件发生的时间间隔的概率,比如婴儿出生的时间间隔.旅客进入机场的时间间隔.打进客服中心电话的时间间隔.系统出现bug的时间间隔等等. 指数分布的由来 指数分布与泊松分布存在着联系,它实际上可以由泊松分布推导而来. 泊松分布(概率统计15)中已经介绍过泊松分布,除了作为二项分布的近似外,当独立事件发生的频率固定时,泊松分布还可以刻画算单位时间内事件发生次数的概率分布. 假设某个公司有一个带伤上线的

Java访问性与包的讲解

一.Java中的访问控制 1.private修饰词,表示成员是私有的,只有自身可以访问: 2.protected,表示受保护权限,体现在继承,即子类可以访问父类受保护成员,同时相同包内的其他类也可以访问protected成员. 3.无修饰词(默认),表示包访问权限(friendly, java语言中是没有friendly这个修饰符的,这样称呼应该是来源于c++ ),同一个包内可以访问,访问权限是包级访问权限: 4.public修饰词,表示成员是公开的,所有其他类都可以访问: 具体可见如下表: 表

6、Java并发性和多线程-并发性与并行性

以下内容转自http://tutorials.jenkov.com/java-concurrency/concurrency-vs-parallelism.html(使用谷歌翻译): 术语并发和并行性通常用于多线程程序.但是,并发和并行性究竟是什么意思呢,它们是相同的术语还是什么? 简短的答案是“不”.它们不是相同的术语,尽管它们在表面上看起来非常相似.也花了我一些时间来终于找到并了解并发和并行性之间的区别.因此,我决定在这个Java并发教程中添加一个关于并发性与并行性的文本. 并发 并发意味着

java新手编程题目之我解

题目:通过键盘输入一个整数,并将其用素因子乘积的形式输出,例如输入整数15,则输出"15=3*5". import java.util.Scanner; public class Exercise{    public static void main(String [] args){       Scanner sc=new Scanner(System.in);       System.out.print("请输入您的整数:");       int num=

13、Java并发性和多线程-Java Volatile关键字

以下内容转自http://tutorials.jenkov.com/java-concurrency/volatile.html(使用谷歌翻译): Java volatile关键字用于将Java变量标记为“存储在主存储器”中.更准确地说,这意味着,每个读取volatile变量将从计算机的主存储器中读取,而不是从CPU缓存中读取,并且每个写入volatile变量的写入将被写入主存储器,而不仅仅是写入CPU缓存. 实际上,由于Java 5的volatile关键字保证不仅仅是volatile变量被写入

JAVA 多线程旅游题目代码

题目:输入两个旅游地点,随机10次,哪个地点首先随机完毕就去哪个地点旅游. 以下代码思路为通过多线程运行分别调用两个地点十次,每次调用都影响一个静态数值a,通过a判断是否应输出去此处旅游. import java.util.Random; public class LY extends Thread { String cs; public static int a = 0; public String getCs() { return cs; } public void setCs(String