1.StringBuilder替代String拼接,面试中经常会问到

String,StringBuilder,StringBuffer的区别。

解答:String类作为java语言中最常见的字符串类被广泛使用,如果在做大量字符串拼接效率时变得比较低,因为虚拟机需要不断地将对象引用指向新的地址。因此,一般方法内的私有变量推荐使用stringBuilder来完成,如果是多线程需要同步的自然选用stringBuffer。

1.对参数未做空验证,就做判断值相等

下面的写法将常量放到方法左边,能防止NPE。

解答:关于这道题需要查看String类中equals的实现方法,当左边为Null时会出现NPE。因此后续代码中需要保证equals方法左边变量不为null。

2.这个坑很多兄弟都踩过,知道为什么

打印结果为false,而下面结果为true为啥

解答:Integer类型当正整数小于128时是在内存栈中创建值的,并将对象指向这个值,这样当比较两个栈引用时因为是同一地址引用两者则相等。当大于127时将会调用new Integer(),两个整数对象地址引用不相等了。这就是为什么当值为128时不相等,当值为100时相等了。

3.将变量作为参数传递,在方法中改变参数值,变量的值改变了么?下图total值到底是几?

解答:将一个私有变量作为形参传递赋值并不会改变参数原有的值,但是如果将一个对象作为参数传递改变属性,对象的属性值就会随着改变。因此total的值仍然为0。

4.由数组转换的list,只能循环遍历,而不能看长度,增加元素,删除元素,这是为何?下图代码执行竟然出错!

解答:因为将数组转换的列表其实不是我们经常使用的arrayList,但只是数组中内部定义的一种数据结构类型,本质还是原数组而并非列表,因此当向列表添加元素就会出现错误,这道题上当的兄弟不少吧。

5.将列表中李明的名字移除掉,下图实现有无问题?

解答:在列表中移除最后一个元素按说应该没有问题的,但是这个算法还是出现了错误,主要是这种写法的列表循环遵循下表索引查找,当移除某个元素时,上次计算出来的长度超过了当前列表长度,故而会出现越界错误。

6.在指定目录下创建文件目录,到底使用哪一种呢,两个方法都没报错,为何第一次没创建目录而第二次创建?

解答:mkdirs()可以建立多级文件夹,而mkdir()只会建立一级的文件夹。这个主要依靠java底层调用操作系统的实现,作者愚见无须弄明白底层实现原理,只要使用中能区分不留BUG就好。

7.老板从客户那里回来后骂了我一顿,说是客户界面显示金额很奇怪,我的代码那里有问题?

解答:这道题如果我是老板我会打你的,因为老板之前也写过代码。老板之所以骂你是因为客户看到的太奇怪以至于看不懂,两个float类型数据相减会丢失精度,尾部带着常常的一串数字。如果实际场景要做计算我给你两个思路:第一可以用bigdecimal来计算,第二先将单位做成整数再做除法。

8.面试官:你能说出来java中实现多线程的几种方法么?

面试者:继承Thread类和实现runnable接口!

面试官:除此以外还有方法么?

面试者:就这两种实现啊?!

面试官:我们聊点别的,呵呵。

解答:这道题最有意思了,一般人都会干脆利索回答前两个,我工作前3年每次都是信心满满这样回答问题的。其实 实现多线程还可以实现Callable接口,利用task来接受异步线程的执行结果。希望后面再被面试官问到这道题可千万别再入坑,并且能回答这第三种方式跟前两种不同的地方(可以获取执行结果)。

9.我只是想让这个好好循环三次,有什么问题么?

解答:这道题主要是犯了整数符号位的问题了,大家可以了解一下

Integer.MAX_VALUE加上1以后的数值这道陷阱题就解决了。

10.这个一直没有弄明白,到底返回哪个true还是false?

解答:这道题大家需要弄明白finally的使用场景,主要是捕获异常以后必须要执行的代码,大多是关闭流之类的。即使try的代码块已经返回结果但程序仍然会执行finally里面的代码,因此上题返回false。

大家可以看看下面这道题返回结果是多少?欢迎留言,答对的同学自己给自己晚饭加鸡腿。

Java面试没过_Java面试中遇到的坑【填坑篇】相关推荐

  1. 一般java面试考什么_JAVA面试的时候一般考什么?

    Java程序员应聘一般要经过笔试和面试.作为一个技术人员,特别是刚出道的,笔试的成绩是比较重要.以下是我经过几次笔试总结的一些经验教训. 一般来说,试题会分为三个部分,Java基础.数据库基础和综合题 ...

  2. Java私有方法解释_java接口中 定义 private 私有方法

    在传统的Java编程中,被广为人知的一个知识点是:java Interface接口中不能定义private私有方法.只允许我们定义public访问权限的方法.抽象方法或静态方法.但是从Java 9 开 ...

  3. java 可变参数方法_Java方法中的参数太多,第7部分:可变状态

    java 可变参数方法 在我的系列文章的第七篇中,有关解决Java方法或构造函数中过多参数的问题 ,我着眼于使用状态来减少传递参数的需要. 我等到本系列的第七篇文章来解决这个问题的原因之一是,它是我最 ...

  4. java 构建者模式_Java方法中的参数太多,第3部分:构建器模式

    java 构建者模式 在我的前两篇文章中,我研究了如何通过自定义类型和参数对象减少构造函数或方法调用所需的参数数量. 在本文中,我将讨论如何使用构建器模式来减少构造器所需的参数数量,并讨论该模式如何甚 ...

  5. Java改知能机_Java 面试突击之 Java 并发知识基础 进阶考点全解析

    版权说明:本文内容根据 github 开源项目整理所得 项目地址:https://github.com/Snailclimb/JavaGuide​github.com 一.基础 什么是线程和进程? 何 ...

  6. java面试题 多线程_Java面试常见关于多线程的面试题

    多线程是Java技术中常用而且相对比较难易理解的一个知识点.而且多线程也是企业实际应用中必备的技术,因此在面试的过程中,面试者经常被问到关于多线程的问题,遇到这些问题大家应该怎么办呢?赶紧恶补一下Ja ...

  7. java面试常考_JAVA面试常考系列十

    JAVA面试常考系列十 题目一 Servlet是什么? Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,是用Java编写的服务器端程序,主要的 ...

  8. 小红书java算法难吗_Java面试系列之记一次小红书之旅

    一面一面面试官看着二十七八岁,文质彬彬,这哪里是写代码的,头发都飘起来了好么.上来就干项目,由于大家的项目都不太一样,所以对于项目部分我就说说我面试的时候经常遇到的问题描述下项目一口是吃不了胖子的,描 ...

  9. java笔试面试题_Java面试笔试题大全

    Java面试笔试题大全 42.swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上? switch(expr1)中,expr1是一个整数表达式.因此传递给 switc ...

最新文章

  1. Android 之 沉浸式状态栏及顶部状态栏背景色设置
  2. python输入变量_Python如何获取用户输入
  3. [转载 整理]C语言链表实例
  4. 让PIP源使用国内镜像,提升下载速度和安装成功率。
  5. apache2.2.15与PHP5.3.3安装设置完成后,apache启动失败
  6. php伪静态不支持中文,Discuz开启伪静态导致中文会员使用手机无法访问的解决方法...
  7. JavaScript笔记整理
  8. color2gray 的实现
  9. vue element-ui只有一条信息时默认选中按钮,且不能取消,多条信息时可以手动选择
  10. iOS开发之UIControlEventEditingChanged失效
  11. 17.企业应用架构模式 --- 会话状态模式
  12. 杨辉三角形c语言程序
  13. 计算机财务管理中表格的应用,论Excel表在财务管理中的应用
  14. 完美破解nbsp;iPhone“一键解锁”新手教程
  15. 计算机毕设(附源码)JAVA-SSM基于的网上拍卖系统
  16. 如何在移动硬盘上安装Linux系统?WIN10 + Ubuntu 18.0.4(LTS)
  17. linux恢复,Linux 5.13还原及修复明尼苏达大学的问题补丁
  18. 如何更好地吸收维生素矿物质?
  19. u8g2库 汉字速查表
  20. scp+oracle备份

热门文章

  1. VTK修炼之道22:图像基本操作_彩色图像成分提取
  2. [OS复习]设备管理4
  3. 【CyberSecurityLearning 73】DC系列之DC-4渗透测试
  4. setup.s 总结——Linux-0.11 剖析笔记(四)
  5. 白话详细解读(二)-----AlexNet
  6. hdu-2066(Dijkstra)
  7. java异步执行任务
  8. BZOJ 3211: 花神游历各国
  9. cad抛物线曲线lisp_曲线的转弯半径和曲率 - AutoLISP/Visual LISP 编程技术 - CAD论坛 - 明经CAD社区 - Powered by Discuz!...
  10. QPushButton 点击信号分析