一场从单例开始的狂轰滥炸般的面试.....

Unity 单例基类(运用单例模式) 文章目录单例模式介绍实现思路饿汉模式懒汉模式经典版多线程加锁版加锁改进版单例基类普通单例基类继承自 MonoBehaviour 的单例基类(手动添加到游戏对象上)继承自 MonoBehaviour 的单例基类(自动添加到游戏对象上) 单例模式介绍 单例模式是程序开发中很常用的一种设计模式。有时候为了节省内存资源、保证数据内容的一致性,对某些类要求只能创建一个实例,这就是单例模式。在 unity 中,一些充当管理者的脚本就很适合使用单例模式,比如 UI 管理、事件管理,他们一般都是唯一存在的。 实现思路 通常 阅读详情

声明:本文首发微信公众号【菜鸟要飞】,如有转载,请标明出处!

前几天从非技术的层面分享了我最近一次跳槽面试的经验,感兴趣的可以看看——工作三年后,才敢向大厂跳槽......其中提到了面试官往往喜欢从面试者简历上展现的某一个技术点对其深入考查,今天则分享下面试官是如何深入“虐”我的。

我的技术面试是从简历的第一句话开始的:扎实的Java基础,熟练掌握常用的设计模式。相信很多读者的简历,关于技术方面的描述都是从这句话开始的。

面试官有点匆忙但又一副全副武装的神情,完全没有按照常理出牌,拿到简历后,没有自我介绍环节,直接进入正题。

“看你对设计模式掌握的还不错,说说在项目中常用的设计模式”

“用到过单例模式、观察者模式、工厂模式、适配模式、动态代理模式等”,其实我在实际开发中,至今没写过任何的设计模式,这些模式在项目中确实用到过,只不过由架构组封装好,我们业务部门只需要调用。但面试前我把单例模式反复敲了很多遍。所以又补充说,“但在实际项目开发中我使用最多的是单例模式,其余基本上是在研究开源项目时学习过的”。

果然,面试官就朝着我设想的道路大步而来,“那你说说,单例的几种实现方式”

此时我有点暗自得意,这个问题很对此时的我来说很easy,于是开始了我的表演,叭叭叭讲了一会,还从加载机制上做了分类,并介绍了各自的优缺点。

面试官随后拿出纸笔,说到“手写一种你在项目中使用的实现方式”。

于是,我假装思考了几十秒,开始手写代码,尽管我已成竹在胸,但还是表现出很吃力的感觉,以免让面试官看出来我是准备过的。感觉自己真是个机灵鬼呢。

面试官针对这个双重检查锁的单例开始了一轮狂轰,几乎对每一行代码都进行了考查。为什么对变量加synchronized而不是对方法加;为什么使用双重检查锁等等。

对这两个问题因为紧张回答的有点语无伦次,很多细节也都忽略而过,但最后还是绞尽脑汁的总结一下:同步锁和双重校验都为了保证即使在多线程下也能保证实例的唯一性。自我感觉有点心虚,偷偷瞟了一眼面试官,只见他点了点头,我还是有点窃喜的,心想单例这一块应该过关了吧,我一个做Android开发的,掌握这些应该很不错了。

又见他不紧不慢的问到,“那为什么单例的变量要用volatile修饰呢?”,看那个样子,他的表演才刚刚开始.....

我心里是一万个曹尼玛,真的连第一句都不放过吗?幸亏我了解过这个知识点,战战兢兢的说道,“volatile是轻量级的同步锁,能够保证变量的可见性”

“恩,在new实例的时候不是使用过synchronized进行同步阻塞,为什么还要使用volatile保证可见性呢?”

我的内心开始有点慌乱,实在不知如何回答,空气突然有点安静,但内心依旧告诉自己,不要轻易说不知道。于是又重复了刚才的总结,“也是为了保证变量的唯一性。”

面试官似乎不愿意放过我,说道,“你刚才也说过了同步锁和双重校验就是为了保证实例的唯一性啊,那他们是不是重复了,volatile没有存在的必要吧。”

此刻,我开始咒骂自己,真是手贱啊,为什么写这种实现方式呢?但话说回来,尽管在面试前这种实现方式我研究了不下于十次,但真的没有认真了解过volatile在这里的真正作用,此刻我也怀疑volatile是不是多余的。我不得不委婉的说道,“这个点我有点遗忘了。。”

面试官仿佛总能记住我回答过的每个关键词,接着问,“刚才你说到volatile的可见性,那你能具体讲解一下可见性的含义吗?有什么作用?”

好吧,这特么是到java内存模型了吗?我最终还是直截了当的说出了那三个字——不知道。我内心有点气愤,我就是个做Android的,java基础问这么深,至于吗?于是面试官将视线转移到简历上,开始寻找下一个技术点........

当然,上面的面试场景中,关于面试官考查的方面绝对真实,而“我”的回答为了迎合氛围做了调整。事实上我回答的还算可以,volatile的在单例中真正作用我还是知道的,而且考查的技术点从java内存模型延展了java的内存分配再到jvm虚拟机最后延续到jvm的回收。虽然在很多方面回答的都有缺陷,但不至于完全懵逼的地步,毕竟我准备了很长时间。

就是想告诉大家,大厂面试官的面试套路基本如此。每个技术点都会深入考查,直到你或者面试官自己不会为止。还是那句话并不是面试官为难面试者或者炫技,只不过想考查面试者的技术深度。

那技术的深度又怎么定义呢?也不少大牛说过,研究源码或原理的时候不要太在意细节,很容易钻牛角尖,要抓住技术的关键点。但哪些属于细节哪些属于关键点呢?对每个人都不一样吧。我个人来说,在平时的学习中,在java层面只要看不懂的地方都是关键点,就是一层技术深度,我会尽可能的去研究,直到实在啃不动就先放放。相信有读者和我有类似的同感,一个知识点当时不明白,等过段时间再看就会恍然大悟。经过一段时间的坚持,在技术深度上也会有所积累。

总之,简历是你最好的复习大纲,简历上展示的技术点一定要做深度复盘,否则你会被虐的怀疑人生。

 

 

欢迎关注我的公众号:【菜鸟要飞】 ,面试宝典、学习路线、源码分享等等你来学

华为OD的五轮面试总结 华为OD的五轮面试 简述 在今年疫情期间,通过BOSS直聘,受邀华为OD的Java工程师面试;整整一个月(3月中-4月初)的时间,经过了5轮的筛选,现在对这次面试进行概括性复盘,给大家分享下我所收集到的各种信息和相关面试流程的建议,希望对大家有用; 华为OD是什么?跟华为又有什么关系? 根据各方信息所得(包括网络查询、面试官的解答),华为OD是华为与德科的合作的一个针对华为社招人才培养的一种新型方式;开始时间大概是2019年试行,2020普遍应用的一种社招方式;(讲些人话)大概的意思就是,华为从2019年 阅读详情

相关推荐

说说我来北京面试的几次遭遇经历。

总结总结我来北京的几次面试 1. 第一次让我不爽的经历是去teradata.       由于我有数据库研发的经历,有一次跟同学聊天,无意中发现非常适合自己,而且恰巧再招人,所以同学很热情的帮忙投了简历。      第一面是技术面试,介绍之前的数据库。由于我做过数据库的核心底层存储,所以讲起来还是头头是道。面试官听着听着又跑去叫来3个人一起听,然后一起提问。现在想想也大有违反保密协议的嫌疑

xingfu9966(我爱笨笨) 1893

五年的职业生涯感想,博客纪念日

机缘 一开始写博客,只是单纯的为了做笔记,方便日后查看。 所以17年的我,只简简单单的写了一篇文章。 到后来慢慢学习,还是感觉需要做笔记,记录下来,所以我成为了一名博主。 收获 准确的来说写博客应该是4四年,毕业工作5年。 五年,收获很大。 技术上的收获,从入门到熟悉原理,走了很多弯路,也花费了很多时间。感觉上主要分两个阶段,第一个阶段就是应用,那会那毕业很多东西都没用过也不知道,就开始学习怎么用,...

贱男 862

android面试问题,,android开发实习面试题

我坚信,坚持学习,每天进步一点,滴水穿石,我们离成功都很近!以下是总结出来的字节经典面试题目,包含:计算机网络,Kotlin,数据结构与算法,Framework源码,微信小程序,NDK音视频开发,计算机网络等。字节高级Android经典面试题和答案图片转存中…(img-HnyNUjir-1709470751538)][外链图片转存中…(img-GYuhiV86-1709470751538)]本文已被CODING开源项目:《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》收录。

D1561691的博客 983

Unity单例模式较为简单的理解

本文将介绍unity中单例模式从最简单到复杂的实际使用。 首先书写一个最简单的单例模式,这个类的成员变量就是一个自己的对象,并且初始化的时候将这个变量设置为自己。 然后我们将这个脚本给某个对象: 此时这个脚本的实例就是它自己本身。 然后我们就可以在另外的脚本中,直接调用该类.实例.方法的方式直接调用该类里的函数: 一般来说,不需要继承MonoBehaviour。 接下来对单例模式进行细化讲解: 单例模式是指在内存中只会创建且仅创建一次对象的设计模式。在程序中多次

weixin_43757333的博客 1万+

面试经验总结

2025年 三年嵌入式软件工程师9,10月份求职经历记录。

weixin_44146716的博客 1153

2026华为OD面试手撕代码真题目录

一般面试的时候每一轮技术面都会出一到两个手撕代码题,这些题的特点就是,非常短小,易于理解。不可能会再出阅读理解一样的机试题的。但是这些题目也非常注意基本功,很注意细节的处理,一般都是easy+medium题目。但是大家一定要注意,因为大部分面试官上面一开始就会让你做题,直接看你所有的做题过程(防止有人水平一般,机试就网上找的答案的蒙混过关),手撕代码题会给你后面的面试定一个基调。

MISAYAONE的博客 9万+

Unity中 单例模式

在`Awake()`方法中,如果`instance`为`null`,则将当前实例赋值给`instance`,否则销毁重复的实例。如果该实例不存在,它将在内部被创建,否则直接返回已有的实例。请注意,使用这种方式时,确保在调用`GameManager.instance`之前,`GameManager`类的实例已经被正确初始化。在游戏开发中,特别是使用Unity引擎时,单例模式经常用于管理全局的状态、资源、设置或其他对象,以确保它们在整个游戏中始终只存在一个实例,从而避免不必要的重复创建和管理实例。

qq_74158527的博客 3897

unity中涉及的三种单例模式

unity中在场景切换时需要经常数据分享并处理,在此分享给大家利用C#模式和Unity模式分别实现的单例共享数据

我的华为面试心得

领英上的一篇文章,作者社招进入华为,其经历具有典型性,供大家参考,正文作者peter yu正文 说起和华为的缘分,真的很巧。其实我只是无意间的更新了一次简历,第二天就接到了华为的电话。因...

graymount的博客 2343

英飞凌AURIX™ Development Studio(ADS)工程调试与烧录实战指南

本文详细介绍了英飞凌AURIX™ Development Studio(ADS)的工程调试与烧录实战指南。从调试环境搭建、硬件连接到断点设置、变量监控等核心调试技巧,帮助开发者快速掌握ADS安装使用教程,提升多核处理器开发效率。

k8l9m0n的博客 574

【推荐算法】召回模型总结

【推荐算法】召回模型总结

m0_48086806的博客 6243

5分钟之内,让你轻松掌握面试流程

今天咱们来谈谈面试流程”以及在每一环节中我们应该做好哪些准备。 笔者总结自身的亲身经历,对硬件工程师在华为、大疆、大华、汇顶科技、海康等等大厂的招聘流程进行了汇总。 争取5分钟之内,让你轻松掌握所有面试流程!

woshizzai的博客 1168

Android应用加固脱壳实战:从爱加密原理到Frida内存Dump与修复

在移动应用安全领域,代码加固与动态加载是保护核心逻辑的关键技术。其原理在于通过修改应用启动流程,将原始DEX加密隐藏,并注入包含解密逻辑的壳DEX,实现运行时动态加载。这项技术的核心价值在于防止应用被逆向分析、二次打包或恶意篡改,广泛应用于金融、游戏等高安全要求场景。对于安全研究、漏洞挖掘或历史版本审计,掌握脱壳技能至关重要。本文聚焦于**爱加密**等主流加固方案,深入探讨如何利用**Frida**框架在内存中精准捕获解密后的DEX数据,并解决脱壳后常见的签名校验等运行问题,提供一套从原理到实践的完整攻防思

weixin_28716443的博客 490

网易游戏实习生面试

今天上午进行了网易移动游戏组的电话面试,本来之前约好上午10点开始,可是接到电话,服务器突然坏了,那组工程师们正在抢修!,让我深深感激到,码农这个行业,无时无刻都要待命,这也算一个小插曲吧,估计就注定了后面被虐的不要不要的结局了,下面不扯淡,记录一下今天的面试过程 首先当然是前篇一律的介绍一下自己,当我说完之后,面试官不动声色的说了一句,我本科也是西电的!听到这我心里一个窃喜,以为能看在校友的面

martinmateng的博客 2314

【电脑技巧】CPU正常运行时间过长,怎么解决?

目录 问题描述 解决方案 1、问题描述 不少同志都遇到过这样的问题:按【Ctrl + alt + delete】打开任务管理器,切到“性能”选项卡下,发现自己电脑的CPU正常运行时间竟然为好几十天!很多人担心这会不会影响电脑的寿命?于是很想知道这是怎么回事,以及如何解决这个问题。 我在此解答一下,这是由于你的电脑开启了“快速启动”这一选项的缘故,只要把这一选项关闭,问题就解决了。 2、解决方案 怎样关闭“快速启动”呢?按照如下的步骤来即可。 顺便声明一下,笔者的电脑配置: 使用电脑:联想Yoga 14

橄榄树下的孩子 3万+

Android功耗系列专题分析之四:待机概率性功耗高的失效分析

本文分析了Android设备待机功耗异常高的问题。通过日志发现系统休眠失败,原因是PowerManagerService.Display唤醒锁未被释放。进一步排查发现,指纹解锁功能在灭屏时未正确释放屏幕锁定,导致DisplayReady状态异常。解决方案是将指纹功能的背光控制与DisplayReady状态控制分离,使用两个变量独立管理。经验表明,快速定位问题比解决问题更重要,修改原生流程时需谨慎评估风险。

451

上海百度面试

接到面试通知是在杭州去参加同花顺面试的路上,当时我正在公交车上,然后突然接到一个上海的电话打过来,当时一脸懵逼的状态,因为上海百度好像是在7月底投递的,因为过了挺长时间都没有接到面试通知所以当时就放弃了也没有怎么去想,当电话那头说她是上海百度的,我有一点不太相信还以为是诈骗的呢,因为前几天刚刚出了李文星的事情,不过聊着就发现并不是的,然后做了一下简单的沟通就约定一下面试的时间,那天是周五我约定面试

Leeyongbard的博客 1365

【人工智能】大模型可以分为L0层:基础大模型/通用大模型、L1层:行业大模型、L2层:细分场景模型三个层级

大模型确实可以分为L0、L1、L2三个层级,这种分层架构不仅有助于提升模型的泛化能力和适应性,还能更好地满足不同行业和场景的需求。华为盘古大模型的分层架构(L0、L1、L2)在多个证据中得到了详细描述和验证。例如,华为云盘古大模型3.0明确分为L0基础大模型、L1行业大模型和L2场景模型三层架构。此外,其他来源也一致支持这一分层架构,如用友网络的企业服务大模型、智谱AI的GLM-4系列等。

奶爸的编程之路,也就一周冷个三天 3982

2019Android秋招提前批面试总结(已拿BAT等6家offer)

在上一篇实习随笔| 周记(五)提过因为实习忙碌和秋招提前批将尽而焦灼和苦恼,于是在各种思想斗争和考虑后,终于下定决心在项目新版本上线之际办理了离职,并开始全心全意投入秋招。 原以为此行必将艰难,也做好了持久战的准备,没曾想一路出奇的顺利。现在不打算再找了,终于可以好好填旧坑写总结了! 在2018Android暑期实习面试总结曾介绍过个人情况、自学经历、校招流程和复习重点,这部分就不再赘述。那...

迎风致万里的博客 1492

【通信】多径衰落信道的matlab仿真

1 简介 2 部分代码 clearf_c=1e3; %carrier frequency(no modulation)time_1 = (linspace (0, 10, 1000)); %timesignal_in = sin (2 * pi *f_c* time_1); %sine wave plot (time_1, signal_in, 'b');grid on;

qq_59747472的博客 1383

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

【面试】面试之交通银行

这两天面试“交通银行信用卡中心”和“交银企服”。感触颇深:千万不要等着自认为知识全面时才敢去尝试,其实面试是一个能快速增长眼界、知识、信心的过程。有这么一类人,总是等到自认为一切就绪后才会去做,不幸笔者也属于此类人,之所以说不幸,是因为在准备的过程中,其实错过了很多的机会。呵呵,扯远了,其实想说的就是自信点,要敢于迈出第一步,其实当你迈出第一步之后,一切也就无所谓了。不要太纠结,一个字“上”就对了...

暮雨亦成詩 7865

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

一波拿下某国企测试offer,谈谈我的一点面试心得

在前几年,小酋陆陆续续写过如何设计简历,如何面试的一些经验之谈(感兴趣的朋友可以在公众号:“伤心的辣条”进去查阅)。虽然小酋总共也没换过几份工作,但在那些年做测试管理者时,面试的人应该也有近三位数。小酋一直相信,当你面试他人的时候,实际也是针对自己的一轮面试。所以,自然知道其中需要注意的细节,也积累了较为丰富的经验。 看过我前一篇公众号文章的朋友都知道,小酋有点思变了,所以打算走出待了四五年的安乐场。小酋是个很叼的人,已经过了毕业时才会使用的简历海投战术,要遇到合适的公司和项目才会去。所以在上周筛选出离..

software_test010的博客 599

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

系统学Android从零开始,源码+原理+手写框架

现在的IT行业竞争压力越来越大,尤其是Android开发行业。而很多Android程序员却每天都在重复CRUD,原地徘徊! 今年年初,你就想改变现状,于是在网上刷了大量面试题,强行记下之后,开始参加面试!但是你发现,现在的面试,却越来越难了。 投了10份简历,只有一家给了面试邀请。面试官平时的工作内容都不问,问的都是没怎么听过的名词,**什么hybird,NDK,难得问到背过的题,却不按套路出牌问原理,上来就是一顿连环炮,让你措手不及!**甚至怀疑自己是个假的程序员,感觉什么都不懂! 每个人都变得越来越浮

m0_56130999的博客 111
上一篇: 一个会对对联的AI项目
下一篇: 别装啦!一看就知道你要跳槽了.....
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值