为一线互联网而奋斗

2024-05-23 18:38
文章标签 互联网 一线 奋斗

本文主要是介绍为一线互联网而奋斗,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

别人对你技术的考量绝大多数都是以深度优先、广度次之为标准的,切记。
甚至可以这样说:你什么都会一点但是什么都不精==你什么都不会。你不精的就不要给面试官说了,免得浪费大家的时间。

需要掌握的核心点:

  • Java基本语法 (*)
  • 多线程 (*)
  • 分布式理论 (*)
  • JVM (*)
  • 网络 (*)
  • 算法 (*)
  • 数据库(放弃)
  • 集合框架 (*)
  • Spring的基础 (**)

1.Java的基本语法

  • 包括static、final、transient,volatile等关键字的作用
  • foreach循环的原理等等。

2.Java中集合框架的源码和实现机制

非常重要,也是必问的内容。基本上就是List、Map、Set,问的是各种实现类的底层实现原理,实现类的优缺点。

集合要掌握的是ArrayList、LinkedList、Hashtable、HashMap、ConcurrentHashMap、HashSet的实现原理,能流利作答,当然能掌握CopyOnWrite容器和Queue是再好不过的了。另外多说一句,ConcurrentHashMap的问题在面试中问得特别多,大概是因为这个类可以衍生出非常多的问题,关于ConcurrentHashMap,我给网友朋友们提供三点回答或者是研究方向:
1. ConcurrentHashMap的锁分段技术
2. ConcurrentHashMap的读是否要加锁,为什么
3. ConcurrentHashMap的迭代器是强一致性的迭代器还是弱一致性的迭代器

3.Java的IO

IO分为File IO和Socket IO,File IO基本上是不会问的,问也问不出什么来,平时会用就好了,另外记得File IO都是阻塞IO。

Socket IO是比较重要的一块,要搞懂的是阻塞/非阻塞的区别、同步/异步的区别,借此理解阻塞IO、非阻塞IO、多路复用IO、异步IO这四种IO模型,Socket IO如何和这四种模型相关联。这是基本一些的,深入一些的话,就会问NIO的原理、NIO属于哪种IO模型、NIO的三大组成等等,这有些难,当时我也是研究了很久才搞懂NIO。提一句,NIO并不是严格意义上的非阻塞IO而应该属于多路复用IO,面试回答的时候要注意这个细节,讲到NIO会阻塞在Selector的select方法上会增加面试官对你的好感。

如果用过Netty,可能会问一些Netty的东西,毕竟这个框架基本属于当前最好的NIO框架了(Mina其实也不错,不过总体来说还是比不上Netty的),大多数互联网公司也都在用Netty。

4.Java中并发包的源码

  1. Atomic包下面的原子类的原理;
  2. BlockingQueue的实现原理。

这也是必问的一块了。因为三年工作经验,所以基本上不会再问你怎么实现多线程了,会问得深入一些比如说Thread和Runnable的区别和联系、多次start一个线程会怎么样、线程有哪些状态。当然这只是最基本的,出乎意料地,几次面试几乎都被同时问到了一个问题,问法不尽相同,总结起来是这么一个意思:

假如有Thread1、Thread2、Thread3、Thread4四条线程分别统计C、D、E、F四个盘的大小,所有线程都统计完毕交给Thread5线程去做汇总,应当如何实现?

聪明的网友们对这个问题是否有答案呢?不难,java.util.concurrent下就有现成的类可以使用。

另外,线程池也是比较常问的一块,常用的线程池有几种?这几种线程池之间有什么区别和联系?线程池的实现原理是怎么样的?实际一些的,会给你一些具体的场景,让你回答这种场景该使用什么样的线程池比较合适。

最后,虽然这次面试问得不多,但是多线程同步、锁这块也是重点。

synchronized和ReentrantLock的区别、synchronized锁普通方法和锁静态方法、死锁的原理及排查方法等等,关于多线程,我在之前有些过文章总结过多线程的40个问题,可以参看40个Java多线程问题总结。

5.设计模式

本来以为蛮重要的一块内容,结果只在阿里巴巴B2B事业部面试的时候被问了一次,当时问的是装饰器模式。

当然咱们不能这么功利,为了面试而学习,设计模式在工作中还是非常重要、非常有用的,23种设计模式中重点研究常用的十来种就可以了,面试中关于设计模式的问答主要是三个方向:
1. 你的项目中用到了哪些设计模式,如何使用
2. 知道常用设计模式的优缺点
3. 能画出常用设计模式的UML图

6.JDK源码

要想拿高工资,JDK源码不可不读。上面的内容可能还和具体场景联系起来,JDK源码就是实打实地看你平时是不是爱钻研了。LZ面试过程中被问了不少JDK源码的问题,其中最刁钻的一个问了LZ,String的hashCode()方法是怎么实现的,幸好LZ平时String源代码看得多,答了个大概。JDK源码其实没什么好总结的,纯粹看个人,总结一下比较重要的源码:

(1)List、Map、Set实现类的源代码
(2)ReentrantLock、AQS的源代码
(3)AtomicInteger的实现原理,主要能说清楚CAS机制并且AtomicInteger是如何利用CAS机制实现的
(4)线程池的实现原理
(5)Object类中的方法以及每个方法的作用

7. Spring的IOC原理,看一下这部分的源码;

8. Java虚拟机

出乎LZ的意料,Java虚拟机应该是很重要的一块内容,结果在这几家公司中被问到的概率几乎为0。要知道,LZ去年可是花了大量的时间去研究Java虚拟机的,光周志明老师的《深入理解Java虚拟机:JVM高级特性与最佳实践》,LZ就读了不下五遍。

言归正传,虽然Java虚拟机没问到,但我觉得还是有必要研究的,LZ就简单地列一个提纲吧,谈谈Java虚拟机中比较重要的内容:

(1)Java虚拟机的内存布局
(2)GC算法及几种垃圾收集器
(3)类加载机制,也就是双亲委派模型
(4)Java内存模型
(5)happens-before规则
(6)volatile关键字使用规则

也许面试无用,但在走向大牛的路上,不可不会。

8.分布式程序是个什么情况。

9. leetcode刷题

10.Web方面的一些问题

这篇关于为一线互联网而奋斗的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/996360

相关文章

互联网开发要点

垂直扩展 横向扩展 业务分拆 数据读写分离 缓存读写 异步处理(消息队列)

HTML5如何成为改变移动互联网幕后的推手

在未来的某一天,我们打开手机,不再需要访问手机应用商店,不论是 Apple的还是Google的,我们只需要点击手机主菜单页面上的一个链接,手机就会立即在它的浏览器上启动一个 “应用程序”;再也不需要flash插件,就能欣赏华丽丽视频画面。   AD:2013云计算架构师峰会课程资料下载   2012年,说HTML5集千宠万爱于一身也毫不夸张,IE、Chrome、Firefox和Opera等

[linux命令] 随笔集 center OS 7 蛋疼的改动 一个菜鸟的奋斗shit~~~

2018年7月24日17:22:30 虚拟机查看ip地址  center OS 7  最小化安装. 查看ip地址:使用ifconfig已经不适用了 , 需要使用 ip addr 可以看到 关闭防火墙命令也不是 stop iptables.service 命令了,  看下百度经验吧7 关闭防火墙系列命令 关闭防火墙: systemctl stop firewalld.service

互联网思维总结

目录 互联网八大思维 一 互联网思维 一 用户思维 二 产品思维 三 免费思维 四 社群思维 五 大数据思维 六 自媒体思维 七 跨界思维 八 平台思维 总结 互联网八大思维 简要列举以下思维,用户思维,社会化思维,大数据思维,简约思维,极致思维,跨界思维,流量思维,迭代思维,平台思维。 任何企业都可以找到一个竞争对手打,但是有一个对手是打不赢的,就是趋势,趋势一

[置顶]从《浪潮之巅》看互联网

写在前面     自入手KWP3以来,倒是抽出不少时间阅读。在写这篇笔记的时候,我已经是第二次拜读此书。与这本书的邂逅是暑假在微博上看到李开复老师推荐此书,正好金山网络的曹钦学长要我帮了一个小忙,硬说要谢谢我,推辞不成就和他说送我这套书吧,他爽快的答应了。     拿到书后看到学长写在前页的叙言,很受鼓励,自此一发不可收拾,恨不得一口气读完。整本书给我的感觉就是:眼前一亮!看这本书的整个过

互联网工作原理

计算机网络是由许多计算机组成的,要实现网络的计算机之间传输数据,必须要   作两件事,数据传输目的地址和保证数据迅速可靠传输的措施,这是因为数据在传输   过程中很容易丢失或传错,Internet使用一种专门的计算机语言(协议),以保证数据安   全、可靠地到达指定的目的地,这种语言分两部TCP(Transmission Control Protocol   传输控制协议)和 IP (Intern

小白怎么进入互联网大厂(最终选择蚂蚁金服)

简单的自我介绍一下,本硕学校都在西安的一所211,从大四暑假开始学习Java,研二暑假得到蚂蚁金服offer。 福利回馈 本来想把这一部分写在最后,但是想着还是放在最前面比较好。楼主在两年中积攒了大量的笔记还有一些面经,本着回馈牛客和互联网分享的精神,特此回馈一波。 百度网盘还有一些资料,有想要的同学可以加我微信:SARSKILLED,加微信的时候备注一下牛客就可以。想交流经验也可以,相

互联网杂谈

专业人士解读:为什么在中国“公有云”落地那么难? [url]http://www.oschina.net/news/35162/why-public-cloud-is-difficult-in-china[/url] 云领域:且看亚马逊、Rackspace、微软及谷歌四国争霸 [url]http://www.csdn.net/article/2012-12-06/2812559-ar

2014年8月18日 聚焦互联网金融

郎教授说: 黄金从每盎司1900美元跌到1300美元 股市连续7年下跌 房地产不错,但是流动性很差,如果随时需要钱也不可能马上把房子卖了 互联网金融跟传统投资相比有两大优势 1.回报率高 2.流动性强 互联网金融可以给你更多化的选择,更高的收益,还可以将不具备流动性的房地产行业盘活 很多专家学者认为互联网金融是双响炮 1.认为余额宝等理财产品冲击着存款市

融合CDN技术:推动现代互联网体验的关键

随着互联网用户的需求日益增长,尤其是在流媒体、电子商务和在线游戏领域,确保快速、稳定的内容交付已成为企业竞争的核心因素。内容分发网络(CDN)作为提升网站性能、减少延迟并保障全球用户访问体验的关键技术,得到了广泛的应用。然而,随着技术的进步,传统CDN模式已无法完全满足复杂的需求。本文将探讨融合CDN技术的前景,以及其在提升互联网服务质量中的重要作用。 什么是CDN? CDN是一组分布在全球不同