面试

拜托,学妹,别再问我怎么自学 Java 了!和盘托出

旧巷老猫 提交于 2021-01-03 11:38:58
假如有那么残酷的一天,我不小心喝错了一瓶药,一下子抹掉了我这十多年的编程经验,把我变成了一只小白。我想自学 Java,并且想要找到一份工作,我预计需要 6 个月的时间,前提条件是每天都处于高效率的学习状态当中,并且每天的学习时间至少在 12 个小时以上。 即便是这样,我敢肯定,找到的工作肯定不会太好,勉强能够维持生活吧,毕竟是零基础入门啊。 如果想更进一步,真正成为一名不可或缺的高级 Java 工程师,时间需要更久,两年、三年、五年,直到秃的那天。 想着想着,我就觉得有必要为那一天做点准备,以备不时之需。 (无中生妹。。。。。。) 01、第一个阶段,环境和工具准备 准备一台电脑,要能联网 下载、安装 JDK,配置 Java 开发环境 下载、配置 Maven 下载、安装 IntelliJ IDEA 准备一个 GitHub 仓库(或者码云),管理 Java 源代码 Java 是一门计算机编程语言,学它的话,连台电脑都没有,学个屁。我有个亲戚家的孩子想学编程,就只看书,家里连台电脑都不配,说什么“先打好理论基础,再实操”,我真的是有点醉。 有了电脑,还得联网,自学的过程中肯定会遇到很多问题,遇到问题的时候先问搜索引擎,推荐谷歌和必应;实在没有答案的话,也可以来找我,申请加入技术交流群,问问群里面的大佬们。 既然要学 Java,JDK 是必须要先安装的,否则 Java 程序就没法编译和执行

delete后加 limit是个好习惯么 !

十年热恋 提交于 2021-01-03 11:37:34
作者: _陈哈哈 blog.csdn.net/qq_39390545/article/details/107519747 在业务场景要求高的数据库中,对于单条删除和更新操作,在 delete 和 update 后面加 limit 1 绝对是个好习惯。比如,在删除执行中,第一条就命中了删除行,如果 SQL 中有 limit 1;这时就 return 了,否则还会执行完全表扫描才 return。效率不言而喻。 那么,在日常执行 delete 时,我们是否需要养成加 limit 的习惯呢?是不是一个好习惯呢? 在日常的 SQL 编写中,你写 delete 语句时是否用到过以下 SQL? delete from t where sex = 1 limit 100; 你或许没有用过,在一般场景下,我们对 delete 后是否需要加 limit 的问题很陌生,也不知有多大区别,今天带你来了解一下,记得 mark! “ 写在前面,如果是清空表数据建议直接用 truncate,效率上 truncate 远高于 delete,应为 truncate 不走事务,不会锁表,也不会生产大量日志写入日志文件;truncate table table_name 后立刻释放磁盘空间,并重置 auto_increment 的值。delete 删除不释放磁盘空间,但后续 insert 会覆盖在之前删除的数据上

Java线程安全和非线程安全

一笑奈何 提交于 2021-01-03 07:48:33
ArrayList和Vector有什么区别?HashMap和HashTable有什么区别?StringBuilder和StringBuffer有什么区别?这些都是Java面试中常见的基础问题。面对这样的问题,回答是:ArrayList是非线程安全的,Vector是线程安全的;HashMap是非线程安全的,HashTable是线程安全的;StringBuilder是非线程安全的,StringBuffer是线程安全的。因为这是昨晚刚背的《Java面试题大全》上面写的。此时如果继续问:什么是线程安全?线程安全和非线程安全有什么区别?分别在什么情况下使用?这样一连串的问题,一口老血就喷出来了… 非线程安全的现象模拟 这里就使用ArrayList和Vector二者来说明。 下面的代码,在主线程中new了一个非线程安全的ArrayList,然后开1000个线程分别向这个ArrayList里面添加元素,每个线程添加100个元素,等所有线程执行完成后,这个ArrayList的size应该是多少?应该是100000个? [java] view plain copy public class Main { public static void main(String[] args) { // 进行10次测试 for(int i = 0; i < 10; i++) { test(); } }

软件测试从业者的35岁怎么办?

我的梦境 提交于 2021-01-03 07:45:51
你肯定经常在会议室看到这样的场景: 线上出了 Bug 召集会议复盘,开发指责测试没测出来,没把好质量关; 测试抱怨开发不做单元测试,要不早发现了。 结果往往是大家写个改进报告, 测试保证添加相关测试用例并补充到回归测试集,开发承诺以后做好自测, 提交了事。 你应该做什么样的测试人? 但这样,真的对工作改进或者测试人员成长有帮助吗? 或者可以说公司真的需要你这样的测试么? 在这个 5G 时代,“快”是唯一的标准,软件研发的交付也要快,对业务来说做到持续集成、持续交付,才能满足需求。 之前看了一个 统计 ,在 2018 年初全球已有 91% 的软件开发采用了敏捷开发,而现在已经 2020 年了,国内有更多的企业采用了敏捷开发模式, 但遗憾的是,真正理解“敏捷”的初心和目标的管理者和测试人寥寥无几。 很多时候,你不知道什么是 BDD(行为驱动开发),但却在使用 BDD 的自动化测试框架; 也不知道看板和敏捷的关系,但每天都在公司的项目管理工具里,处理电子看板上的测试任务。 大部分测试人知道敏捷测试,也有敏捷测试的意识。 但受限于自身的理解和企业的使用,也就不了了之了。 敏捷测试本身涉及很多东西,它包含了人员、组织、技术、方法、流程和工具等各个方面。 敏捷测试的思想和方法到底是什么? 很遗憾,这件事情我也苦恼了一下, 因为市面上基本没有一套严谨的中文教材可以给我答案。 直到我看到了

如何面对焦虑:测试人的35岁怎么办?

核能气质少年 提交于 2021-01-03 07:36:37
你肯定经常在会议室看到这样的场景: 线上出了 Bug 召集会议复盘,开发指责测试没测出来,没把好质量关; 测试抱怨开发不做单元测试,要不早发现了。 结果往往是大家写个改进报告,测试保证添加相关测试用例并补充到回归测试集,开发承诺以后做好自测,提交了事。 你应该做什么样的测试人? 但这样,真的对工作改进或者测试人员成长有帮助吗? 或者可以说公司真的需要你这样的测试么? 在这个 5G 时代,“快”是唯一的标准,软件研发的交付也要快,对业务来说做到持续集成、持续交付,才能满足需求。 之前看了一个 统计 ,在 2018 年初全球已有 91% 的软件开发采用了敏捷开发,而现在已经 2020 年了,国内有更多的企业采用了敏捷开发模式, 但遗憾的是,真正理解“敏捷”的初心和目标的管理者和测试人寥寥无几。 很多时候,你不知道什么是 BDD(行为驱动开发),但却在使用 BDD 的自动化测试框架; 也不知道看板和敏捷的关系,但每天都在公司的项目管理工具里,处理电子看板上的测试任务。 大部分测试人知道敏捷测试,也有敏捷测试的意识。 但受限于自身的理解和企业的使用,也就不了了之了。 敏捷测试本身涉及很多东西,它包含了人员、组织、技术、方法、流程和工具等各个方面。 敏捷测试的思想和方法到底是什么? 很遗憾,这件事情我也苦恼了一下, 因为市面上基本没有一套严谨的中文教材可以给我答案。 直到我看到了

那些年与面试官交手过的HTTP问题

北战南征 提交于 2021-01-03 07:21:42
这是前端食堂的第25篇原创 「观感度:🌟🌟🌟🌟🌟」 「口味:剁椒鱼头」 「烹饪时间:20min」 本文已收录在 Github ,https://github.com/Geekhyt/front-end-canteen,感谢Star。 从淡黄的长裙和蓬松的头发我察觉到,面前坐着的这位女面试官属实是有点东西。我的自我介绍也变得声情并茂起来。Skr~~~ 在此期间,小姐姐面无改色的看着我的简历。不过无所谓,这些都不重要。 还是咱们的原定计划,把面试官引到了咱们最擅长的领域。 你觉得自己最擅长的是什么? HTTP 协议吧,我还算比较了解。 0.那你说一下OSI 网络分层模型是怎样分层的? 应用层、表示层、会话层、传输层、网络层、数据链路层、物理层 application layer、presentation layer、session layer、transport layer、network layer、data link layer、physical layer 1.TCP/IP 网络分层模型是怎样分层的? 应用层、传输层、网际层、链接层 application layer、transport layer、internet layer、link layer 2.TCP 和 UDP 区别? TCP 和 UDP 都是传输层的协议,但二者有着截然不同的基因。 TCP: 面向连接 面向字节流

如何在 3 年内从 P7 晋升 P8

我的未来我决定 提交于 2021-01-03 07:20:01
正文如下 本文是第十四届 - 前端早早聊成长晋升专场,也是早早聊第 99 场,来自 阿里云- - 亦才 的分享 个人介绍 所幸,大家讲的东西跟我今天要讲的不一样,我觉得还是比较不错的。要不然我讲的东西都是一样的话,估计大家听的也比较乏味了。 看一下我在阿里的经历,我是 2014 年加入淘宝,2019 年在阿里云,做的事情也比较多。在淘宝的时候做过业务,也做过技术产品。在阿里云这边也做过业务,也做过很多技术产品以及基础设施的建设。 大纲 今天会讲两个部分,第一个是 成长 ,第二个是 晋升 。 成长 成长这块我会多讲一些,这块我会分三个部分来讲。第一个是 成长模型 ,因为我希望大家在听完我这个 PPT 之后有一些收获,而不是说听完之后就没了。第二个是怎么去 建立自己的技术栈 。第三个是比较核心的问题是 怎么在业务中去成长 。 一、成长模型 首先是成长模型,从我自己的个人经历去总结的一个模型,外界不一定有。会分三个层次,第一个是 解决问题 的阶段,第二个是 发现问题 的阶段,第三个是 定义问题 的阶段。三个阶段都会通过一个案例去做分析,在案例里面每个阶段都是怎么去做的。 这个案例是之前做了一个技术产品叫做 UITEST,它是用来做单元测试以及 UI 测试的,这边会重点说一下单元测试。整个阶段是从下往上是一个上升的趋势。 解决问题 。先看一下解决问题这个阶段是怎么成长的?我们在做

算法刷题宝典.pdf

僤鯓⒐⒋嵵緔 提交于 2021-01-03 03:59:17
给大家推荐一个关于「算法刷题宝典」的开源项目: 力扣 Cookbook 。 力扣 Cookbook是@halfrost(中文名: 霜神 )去年刷的 力扣 整理出的 520 题,每道题都写了解题思路,并且每题都 runtime beats 100% 了。 至于为什么要求每题都 runtime beats 100%? 霜神是这样回复的:优化到 beats 100% 才算是把这题做出感觉了。有好几道 Hard 题,可以用暴力解法 AC 了,但只 beats 了 5%,这题就如同没做一样; 而且面试中如果给了暴力的答案,面试官也不会满意,通过自己的思考给出更优解,面试官也会更满意一些。 所以如果你把这些题解都摸透,相信在面试环节你可以从容的回答“还有没有更优解”这个问题。 现在就把这本电子书分享给大家,希望能帮助大家克服刷题的恐惧,顺利拿到大厂offer。 获取方式: 扫描下方二维码 ,后台回复关键词: LeetCode 即可获取这本电子书! 👆长按上方二维码 2 秒 回复「 LeetCode 」即可获取资料 此外这里还有一份华为大牛总结的 Linux 归纳笔记,一并分享给大家。 这份资料非常全面且详细,从 Linux 常用命令 到 Linux 常用操作 ,再到 网络管理 、 性能优化 ,几乎覆盖了 Linux 基础学习的方方面面,非常适合初学者入门! 资料也按目录进行编排

JVM垃圾回收机制是怎样的,何时触发YoungGC或FullGC操作?

点点圈 提交于 2021-01-03 00:17:04
听说微信搜索《Java鱼仔》会变更强哦! 本文收录于 JavaStarter ,里面有我完整的Java系列文章,学习或面试都可以看看哦 (一)关于垃圾回收 JAVA的垃圾回收需要完成三件事情: 1、哪些内存需要回收 2、什么时候回收 3、如何回收 下面就从这三个问题出发去了解Java的垃圾回收机制。 (二)哪些垃圾需要回收 在垃圾回收之前,首要的问题是确定哪些垃圾需要被回收,现在Java通过根搜索算法(GC Roots Tracing)来判断一个对象是否存活,这个算法的思路就是通过一系列名为“ GC Roots ”的对象作为起始点,从这些节点向下搜索,当GC Roots到达不了这个某个对象时(或者说某个对象没有被任何其他对象所引用),就证明这个对象是不可用的,这些对象会被判定为需要回收的对象。 如图,ObjC是不可达的,这个对象就是需要被回收的对象。 在Java语言中,可作为GC Roots的对象包括下面这些: 1、虚拟机栈(栈帧中的本地变量表)中引用的对象 2、方法区中的类静态属性引用的对象 3、方法区中的常量引用的对象 4、本地方法栈(Native方法)引用的对象 (三)什么时候回收 关于如何回收的问题,我参考了《深入理解Java虚拟机》,根搜索算法中不可达的对象,并不是立刻就会被回收,而是会经过一次标记: 如果对象没有覆盖finalize()方法,或者finalize(

算法刷题宝典.pdf

╄→尐↘猪︶ㄣ 提交于 2021-01-02 23:37:55
今天推荐一个关于「算法刷题宝典」的开源项目: 力扣 Cookbook 。 力扣 Cookbook是@halfrost(中文名: 霜神 )去年刷的 力扣 整理出的 520 题,每道题都写了解题思路,并且每题都 runtime beats 100% 了。 至于为什么要求每题都 runtime beats 100%? 霜神是这样回复的:优化到 beats 100% 才算是把这题做出感觉了。有好几道 Hard 题,可以用暴力解法 AC 了,但只 beats 了 5%,这题就如同没做一样; 而且面试中如果给了暴力的答案,面试官也不会满意,通过自己的思考给出更优解,面试官也会更满意一些。 所以如果你把这些题解都摸透,相信在面试环节你可以从容的回答“还有没有更优解”这个问题。 现在就把这本电子书分享给大家,希望能帮助大家克服刷题的恐惧,顺利拿到大厂offer。 获取方式: 扫描下方二维码 ,后台回复关键词: 算法 即可获取这本电子书! 👆长按上方二维码 2 秒 回复「 算法 」即可获取资料 2、 《剑指offer》 这本书大家一定如雷贯耳吧,基本上只要你是程序员就一定会用到这本书,书里面剖析了50个典型的程序员面试题,从基础知识、代码质量、解题思路、优化效率和综合能力五个方面系统整理了影响面试的5个要点, 是程序员找工作必备的一本书。 这本书也给大家准备了高清PDF版电子书, 扫描下方二维码