Java程序员实现月薪2万需要具备哪些技能?

简介:

抛开工作经验,项目经验,学历背景,单从技术点分析,哪些方面可以判断一个java程序员的技术扎实程度,怎样才能知道他值多少月薪呢?本文将为你解答:

本着理论结合实践的方法,我一般都不问上面这种纯知识和理论性问题,而是让他写一段程序来证明HashMap是线程不安全的。然后,再让改一下这个程序,使之线程安全。


在面试等情况下,如果有条件,最好能给被考核人一台可以上Google的电脑,然后给其一段自己的空间和时间,比如一个人在小会议室里10-20分钟。然后,另接一台显示器,同步观察他在电脑上是怎么做的。由此可以看出他解决问题的方法、思路。当然,另接显示器这事儿,得提前知会对方。


或者,如果为了省时间,拿出写好的线程不安全的程序,让其说出为啥会有这样奇怪的现象。


以此类推,可以让写证明List里存储的是引用还是对象实体的程序,写证明弱引用强引用区别的程序,写证明某种设计模式效果的程序…………


这方法,不仅可以检查基础知识,还可以检查思维能力。如果对知识理解得不够透彻,这种证明程序其实是挺难写的……


这方法更有威力的地方在于,你可以不是很懂Java,仍然可以大致衡量出对方的水平。

如果你想学习Java可以来这个群 首先是二二零 中间是一四二 最后是九零六  里面有大量的学习资料可以下载。


比如,你看不懂对方的程序,你完全可以作为一个学生去请教。真正对概念理解透彻的人,是懂得如何用浅显易懂的方式把一个知识讲明白的,他能把飘在空中的概念一路清清楚楚地给你讲到落在你的脚边,让你觉得唾手可得。能把概念讲到这种程度的人,通常在相关领域不是一般的高手。


我面试的时候,有时候会装傻,故意看看对方能否讲明白。遇到一知半解的,会把他自己绕进去,很好玩;遇到高手,真的获益匪浅。当然,也有时候是真不懂,虚心学习,但一边学习一边提问,基本就可以知道对方的水平了。


从面试的角度讲,一个能找到比自己强的人才的方法才是最有前途的方法。否则,只能招到比自己水平低的人,那公司的未来就只能局限于领导的能力水平了……


如果是做业务为主的,那侧重点在于如何建立业务模型,如何应对业务变更的可能,如何处理版本分裂和制定迁移升级计划。


如果是做相对低层的技术优化的,那侧重点在于对性能、被Java封装的底层技术的细节、OS、Network等基础知识的掌握程度。掌握得越细致,越好。


操作系统层面:进程与线程,进程如何创建,线程如何创建。内存与换页的概念,进程通信,锁等等。


网络通信层面:7/5层模型,ip分片重组,ip路由,tcp握手,udp的重组,网络风暴的原因等等。


编程语言层面:面向对象,重载与重写,多态。对象创建模式,继承和组合, 语言的特点等等。


数据结构算法数组链表,Map应用场景。基本的排序算法,算法分析等等。


数据库层面:索引,SQL,事务隔离级别等等。


数据方面:二进制运算,各类型占用的字节数,各类型数字的最大值,最小值等等。


1,先说结论:基础不扎实的面试官问不出这种以小见大的问题。


2,可以列举几个:


与非门在电子电路级别是如何实现的?通过逻辑电路如何制造一个最简单的计算器?譬如三体中描述的秦始皇如何用人肉方阵做一个计算机来预测天体运行规律?


考察点:《计算机组成原理》,是本科大一课程。


System.out.println函数到底是如何在屏幕上显示出字符来的?涉及字符集,系统类,静态变量,ascii码,IO,buffer,OS,显卡驱动。


考察点:《计算机组成原理》,《操作系统》,JDK,字符集,乱码问题。


为什么java采用单根继承?好处和坏处是什么?如何补救其缺点?流行的框架和最佳设计实践是怎么做的?如果用C语言模拟一个单根类继承的编程模式可以怎么实现?


考察点:OOP,设计模式


集合类的类图和选型决策?可以挖出无数数据结构的问题。


考察点:《数据结构》


类加载和运行的原理、顺序,以及各变量在内存的分布?有哪些扩展和hack的点?


考察点:JVM


volatile关键字的用途和jvm编译优化?可以引出并发问题


考察点:并发,hotspot


异常是如何抛出的?如何做一个不会崩溃的java程序?


考察点:异常,守护线程

目录
打赏
0
0
0
0
312
分享
相关文章
Java程序员在AI时代必会的技术:Spring AI
在AI时代,Java程序员需掌握Spring AI技术以提升竞争力。Spring AI是Spring框架在AI领域的延伸,支持自然语言处理、机器学习集成与自动化决策等场景。它简化开发流程,无缝集成Spring生态,并提供对多种AI服务(如OpenAI、阿里云通义千问)的支持。本文介绍Spring AI核心概念、应用场景及开发步骤,含代码示例,助你快速入门并构建智能化应用,把握AI时代的机遇。
JAVA程序员的进阶之路:掌握URL与URLConnection,轻松玩转网络资源!
在Java编程中,网络资源的获取与处理至关重要。本文介绍了如何使用URL与URLConnection高效、准确地获取网络资源。首先,通过`java.net.URL`类定位网络资源;其次,利用`URLConnection`类实现资源的读取与写入。文章还提供了最佳实践,包括异常处理、连接池、超时设置和请求头与响应头的合理配置,帮助Java程序员提升技能,应对复杂网络编程场景。
112 9
【AI程序员】通义灵码 AI 程序员全面上线JAVA使用体验
通过 AI 程序编写一个JAVA后台项目登陆页面
467 42
面向 Java 程序员的 SQLite 替代品
SQLite 是轻量级数据库,适用于小微型应用,但其对外部数据源支持较弱、无存储过程等问题影响了开发效率。esProc SPL 是一个纯 Java 开发的免费开源工具,支持标准 JDBC 接口,提供丰富的数据源访问、强大的流程控制和高效的数据处理能力,尤其适合 Java 和安卓开发。SPL 代码简洁易懂,支持热切换,可大幅提高开发效率。
倍增 Java 程序员的开发效率
应用计算困境:Java 作为主流开发语言,在数据处理方面存在复杂度高的问题,而 SQL 虽然简洁但受限于数据库架构。SPL(Structured Process Language)是一种纯 Java 开发的数据处理语言,结合了 Java 的架构灵活性和 SQL 的简洁性。SPL 提供简洁的语法、完善的计算能力、高效的 IDE、大数据支持、与 Java 应用无缝集成以及开放性和热切换特性,能够大幅提升开发效率和性能。
9大高性能优化经验总结,Java高级岗必备技能,强烈建议收藏
关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。本文介绍了9种性能优化方法,涵盖代码优化、数据库优化、连接池调优、架构层面优化、分布式缓存、异步化、Web前端优化、服务化、硬件升级、搜索引擎和产品逻辑优化。欢迎留言交流。
|
6月前
|
C++ 程序员的 Java 指南
一个 C++ 程序员自己总结的 Java 学习中应该注意的点。
52 5
|
5月前
|
在Java编程的世界里,标识符命名是一项基础且至关重要的技能
在Java编程的世界里,标识符命名是一项基础且至关重要的技能
39 0
时间轮-Java实现篇
在前面的文章《[时间轮-理论篇](https://developer.aliyun.com/article/910513)》讲了时间轮的一些理论知识,然后根据理论知识。我们自己来实现一个简单的时间轮。
|
2月前
|
【Java并发】【线程池】带你从0-1入门线程池
欢迎来到我的技术博客!我是一名热爱编程的开发者,梦想是编写高端CRUD应用。2025年我正在沉淀中,博客更新速度加快,期待与你一起成长。 线程池是一种复用线程资源的机制,通过预先创建一定数量的线程并管理其生命周期,避免频繁创建/销毁线程带来的性能开销。它解决了线程创建成本高、资源耗尽风险、响应速度慢和任务执行缺乏管理等问题。
185 60
【Java并发】【线程池】带你从0-1入门线程池