Java 试题四

Java 试题四

1、abstract class 和interface 有什么区别? 【基础】
答:声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,
并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而可以创建一个变量,其类型
是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract 类的子类为它们
父类中的所有抽象方法提供实现,否则它们也是抽象类。取而代之,在子类中实现该方法。知道其行为的其它类
可以在类中实现这些方法

接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样的接口而获得。
接口中的所有方法都是抽象的,没有一个有程序体。接口只可以定义static final成员变量。接口的实现与子类相似,
除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。
然后,它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类,它允许使用接口名作为引用变量的
类型。通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换,instanceof 运算符可以用来决定某对象
的类是否实现了接口


2、abstract 的method 是否可同时是static,是否可同时是native,
是否可同时是synchronized?
答:都不能


3、是否可以从一个static方法内部发出对非static方法的调用?
答:不可以,如果其中包含对象的method();不能保证对象初始化.


4、写一个Singleton出来
Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。
一般Singleton模式通常有几种种形式:
第一种形式: 定义一个类,它的构造函数为private的,它有一个static的private的该类变量,在类初始化时实例话,通过一个public的getInstance方法获取对它的引用,继而调用其中的方法。


public class Singleton {
private Singleton(){}//在自己内部定义自己一个实例,是不是很奇怪?//注意这是private 只供内部调用private static Singleton instance = new Singleton();//这里提供了一个供外部访问本class的静态方法,可以直接访问  public static Singleton getInstance() {return instance;   } 
} 

第二种形式:

public class Singleton { private static Singleton instance = null;public static synchronized Singleton getInstance() {//这个方法比上面有所改进,不用每次都进行生成对象,只是第一次     //使用时生成实例,提高了效率!if (instance==null)instance=new Singleton();return instance;   } 
} 

其他形式:
定义一个类,它的构造函数为private的,所有方法为static的。
一般认为第一种形式要更加安全些


5、接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)?

答案:接口可以继承接口。抽象类可以实现(implements)接口,抽象类可继承实体类,但实体类必须不能是如下两种情况之一:

  • final修饰符修饰的类是不能的
  • 如果此实体类有且仅有私有的构造函数也是不能的。

6、Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)

答:匿名的内部类是没有名字的内部类。不能extends(继承) 其它类,但一个内部类可以作为一个接口,由另一个内部类实现


7、Static Nested Class 和 Inner Class的不同
答:Nested Class (一般是C++的说法),Inner Class (一般是JAVA的说法)。
Java内部类与C++嵌套类最大的不同就在于是否有指向外部的引用上。
注: 静态内部类(Inner Class)意味着:
- 创建一个static内部类的对象,不需要一个外部类对象,
- 不能从一个static内部类的一个对象访问一个外部类对象


8、谈谈final, finally, finalize的区别
答:final—修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载。
finally—再异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常,那么相匹配的 catch 子句就会执行,然后控制就会进入 finally 块(如果有的话)。
finalize—方法名。Java 技术允许使用 finalize() 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在 Object 类中定义的,因此所有的类都继承了它。子类覆盖 finalize() 方法以整理系统资源或者执行其他清理工作。finalize() 方法是在垃圾收集器删除对象之前对这个对象调用的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/250528.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PyInstaller用法

pyinstaller定义:PyInstaller是一个压缩python文件成为可执行程序的一个软件。 pyinstaller工作原理:① 它会扫描你所有的Python文档,并分析所有代码从而找出所有你的代码运行所需的模块。② PyInstaller会将所有这些模块和你的code放在一个文…

koa --- 监听路由,并使用模板引擎渲染显示

使用路由 /Koa实战/routes/index.js const Router require(koa-router); const router new Router();router.get(/, ctx > {ctx.body index; });module.exports router/Koa实战/routes/users.js const Router require(koa-router); const router new Router({prefi…

公共平台服务治理与鉴权

问题 解决问题 鉴权 注册 管理 总结聊一聊最近了解的公司服务治理平台,主要是思想,理念,而不是一种技术或框架。整个平台设计,融入了OAUTH2认证,融入了微服务思想,帮助公司各系统在复杂的IT架构下&#xff…

Java 试题五

Java 试题五 1、运行时异常与一般异常有何异同 答:异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。java编译器要求方法必须声明抛出可能发生的非运行时异常,…

【初赛】概率与期望学习笔记

一、事件 1、单位事件、事件空间、随机事件 在一次随机试验中可能发生的不能再细分的结果被称为单位事件,用 $ E $ 表示。在随机试验中可能发生的所有单位事件的集合称为事件空间,用 $ S $ 来表示。例如在一次掷骰子的随机试验中,如果用获得的…

koa --- 扩展hbs方法

moment 是一款常用的处理时间的库传入 1999-03-01T16:00:00.000Z YYYY/MM/DD输出 1999/03/02 const moment require(moment);const myDatePattern (date, pattern) >{return moment(date).format(pattern) } 给扩展hbs功能. 放在 utils/helper.js 下方便管理 const hb…

go系列 锁的初识

Go基础之锁的初识 当我们的程序就一个线程的时候是不需要用到锁的,但是通常我们实际的代码不会是单个线程的,所有这个时候就需要用到锁了,那么关于锁的使用场景主要涉及到哪些呢? 当我们多个线程在读相同的数据的时候则是需要加锁…

Java 试题六

Java 试题六 1、Collection 和 Collections的区别 答:Collection是集合类的上级接口,继承与他的接口主要有Set 和List。Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。 2、Set里…

node --- 实现session认证.

跨域认证的问题 互联网服务离不开用户认证.一般流程如下: 1、用户向服务器发送用户名和密码。 2、服务器验证通过后,在当前对话(session)里面保存相关数据,比如用户角色、登录时间等等。 3、服务器向用户返回一个 session_id&…

回信,我的好朋友王一涵

好了,不拖了,沏一杯咖啡,把信写完。因为再拿好吃的贿赂你,贿赂不起了—— 一个胖子可以吃穷我的。 王一涵凹,不得了不得了。微胖肉质女生,关于体重我就不提了,只有我知道嘿嘿嘿,在我…

编写基于Property-based的单元测试

编写基于Property-based的单元测试 作为一个开发者,你可能认为你的职责就是编写代码从而完成需求。我不敢苟同,开发者的工作是通过软件来解决现实需求,编写代码只是软件开发的其中一个方面,编写可靠的软件和产出有价值的代码更加重…

树链剖分+线段树 单点修改 区间求和 模板

马上要去西安打邀请赛了&#xff0c;存下板子 首先是vector存图的&#xff1a; #include<bits/stdc.h> using namespace std; #define ll long long #define lson l,m,rt<<1 #define rson m1,r,rt<<1|1 #define mid int m (l r) >> 1 const int M …

koa --- seesion实现登录鉴权

koa vue session 实现一个简单的登录逻辑 /login component/login-session.html <!DOCTYPE html><head><script src"https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script><script src"https://unpkg.com/axios/dist/axios.…

BZOJ2216: [Poi2011]Lightning Conductor

第一道此类的题&#xff0c;所以这是一篇假的博客&#xff0c;定理不会证明不理性 也不一定对 我是从这篇博客看的 很显然是让你求 p[i] max{a[j] sqrt(i - j)} - a[i] 就是 max{a[j] sqrt(|i - j|)} 这是一个 1D/1D 动态规划 考虑对于绝对值的情况不好做&#xff0c;那就…

HNOI2018游记

HNOI2018游记 day 0 上午稍微写了下题保持手感,然后看了一下套路,感觉不会的还是不会. 下午去划水在湖面上被吹成傻逼... 感觉没有联赛前那么紧张了,应该是联赛考挂了的原因吧.. day1 早上大概7:40就到了考场,和同学聊了一会儿天,看了看配置就进去了. 进去之后敲配置没有一遍对…

Java 试题七

Java 试题七 1、java中有几种类型的流&#xff1f;JDK为每种类型的流提供了一些抽象类以供继承&#xff0c;请说出他们分别是哪些类&#xff1f; 答&#xff1a;字节流&#xff0c;字符流。 字节流继承于InputStream、OutputStream&#xff0c; 字符流继承于Reader、Writer…

flume快速入门及应用

 Flume 简介 Flume 的安装与配置 Fumne 部署   Flume 是 Cloudera 提供的一个高可用、 高可靠、 分布式的海量日志采集、 聚合和传输的系统。 Flume 支持定制各类数据源如 Avro、 Thrift、 Spooling 等。 同时 Flume提供对数据的简单处理&#xff0c; 并将数据处理结果…

koa --- jwt实现最简单的Token认证

HTML 有如下html: 先看代码后挑重点来说明: <!DOCTYPE html><head><script src"https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script><script src"https://unpkg.com/axios/dist/axios.min.js"></script></…

python基础之常用的高阶函数

前言 高阶函数指的是能接收函数作为参数的函数或类&#xff1b;python中有一些内置的高阶函数&#xff0c;在某些场合使用可以提高代码的效率&#xff0e; map() map函数可以把一个迭代对象转换成另一个可迭代对象&#xff0c;不过在python3中&#xff0c;结果都是一个map对象&…

Java 试题八

Java 试题八 1、java中有几种方法可以实现一个线程&#xff1f;用什么关键字修饰同步方法? stop()和suspend()方法为何不推荐使用&#xff1f; 答&#xff1a;有两种实现方法&#xff0c;分别是继承Thread类与实现Runnable接口&#xff1b;用synchronized关键字修饰同步方法…