多学一招(面试)

来源:互联网 发布:旅游网络推广方案 编辑:程序博客网 时间:2024/06/06 09:50

Java程序员面试中的基本雷区相信大家都已经牢记于心了,但程序员不同于其他岗位,还有一些其他的注意事项,你必须注意了~~下面动力节点的老师在为大家提醒一下面试时不应该犯的错误。

  1、只在电脑上练习

  如果面试官要考核你的技术,很有可能会要求你在白板上写代码,而不是电脑上。所以,你就不能只在电脑上练习。电脑上的编译器会自动发现你的语法错误,但是白板不会。拿出笔和纸来练习下如何写代码。如果你自我检查之后,觉得程序正确,再将它们输入到电脑里,看看是否和原先设想的一样。

  2、不为可能提出的问题做准备

  面试之前一定要为可能提出的问题做准备。问题可能涉及你曾经的项目,你遇到的不同问题以及如何解决这些难题。你的回答会影响面试官对你的技术能力的印象在面试之前先好好回顾自己做过的项目,将自己的主要事迹整理一下。

  3、不做模拟面试

  原因显而易见。我们最好能排练一下在面试的时候会问到哪些问题。还有,在正式面试时,虽然面试官会向你提问,但是同时,你也可以向他们提出问题,所以你要问哪些问题一定要事先准备好。

  4、一味地背诵解决方案

  如果你准备事先记住问题答案期待到时候能派上用场,那我劝你别瞎子点灯——白费蜡了。因为刚好抽到你背的那个答案的概率微乎其微。相反,准备方案还需要花费你很多时间和精力。Remember,你现场发挥得越好,你本身的价值就越高。 

  5、说话声音小

  一般而言,说话声音小会让人感觉你的思路不清晰。所以,有什么问题好好和面试官交流,这样才能显示你的思维过程,也有助于他们正确判断你所提出方案的价值,当然还有你的价值。

  6、言行不经大脑

  在回答问题之前先好好组织自己的语言。想到什么说什么只会暴露你粗心的缺点。言语要既有条理,又精确。至于行动上,就是写完代码之后要仔细检查。

  7、不好的编码习惯

  光凭一个无bug的解决方案,并不意味着你一定能做的很好。你还必须知道重复性代码、凌乱的数据结构、过度空格等情况。要像是为实际应用般写代码。用逻辑思维设计数据结构、创建功能,并且确保布局安排符合选用的语言文化习惯。

  8、不测试

  在写完代码之后,我们一定要花点时间测试一下,以确保没有bug。这一过程也需要使用纸笔来练练手,不然面试的时候要你在白板上写的话你会没有安全感!

  9、修复错误的时刻漫不经心

  发现bug之后,我们最好先想想原因,然后再动手去做。不要寄希望于你换个布尔值或者在循环中随机改个标志就能解决问题。这样做,只能暴露你根本不知道你犯了什么错误,以及不够细致耐心地检查问题。

  10、放弃

  总有一些问题的确是超出我们能力范围的。面试官想看到的是你的态度,你是勇于面对挑战呢,还是一遇到问题就退缩。


专业能力——知识层面

基础扎实 and 宽广如海的知识面:

JVM结构 
GC原理(算法,实现机制等) 
Java对象生命周期

Collection(Map、List、Set等)类型数据结构、线程安全、适用场景等等,简直必考题 
线程、并发、concurrent包里面的那些宝贝原理、机制、场景等等;

数据库配置、优化、原理;

反射机制

设计模式;

架构级别的优化—缓存、中间件、并发、性能、可用性、负载均衡、集群。。。不少 
系统安全—开发工程师应该不会要求太高,但是XSS、CSRF、注入攻击等还是要懂吧 
大数据—又是一个潘多拉魔盒。

AI、VR、物联网、区块链

玩自媒体

写个blog啥的,展示给面试官!1,学就是学!2,学而致用,实践!3,著书立说教别人!能到3阶段的绝对让人刮目相看。

集合类:

Java集合框架介绍 

java之ArrayList

Java集合HashMap源码剖析

Java集合Hashtable源码剖析

Java集合LinkedList源码剖析

Java集合HashSet源码剖析

Java中List集合的遍历

Java8之HashMap源码分析

HashMap , HashTable , ConcurrentHashMap 源码比较 

谈谈HashMap线程不安全的体现 

HashMap的工作原理 

java中关于Map的九大问题 

Java并发编程:并发容器之ConcurrentHashMap

Java中ConcurrentHashMap学习 

Java ConcurrentModificationException异常原因和解决方法

java之CopyOnWriteArraySet

Java集合遍历引发的"血案"



词汇:

01 高可用

负载均衡(负载均衡算法) 
反向代理 
服务隔离 
服务限流 
服务降级(自动优雅降级) 
失效转移 
超时重试(代理超时、容器超时、前端超时、中间件超时、数据库超时、NoSql超时) 
回滚机制(上线回滚、数据库版本回滚、事务回滚) 
02 高并发

应用缓存 
HTTP 缓存 
多级缓存 
分布式缓存 
连接池 
异步并发 
03 分布式事务

二阶段提交(强一致) 
三阶段提交(强一致) 
消息中间件(最终一致性),推荐阿里的 RocketMQ。

04 队列

任务队列 
消息队列 
请求队列

05扩容 
单体垂直扩容 
单体水平扩容 
应用拆分 
数据库拆分 
数据库分库分表 
数据异构 
分布式任务 
06 网络安全

SQL 注入 
XSS 攻击 
CSRF 攻击 
拒绝服务(DoS,Denial of Service)攻击 
架构师必备工具

01 操作系统

Linux(必备)、某软的

02 负载均衡

DNS、F5、LVS、Nginx、OpenResty、HAproxy、负载均衡SLB

03 分布式框架

Dubbo、Motan、Spring-Could

04 数据库中间件

DRDS 、Mycat、360 Atlas、Cobar (不维护了)

05 消息队列

RabbitMQ、ZeroMQ、Redis、ActiveMQ、Kafka

06 注册中心

Zookeeper、Redis

07 缓存

Redis、Oscache、Memcache、Ehcache

08 集成部署

Docker、Jenkins、Git、Maven

09 存储

OSS、NFS、FastDFS、MogileFS

10 数据库

MySQL、Redis、MongoDB、PostgreSQL、Memcache、HBase

11 网络

专用网络 VPC、弹性公网 IP、CDN

学习方向:

01、maven的使用

maven的使用入门

maven私服的搭建及部署

maven坐标分析/父控设置

02、git版本管理及jenkins自动化构建

git使用入门培训

git常用命令分析和使用

jenkins环境搭建及插件配置

git+jenkins实现自动化构建

03、NoSql专题-redis高性能缓存

redis使用入门

redis常用命令及客户端的使用

redis高可用集群搭建

04、NoSql专题-mongodb

mongodb使用入门

mongodb高可用集群搭建

mongodb常用命令及客户端的使用

05、分布式专题-zookeeper+dubbo服务协调

zookeeper安装部署及命令分析

zookeeper客户端的使用

zookeeper实现原理分析

dubbo的使用入门及配置分析

zookeeper+dubbo实现服务注册和发现

06、分布式专题-消息中间件

activeMq-jms规范及使用

activeMq消息分发机制分析

kafka实现原理剖析

kafka的数据传输事务性及实践练习

07、分布式缓存分析对比

memcache的原理分析及使用

memcache和redis的横向对比分析

分布式接口技术

webservice/RMI/restful的使用

09、高并发专题-数据库层面优化

分库分表的原理及规则讲解

数据库主备及高可用

10、性能调优专题-jvm调优

JVM原理剖析

jvm内存模型及垃圾回收器的分析

11、性能调优专题-容器性能优化

nginx性能优化

tomcat性能优化

12、性能调优专题-数据库优化

mysql常见优化手段分析及实践

13、高性能容器的使用

nginx使用入门

nginx负载均衡/反向代理实现

14、双十一专题-九阳真经

太极聚气之分布式压测平台

氤氲紫气之分布式缓存体系

盘龙真诀之分布式消息系统

金刚之躯之分布式跟踪系统

外功辅助之分布式配置系统

15、微服务架构技术栈分析

springboot的使用

16、分布式协调服务zookeeper

zookeeper集群及相关概念分析

zookeeper java api的使用及实践

17、从集中式到分布式架构

分布式架构的演进过程

分布式架构的基石-TCP/UDP

18、分布式通信协议

分布式通信协议-HTTP及RESTful

分布式通信协议-webservice详解

分布式通信协议-RMI

分布式通信协议-序列化技术

19、分布式服务治理

dubbo控制台及监控中心的安装部署

dubbo常用配置分析

dubbo实战演练

20、NIO技术之-Netty

NIO基本概念及BIO、AIO的对比分析

NIO核心设计思想剖析(Buffer/Channel..)

Netty产生的背景及优缺点分析

Netty实现IM聊天系统

21、分布式缓存技术-Redis

redis的安装及数据类型分析

Redis客户端的使用

Redis高可用方案实战

Redis+Lua脚本实现原子操作

22、高性能之道-MongoDB

MongoDB高可用部署

MongoDB动态查询及索引剖析

MongoDB集成spring应用

23、数据库高性能之道-Mysql

分库分表深入分析

Mysql主从模型配置/Mycat的使用

24、分布式通信技术

JMS基本概念和模型

ActiveMQ结合Spring开发

ActiveMQ静态网络和动态网络链接

Kafka的高可用方案及原理分析

25、SOA架构及微服务架构

什么是SOA架构/为什么需要SOA

领域驱动设计方法/典型SOA架构设计

spring boot深入剖析

spring boot+dubbo企业实战

26、Docker虚拟化技术

Docker虚拟化技术(镜像/仓库/容器)

Docker整合spring boot

Docker 服务编排

27、导流技术

Nginx反向代理、负载均衡

Nginx进程模型分析

Nginx+keepalived高可用方案

28、微服务技术

spring boot(mvc)

spring boot(REST)

spring boot(验证)

29、spring cloud

spring cloud config client

spring cloud config server

spring cloud netflix eureka

spring cloud netflix ribbon

spring cloud hystrix

spring cloud feign

spring cloud stream

spring cloud bus

spring cloud sleuth

30、分布式消息技术-kafka

kafka高可用集群及介绍

kafka底层实现原理分析

31、分布式缓存-redis

redis的数据类型分析

redis高可用集群方案

lua脚本在redis中的应用

32、高性能之道-MongoDB

MongoDB的基本原理

MongoDB常用命令及客户端使用

手写基于MongoDB的ORM框架

MongoDB高可用解决方案

33、数据库高性能-Mysql

分库分表深入分析及主从模型

数据库中间件Mycat介绍

34、性能优化专题

从测试的角度解读如何衡量性能

了解Linux系统

35、虚拟机-JVM

内存模型、运行时数据

垃圾回收、GC日志

调优实战

36、容器优化-Tomcat

tomcat架构分析

线程模型分析

tomcat调优实战

37、Mysql数据库调优

Mysql底层存储分析

面试技巧之SQL执行计划及优化手段