本文共 2737 字,大约阅读时间需要 9 分钟。
最近工作方面不是很顺利,迫不得已需要找一份新工作,说来实在惭愧!说一说面试之前我都有哪些准备把:
(1)java基础复习,这个是必须的,一笔试肯定完蛋,因为笔试的内容大多都是非常基础琐碎的知识点,我采取的方案就是百度【java基础面试题】,一搜一大推,然后慢慢看呗;
(2)计算机网络相关知识复习,说白了TCP、UDP、HTTP这些东西你知道是啥不,OSI七层模型都有啥,每一层都是干啥的,作为一个java后台服务开发,这是必备的,结果也是很明显,面试的公司笔试题、面试题都在问,特别是TCP;
(3)数据结构算法复习,这个很重要,如果面试官给你出了关于算法的题目,你能在5分钟内,甚至2分钟想出解决思路,这就极大的提高给面试官的好感,也就是说,你这个人思维能力最起码不差把,基础的字符串、数组、链表、栈、队列、二叉树、图遍历(这个比较少)、hash算法等;
(4)java并发编程,这一块就涉及到java难点了,关于如何去理解java中的线程安全操作(原子性,可见性,有序性),然后就是各种锁,各种实现原理,这个真的在于平时的积累,我推荐【java并发编程实战】这本书,对,就是那个白皮的,机械出版社出版的;
(5)java集合框架,对于有过工作经验的人,java中集合框架用的最多无非就是ArrayList、HashSet、HashMap,这些集合类的基本使用,但是这是远远不够的,你还需要知道他们底层是如何实现的,还有这些常用的类都是线程不安全的,所以对于CopyOnWriteArrayList、ConcurrentHashSet、ConcurrentHashMap这些类也是要了解的,一句话,看懂源码你才是真正的掌握,JDK源码写真的好,膜拜大神!!!
(6)常见的Linux命令,作为一个java后台服务开发,linux命令是必备技能,常用的命令自己没事敲一敲,so!阿里云整了个CentOS服务器,装各种软件,Mysql、Tomcat、Nginx、redis、MQServer、Maven、git、jenkins等各种服务,自己搞一搞,常见的命令就记得差不多了,推荐去【菜鸟教程 linux】看一看;
(7)准备一份完美的简历,我目前的简历基本上写的都是公司的项目,看起来还好,蛮充分的,好几个面试官一看我沉甸甸的四页简历,都会说:“项目还是蛮多的吗”,其实把,我觉得简历还是按照自己的实际会的去写,我不是很喜欢包装简历,所以我的简历上写的都是自己OK的内容,难免碰到挑字眼的面试官,对你写技术、项目内容一个一个的提问,还不坑死自己个啊!
总结:
写了7条的准备条件,其中很多都是自己日常积累所得,没有积累,临时突击准备,这时间可就漫长了。从我开始面试,到今天,大概有两周的时间,我已经成功收到3个offer,今天本来还有一个offer能OK的,考虑到我已经确定选择了一家,所以今天的人事面我拒绝了,哈哈,不是我任性,其实也是有原因的,原因就是:我真的想任性一把!
BOOS直聘APP真的很nice,我所有的面试都是在这个APP上来的,很不错的一款APP,在BOOS直聘上,看到别人有发新的工作岗位,关于Java开发的1-3年要求的,我基本上都会去主动进行聊天,希望可以有面试的机会,主动出击很重要,毕竟现在我不是挑公司,而是公司挑我! 或许有些人会说,这样大规模的撒网捕鱼有用吗?我的回答是,效果还可以,起码10家会有一家给我面试的机会,只要能去面试,剩下的就是自己的发挥了,不可否认的是我发挥的还是很不错的,还有就是同学资源很重要,如果自己同学在的公司很不错,进行一下内推成功率会提高很多,感谢同学的内推。 说到这里,很多人关心的是我的面试过程都是有哪些面试问题,我记录了一下我面试过程中遇到的所有的笔试题和面试题,贴在下面,希望可以对大家有小小的帮助吧:1、java基础
(1)wait() 和 notify() 使用
(2)sleep() 和 wait() 的区别 (3)volatile用处和原理(这个很重要,需要深刻理解Java内存模型把) (4)HashMap为什么不是线程安全的,底层原理 (5)TCP为什么是三次握手和四次挥手 (6)Synchronized作用,底层实现原理 (7)分布式锁怎么实现,使用Zookeeper (8)redis的数据类型有哪些,存储方式有哪些 (9)JVM中的新生代,老年代问题,常见的JVM参数 (10)GC都有哪些算法,详细说一说 (11)tomcat目录有哪些,分别有什么作用 (12)数据库连接池技术 (13)java转发和重定向的区别 (14)对于java并发编程的理解,常用的线程池举例说明 (15)说一说对NIO的理解,BIO、NIO、AIO的区别有哪些 (16)手写一个单例,饿汉式和懒汉式(记得考虑线程安全问题)2、数据库
(1)mysql的数据库引擎有哪些,之间的区别是什么
(2)mysql的索引了解如何,在哪些情况下索引不生效 (3)对于常见SQL的优化,怎么做的 (4)将一个有几十万条数据的Excel表格数据导入到数据库中,sql批量插入3、数据结构算法题
其实这些算法不是特别的难,但是真正去手写的时候会有很多问题,不信手写一个去试试吧,哈哈!
(1)二叉树前序、中序、后序遍历
之前写的代码,关于二叉树所有的遍历操作啊,求深度,面试写递归遍历就OK(2)二分查找
非递归版的(3)打印金字塔
(4)求一个二叉树每一层节点的个数
(5)判断两个链表是否相交,求出交点的节点
首先如果两个链表相交没有环,则最后节点一定相同 L1链表长度len1,L2链表长度len2,长度大的,先走|len2-len1|,然后一起走,当节点相同时,则就是交点(6)设计一个数据结构存储日志,对应时间戳和日志内容,要求可以快速查找每一天有序的日志记录
TreeMap<<date,ArrayList<Data>>
这样去存 (7)求一个数组中重复两次的数
循环遍历,出现两次的数据记录到Map中即可(8)判断一个点是否在三角形内部
三角形面积+用海伦-秦九韶公式(9)构造一个N*N的螺旋矩阵
(10)算式,只有“+” 和 “*” 求输入算式字符串,每一个数字后输出一个结果 字符串模拟吧,回头有时间再写通过这回换工作,面试了差不多有5家公司,成功的进入了一个算是一线互联网公司,说起来真的还有些小激动尼,面试过程中感觉数据结构算法和JDK的底层源码多看看,平时多积累吧,这样面试成功的几率会更高的,为自己的以后加油!
希望自己的努力不负初心!!!