日月神话_常见的Java神话

日月神话

这些问题在任何面试中都可能太过高级而无法提出,因为它们可能会使候选人推迟。 不管怎样,他们可能会在您自己的时间练习。

误解1)System.exit(0)阻止最终被调用

为什么这样的代码

System.setSecurityManager(new SecurityManager() {@Overridepublic void checkExit(int status) {throw new ThreadDeath();}});try {System.exit(0);} finally {System.out.println("In the finally block");}

打印

In the finally block

为什么不打印堆栈跟踪?

在此代码中,str是一个String对象。

与C ++不同,所有变量都是基元或引用。 变量不能是对象。 这意味着当你有一个像

String str = "Hello";
String text = "Bye";str == text; // compares two references, not their contents.
str = text; // assign the reference text has to str.

在许多情况下,差异不大,但会引起与此类线条的真正混淆。

final StringBuilder sb = new StringBuidler();sb.append("Hello"); // The reference sb is final, not the instance it references.method(sb); // method can alter the instance, but it cannot change the reference.

误解3)Java内存泄漏,因为C ++开发人员会理解它们。

在Wikipedia上,内存泄漏是

在计算机科学中 ,当计算机程序错误地管理内存分配时,就会发生内存泄漏 。 在面向对象的编程中 ,当对象存储在内存中但无法被运行的代码访问时,可能会发生内存泄漏。

但是,在Java中,对象始终是可访问的,并且清除了那些不能强烈访问的对象。 Java中的内存泄漏一词是指; 保留内存的任何不希望有的增加,通常是由于在不再需要资源时将其记录在集合中。

如果没有纪律,则多线程很难。 如果只是将一堆代码和一堆线程放在一起,那么将很难解决,这将是一团糟。
但是,如果仅使用所需数量的线程,控制线程的交互方式,并使用团队中每个人都能理解的一些简单模式,则问题将变得非常简单。 接下来的挑战是使整个团队都遵守规则。

最近,我读了一个涉及整数加法,内存访问,模数和打印到控制台的问题。 尽管每个操作都比该列表中的每个操作慢几个数量级,但该人员仍在尝试加快最快的操作速度,但是使用了更昂贵的操作。

当您想提高性能时,您需要用便宜的操作代替更昂贵的操作,并且如果瓶颈是硬件(例如,读取硬盘驱动器上的数百万个文件),则更改软件无济于事,因为这不是问题的根源。

误解6)随机数总是看起来随机

随机数的特定组合与带模式的数一样可能。 这个问题是我在此博客上提出的问题的转贴。 许多人不敢相信随机数生成器会产生一个完全看起来不是随机的序列。

误解7)应该避免浮点数,因为它具有随机误差。

每次相同的操作,浮点都会产生相同的错误。 该错误是可预测的,因此是可管理的。 如果您知道自己在做什么,并遵循一些简单的规则(例如,对结果四舍五入),则浮点代码与使用BigDecimal相比,不会出错,但它更易于阅读并且速度提高了大约100倍(并且不会产生垃圾)。

误解8)时区是永恒的

造成混淆的常见原因是,随着时间的流逝,时区会发生变化。 这意味着欧洲/伦敦时代是1970/1/1 01:00而不是00:00,为什么? 在1968年至1970年之间,伦敦的夏令时为2.5年。

在过去几年中,许多其他时区发生了变化。 莫斯科是GMT + 3,现在是GMT + 3(从2011年3月27日开始)。如果您查看2010年的某个时间,应该会看到GMT + 3不是+4。

因为您认为这听起来很奇怪,

  • 在瑞典,1721年2月30日
  • 在英国1751年,第一天是3月25日,与法国相差11天。
  • 当美国采用公历时,它是追溯性的,因此记录了几百年的日期可以参考这两个日历。 (通常两个日期都是为了最大程度地减少混乱),例如乔治华盛顿的生日从1731年2月11日更改为1732年2月22日。

误解9)当您在一个线程中读取一个非易失性值时,最终会看到一个更新的值。

最后一天在StackOverflow上出现了两次。 基本上,JIT可以优化代码,使其内联线程不变的非易失性字段。 一旦代码编译(您可以使用-XX:+ PrintCompilation看到),它可能再也看不到您稍后在另一个线程中执行的更改。 添加随机同步块或打印语句可能会减慢过程或使JIT迷惑,并且它不会执行优化(无论是及时执行还是完全执行)。
有关更多信息,请说明何时需要挥发物

误解10)关于Java面试问题的大多数内容都是准确的。

很高比例的Java面试问题要么已经过时(仅十年以上,并且不适用于Java的任何现代版本),要么具有误导性,或者完全是错误的。 不幸的是,这些文件未经检查就被编译和回收了。
我将在StackOverflow上查看答案,因为它们的码头评论更好。 最重要的是,避免使用质量令人惊讶的持续低劣的玫瑰印度这样的网站。 如果您感到学究,请尝试查找一篇文章中可以找到多少拼写错误(使用班级名称和技术术语)和神话。 问题的一部分是没有有效的方法来提供反馈并纠正这些问题。

翻译自: https://www.javacodegeeks.com/2014/05/common-java-myths.html

日月神话

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

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

相关文章

PCM设备是做什么的? PCM作用是什么?

PCM可以提供用户从2M到155M速率的数字数据专线业务,也可以提供话音、图象传送、远程教学等其他业务。那么,PCM设备是做什么的? PCM作用是什么?接下来我们就跟随飞畅科技的小编一起来看看吧! PCM的含义: 1、PCM&…

Iceberg:浅析基于Snapshot的事务过程

MVCC事务(乐观锁) 我们知道,Iceberg基于Snapshot(快照机制)实现了乐观无锁地数据并发读写能力(MVCC,Multi Versions Concurrency Controll),默认提供了快照级别的事务隔…

关于“最终”的最终决定

在Java中,过度使用final感觉就像是SHOUTING。 在很多时候它已经过时且不合适。 Java和JavaScript 这主要是关于Java中的final关键字,但是我对JavaScript中与之对应的const看法略有变化。 我可以认为const是一件好事,而final是一件坏事&#…

PCM设备在电网系统中的应用介绍

近年来,随着我国社会经济的快速发展和电力通信行业的不断进步,通信网络技术和网络系统不断完善和改进的同时,网络系统运行过程中也出现了很多的问题,要对其进行优化,否则可能影响电力通信网络的正常运行电力通信网络系…

PCM设备在雷达通信系统应用

PCM设备系统是目前国内企业最常用的综合接入通信设备,PCM设备所具优势众多,因此它能成为目前企业最常用的通信传输接入设备之一,而且在类似雷达通信系统等重要行业中广泛应用着。 PCM设备利用标准的E1数据传输通道,采用PCM制式&a…

ejb的maven_针对新手的Java EE7和Maven项目-第3部分-定义ejb服务和jpa实体模块

ejb的maven从前面的部分恢复 第1部分 第2部分 我们在第三部分继续介绍,我们已经有一个父pom,并且已经为我们的war模块定义了pom。 在我们的原始设置中,我们定义了我们的应用程序将包含一个ejb jar形式的服务jar。 这是我们的Enterprise Jav…

PCM设备终端烧毁板卡是什么原因?

最近,有新客服反映他们之前在某家设备厂家买了PCM设备,老是会烧毁终端板。所以另外选择了我们飞畅科技。那么,PCM设备终端烧毁板卡是什么原因呢?接下来飞畅科技的小编就来为大家具体分析下PCM设备终端烧毁板卡的原因,一…

全部隐藏!

在较早的文章中 ,我写了以下几句话: 在面向对象的代码库中,该工具包应尽可能离散。 使用开发套件的次数越多,您的代码实际面向对象的次数就越少,或者您的抽象并不是最好的。 。 我认为有必要详细说明这一点&#xff0…

E1 PCM设备的主要特点介绍

E1 PCM设备是目前国内企业最常用的综合接入通信设备,它利用标准的E1数据传输通道,采用PCM制式,直接提供语音、数据、图像等多种用户接口。接下来飞畅科技的小编来为大家详细介绍下E1 PCM设备的主要特点,一起来看看吧! …

docker集群_使用Docker,Chef和Amazon OpsWorks进行集群范围的Java / Scala应用程序部署...

docker集群Docker非常适合在单个节点上运行隔离的容器。 但是,大多数软件系统都在多个节点上运行,因此,除了Docker之外,我们还需要某种方法来指定哪些容器应在哪些节点上运行。 我要解决的特定问题如下:我有两个Scala…

PCM信号是什么信号?

PCM信号是模拟信号呢,还是数字信号呢?当然是数字信号啦!PCM的完整定义是:将模拟信号的抽样量化值变换成代码称为脉冲编码调制(PCM设备)。 在光纤通信系统中,光纤中传输的是二进制光脉冲“0”码…

SDH光传输设备是什么?SDH设备特点介绍

SDH光传输设备是一种,将复接、线路传输以及交换功能融合为一体的、并且由统一网管系统操作的综合信息传送网络。SDH光传输设备,他可实现网络有效管理、能实时业务监控、能动态网络维护、不同厂商设备间的互通等多项功能。 SDH光传输设备能大大提高网络资…

通过MicroProfile上下文传播增强了CDI上下文和隔板

当将CDI与异步执行方法(例如ManagedExecutorService ,传统上不可能访问在原始线程中处于活动状态的所有CDI范围。 MicroProfile Context Propagation可以定义线程执行上下文并将其传递到完成阶段,尽管我们的代码是异步执行的,但它…

ProtoBuff3.0.0在Ubuntu上安装

ProtoBuff3.0.0在Ubuntu上安装 最近安装ns3,运行别人代码,编译build.py时出现需要update Proto的问题,本来想安装最新版本,因为需要翻墙,就参考大部分博客,安装3.0.0版本。(备注:直…

SDH与PDH的区别介绍

PDH准同步数字系列,1-4次群2048K、8488K、34368K、139264K,有美国/日本标准和欧洲标准,我国沿用的是欧洲标准;30/32路组成一个1次群;各个厂家产品大多互相不兼容。 SDH同步数字系列,网元都带PDH接口&#…

Ubuntu 系统入门

1 Ubuntu 常用文件夹处理命令 1、 cd … //返回上一层目录 cd / //返回根文件夹 2、ls 列出文件名称 3、unzip XXX 对zip 压缩包解压 4、sudo baobab 进行磁盘空间分析 5、 利用vim修改只读文件内容 ::w !sudo tee % (注意空格) 2 Ubuntu显示隐藏文件 …

什么是MSTP(多业务传输平台)?

Multi-Service Transfer Platform简称MSTP,他是基于SDH的多业务传送平台的,同时也实现TDM、ATM、以太网等业务的接入、处理和传送,提供统一网管的多业务节点。 当前通信时代随着不断增长的IP数据、话音、图像等多种业务传送需求扩展&#xf…

spring boot示例_Spring Boot上的Spring社交示例,或者我如何停止担心和喜欢自动配置...

spring boot示例对于Spring Boot 1.1.0.RC1,添加了自动配置和Spring Social的启动程序pom,这意味着我不必向pom添加一百个依赖关系,并且将为我处理许多毫无意义的Spring配置。 让我们来看一个例子。 我将实现一个两页的Web应用程序。 一个将…

安装虚拟机后,启动出错的解决办法

安装虚拟机后,启动出错,需要找到路径中的配置文件 使用记事本或其他应用打开 在vmci0.prensent值改为FALSE,才可以正常启动

什么是E1接口,E1的使用注意事项

欧洲的30路脉码调制PCM简称E1,速率是2.048Mbit/s 。 我国采用的是欧洲的E1标准。E1接口有G.703非平衡的75 ohm,平衡的120 ohm2种接口。接下来就由飞畅科技的小编来为大家详细介绍下使用E1的三种方法及注意事项,一起来看看吧&#…