`

Java程序员面试题集合(12)

阅读更多
97、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?
可以。必须只有一个类名与文件名相同。
98、MVC 的各个部分都有那些技术来实现?如何实现?
MVC 是 Model- View- Controller 的简写。 "Model" 代表的是应用的业务逻辑(通过JavaBean,EJB 组件实现), "View" 是应用的表示面,用于与用户的交互(由 JSP 页面产生),"Controller" 是提供应用的处理过程控制(一般是一个 Servlet),通过这种设计模型把应用逻辑,处理过程和显示逻辑分成不同的组件实现。这些组件可以进行交互和重用。model 层实现系统中的业务逻辑,view 层用于与用户的交互,controller 层是 model 与 view之间沟通的桥梁,可以分派用户的请求并选择恰当的视图以用于显示,同时它也可以解释用户的输入并将它们映射为模型层可执行的操作。
99、java 中有几种方法可以实现一个线程?用什么关键字修饰同步方法? stop()和 suspend()方法为何不推荐使用?
有两种实现方法,分别是继承 Thread 类与实现 Runnable 接口用 synchronized 关键字修饰同步方法反对使用 stop(),是因为它不安全。它会解除由线程获取的所有锁定,而且如果对象处于一种不连贯状态,那么其他线程能在那种状态下检查和修改它们。结果很难检查出真正的问题所在。suspend()方法容易发生死锁。调用 suspend()的时候,目标线程会停下来,但却仍然持有在这之前获得的锁定。此时,其他任何线程都不能访问锁定的资源,除非被"挂起"的线程恢复运行。对任何线程来说,如果它们想恢复目标线程,同时又试图使用任何一个锁定的资源,就会造成死锁。所以不应该使用 suspend(),而应在自己的 Thread 类中置入一个标志,指出线程应该活动还是挂起。若标志指出线程应该挂起,便用 wait()命其进入等待状态。若标志指出线程应当恢复,则用一个 notify()重新启动线程。
100、java 中有几种类型的流?JDK 为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类?
字节流,字符流。字节流继承于 InputStream OutputStream,字符流继承于 InputStreamReader OutputStreamWriter。在 java.io 包中还有许多其他的流,主要是为了提高性能和使用方便。
101、java 中会存在内存泄漏吗,请简单描述。
的确存在 Java 的内存泄漏, 并且事态可以变得相当严重Java garbage collector 自动释放哪些内存里面程序不在需要的对象, 以此避免大多数的其他程序上下文的内存泄漏. 但是 Java 应用程序依旧会有相当的内存泄漏. 查找原因会十分困难.
有两类主要的 Java 内存泄漏:
* 不再需要的对象引用
* 未释放的系统资源
2.2 非必要的对象引用
Java代码常常保留对于不再需要的对象引用, 并且这组织了内存的垃圾收集器的工作. Java对象通常被其他对象包含引用, 为此一个单一对象可以保持整个对象树在内存中, 于是导致了如下问题:
* 在向数组添加对象以后遗漏了对于他们的处理
* 直到你再次使用对象的时候都不释放引用. 比如一个菜单指令可以插件一个对象实例引用并且不释放便于以后再次调用的时候使用, 但是也许永远不会发生.
* 在其他引用依然需要旧有状态的时候贸然修改对象状态. 比如当你为了在一个文本文件里面保存一些属性而使用一个数组, 诸如"字符个数"等字段在不再需要的时候依然保留在内存当中.
* 允许一个长久执行的线程所引用的对象. 设置引用为 NULL 也无济于事, 在线程退出和空闲之前, 对象不会被收集释放
2.3 未释放的系统资源
Java 方法可以定位 Java 实例意外的堆内存, 诸如针对视窗和位图的内存资源. Java 常常通过JNI(Java Native Interface)调用 C/C++子程序定位这些资源.
102、Java中实现多态的机制是什么?
方法的重写 Overriding 和重载 Overloading 是 Java 多态性的不同表现。重写 Overriding 是父类与子类之间多态性的一种表现,重载 Overloading 是一个类中多态性的一种表现。
分享到:
评论

相关推荐

    java程序员面试题集合

    ### Java程序员面试题集合知识点详解 #### 一、面向对象的四大特征 1. **抽象** 抽象是面向对象编程中的一个重要概念,它指的是在设计阶段仅考虑问题的关键部分,忽略不相关的细节。抽象可以分为两类: - **...

    JAVA程序员面试题集合

    java 面试题 面试 集合 程序员面试

    Java程序员面试题集(1-50)

    以上仅是 Java 程序员面试中可能涉及的一部分知识点,实际面试中还会有更多关于设计模式、JVM 内存模型、数据库操作、网络编程等方面的问题。掌握这些基础和进阶知识对于成为一名优秀的 Java 开发者至关重要。

    java程序员面试题

    Java程序员面试题是一个涵盖广泛领域的主题,涉及到Java基础、Web开发、设计模式、数据库和框架等多个方面。以下是对这些文件内容的详细解析: 1. **Model1-CoreJava.doc & Model1-CoreJava-answer.doc**: 这部分...

    Java程序员面试宝典

    《Java程序员面试宝典》列举了各大IT公司的面试真题,详细分析了应聘Java程序员职位的常见考点,主要内容包括面试流程及求职准备、Java语言基础、数据类型、集合框架、图形用户界面、输入与输出、多线程、反射机制、...

    Java程序员面试题集

    Java程序员面试时,通常会遇到一系列关于语言特性和框架的问题,这些题目旨在考察候选人的基础知识、问题解决能力和实践经验。以下是对这些面试题目的详细解答: 1. **final, finally, finalize的区别**: - `...

    JAVA程序员面试题集合.doc

    【JAVA程序员面试题集合】 1. **面向对象的特征** - **抽象**:抽象是将复杂的现实问题简化,忽略不相关细节,关注核心功能。它包括过程抽象(方法)和数据抽象(类)。例如,设计一个汽车类,可能会抽象出引擎、...

    Java程序员面试笔试宝典-何昊pdf版

    根据提供的文件信息,我们可以推断出这是一本关于Java程序员面试和笔试准备的书籍,作者为何昊。本书可能包含了大量关于Java编程语言的基础知识、高级特性以及与面试相关的技巧和策略等内容。下面将对可能涉及的重要...

    2018最新最全JAVA程序员面试题

    ### 2018最新最全JAVA程序员面试题解析 #### 一、面向对象的特征有哪些方面? 面向对象编程(OOP)是Java的核心思想之一,它主要包括以下四个关键特性: 1. **抽象**:抽象是面向对象编程的一个核心概念,指的是在...

    java程序员面试题大全

    根据提供的文件信息,我们可以整理出一系列与Java程序员面试相关的知识点,包括但不限于基本数据类型、字符串操作、集合框架、异常处理等内容。下面是详细的知识点解析: ### 基本数据类型 1. **基本数据类型与...

    Java程序员面试题大全

    【Java程序员面试题详解】 1. 数据库操作: - 创建表A时,要设置m字段为唯一(UNIQUE)且非空(NOT NULL),n字段初始值为0,m、n、y字段不可为空(NOT NULL)。 - 修改表A的n字段初始值,可以通过ALTER TABLE...

    java程序员面试题——863面试集

    ### Java程序员面试题详解 #### 一、Java基础知识 1. **作用域public, private, protected, 以及不写时的区别** - **public**: 可以被任何类访问。 - **protected**: 可以被同一包内及不同包内的子类访问。 - ...

    java程序员面试面试题

    Java程序员在面试中可能会遇到各种各样的问题,涵盖了语言基础、数据结构、并发编程等多个方面。下面我们将深入探讨这些知识点。 首先,对于Java语法规范,这是每个Java开发者的基础。这包括但不限于变量声明、数据...

    华为公司java程序员面试试题

    ### 华为公司Java程序员面试试题解析 #### 颈环节一:面向对象的基本概念 1. **面向对象的特征**: - 封装:将数据和操作这些数据的方法捆绑在一起,隐藏对象的属性和实现细节,仅对外提供公共访问方式。 - 继承...

    1000道Java 程序员必备面试题-V1版.pdf

    Java 程序员必备面试题-V1版.pdf 本资源是一个 Java 面试题集,涵盖了 Java 基础、集合、并发、MySQL、Kafka 等高频知识点。下面是对标题和描述中所说的知识点的详细说明: 动态代理 在 Java 中,动态代理可以...

    java程序员面试题集和部分外企笔试真题总结

    这份资料集合了“java程序员面试题集”和“部分外企笔试真题总结”,是准备Java技术面试和外企笔试的宝贵资源。以下将针对这两个核心内容展开详细的解析。 首先,Java程序员面试题集通常涵盖了以下几个方面的知识:...

Global site tag (gtag.js) - Google Analytics