1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > 【面试感悟】java程序员职业规划 面试衡量的3方面(项目经验 基本技术 个人潜力)

【面试感悟】java程序员职业规划 面试衡量的3方面(项目经验 基本技术 个人潜力)

时间:2019-05-21 09:38:12

相关推荐

【面试感悟】java程序员职业规划 面试衡量的3方面(项目经验 基本技术 个人潜力)

引子

从过完年回苏州,就开始找工作,差不多1个半星期的时间,最后和一家公司谈好。

我个人情况比较特殊,30多岁,毕业前面5-6年做软件,后来就自己创业做线上粉丝运营,最近一年,把现在公司主流用的的技术栈,中间件多熟悉了一下,也通过几个项目练习了一遍。同时自己对大数据分析比较刚兴趣,趁着自己自由时间比较多,所以又把hadoop整个离线分析框架(hdfs,yarm,hive,hbase,flume),以及storm在线流式分析框架都学习了一遍。

学是一方面,在找工作的过程中,还是要对面试中经常遇到的问题有一个整体的了解,也包括自己的职业规划,这个关系到你想向那些公司投简历。

今年的第一个面试就需要先去做题目,发现自己技术基础掌握的不是很好,也可能是时间长了,很多java基础的东西区分的不是很仔细,所以自己在牛客网上刷题,遇到一些不是很明白的,再去发散性的学习提升,后面有机会再去把我的这些错题总结出来。

还有很多想跟大家分享的,不过感觉自己的文笔没有我参考的这个博主【五月的仓颉】好,所以用他的大纲,我总结了一个思维导图,分享给大家。.

参考 面试感悟----一名3年工作经验的程序员应该具备的技能

面试感悟

java

易学难精

语言是职业生涯的一个赛道

职业规划

前3年积累工作经验

比较纯粹的Coder的阶段团队协作如何使用项目管理工具代码如何测试如何在线上运行

5- 技术上独当一面

从一个Coder逐步走向系统分析师或是架构师,成为项目组中不可或缺的人物研究各种技术实现细节看了N多好书写一些博客在Github上分享技术

之后 担任关键职务

对行业有着深入认识对技术有着深入认识能从零开始对一个产品进行分析的程序员担任的都是CTO、技术专家、首席架构师等最关键的职位

面试衡量的3方面

项目经验

虽然大部分情况都是做产品的一个功能或一个模块,但是你有没有把整个系统架构或产品搞清楚,并能介绍清楚

为什么做这个系统?这个系统的价值是什么?这个系统有哪些功能?优缺点有哪些?如果让你重新设计这个系统你会如何设计?

总结

明确你的项目到底是做什么的,有哪些功能明确你的项目的整体架构,清楚地指出从哪里调用到哪里、使用什么方式调用明确你的模块在整个项目中所处的位置及作用明确你的模块用到了哪些技术更好一些的可以再了解一下整个项目用到了哪些技术

绕不开的问题

谈一下你在项目中解决过的比较复杂的问题问题不是你解决的而是别人解决的,但是你把这个问题弄懂、搞透了,依然是你的经验

基本技术

3-5年工作经验

1 基本语法

static、final、transient等关键字的作用

volatile关键字的底层实现原理

foreach循环的原理

对你技术的考量

深度优先、广度次之为标准

2 集合

List、Map、Set

各种实现类的底层实现原理,实现类的优缺点

ArrayList、LinkedList、Hashtable、HashMap、ConcurrentHashMap、HashSet的实现原理

掌握CopyOnWrite容器

Queue

ConcurrentHashMap的问题

1 它的锁分段技术2 它的读是否要加锁,为什么3 它的迭代器是强一致性的迭代器还是弱一致性的迭代器

3 设计模式

重点研究常用的十来种

1 你的项目中用到了哪些设计模式,如何使用2 知道常用设计模式的优缺点3 能画出常用设计模式的UML图

4 多线程

基本上不会再问你怎么实现多线程了

Thread和Runnable的区别和联系

多次start一个线程会怎么样

线程有哪些状态

问题

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

分析:先多线程同步执行,需要有一个线程等待汇总可以通过发令枪,循环栅栏,阻塞队列,CompletableFuture异步回调

线程池

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

多线程同步、锁

synchronized和ReentrantLock的区别synchronized锁普通方法和锁静态方法死锁的原理及排查方法等等

5 IO

File IO

Socket IO

阻塞/非阻塞的区别

同步/异步的区别

四种IO模型

阻塞IO非阻塞IO多路复用IO异步IO

Socket IO如何和这四种模型相关联。

NIO的原理、NIO属于哪种IO模型、NIO的三大组成

NIO并不是严格意义上的非阻塞IO而应该属于多路复用IO知道NIO会阻塞在Selector的select方法上

Netty

当前最好的NIO框架

6 JDK源码

看你平时是不是爱钻研了

String的hashCode()方法是怎么实现的

1 List、Map、Set实现类的源代码

2 ReentrantLock、AbstractQueuedSynchronizer(AQS)的源代码

AQS详解

抽象的队列式的同步器

同步类实现都依赖于它

如常用的ReentrantLock/Semaphore/CountDownLatch

维护了2个属性

一个volatile int state(代表共享资源)

访问方式

getState()

setState()

compareAndSetState()

CAS

一个FIFO线程等待队列(多线程争用资源被阻塞时会进入此队列)

对共享资源state,有两种资源共享方式

独占方式 Exclusive

如 ReentrantLock

tryAcquire 尝试获取资源

成功则返回true失败则返回false

共享方式 Share

如 Semaphore/CountDownLatch

tryAcquireShared(int) 尝试获取资源

负数表示失败;0表示成功,但没有剩余可用资源;正数表示成功,且有剩余资源

AQS也支持自定义同步器同时实现独占和共享两种方式

如ReentrantReadWriteLock

3 AtomicInteger的实现原理

主要能说清楚CAS机制并且AtomicInteger是如何利用CAS机制实现的

4 线程池的实现原理

5 Object类中的方法以及每个方法的作用

7 框架

问你一下你们项目中使用的框架

给你一些场景问你用框架怎么做

举例

在Spring初始化bean的时候做一些事情该怎么做想要在bean销毁的时候做一些事情该怎么做MyBatis中$和#的区别

问一些框架的实现原理

Spring AOP的实现原理难的:画一下Spring的Bean工厂实现的UML图

8 数据库

union和union all的区别left join几种索引及其区别数据库性能的优化

9 数据结构和算法分析

会比不会好而且在工作中绝对能派上用场

数组、链表是基础

栈和队列深入一些但也不难,树挺重要的

比较重要的树AVL树、红黑树

要知道什么是二叉查找树、什么是平衡树,AVL树和红黑树的区别

你知道索引使用的是哪种数据结构实现吗?

算法分析

排序,查找

分治法

动态规划

Collections.sort方法使用的是哪种排序方法

TimSort的排序,增强型的归并排序法

10 Java虚拟机

Java虚拟机的内存布局GC算法及几种垃圾收集器类加载机制,也就是双亲委派模型Java内存模型happens-before规则volatile关键字使用规则走向大牛的路上,不可不会

11 Web方面的一些问题

谈谈分布式Session的几种实现方式

Session和Cookie的区别和联系以及Session的实现原理

web.xml里面的内容是重点

Filter、Servlet、Listener 知根知底

get/post的区别

forward/重定向的区别

HTTPS的实现原理

SOA和RPC,面向服务体系

大型分布式架构必备

个人潜力

HR面试

1 简历中写的过去工作经历的离职原因2 当前公司薪资待遇3 期望能到怎样的一家公司4 个人未来的发展方向

面试心态

1 不紧不慢,平心静气

2 条理清晰

不要把面试当作面试,当做一次技术交流

把面试的心态从我要找到一份工作转变为我要通过面试去发现不足、提升自己

如果自己热衷于研究技术的朋友,真的要有自信

为什么java易学难精

易学

Java语言的设计者帮助Java程序员做了这么多事情

难精

假如在应用运行过程中遇到了语法层面和应用层面之外的错误,应当如何处理?比如线上环境出现内存溢出怎么办?GC时间过长怎么办?IO长时间没反应怎么办?方法抛出莫名其妙的异常怎么办?这些问题需要大量的经历、大量的实践、大量对Java底层实现细节的研究

工作的心态

建议看看这本书【软技能-代码之外的生存之道】

把自己与公司的雇佣关系

变为自己也是一个企业与公司是一种合作关系

公司是自己的一个重要客户(贡献大部分收入)自己作为企业,那企业发展需要考虑哪些方面

30岁之后工作不好找,或者30岁之后就要转行?

这个就像一个老中医一样,老中医一眼就看出这个人有什么问题,而新人需要查这个查那个,还不一定能准确定位

对于一个新的容器

老手一看就知道 这是不是新壶装老酒

还是在技术上加入了哪些新的特性,解决了原来哪方面的问题

新手

新手去学,要一段时间,再去用,有没多少实际经验,不知道怎么配置调优

XMind - Trial Version

【面试感悟】java程序员职业规划 面试衡量的3方面(项目经验 基本技术 个人潜力)面试心态 工作心态

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。