核心Java面试答案不正确

总览

在Internet上,Java面试问题和答案从一个网站复制到另一个网站。 这可能意味着错误或过时的答案可能永远不会得到纠正。 这是一些不太正确或已经过时的问题和答案。 即是Java 5.0之前的版本。

每个提供的问题后都有两个部分。 斜体的第一部分指示答案不完整/错误。 最后一部分以纯格式提供完整/正确的答案。

参数可以通过几种方式传递给子例程并进行解释?

参数可以通过两种方式传递。 它们通过价值传递,通过参考传递。
按值传递:此方法将参数的值复制到子例程的形式参数中。
通过引用传递:在此方法中,对参数的引用(而不是参数的值)传递给参数。

Java仅支持按值传递。 您可以按值传递引用,但是在Java中不能按引用传递。 Java引用可以描述为“通过共享调用”,但这并不常用。

什么是垃圾回收?如何明确调用它?

当某个对象不再由任何变量引用时,java会自动回收该对象使用的内存。 这称为垃圾收集。 系统。 gc()方法可用于显式调用它。

当对象不再具有来自Root上下文的强引用时,就可以进行清除。 具有弱参考或软参考的对象可以清除。 没有强引用的对象可能无法清除(即,没有保证将运行GC,次要GC不会清除使用期限的对象)

System.gc() 提示应该运行Full GC。 可以使用命令行选项禁用它。

什么是瞬态和挥发性修饰剂?

瞬态:瞬态修饰符仅适用于变量,并且不存储为对象持久性状态的一部分。 暂态变量未序列化。
易失性:易失性修饰符仅适用于变量,它告诉编译器,由易失性修改的变量可能会被程序的其他部分意外更改。

瞬态只能应用于字段,而不能应用于局部变量。 它可以应用于静态变量,但通常会被忽略。 临时字段不会自动序列化,但是可以通过自定义序列化进行序列化,例如writeObject和readObject()

volatile只能应用于字段,并告诉JIT而不是告诉编译器,每次访问都必须获取该字段的缓存一致性副本。 (通常来自“主”内存)

解释关键字transient的用法?

此关键字指示此成员变量的值不必与对象序列化。 当将反序列化该类时,将使用其数据类型的默认值(即,对于整数为零)来初始化此变量。

此关键字表示该字段不能自动序列化。 它不会自动反序列化,并保留该字段的默认值。 Integer的默认值为nullint的默认值为0

什么是方法重载和方法重载?

方法重载:当类中具有相同方法名,不同参数的方法被称为方法重载时。
方法覆盖:当类中具有相同方法名称和相同参数的方法被称为方法覆盖。

当两个方法具有相同的名称但签名不同时,就会发生方法重载。 签名包括参数类型和通用类型。 可以使用不同的参数调用单个方法,而可以使用相同的参数调用两个重载方法。 即它的签名而不是重要的论据。

仅当子类具有与父类中的方法相同的签名时,才发生方法重写。

Integer和int有什么区别?

  1. 整数是在Java中定义的类。 lang包,而int是用Java语言本身定义的原始数据类型。 Java不会自动从一种转换为另一种。
  2. 整数可以用作需要对象的方法的参数,而整数可以用于计算。

Integer是对包装int的对象的引用。自添加自动装箱和拆箱以来,主要区别在于Integer可以为null,并且==运算符比较Integer的引用和int类型的实际值。

Integer i1 = 1;
Integer i2 = 1;
// true as the same autoboxed Integer is used.
System.out.println(i1 == i2); Integer i3 = -200;
Integer i4 = -200;
// false as different autoboxed Integer objects are used.
System.out.println(i3 == i4);

线程的不同状态是什么?

不同的线程状态为就绪,运行,等待和死机。

由于Java 5.0应该是正在开发的大多数Java系统,因此Thread.State类将线程可能的状态列出为

  • NEW –尚未启动的线程处于此状态。
  • 可运行–在Java虚拟机中执行的线程处于此状态。
  • BLOCKED –已阻塞,等待监视器锁定的线程处于此状态。
  • 等待中–无限期等待另一个线程执行特定操作的线程处于此状态。
  • TIMED_WAITING –正在等待另一个线程执行操作的线程最多达到指定的等待时间,该线程处于此状态。
  • 终止–退出的线程处于此状态。

所有班级的基础班是哪一个?

java.lang.Object

对于自定义类,这是正确的。 对于基本类型,例如int.class,void.class和Object本身没有超类。

Class parent = boolean.class.getSuperclass(); // returns null

什么是守护线程?

在后台运行的Theards [sic]被称为守护进程线程。 守护程序线程是一个线程,一旦进入运行状态,该线程便没有任何机会运行其他线程,而它也没有任何机会运行其他线程。

守护程序线程是不会阻止JVM关闭的任何线程。 任何线程都可以视为“后台”线程。 守护程序线程被赋予与非守护程序线程相同的优先级(基于它们的优先级)。当守护程序线程正在运行时,它不会阻止另一个线程与非守护程序线程在运行上有任何不同。

守护程序线程是低优先级的线程,它在后台间歇地运行,为Java运行时系统执行垃圾回收操作。

垃圾收集器是守护线程的一个示例。 守护程序线程可以具有较高的优先级,并且可以一直运行。

对switch语句的每种情况的值施加什么限制?

在编译时,switch语句的每个case值必须计算为int值

从Java 5.0开始,支持打开枚举,从Java 7开始,支持打开String。

什么是Java Bean?

Java Bean是一种软件组件,其设计旨在可在各种不同的环境中重用。

恕我直言:这个答案含糊不清,可能在谈论任何事情。

Java Bean是“可序列化的Java对象,具有一个null构造函数,并允许使用getter和setter方法访问属性。”

为什么要使用同步块与同步方法?

与同步方法相比,同步块放置锁的时间更短。

这可能是正确的,但不能保证。 通常,同步块用于通过同步方法来锁定对对象的多次调用。 IMHO用于同步块的最常见的用途是锁定在以外另一个目的

Map<key, value=""> map = Collections.synchronizedMap(new LinkedHashMap<key, value="">());
// perform multiple operations in a thread safe manner
synchronized(map) {
Value value = map.get(key);
if (value == null)
map.put(key, value = new Value(key));
return value;
}

Java中哪一个更快?

for(int i = 100000; i > 0; i--) {}
for(int i = 1; i < 100001; i++) {}

答:最快的是第二个。 服务器JVM可以检测并消除不执行任何操作的循环。 当循环迭代大约10,000次时,将编译带有任一循环的方法。 (基于-XX:CompileThreshold = 10000)第一个循环将花费一些时间来检测它没有执行任何操作,但是第二个循环将被编译。

哪个Java运算符是正确的关联?

=运算符是右关联的。

根据http://introcs.cs.princeton.edu/java/11precedence/列表,从右到左的关联运算符是。 (不止一个)

  • ( ) 投
  • 新对象
  • ? :
  • 分配= + =-= * = / =%=&= ^ = | = << = >> = >>> =

Java运行时系统生成什么类的异常?

Java运行时系统生成RuntimeException和Error异常。

恕我直言:这是对另一个问题的答案。 这是对的回答; 什么是运行时超类,未经检查的异常?

Java运行时可以生成Error,Exception或RuntimeException。

参考: 不正确的Java核心访谈在Vanilla Java上 ,我们的JCG合作伙伴 Peter Lawrey给出了答案 。

相关文章:

翻译自: https://www.javacodegeeks.com/2011/07/incorrect-core-java-interview-answers.html

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

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

相关文章

138.括号序列(区间型DP)

3657 括号序列 时间限制: 1 s空间限制: 256000 KB题目等级 : 黄金 Gold题解查看运行结果题目描述 Description我们用以下规则定义一个合法的括号序列&#xff1a; &#xff08;1&#xff09;空序列是合法的 &#xff08;2&#xff09;假如S是一个合法的序列&#xff0c;则 (S) …

C# 执行批处理文件(*.bat)的方法代码

代码如下:static void Main(string[] args){Process proc null;try{ string targetDir string.Format("D:\adapters\setup");//this is where mybatch.bat liesproc new Process();proc.StartInfo.WorkingDirectory targetDir;proc.StartInfo.Fil…

C语言空格怎么表示

1.直接敲空格就行&#xff0c;或者使用ASCII码值赋值为32。 空格没有转义字符。 printf("12%c45 58",32);输出 12 45 582.合法转义字符如下&#xff1a;\a 响铃(BEL) 、\b 退格(BS)、\f 换页(FF)、\n 换行(LF)、\r 回车(CR)、\t 水平制表(HT)、\v 垂直制表(VT) 0、…

Tomcat中的零停机部署(和回滚); 演练和清单

亲爱的大家&#xff0c; 如果您认为Tomcat不能再进步&#xff0c;那您就错了。 Tomcat 7引入了所谓的并行部署 。 这是由SpringSource / VMWare贡献的。 简而言之&#xff0c;并行部署是一种能够并行部署一个以上版本的Web应用程序的功能&#xff0c;使所有版本都可以在完全相…

javaweb 学习资源

http://jinnianshilongnian.iteye.com/category/231099转载于:https://www.cnblogs.com/sishahu/p/5368018.html

HDU 1863 畅通工程(最小生成树,prim)

题意&#xff1a; 给出图的边和点数&#xff0c;要求最小生成树的代价&#xff0c;注&#xff1a;有些点之间是不可达的&#xff0c;也就是可能有多个连通图。比如4个点&#xff0c;2条边:1-2&#xff0c;3-4。 思路&#xff1a; 如果不能连通所有的点&#xff0c;就输出‘?’…

2000年不算在21世纪

练习3-5 输出闰年 (15 分) 输出21世纪中截止某个年份以来的所有闰年年份。注意&#xff1a;闰年的判别条件是该年年份能被4整除但不能被100整除、或者能被400整除。 想当然地以为21世纪是2000~2099&#xff0c;当然没有通过 if(N > 2000&&N < 2099){for(int i …

使用迭代器时如何避免ConcurrentModificationException

Java Collection类是快速失败的&#xff0c;这意味着如果在使用迭代器遍历某个线程的同时更改了Collection&#xff0c;则iterator.next&#xff08;&#xff09;将抛出ConcurrentModificationException 。 在多线程以及单线程环境下都可能出现这种情况。 让我们通过以下示例探…

Sublime Text 3实用快捷键大全

下面是我通过网上教程和文本资料学习sublime Text3时收集的一些实用功能和常用快捷键&#xff0c;现在分享出来&#xff0c;如果还有其它的好用的功能可以在下面留言&#xff0c;以便互相学习和交流&#xff0c;谢谢&#xff01;。 选择类 CtrlD 选中光标所占的文本&#xff0c…

Tomcat中配置JNDI数据源

准备工作&#xff1a; Tomcat版本&#xff1a;tomcat6.0以上 下例中均使用MySQL数据库 将对应数据源的jar包和MySQL的驱动包拷贝至tomcat的lib文件夹下 一、全局数据源 1步骤一&#xff1a;配置 在tomcat下的conf/server.xml的GlobalNamingResources节点标签中增加如下配置&…

练习3-8 查询水果价格 (15 分)

练习3-8 查询水果价格 (15 分) 给定四种水果&#xff0c;分别是苹果&#xff08;apple&#xff09;、梨&#xff08;pear&#xff09;、桔子&#xff08;orange&#xff09;、葡萄&#xff08;grape&#xff09;&#xff0c;单价分别对应为3.00元/公斤、2.50元/公斤、4.10元/公…

JavaFX 2.0 beta示例应用程序和思考

我有一段时间回过头来玩JavaFX&#xff0c;并且在使用该语言方面有好有坏的经验。 随着JavaFX 2.0 beta的发布&#xff0c;我想尝试一下。 在这里&#xff0c;我开发了一个简单的地址解析应用程序&#xff0c;该应用程序将使用Google地址编码API来获取地址并提供该位置的纬度-经…

$Android自定义控件在不同状态下的属性

在写代码的时候&#xff0c;有时候需要控件在不同状态下显示不同的外观&#xff0c;比如在按钮按下的时候要变颜色&#xff0c;EditText获取焦点时候边框要变颜色等。那么下面就来梳理一下这些是怎么实现的。 &#xff08;一&#xff09;按钮按下时候变颜色 1、在项目的drawabl…

解析DBR操作系统引导记录数据

理解文件系统。你必须要熟悉DBR&#xff0c;下面我们就来看看文件系统解析DBR数据。 Dos Boot Record(DBR)操作系统引导记录是由操作系统的格式化程序建立的。在文件系统驱动操作不论什么一个磁盘卷时&#xff0c;这一部分的信息将被读取并作为文件系统在这个磁盘卷上的參数被使…

简单冒泡排序

将5个数字按从小到大排序。 #include <stdio.h> #include <stdlib.h> #include <math.h> int main() {int x[5] {0},temp 0;for(int i 0;i<5;i){scanf("%d",&x[i]);}//冒泡排序&#xff08;升序&#xff09;for(int j 0;j<4;j)//n个…

YouTube Java API入门

在本教程中&#xff0c;我将介绍Google的YouTube API &#xff0c;该API可让您使用YouTube的功能来启用应用程序。 YouTube是“杀手级”互联网应用程序之一&#xff0c;其流量占互联网总流量的很大一部分。 在开始之前&#xff0c;请确保您已阅读《 API概述指南》 。 我们将主…

mysql在mac上的坑

默认端口3306&#xff1f; 正确答案&#xff1a;3307 转载于:https://www.cnblogs.com/dudream/p/5375551.html

ServletContext图解

servlet之间共享数据资源&#xff01; 转载于:https://www.cnblogs.com/felixzh/p/4615902.html

C语言怎么输出百分号%

规律&#xff1a;printf函数中&#xff0c;当出现多个%时&#xff0c;由左至右&#xff0c;每两个%结合输出一个% #include <stdio.h> #include <stdlib.h> #include <math.h> int main() {int c 52;printf("% \n %% \n %%% \n %%%% \n %%%%% \n %%%%…

入侵Jasper以获取JSP页面的对象模型

为了对我的JSP进行一些检查和统计分析&#xff0c;我需要一个包含在其中的元素的类似于DOM的层次模型。 但是&#xff0c;解析JSP页面并不是一件容易的事&#xff0c;最好留给它一个出色的工具-Tomcat&#xff0c;Jetty&#xff0c;GlassFish以及其他所有工具都可以使用Jasper …