日月神话

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

误解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

日月神话

日月神话_常见的Java神话相关推荐

  1. Java千百问_04异常处理(007)_常见的java异常有哪些(非运行时)

    1.常见的java运行时异常有哪些 了解非运行时异常看这里:什么是java中的异常  常见的运行时异常看这里:常见的运行时异常有哪些 我们所说的常见异常是jdk或者其他常用第三方jar中的异常,出现频 ...

  2. java面试上机_常见的Java上机面试题

    常见的 Java 上机面试题 在程序员面试中, 主要的考试形式分为笔试和上机编程考试两部分. 笔试主要考查面试者的 基础是否牢固:上机考试主要考查面试者的实际开发能力和技术技巧. 上机编程考试,要求面 ...

  3. java面试宝典有用么_常见的Java面试题汇总

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 二.关于集合 1.Java中的集合及其继承关系 关于集合的体系是每个人都应该烂熟于心的,尤其是对我们经常使用的List,Map的原理更该如此. 2.pol ...

  4. 常见的java异常_浅谈十个常见的Java异常出现原因

    异常是 Java 程序中经常遇到的问题,我想每一个 Java 程序员都讨厌异常,一 个异常就是一个 BUG,就要花很多时间来定位异常问题. 1.NullPointerException 空指针异常,操 ...

  5. collection集合 多少钱_面试必备-Java集合框架

    Java集合框架面试题 常见集合 集合可以看作是一种容器,用来存储对象信息. 数组和集合的区别: (1)数组长度不可变化而且无法保存具有映射关系的数据:集合类用于保存数量不确定的数据,以及保存具有映射 ...

  6. java的应用程序开发_开发一个Java应用程序(1)

    开发一个Java应用程序(1) App Engine上的Java Web应用程序通过Java Servlet标准接口与应用程序服务器交互.一个应用程序由一个或多个类组成,这些类都扩展自一个servle ...

  7. java replaceall正则表达式_编写高性能Java代码的最佳实践

    作者:Eugen Paraschiv 翻译:雁惊寒https://dzone.com 摘要:本文首先介绍了负载测试.基于APM工具的应用程序和服务器监控,随后介绍了编写高性能Java代码的一些最佳实践 ...

  8. 常见的 Java 错误及避免方法

    在开发Java软件时可能会遇到许多类型的错误,但大多数是可以避免的.为此我们罗列了最常见的Java编码错误,其中包含代码示例和教程,以帮助大家解决常见的编码问题. 编译器错误 当Java软件代码通过编 ...

  9. java中注解的解析_全面解析Java中的注解与注释

    注解一.什么是 Annotation? (注解 or 注释)Annotation, 准确的翻译应该是 -- 注解. 和注释的作用完全不一样. Annotation 是JDK5.0及以后版本引入的一个特 ...

最新文章

  1. react-webpack-express
  2. android DataBind LiveData ViewModel 使用详解
  3. 【Rsync + inotify】 实时同步远程服务器目录文件
  4. 行星齿轮设计_行星减速机内部结构图与传动原理
  5. 计算机操作系统 (第四版汤小丹老师) 复习笔记完整版——第一章:操作系统引论
  6. 从信号与系统,数字信号处理的角度看目前手头研发的蓝牙耳机
  7. 左程云 - 大厂刷题班 - 一种字符在左,另一种字符在右的最少交换次数
  8. 我的世界正版验证服务器地址,我的世界1.7.10服务器纯净地址大全
  9. ArcGIS jsAPI 本地部署字体符号乱码
  10. 计算机专业的技能测试,中职学校计算机专业技能测试方法存在的主要问题及其对策...
  11. Android studio 渐变色,android shape 之渐变色角度理解
  12. Angular入门-Hero Editor抽丝
  13. 看脸的时代,AI医美为什么没有成为风口?
  14. 【Redis消息队列实现异步秒杀】--Redis学习笔记08
  15. 【C++面向对象程序设计——侯捷大师】心得摘要
  16. 试用期、加班时间、加班补偿——职场常见知识《劳动法》
  17. 供需关系——需求与满意度
  18. 重力回弹(小球自由落体)
  19. 解读java.lang包下String类的API(一)
  20. write tcp 127.0.0.1:53008->127.0.0.1:6379: use of closed network connection原因—Go连接Redis

热门文章

  1. 【笛卡尔树】【树状数组】Beautiful Pair(P4755)
  2. 【spfa】假期计划(jzoj 3936)
  3. Spark SQL(五)之数据加载与存储
  4. maven中scope属性的
  5. 汇编语言(二十)之分类统计字符个数
  6. 你可能不知道的 10 条 SQL 技巧
  7. hql投影查询之—— [Ljava.lang.Object; cannot be cast to cn.bdqn.guanMingSys.entity.Notice
  8. 用rollback()VS不用rollback()
  9. java中生成1000~10000之间的随机数
  10. idea 2个配置 实时编译 autowire注解错