面试

iOS多线程的锁,你知道多少?

那年仲夏 提交于 2020-12-14 10:08:36
前言 iOS开发中由于各种第三方库的高度封装,对锁的使用很少,刚好之前面试中被问到的关于并发编程锁的问题,都是一知半解,于是决定整理一下关于iOS中锁的知识,为大家查缺补漏。 目录 第一部分: 什么是锁 第二部分: 锁的分类 第三部分: 性能对比 第四部分: 常见的死锁 第五部分: 总结(附 Demo ) 正文 一、什么是锁 在过去几十年并发研究领域的出版物中,锁总是扮演着坏人的角色,锁背负的指控包括引起死锁、锁封护(luyang注:lock convoying,多个同优先级的线程重复竞争同一把锁,此时大量虽然被唤醒而得不到锁的线程被迫进行调度切换,这种频繁的调度切换相当影响系统性能)、饥饿、不公平、data races以及其他许多并发带来的罪孽。有趣的是,在共享内存并行软件中真正承担重担的是——你猜对了——锁。 在计算机科学中,锁是一种同步机制,用于多线程环境中对资源访问的限制。你可以理解成它用于排除并发的一种策略。 if (lock == 0) { lock = myPID; }复制代码 上面这段代码并不能保证这个任务有锁,因此它可以在同一时间被多个任务执行。这个时候就有可能多个任务都检测到lock是空闲的,因此两个或者多个任务都将尝试设置lock,而不知道其他的任务也在尝试设置lock。这个时候就会出问题了。再看看下面这段代码(Swift): class Account {

面经:整理汇总

青春壹個敷衍的年華 提交于 2020-12-14 08:19:43
本文来自晓文面试总结 昨天相继看到腾讯、Oppo等公司的校招提前批已经开始,你们是否感受到了压力呢?没关系,小编今天给你整理一下咱公众号和其他公众号发布的一些有关校招面经的帖子,助你一臂之力! 小编衷心祝愿今年参加校招的各位都能斩获自己满意的offer! 【带答案面经分享】 带答案面经分享-L1正则&L2正则 带答案面经分享-面试中最常考的树模型! 面试常考-链表反转解析 BAT面试题汇总!! 查收一份附带答案的面经! 【不带答案面试题分享】 【新鲜出炉】快手推荐算法 & bing搜索 面经 新鲜出炉的推荐算法工程师面经~~ 头条广告算法面经! 热乎乎的计算机视觉岗实习面经请您查收~~ 算法面试太难?反手就是一波面经 【面试经验分享】 我在美团的这两年,想和你分享 小编校招经验分享-高考结束!校招还会远么~~ 【其他】 万字长文带你复习线性代数! 整理一些计算机基础知识! 整理一份机器学习资料! 一招解决4道leetcode hard题,动态规划在字符串匹配问题中的应用 小编去年的所有面试题:https://www.jianshu.com/nb/14191364 推荐阅读: 如何拿下10个算法工程师offer,不可错过! Python数据分析学习路线个人总结 面经:L1和L2正则 Python与算法社区 点个好看 本文分享自微信公众号 - Python与算法社区(alg

跳来跳去,最后竟成了“跳梁小丑”!

最后都变了- 提交于 2020-12-14 08:17:54
看到HR小哥最近一脸愁容,走过去问一问发生了啥。原来,刚招的员工离职走人了,他又得重新招人。“招人的速度真是赶不上他们离职的速度呀!”HR小哥抱怨到:“真是不敢招频繁跳槽的人了,这些人的稳定性太差,对公司忠诚度低,来了不久又跳槽,还得重新招人……”除了HR,发现最近项目组长也开始唠叨:“那个小A走了?来了还没到3月吧?入职后一月打酱油, 离职前一月打酱油,剩下一月能干啥?” 程序员小M最近也比较烦,他说自己找不着工作了。上一个月,他从一家互联网公司离职,这已经是他这一年来的第3次离职。他把简历投给了很多HR,想得到面试机会。有的公司直接拒绝了他,给的原因是:你跳槽太频繁了,不适合我们公司。还有的公司给了他面试机会,但还是拒绝了他,给的原因还是:你跳槽太频繁了,不适合我们公司……就这样,小M不仅现在都还没找到工作,还对自己的未来感到了迷茫~ 确实,程序员这个群体好像已经被贴上了[爱跳槽]的标签。其实,跳槽并不是什么坏事。适度跳槽能够增强人的竞争意识,让人学到新的本事。但是,跳槽也得有个限度,频繁跳槽并非好事。它让你简历产生“污点”,让HR觉得你不可靠。也让面试官觉得你无法胜任工作,会和同事相处不好……跳来跳去,会发现自己竟成了“跳梁小丑”,没有公司想要自己了。 不过,程序员离职的原因多种多样,并不是单纯为了更高的薪水。有的是觉得自己遇见了傻逼领导,在他手下干活简直让人绝望

分支和循环

 ̄綄美尐妖づ 提交于 2020-12-14 08:16:06
1、分支语句和循环语句 C语言是一门结构化的程序设计语言 顺序结构 选择结构 循环结构 1.1、分支语句 if语句 #define CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> int main() { int num = 4; if (5 == num)//常量和变量的比较放在左边比较不会出错 { printf("hehe\n"); } return 0; } //int main() //{ // int num = 4; // if (num == 5) // printf("hehe\n"); // return 0; //} //int main() //{ // int num = 4; // if (num = 5) // { // printf("hehe\n"); // return 0; // } //} //int main() //{ // int a = 1; // int b = 0; // if (a == 1) // { // if (b == 2) // printf("hehe\n"); // } // else // printf("haha\n"); // return 0; //} //int main() //{ // // / int age = 10; // if (age < 18) //

10道初级渗透测试面试题,测测你离职场有多远?

百般思念 提交于 2020-12-14 07:44:47
话不多说,先来做个小测试,看看水平如何? 1、为何一个MYSQL数据库的站,只有一个80端口开放? 2、一个成熟并且相对安全的CMS,渗透时扫目录的意义? 3、在某后台新闻编辑界面看到编辑器,应该先做什么? 4、审查上传点的元素有什么意义? 5、CSRF、XSS及XXE有什么区别,以及修复方式? 6、3389无法连接的几种情况 7、列举出owasp top10 2017 8、说出至少三种业务逻辑漏洞,以及修复方式? 9、目标站无防护,上传图片可以正常访问,上传脚本格式访问则403,什么原因? 10、目标站禁止注册用户,找回密码处随便输入用户名提示:“此用户不存在”,你觉得这里怎样利用? 参考答案 1 更改了端口,没有扫描出来; 站库分离; 3306端口不对外开放。 2 敏感文件、二级目录扫描; 站长的误操作比如:网站备份的压缩文件、说明.txt、二级目录可能存放着其他站点。 3 查看编辑器的名称版本,然后搜索公开的漏洞。 4 有些站点的上传文件类型限制是在前端实现的,这时只要增加上传类型就能突破限制了。 5 XSS是跨站脚本攻击,用户提交的数据中可以构造代码来执行,从而实现窃取用户信息等攻击。修复方式:对字符实体进行转义、使用HTTP Only来禁止JavaScript读取Cookie值、输入时校验、浏览器与Web应用端采用相同的字符编码。 CSRF是跨站请求伪造攻击

2019校招面经大汇总

試著忘記壹切 提交于 2020-12-14 07:22:57
转载链接: https://www.nowcoder.com/discuss/90907?type=0&order=3&pos=24&page=1 【杭州有赞】 【Java】杭州有赞三面技术面试 https://www.nowcoder.com/discuss/85395 【多益网络】 【产品研发工程师】多益网络 提前批视频面 https://www.nowcoder.com/discuss/85304 【产品策划】多益网络提前批产品策划面经 https://www.nowcoder.com/discuss/85248 【产品助理】多益网络秋招提前批互联网产品助理岗二面主管面面经 https://www.nowcoder.com/discuss/85125 【产品岗】多益网络2019提前批面经:产品岗 https://www.nowcoder.com/discuss/88379 【游戏研发】多益网络游戏研发面试 https://www.nowcoder.com/discuss/85208 【深信服】 【C++云计算岗】水硕的深信服一面,C++云计算岗 https://www.nowcoder.com/discuss/85058 【c++】深信服c++电话面估计已凉 https://www.nowcoder.com/discuss/87516 【c++】深信服一面,c++研发

不实习,如何增加Java项目经验?

生来就可爱ヽ(ⅴ<●) 提交于 2020-12-14 06:24:15
现在, 不论是 电商 、 大数据 还是 人工智能 ,几乎99%的项目都要用到Java,因此国内外对Java工程师的需求都非常大。 但不少人跟我诉苦说, 没项目经验 ,要想 找一个高薪Java岗很难! 的确,现在无论公司大小,面试时都非常关注 数据结构与算法 以及 项目经验 。 而作为大学生,如果做过亮眼的项目,对拿大厂offer非常有好处! 因此,今天给大家推荐一个 Java项目训练营 ,是有 腾讯技术专家 亲自授课, 带做 真实落地项目 。 我体验后发现, 不仅能提升自 己的项目能力和经验,还能学到如何写出清晰、健壮、高效的代码, 对就业非常有帮助 。 建议想找Java岗的同学去一定去学习,但 免费 名额我只搞到 100 个。 由于名额有限,为了把机会留给更有需要的同学,参加学习需满足以下条件: 统招本科及以上学历; 有志于成为Java方向工程师; 每天至少有 3 小时学习时间。 现在,你可扫描海报上的二维码或点击阅读原文,快速抢占名额! 本文分享自微信公众号 - web项目开发(javawebkaifa)。 如有侵权,请联系 support@oschina.cn 删除。 本文参与“ OSC源创计划 ”,欢迎正在阅读的你也加入,一起分享。 来源: oschina 链接: https://my.oschina.net/u/4606165/blog/4646568

我整理了 15 张 Vim 速查表,喜欢收藏

旧时模样 提交于 2020-12-14 06:23:57
来源:www.jianshu.com/p/6aa2e0e39f99 去年上半年开始全面使用 Linux 进行开发和娱乐了,现在已经回不去windows了。 话归正传,在linux上一直使用vim,慢慢熟悉了它的命令,才终于领悟了什么是编辑器之神。 最近抽空整理了这份速查表,收获颇丰,并分享给大家。 tips : 关注公众号: Java后端,每日技术博文推送。 进入vim vim配置 移动光标 屏幕滚动 插 入文本类 删除命令 复制粘贴 撤销 搜索及替换 书签 visual模式 行方式命令 宏 窗口操作 文件及其他 - End - 技 术 连 载 目 录 ( 可 点 击 跳 转 即 可 阅 读 ) : 面试题系列教程 点击 --> 面试题 技术干货连载目录 跳转 Maven系列教程 点击 --> Maven技术干货连载目录 跳转 MyBatis系列教程 点击 --> MyBatis技术干货连载目录 跳转 JVM调优总结系列教程 点击 --> JVM调优技术干货连载目录 跳转 点 击 在 看 , 愿 你 我 不 再 陌 生 本文分享自微信公众号 - 程序员书单(CoderBooklist)。 如有侵权,请联系 support@oschina.cn 删除。 本文参与“ OSC源创计划 ”,欢迎正在阅读的你也加入,一起分享。 来源: oschina 链接: https://my

阿里政企云体验技术团队招聘

烂漫一生 提交于 2020-12-14 06:11:39
我们是谁 大家好,我们是「 「阿里巴巴政企云体验技术」 」团队,致力于打造 BG(面向政府和企业)行业背景下顶尖的体验技术,希望通过体验技术赋能我们的客户、产品以及合作伙伴。同时我们也是一支 「 「年轻」 」** 😎 **的前端队伍,从 2019.07 月成立至今,已经小有规模到达 20 人,我们在阿里经济体的脊背上极速成长。 我们在做什么 在 2019 年 7 月的时候,阿里巴巴 CEO 逍遥子整合了集团内多个 BU 内部兵力会师一方,成立了阿里巴巴**「政务钉钉事业部」 「(服务于政府 & 企业,现在更名为」 「政企云事业部」 「)」 ,**正式开辟了政务数字化转型的新赛道。 至此之后,我们以提高政务办事效率为目标,通过借力阿里巴巴内部的技术和业务沉淀以及建设数字政务协同中台,帮助打通政府大量现存的工作系统,促进政务公开透明和法制化,实现 「开放」 、 「安全」 、 「智慧」 、 「高效」 的数字化协同政务工作平台。 业务方面 我们基于 钉钉 的技术骨架,为 BG 客户提供了统一账号身份的客户端 App,在 App 的 **基座 **上提供了符合政务场景的办公协同 「核心产品」 ,包括:IM(即时通讯)、通讯录、视频会议、直播、日程待办、云盘以及工作台等。以下是产品示意,可查看 官网 了解更多: 我们也为客户以及合作伙伴(ISV)提供了强大的 「开放平台」

搞懂这7个Maven问题,带你吊打面试官!

拟墨画扇 提交于 2020-12-14 06:02:20
点击关注上方“ Java大数据编程学习 ”,设为“置顶或星标”,第一时间送达技术干货。 作者丨张丰哲 www.jianshu.com/p/20b39ab6a88c 在如今的互联网项目开发当中,特别是Java领域,可以说Maven随处可见。Maven的仓库管理、依赖管理、继承和聚合等特性为项目的构建提供了一整套完善的解决方案,可以说如果你搞不懂Maven,那么一个多模块的项目足以让你头疼,依赖冲突就会让你不知所措,甚至搞不清楚项目是如何运行起来的.... OK,博主就曾经被Maven“伤害”过,那么该专题的目的就是:彻底搞定Maven! 回想一下,当你新到一家公司,安装完JDK后就会安装配置Maven(MAVEN_HOME、path),很大可能性你需要修改settings.xml文件,比如你会修改本地仓库地址路径,比如你很可能会copy一段配置到你的settings.xml中(很可能就是私服的一些配置)。 接下来,你会到IDEA或者Eclipse中进行Maven插件配置,然后你就可以在工程中的pom.xml里面开始添加<dependency>标签来管理jar包,在Maven规范的目录结构下进行编写代码,最后你会通过插件的方式来进行测试、打包(jar or war)、部署、运行。 上面描述了我们对Maven的一些使用方式,下面我们进行一些思考: 1. 本地仓库?Maven到底有哪些仓库