java基础笔试面试题以及答案,Java经典面试

本文整理了Java面试中常见的问题,包括离职原因、求职动机、职业规划、薪资期望、加班态度等,并提供了相应的回答建议。同时,文章强调了JVM在面试中的重要性,以及在面对挑战时如何解决问题和追求个人成长。
摘要由CSDN通过智能技术生成

前言

  • JVM 内存模型一共包括三个部分:
    • 堆 ( Java代码可及的 Java堆 和 JVM自身使用的方法区)、
    • 栈 ( 服务Java方法的虚拟机栈 和 服务Native方法的本地方法栈 )
    • 保证程序在多线程环境下能够连续执行的程序计数器

特别地,我们当时就提到Java堆是进行垃圾回收的主要区域,故其也被称为GC堆;而方法区也有一个不太严谨的表述,就是永久代。总的来说,堆 (包括Java堆 和 方法区)是 垃圾回收的主要对象,特别是Java堆。

实际上,Java技术体系中所提倡的 自动内存管理 最终可以归结为自动化地解决了两个问题:给对象分配内存 以及回收分配给对象的内存,而且这两个问题针对的内存区域就是Java内存模型中的堆区。关于对象分配内存问题,笔者的博文《JVM 内存模型概述》已经阐述了 如何划分可用空间及其涉及到的线程安全问题,本文将结合垃圾回收策略进一步给出 内存分配规则。另外,我们知道垃圾回收机制是Java语言一个显著的特点,其可以有效的防止内存泄露、保证内存的有效使用,从而使得Java程序员在编写程序的时候不再需要考虑内存管理问题。Java 垃圾回收机制要考虑的问题很复杂,本文阐述了其三个核心问题

高频问题

1.上一家公司,你为什么会离职?
  • 公司很好,但是公司调整了业务,接下来的发展路线和自己的目标不一致,所以要换工作
  • 工作太清闲,学不到知识,我不怕累,就是想多锻炼自己,想找具有挑战力工作
  • 公司的管理制度不也是很完善,没有晋升机会,我比较想进步,找一个更好的平台
  • 我想去优秀的公司,让自己变得更好
2.为什么来我们这里?
  • 对原单位充满感恩,这是我人生中非常重要的经历,我认同原单位领导和文化
  • 两份工作的本质是一致的,行业和工作性质都有紧密联系
  • 选择一份新的工作不代表背叛过去,发扬原公司魅力,同时为了寻求更大的成长和突破
  • 不承诺一份工作干一辈子,保证在我的任期内尽职尽责
3.你怎么看待自己以后的职涯?(包括工作和家庭的分配,怎么平衡家庭和工作的关系、加班、选择一家公司时的考量、地点等)(离职稳定性)

我准备在技术领域有所作为,我希望在我3到5年内,具备什么样的素质,在行业内达到什么样的水平,产出什么样的工作成果,将规划量化,具体化

4.对薪资期望(不要直接说数,绝不能表现出没到多少钱或者什么层级我就不去)

薪资应该基于你求职行业的市场价格和自身的价值,例如目前这个岗位的平均工资是8K,虽然我刚毕业,但是在我工作期间已经有过两份的相关经验而且都是作为核心成员参与项目,因此可以很快上手这份工作,所以我希望能够在转正后的工资能达到10K等等

5.可以接受降薪吗?(先了解公司薪酬体系,根据行业和自身能力来定位)

如果候选人的调性符合(足够官方),可以这么回答:我也了解咋们公司现在的薪资架构,我相信公司会根据我的能力给出一个合理的薪水方案,我相信只要把事情做好,该有的一定会有的对于这样的部门,“ 毕竟贵公司在做一个从来没有人做的这么好的事情,所以肯定是有难度的,肯定是要付出大量努力的 ”

6.自己觉得自己工作上的短板/优点是什么?
  • 不能避而不谈,
  • 不能变相夸自己,
  • 不能暴露重大缺陷,
  • 可以将一些能接受能改进的缺点

综上:缺点加说明加改进

7.说说自己性格上的优缺点(描述一下自己的性格)

我不懂得如何拒绝他人,我拉不下面子去指出别人的问题,我做事的时候希望马上就能看到成效,有时候会比较贪心,想同时做好几项工作,我比较慢热,不善于和陌生人打交道,我有意识的让自己在改正,让自己更加有亲和力,我非常在意别人对自己的工作评价,得不到好评就会焦虑,其实我也在开导自己别太功利心了。沉着冷静,条例清楚,立场坚定,顽强向上,乐于助人和关心他人,适应能力等等

8.怎么看待加班(你能接受996、997、007吗)?

可以接受版本

如果候选人的调性符合(足够官方),可以这么回答:我觉得我们要实现梦想,一定是要付出比较多努力的,所以我已经做好了准备,也愿意和小伙伴们一起战斗我是可以加班的,我现在加班强度就是比较大的。因为我喜欢这个事情,我想把这个事情做好。项目忙的时候可能一个月都没有休息日,我觉得要应对这么忙的工作,光有心理准备其实还不够,还要有特别好的身体素质,所以我准备把健身的习惯一直坚持下去

不接受版本

加班是应该的,不加班也是应该的,没有把事情做完是不应该的,因为能力低完成工作慢造成的加班,并不是一件好事,不加班是能力,加班是态度,能力不够的情况下,态度去补。

9.你谈恋爱了没?(状态是否稳定,会不会因为感情影响工作,很快结婚,休婚假产假)

我还没有谈恋爱,目前不考虑恋爱问题,我希望自己变得更优秀以后,在谈一场稳定的恋爱,所以现在想把主要的精力放在工作上。

我已经有男朋友或女朋友,我们都在这个城市工作,目前准备先工作几年,有精力能力了在考虑结婚。

10.是否还面试其他公司(HR确认求职意向与诚信度)

实话实说,选择名声较大较好的公司来说,职位和现在的求职相思相近,表是自己求职意向专一,还在等候结果

11.项目中遇到的最大挑战是什么?怎么解决的?

因人而已,需要描述问题产生的原因,查找解决问题的方式,对比那种更加好,遇到什么问题,最终怎么一步一步解决的

12.最有成就感的事情是?

做有挑战性的事情,并且能够做好,或者是坚持一个习惯很久,如坚持写博客,坚持看书

13.你有什么问题想问的?
  • 你作为一个资深的CODER,我想知道,你平时是怎么学习技术,有什么好的学习途径,怎么才能做到像你一样强呢?
  • 公司的业务和技术栈是什么呢?
  • 技术难点怎么解决,有什么技术支持
  • 每天有多少时间花在写代码上
14.收到OFFER该问的5个问题
  • 试用期工资和时间(正常来说合同是3年,试用期是3个月)
  • 转正考核的方式,转正工资
  • 工作时间以及加班计算(一周五天工作制,一天8小时)
  • 培训晋升机制
  • 福利情况(五险一金,餐补,其他补贴如电脑补贴)

最后

2020年在匆匆忙忙慌慌乱乱中就这么度过了,我们迎来了新一年,互联网的发展如此之快,技术日新月异,更新迭代成为了这个时代的代名词,坚持下来的技术体系会越来越健壮,JVM作为如今是跳槽大厂必备的技能,如果你还没掌握,更别提之后更新的新技术了。

更多JVM面试整理:

了。

[外链图片转存中…(img-fAQl7XN8-1650509987760)]

更多JVM面试整理:

[外链图片转存中…(img-X6jEwbEg-1650509987761)]

### 回答1: Java基础笔试面试题以及答案 1. 什么是Java语言的特点? 答:Java语言的特点是简单易学、面向对象、平台无关性、可靠性、安全性等。 2. 什么是Java虚拟机(JVM)? 答:Java虚拟机是一个能够执行Java字节码的虚拟计算机,能够将Java字节码转换为底层操作系统能够识别的二进制码执行。 3. 什么是Java的静态绑定和动态绑定? 答:Java的静态绑定在编译期确定,是通过对象的引用类型或参数类型确定方法的调用。Java的动态绑定在运行期确定,是通过对象的实际类型确定方法的调用。 4. 什么是自动装箱和拆箱? 答:自动装箱是指将基本类型自动转换为对应的包装类类型,例如int转换为Integer。拆箱则是将包装类类型自动转换为对应的基本类型,例如Integer转换为int。 5. 什么是Java的反射机制? 答:Java的反射机制是指在运行时对类的属性、方法等进行分析的能力。通过反射可以在程序运行时动态加载类、创建对象、调用方法等。 6. 什么是Java的异常处理机制? 答:Java的异常处理机制是指在程序运行时遇到错误或异常时捕获错误信息并进行处理的能力。通过try-catch-finally语句块可以捕获异常,并在finally块中进行清理操作。 7. 什么是Java的多线程? 答:Java的多线程是指在同一个程序中同时执行多个线程,每个线程独立运行并可以互相通信。Java的多线程通过继承Thread类或实现Runnable接口来实现。 8. 什么是Java的集合框架? 答:Java的集合框架是一组接口、类和算法,用于存储、处理和搜索对象的集合。Java的集合框架分为List、Set、Queue和Map等不同类型的集合类。 9. 什么是Java的注解? 答:Java的注解是一种程序中的元数据,用于为程序元素(例如类、方法、字段等)添加额外的信息和标记。Java的注解是通过@符号和注解名来使用的。 10. 什么是Java的泛型? 答:Java的泛型是指在编译期间不需要指定具体类型的能力,可以编写适用于多种类型的代码。Java的泛型可以通过类型参数来实现,例如List<T>表示一种类型为T的List集合类。 ### 回答2: Java 是目前应用最广泛的编程语言之一,因此 Java 基础知识的考核在招聘面试中是非常重要的一个环节。下面介绍一些常见的 Java 基础笔试面试题及其答案。 1. Java 中的基本数据类型有哪些? Java 中的基本数据类型包括 byte、short、int、long、float、double、char、boolean 等 8 种基本数据类型。 2. String 和 StringBuffer 的区别是什么? String 类是不可变的对象,即一旦创建后其值就不能被修改。而 StringBuffer 类是可变的对象,可以在原有对象的基础上进行修改。 3. Java 中的四种访问修饰符是什么? Java 中的四种访问修饰符分别为 public、protected、default 和 private。 public 修饰符可以被任何类访问,protected 修饰符只能被本身类及其子类和同一包中的类访问,default(即不写修饰符)修饰符只能被同一包中的类访问,private 修饰符只能被本身类访问。 4. static 关键字是什么意思? static 是一种修饰符,可以修饰变量、方法和类。当 static 修饰变量时,表示该变量是类变量,所有该类的实例共享该变量,可以通过类名和实例访问;当 static 修饰方法时,表示该方法是类方法,可以直接通过类名调用,不需要实例化;当 static 修饰类时,表示该类是静态内部类。 5. Java 中的重载和重写有什么区别? 重载(overload)是指在同一个类中,允许定义多个同名的方法,只需更改方法的参数即可,但返回类型可以相同也可以不同,编译器会根据传入的参数类型和数量来判断需要调用哪个方法;重写(override)是指子类实现了父类中的同名方法,实现方式和参数必须完全一样,但返回类型可以相同也可以是父类方法返回类型的子类型。 以上是常见的一些 Java 基础笔试面试题及其答案,希望能对大家有所帮助。 ### 回答3: Java是目前世界上应用最广泛的编程语言之一,它具有可靠性高、移植性强、安全性好、易于学习和使用等特点。在Java的学习过程中,基础知识扎实是非常关键的,下面就一些常见的Java基础笔试面试题做一个简单的讲解。 一、Java中的常用注释方式有哪些? Java中常见的注释方式有三种,分别是单行注释、多行注释和文档注释。 //单行注释 /*多行注释*/ /** 文档注释 */ 二、Java中的变量类型分为哪几种? Java中的变量类型包括基本数据类型和引用数据类型两种。 1.基本数据类型: byte,short,int,long,float,double,char,boolean。 2.引用数据类型: 数组、类和接口。 三、Java中的访问修饰符有哪些? Java中的访问修饰符包括public、protected、private和default四种。 1.public:公共访问,任何地方都可以访问。 2.protected:受保护的访问,同一包内和子类可以访问。 3.private:私有访问,只有本类可以访问。 4.default:缺省访问(即不加访问修饰符),同一包内可以访问。 四、Java中的多态性是什么? Java中的多态性是指一个类型的实例在不同的情况下表现出不同的行为。Java中的多态性主要体现在方法的重载(Overloading)和方法的重写(Overriding)上。 1.方法的重载:指在一个类中定义多个同名方法,但参数的个数、类型或顺序不同。 2.方法的重写:指在子类中重写父类的方法,方法名、参数类型和返回值类型必须与父类中的方法相同。 五、Java中的类和对象的关系是什么? Java中类定义了对象的特征和行为,对象是类的一个实例,可以通过new关键字创建一个对象。类中的属性和方法可以被对象所访问和调用。类用来定义对象的共性,而对象用来表示现实世界中具体的事物。 以上就是关于Java基础常见的笔试面试题以及答案。当然,在学习Java中不光局限于这些基础知识点,还需要注意编译原理、JVM内存管理、并发编程等其他方面的知识点。总之,通过大量的实践和练习,才能真正理解和掌握Java这门编程语言。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值