热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

进大公司拿30K+到底有多难?一名开发三年的Java程序员来告诉你

进大公司拿30K+到底有多难?一名开发三年的Java程序员来告诉你,Go语言社区,Golang程序员人脉社
前言

目前一线城市的薪资水平在13到40k之间,但是找工作的时候并不仅仅有工作经验就行了,还需要一定的专业知识。如果你野心更大,想要进阿里美团头条等等这些大厂的话,那就需要更多的专业知识。那么,一个三年工作经验的Java程序员应该要具备哪些知识呢?
我整理了之后发现,程序员需要懂好多的知识。
 

一:项目经验

项目经验是程序员们最重要的财富,也是面试中必问的问题。一般面试官都会借着项目经验来考查应聘者的沟通能力和思考能力。三年工作经验的程序员一般都会有两个以上的项目经验,但实际我们大部分的情况都是做产品的一个功能或一个模块。虽然我们能很好的完成工作上的要求,但是对于面试这肯定是不够的。对于面试来说,我们还要完成以下四点。

  • ·知道你的项目到底是做什么的,有哪些功能。
  • ·知道你做的项目在整个项目中所处的位置及作用,并能清晰地阐述模块间的调用关系。
  • ·知道你项目的整体架构和使用到的中间件,并对中间件的原理有一定的了解。
  • ·能流畅地阐述自己在项目中解决过的比较复杂的问题。
二:java的基础知识

技术知识这块面试还是蛮常见的。不过大多问的比较简单。这是我陈列的一些我曾被问到的问题,大家私下参考一下。

  • 栈和队列的区别
  • .接口和抽象类的区别
  • . Int和Integer的区别和自动拆箱/装箱的相关问题
  • 常量池相关问题
三:集合框架

集合框架的底层原理,是面试很常见的问题。无论去大公司面试,还是去小公司面试都会问。只不过问深问浅的区别。

  • . ArrayList , LinkedList,HashMap , LinkedHashMap , ConcurrentHashMap的底层实现原理
  • 1.7版本和1.8版本的HashMap的区别
  • . HashMap能不能排序? HashMap的长度为什么要是2的幂次方?
  • 不过不管怎么样,大家去面试的话,都要把上述的问题都尽弄懂。最低的要求就是把hashmap的底层
  • 原理弄懂。
四:多线程
  • 创建线程的几种方式? Wait , sleep分别是谁的方法,区别?线程间的通信方式?
  • . 介绍下什么是死锁,遇见过死锁吗?你是怎么排查的。 (可以通过jps排查)
  • . 创建线程池的几种方式,线程池有什么好处。
  • 线程继承和接口的区别,接口有什么好处。
  • . Synchronized、Lock、 ReentrantLock的区别 ,用法及原理。
  • ThreadL ocal的用法和原理
  • . Volatile关键字的作用和原理
  • 乐观锁和悲观锁
  • 对公平锁,非公平锁,可重入锁,自旋锁,读写锁的理解:
  • CAS是什么及底层原理
  • . ArrayBlockingQueue , LinkedBlockingQueue , SynchronousQueue等等堵塞队列的理解
  • ThreadPoolExecutor的传入参数及内部工作原理
  • .给你-一个具体的业务场景,让你使用ThreadPoolExecutor创建一个适合的线程池
  • .分布式环境下,怎么保证线程安全

多线程一般是高级程序员面试中的重点。现在的项目高并发很多,所以面试多线程这块还是挺多的。一
般大厂会问得很深。从第十点开始就蛮难的了,大家可以根据自己的情况酌情学习。
 

五:jvm相关问题
  • JVM内存机制
  • .介绍下垃圾收集机制,垃圾收集有哪些算法,各自的特点
  • .聊聊GC ,谈谈Major GC , FullGe区别,垃圾收集器有哪些,他们的区别?
  • OutOfMemeryError这个错误你遇到过吗?你是怎么解决处理的?
  • . JVM调优有哪些参数,介绍下,线上环境上,你是怎么查看JVM的参数并进行调优的?
  • 能不能自己写一个类叫java.lang.String (类加载的过程,双亲委派模型)
  • JVM这块一直是高级程序员面试中的重点。想拿高薪这块一定得懂。且不仅懂,还要有一定的实战经验
六:框架相关问题
  • . Spring用了哪些设计模式? Spring注入bean的方式?对SpringIOC和SpringAOP的理解?
  • Spring事务隔离级别和传播机制?
  • Mybatis的缓存机制(一级缓存和二 级缓存) , Mybatis的mapper文件中#和$的区别
  • SpringMVC的流程
  • . Spring和SpringBoot的区别?
  • .对SpringBoot的理解
  • . RPC框架有哪些,他们的区别?
  • Dubbo的使用和理解
  • . Spring Cloud的使用和组件,谈谈你的理解

框架这块一直都是面试的重点,不过根据我的经验,框架这里一般不会问的很深 ,很少碰到让你说源
码,主要还是考察你对框架的设计理解和框架的流程。

七:消息中间件
 
  • 你们公司是如何进行消息中间件的技术选型?
  • 如何保证消息中间件的高可用?
  • 如何保证消息中间件重复发送消息?
  • 消息队列积压了大量的消息,你该怎么处理?
  • 如何保证消费者消费消息是有顺序的?
  • 让你来开发一一个消息中间件,你会怎么架构?

消息中间件还是蛮重要的,无论对面试还是工作来说都是重点。大家一定要对这块多研究,多了解。 

八:Redis
  • .你们公司为什么要使用Redis ? Redis有几种数据类型?
  • Redis持久化机制? Redis的过期策略?
  • 怎么保证Redis的高可用?
  • .什么是缓存穿透?如何避免?什么是缓存雪崩?如何避免?
  • 如何保证缓存与数据库的双写一致性?
  • . Redis单线程模型原理,为什么能支撑高并发?
  • . Redis哨兵架构的理解和底层原理

现在高并发场景越来越多,基本面试必问缓存,只是或深或浅而已。比较常问的就是1到5 , 6、7想挑战
大的可以去研究。

九:数据库
  • 工作中你是怎么去优化MySQL的?
  • 什么情况下,索引会失效?
  • .数据库的存储弓|擎,比如: MySQL的MyISAM和InnoDB区别?
  • 的最左原则
  • 索弓|的底层原理
  • 你们公司是怎么进行分库分表?分库分表的方案

数据库的优化一般都会问,涉及索引的地方会问的多些,还会问到难度比较高的用库分表,这里网上都
有方案,一般都是主从库或Mycat ,大家可以去学习了解一下。

十:其他
  • 分布式事务是怎么解决的
  • .分布式session方案?
  • .设计-一个秒杀场景
  • .怎么防止表单多次提交
  • . Linux的基本操作命令
  • ElasticSearch的使用和原理
  • . Zookeep的使用和原理

这块主要是问你一些常见的业务场景,比较开放式,还会根据你自己的简历来问。比如你的简历项目里
面有ElasticSearch ,那么面试官就会问你这些中间件的使用和原理。如果你成功地通过了所有的技术面,
那么恭喜你,你离收到offer无限接近了。


推荐阅读
  • 一次上线事故,30岁+的程序员踩坑经验之谈
    本文主要介绍了一位30岁+的程序员在一次上线事故中踩坑的经验之谈。文章提到了在双十一活动期间,作为一个在线医疗项目,他们进行了优惠折扣活动的升级改造。然而,在上线前的最后一天,由于大量数据请求,导致部分接口出现问题。作者通过部署两台opentsdb来解决问题,但读数据的opentsdb仍然经常假死。作者只能查询最近24小时的数据。这次事故给他带来了很多教训和经验。 ... [详细]
  • SpringBoot整合SpringSecurity+JWT实现单点登录
    SpringBoot整合SpringSecurity+JWT实现单点登录,Go语言社区,Golang程序员人脉社 ... [详细]
  • Java和JavaScript是什么关系?java跟javaScript都是编程语言,只是java跟javaScript没有什么太大关系,一个是脚本语言(前端语言),一个是面向对象 ... [详细]
  • wpf+mvvm代码组织结构及实现方式
    本文介绍了wpf+mvvm代码组织结构的由来和实现方式。作者回顾了自己大学时期接触wpf开发和mvvm模式的经历,认为mvvm模式使得开发更加专注于业务且高效。与此同时,作者指出mvvm模式相较于mvc模式的优势。文章还提到了当没有mvvm时处理数据和UI交互的例子,以及前后端分离和组件化的概念。作者希望能够只关注原始数据结构,将数据交给UI自行改变,从而解放劳动力,避免加班。 ... [详细]
  • 深入理解Java虚拟机的并发编程与性能优化
    本文主要介绍了Java内存模型与线程的相关概念,探讨了并发编程在服务端应用中的重要性。同时,介绍了Java语言和虚拟机提供的工具,帮助开发人员处理并发方面的问题,提高程序的并发能力和性能优化。文章指出,充分利用计算机处理器的能力和协调线程之间的并发操作是提高服务端程序性能的关键。 ... [详细]
  • Sleuth+zipkin链路追踪SpringCloud微服务的解决方案
    在庞大的微服务群中,随着业务扩展,微服务个数增多,系统调用链路复杂化。Sleuth+zipkin是解决SpringCloud微服务定位和追踪的方案。通过TraceId将不同服务调用的日志串联起来,实现请求链路跟踪。通过Feign调用和Request传递TraceId,将整个调用链路的服务日志归组合并,提供定位和追踪的功能。 ... [详细]
  • 2021最新总结网易/腾讯/CVTE/字节面经分享(附答案解析)
    本文分享作者在2021年面试网易、腾讯、CVTE和字节等大型互联网企业的经历和问题,包括稳定性设计、数据库优化、分布式锁的设计等内容。同时提供了大厂最新面试真题笔记,并附带答案解析。 ... [详细]
  • 本文整理了Java中java.lang.NoSuchMethodError.getMessage()方法的一些代码示例,展示了NoSuchMethodErr ... [详细]
  • r2dbc配置多数据源
    R2dbc配置多数据源问题根据官网配置r2dbc连接mysql多数据源所遇到的问题pom配置可以参考官网,不过我这样配置会报错我并没有这样配置将以下内容添加到pom.xml文件d ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • Python开源库和第三方包的常用框架及库
    本文介绍了Python开源库和第三方包中常用的框架和库,包括Django、CubicWeb等。同时还整理了GitHub中最受欢迎的15个Python开源框架,涵盖了事件I/O、OLAP、Web开发、高性能网络通信、测试和爬虫等领域。 ... [详细]
  • SpringMVC工作流程概述
    SpringMVC工作流程概述 ... [详细]
  • ElasticSerach初探第一篇认识ES+环境搭建+简单MySQL数据同步+SpringBoot整合ES
    一、认识ElasticSearch是一个基于Lucene的开源搜索引擎,通过简单的RESTfulAPI来隐藏Lucene的复杂性。全文搜索,分析系统&# ... [详细]
  • 本文总结了初学者在使用dubbo设计架构过程中遇到的问题,并提供了相应的解决方法。问题包括传输字节流限制、分布式事务、序列化、多点部署、zk端口冲突、服务失败请求3次机制以及启动时检查。通过解决这些问题,初学者能够更好地理解和应用dubbo设计架构。 ... [详细]
  • 本文讨论了在使用Git进行版本控制时,如何提供类似CVS中自动增加版本号的功能。作者介绍了Git中的其他版本表示方式,如git describe命令,并提供了使用这些表示方式来确定文件更新情况的示例。此外,文章还介绍了启用$Id:$功能的方法,并讨论了一些开发者在使用Git时的需求和使用场景。 ... [详细]
author-avatar
叨B叨B叨叨叨
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有