每天几道面试题(第一天)

目录

  • 第一幕 、
    • 第一场)某大厦楼下大门前
    • 第二场)电梯中
    • 第三场)公司前台

友情提醒

背面试题很枯燥,加入一些戏剧场景故事人物来加深记忆。PS:点击文章目录可直接跳转到文章指定位置。

第一幕 、

第一场)某大厦楼下大门前

【门卫甲,门卫乙,面试者老王,路人等】

门卫甲:来者何人?报上名来。

老王:隔壁老王前来面试

门卫乙:现在面试Java的人很多,如果谁都放进去,恐怕总裁会责怪我们,你先说说1.Java的跨平台原理
,回答对了再进去面试吧。

老王:这个公司倒是有意思,门卫当起了面试官。Java实现跨平台是JVM(Java虚拟机)起的作用,编译好了一份Java字节码,换到不同的平台上时,并不需要重新编译,前提是这些平台上都安装了相应平台的JVM,JVM不是跨平台的。

门卫甲:我也有个问题,2.说一下Java的垃圾回收机制
,对了我去买个冰棍,老乙给你也带一根。

老王:给我也带一根钟薛高我就给你说垃圾回收机制;
垃圾回收器通常是作为一个单独的低级别的线程运行,对内存堆中已经死亡的或者长时间没有使用的对象进行清除和回收,程序员不能实时的调用垃圾回收器对某个对象或所有对象进行垃圾回收。垃圾回收器不可以马上回收内存,可以手动执行System.gc(),通知GC运行,但是Java语言规范并不保证GC一定会执行。 回收机制包括:
①分代复制垃圾回收
不同生命周期的对象可以采取不同的收集方式,生命周期比较长的如Http请求中的 Session对象、线程、Socket连接。生命周期比较短的如:String对象。分代回收是把不同生命周期的对象放在不同代上,包括年轻代、年老代,和持久代,因此垃圾回收区域、时间也不一样。
②标记垃圾回收
使用标记清除算法,内存耗尽时,程序将会被挂起,垃圾回收开始执行.当所有的未引用对象被清理完毕时,程序才会继续执行。标记清除算法由两个阶段组成:
标记阶段,标记所有的可访问对象。
收集阶段,垃圾收集算法扫描堆并回收所有的未标记对象。
③增量垃圾回收
解决标记清除的长停顿问题。增量收集器把堆栈分为多个域,每次仅从一个域收集垃圾。这会造成较小的应用程序中断。

门卫乙:其实我也不知道你说的对不对,不过你照着手机读是不是有点过分了。手机收起来问你一个简单的。3.JVM加载class文件的原理机制?

老王:不知道

门卫乙:让你手机收起,你就不知道是吧,我来告诉你经过编译的Java源程序并不是一个可执行程序,而是一个或多个类文件,JVM会确保这个类被加载、连接(验证、准备和解析)和初始化。
①类的加载:是由类加载器和它的子类在运行时查找和装入类文件中的类,把.class文件中的数据读入到内存中。
②连接阶段:加载完成后,进入连接阶段,包括验证、准备(为静态变量分配内存并设置默认的初始值)和解析(将符号引用替换为直接引用)三个步骤。
③最后JVM对类进行初始化,包括:如果类有父类先初始化父类,类中存在初始化语句,就依次执行这些初始化语句

门卫乙:我话说完,你赞成还是反对。

老王:赞成。一直都是你问我,我也问你一个:4.门卫大哥,你对Java内存了解多少?

门卫乙:一般我不轻易显露自己的学识,但是你既然诚心诚意的发问了我就露一手:
①Java内存分为堆与栈,java中一个线程就会相应有一个线程栈与之对应,Main函数就是栈的起始点,也是程序的起始点即程序执行的入口。
②栈是运行时的单位,存储基本数据类型和堆中对象的引用以及当前程序相关的信息(局部变量、程序运行状态、方法、方法返回值)等, 而堆是存储的单元,存储对象信息如对象的属性。
③栈解决程序的运行问题,即程序如何执行(运行逻辑),或者说如何处理数据,堆解决的是数据存储的问题,即数据怎么放,放在哪儿。
④堆与栈的分离,使得堆中的内容可以被多个栈共享,提供了有效的数据交互方式,节省了空间。
⑤由于栈只能向上增长,就会限制住栈存储内容的能力,而堆中的对象是可以根据需要动态增长的,因此栈和堆的拆分使得动态增长成为可能,相应栈中只需记录堆中的一个地址即可。

门卫甲:你回来了。

门卫乙:是我回来了,不是你回来了。在上班时间能吃冰棍吗?老王你说说5.为什么不把基本类型放在堆中

门卫甲:抢答:因为基本类型占用的空间一般是1~8个字节,不会出现动态增长的情况—长度固定,因此栈中存储就够了,如果把它存在堆中是没有什么意义的

门卫乙;问你了吗,显眼包。老王回答一下6. java中的参数传递是传值呢?还是传引用?

门卫甲: 抢答: 对象传递是引用值传递(传递的是引用的地址值),基本数据类型传递是值传递

老王:我可以进去了吗?过度的饱食有伤胃口,毫无节制的门卫面试,结果只会让我错过面试的时间。— —对了把冰棍给我。

门卫甲/乙:要糕没有,要进去你就进去吧。

第二场)电梯中

【老王,保洁公司老板,保洁女生】

老板:关于公司保洁方面你已经做的很好了。但是其他种种事项还需要你单独来办公室单独讨论拟定。我知道你在这方面的阅历尚浅,先问你一个问题:7.你对面向对象思想的理解

保洁女生:想炒鱿鱼直接说,何必整这出。亏我昨天背了面试题:面向对象编程简称OOP技术,使用许多代码模块,每个模块都只提供特定的功能,它们是彼此独立的,可以增加代码重用的几率,更加有利于软件的开发、维护和升级。另外OOP的三大核心特性:继承、封装、多态的特性,使得在面对象编上能够设计出高内聚、低耦合的系统结构,使得系统更灵活、更容易扩展,而且成本较低,所以这一编程思想是目前一种应用最为普遍的软件设计思想。

老板:看来你还是有点功底:8.说说面向对象的三大特性

老王:我抢答:
①封装
封装就是把描述一个对象的属性和行为的代码封装在一个“模块”中,也就是一个类中,属性用变量定义,行为用方法进行定义,方法可以直接访问同一个对象中的属性。
②继承
继承是子类共享父类数据和方法的机制,这是类之间的一种关系,提高了软件的可重用性和可扩展性。在定义或实现一个类的时候,可以在一个已经存在的类的基础之上来进行,把这个已经存在的类所定义的内容作为自己的内容,并可以加入新的内容,或修改原来的方法使之更适合特殊的需要,这就是继承。
③多态
多态指的同一个对象,在程序不同时刻的多种运行状态。指的就是父类引用指向子类对象,调用方法时会调用子类的实现而不是父类的实现。不同子类继承了同一个父类。当我们统一用父类引用变量去调用这些不同的子类对象中的方法时,我们称为多态。
为使多态能运行,存在着继承或者实现关系
可以将子类的对象赋给父类/接口,以多态的形式来传递参数,增强了参数类型的灵活性。
多态的好处和弊端:
好处:多态的存在提高了程序的扩展性和后期可维护性
弊端:虽然可以预先使用,但是只能访问父类中已有的功能,运行的是后期子类的功能内容。不能预先使用子类中定义的特有功能。
多态应用场景:当接口已经确定,但同一个接口在不同环境需要不同实现的时候。如:工厂模式

老板:你是谁,还抢答,不过看起来答得不错,来保洁公司上班吧。

老王:口出狂言。

保洁女生:我辞职。

第三场)公司前台

【接待人员埃斯卡莱罗,面试者老王,面试者奥斯卡】

奥斯卡:老王这个公司不好,你千万不要来面试,他们整天加班没有加班费,放假只能调休。

埃斯卡莱罗:老王别理他,他也是来面试的。你先填一下表格:9.Java基础语法面试题

问题答案
".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?可以有多个类,但只能有一个public的类,并且public的类名必须与文件名相一致。一个文件中可以只有非public类,如果只有一个非public类,此类可以跟文件名不同
&和&&的区别&和&&都可以用作逻辑与的运算符,&&为短路与,另外&可以做为整数的位运算符,&&的两侧必须要求是布尔值或者布尔表达式。如果左侧为false程序不会去继续判断右侧表达式的真假。
java中的基本数据类型有哪些byte(位)1字节、short(短整数)2字节、int(整数)4字节、long(长整数)8字节、float(单精度)4字节、double(双精度)8字节、char(字符)2字节,boolean(布尔值)理论上占1bit。8bit是一字节。
Integer与int的区别int基本数据类型,Integer是java为int提供的封装类。int的默认值为0,而Integer的默认值为null,int是值传递值保存在值栈中,integer是引用地址传递,存在堆中通过对象的引用来调用。
char型变量中能不能存贮一个中文汉字char型变量是用来存储Unicode编码的字符的,unicode编码字符集中包含了汉字,所以,char型变量中可以存储汉字。
7)short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?由于s1+1运算时会自动提升表达式的类型,所以结果是int型,再赋值给short类型s1时,编译器会提示错误,需要强制转换类型。由于+=是java语言规定的运算符,Java编译器会对它进行特殊处理,因此可以正确编译。
"=="和equals方法有什么区别?= =操作符专门用来比较两个变量的值是否相等,比较两个基本类型的数据或两个引用变量是否相等,只能用= =操作符。equals方法只能用于判断引用类型,重写后用于判断对象内容是否相同。不重写方法的话就是使用==操作符判断引用类型的地址值。所以一定要记得重写啊,不然白给
作用域public,private,protected,以及不写时的区别?public:当前类,同包,子类,其他包。protected:当前类,同包,子类。default:当前类,同包。private:当前类。
Java 常用包java.lang–语言包:包括Object类、Thread类、String、Math、System、Runtime、Class、Exception、Process等java.util–实用工具包:Scanner、Date、Calendar、LinkedList、Hashtable、Stack、TreeSet等;java.NET–网络功能包:URL、Socket、ServerSocket等;java.sql–数据库连接包:实现JDBC的类库;java.io–输入输出包:与流相关的包;
Java 常用接口Comparable ,Collection,Set, List, Map, Runnable Iterable Iterator 等

老王:奥斯卡,这公司面试强度这么高吗?

奥斯卡:面试的真谛在于:那就是认清了面试的真相后,依然热爱面试。发觉了工作的残酷后,依然过着美丽人生。祝你好运。

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

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

相关文章

Eviews用向量自回归模型VAR实证分析公路交通通车里程与经济发展GDP协整关系时间序列数据和脉冲响应可视化...

全文下载链接:http://tecdat.cn/?p27784 河源市是国务院1988年1月7日批准设立的地级市,为了深入研究河源市公路交通与经济发展的关系,本文选取了1988-2014年河源市建市以来24年的地区生产总值(GDP)和公路通…

Java jvm 内存溢出分析

1.如何分析jvm内存溢出呢 我们经常用visualVm监控Jvm的内存,cpu,线程的使用情况,通常可以根据内存不断增长来判断内存是否存在不释放。但是我们不可能时时盯着去看,这里涉及jvm堆内存配置,堆内存参数配置和调优会在其…

rk3399 android以太网和wifi共存

Android 9 1.修改 frameworks/base/core/java/android/net/NetworkFactory.java evalRequest 方法 注释两行 private void evalRequest(NetworkRequestInfo n) {if (VDBG) log("evalRequest");if (n.requested false && n.score < mScore &&n…

uniapp中UView中 u-form表单在v-for循环下如何进行表单校验

1、数据data格式 注&#xff1a;rule绑定的tableFromRule中要和表单tableFrom下面放置一个同名数组&#xff0c;确保u-form能找到 tableFrom: {tableData: [//数据详情列表]},tableFromRule: {//校验tableData: [//数据详情列表]},formRules:{localation:[{required: true,mes…

深入剖析HTTP和HTTPS代理在爬虫中的应用价值

在当今信息时代&#xff0c;数据是无处不在且极其宝贵的资源。对于从互联网上获取大量结构化或非结构化数据的需求而言&#xff0c;网络爬虫成为一种强有力的工具。然而&#xff0c;在实际操作过程中&#xff0c;我们常常会面临许多挑战和限制。   其中一个主要问题就是目标网…

微信小程序开发---网络数据请求

目录 一、小程序中网络数据请求的限制 二、发起get请求 三、发起post请求 一、小程序中网络数据请求的限制 具体有两个限制&#xff1a; &#xff08;1&#xff09;只能请求HTTPS类型的接口 &#xff08;2&#xff09;必须将接口的域名添加到信任列表中&#xff0c;在调试的时…

k8s 入门到实战--部署应用到 k8s

k8s 入门到实战 01.png 本文提供视频版&#xff1a; 背景 最近这这段时间更新了一些 k8s 相关的博客和视频&#xff0c;也收到了一些反馈&#xff1b;大概分为这几类&#xff1a; 公司已经经历过服务化改造了&#xff0c;但还未接触过云原生。公司部分应用进行了云原生改造&…

第 2 章 线性表 (线性表的静态单链表存储结构(一个数组只生成一个静态链表)实现)

1. 背景说明 A { c, b, e, g, f, d }B { a, b, n, f } 2. 示例代码 1) status.h /* DataStructure 预定义常量和类型头文件 */#ifndef STATUS_H #define STATUS_H#define CHECK_RET(ret) if (ret ! RET_OK) { \printf("FuncName: %-15s Line: %-5d ErrorCode: %-3d\n&…

Java网络编程( 一 )数据如何在网络上传输

数据如何在网络上传输 网络发展背景发送端和接收端网络协议分层封装 & 分用封装&#xff1a;分用&#xff1a; 传输补充&#xff08;数据链路层&#xff08;以太网&#xff09;&#xff09;&#xff1a;ARP协议 网络发展背景 单机阶段—>局域网阶段—>广域网阶段—&…

【区块链】DeFi是什么?大白话科普文

对于一些没有玩过区块链、或者说没有真金白银的体验过这个虚拟世界的小伙伴来说,这篇文章可以帮你了解 DeFi。致力于帮你在这个线上走出这一步。 当然这不是理财建议。 文章目录 前言什么是去中心化金融?有哪些 DeFi 项目DeFi由哪几部分构成?热门DeFi项目有哪些?前言 Def…

tomcat安装、部署JSPGOU项目、Tomcat多实例

安装 官网找包 Apache Tomcat - Welcome! tomcat 8 准备运行环境 安装tomcat catalina.sh 服务脚本管理文件 server.xml 主配置文件 修改8009&#xff08;删除注释&#xff09; 启动tomcat 访问 为了避免每次进入绝对路径启动tomcat 法二&#xff1a; 三&#xff1a;部署…

Docker 的分层文件系统

1 分层文件系统 UnionFS 联合文件系统 bootfs&#xff1a;boot file systemrootfs&#xff1a;root file system 分层文件系统 Docker镜像都是只读的&#xff0c;当容器启动时&#xff0c;一个新的可写层被加到镜像的顶部&#xff0c;这一层就是我们通常说的容器层&#xf…

手写Spring:第11章-容器事件和事件监听器

文章目录 一、目标&#xff1a;容器事件和事件监听器二、设计&#xff1a;容器事件和事件监听器三、实现&#xff1a;容器事件和事件监听器3.1 工程结构3.2 容器事件和事件监听器类图3.3 定义和实现事件3.3.1 定义事件抽象类3.3.2 定义应用上下文事件实现类3.3.3 上下文刷新事件…

汇川PLC学习Day1:跑马灯程序编写

汇川PLC学习Day1&#xff1a;跑马灯程序编写 一、 软件安装 进入官网下载软件 二、 使用帮助 三、 新建工程与功能代码实现 CtrlN 寻找内带输出模块的CPU并设置好工程名字与保存路径&#xff0c;语言选择想熟悉的类型 工程建立后&#xff0c;PLC_PRG即为用户编写程序文件…

如何优化网站SEO(提高排名和流量的3个小知识)

百度百科SEO简介&#xff1a;搜索引擎优化&#xff08;SearchEngineOptimization&#xff09;是指通过对网站内部结构、外部链接以及页面内容等进行调整&#xff0c;从而使其在搜索引擎中排名更靠前&#xff0c;从而带来更多的流量和曝光。SEO是数字营销中的重要一环&#xff0…

合并区间【贪心算法】

合并区间 以数组 intervals 表示若干个区间的集合&#xff0c;其中单个区间为 intervals[i] [starti, endi] 。请你合并所有重叠的区间&#xff0c;并返回 一个不重叠的区间数组&#xff0c;该数组需恰好覆盖输入中的所有区间 。 class Solution {public int[][] merge(int[…

TCP Header都有啥?

分析&回答 源端口号&#xff08;Source Port&#xff09; &#xff1a;16位&#xff0c;标识主机上发起传送的应用程序&#xff1b; 目的端口&#xff08;Destonation Port&#xff09; &#xff1a;16位&#xff0c;标识主机上传送要到达的应用程序。 源端&#xff0c;目…

Jabbi的Rust学习日记(二)

特征&#xff1a; 就目前我学习到的rust知识来看&#xff0c;我认为rust有以下几个特征&#xff1a; 链式调用表达式强类型 use 使用use导入包&#xff0c;我觉得rust的导包和python的很像 main main函数是rust可执行程序最先执行的代码&#xff0c;可以说是程序的入口&…

mysql 8.0.34 部署问题记录

1. 安装包问题 mysql 社区版下载时需要下载与操作系统版本匹配的安装包&#xff0c;本次遇到的问题是现在的安装包与操作系统不匹配&#xff0c;安装时提示了依赖包未有安装&#xff0c;开发组直接使用nodeps 强行安装&#xff0c;导致安装后数据库有莫名问题&#xff0c;一直…

安全测试 —— 你了解WEB安全测试吗?

&#x1f60f;作者简介&#xff1a;博主是一位测试管理者&#xff0c;同时也是一名对外企业兼职讲师。 &#x1f4e1;主页地址&#xff1a;【Austin_zhai】 &#x1f646;目的与景愿&#xff1a;旨在于能帮助更多的测试行业人员提升软硬技能&#xff0c;分享行业相关最新信息。…