校招感悟1
校招经历感悟总结1
- 校招准备
 - 总共笔试和面试的公司
 - 校招期间的所考知识点
 - 总结及日后要看的Java书籍
 
1. 校招准备
- 时间节点:3.5日-8.3(一个月时间花在C++和数据结构上面,还有近1个月花在剑指offer和算法基础上面)
 
之前一直在准备机器学习、深度学习(本想借着准备论文的过程把深度学习学好,无奈感觉自己要找到相对满意的工作还有太多东西要学,可能脑子不好使_,加上也没有论文产出,优势不大),后来结合自身情况(实力、准备时间、工作地点武汉),加上考虑研一的时候自学过Java,并且最初的想法就是工作从事Java相关开发,最后在8月初还是转向了Java开发,然后开始“极限学习Java”;- 时间节点:8.4-9.18开始从JavaSE、JavaWeb、SSM三大框架、算法和数据结构四部分来学习,期间很多时候也在怀疑自己这样的决定是不是正确的,但是真的选择后,要相信自己。
 
* JavaSE主要是跟视频快速复习,主要回顾集合、多线程、反射、异常等部分。
* JavaWeb主要是跟着博客实践:孤傲苍狼JavaWeb学习总结,推荐初学者可以关注该大佬的微博,学习过程中受益匪浅,对JavaWeb基础理解深刻,并且也不枯燥。
* 三大框架功能学习主要是跟着How2Java的各模块学习:How2J教程,里面有很多小功能模块让我能快速上手对三大框架的基本使用,同时也有能夯实基础的完整项目(本人时间关系,没做)
* 算法和数据结构(之前已经看过数据结构基础,推荐《算法4》这本书),然后找到非常好的个人博客YSOcean,跟着进行巩固实验,加深理解。
2. 总共笔试和面试的公司
时间节点:9.23 - 10.13 中间有国庆7天,总共在长沙呆了半个月左右,本人为地方一本院校;
总共投的公司很多,个人比较偏向长沙、武汉,但是做了N多笔试如下:
总共投的公司:唯品会(简历挂)、小红书(截止或简历挂)、烽火通信(简历挂,第一学历要求一本)、海信(直接面,免笔试)、恒生电子(笔试过)、绿盟科技(简历挂)、小米(笔试冲突没做)、CVTE(笔试冲突没做)、华为(感谢信)、58到家(笔试过)、宇视科技(笔试过)、大华(笔试冲突)、海康威视(笔试过)、顺丰(笔试过)、亚信(笔试,必须要求实习)、科大讯飞(笔试挂)、深信服(笔试过)、广东亿讯(笔试没赶上)。
最后能面的就以下几家:
- 58到家(9.21两面 均技术面 长沙)
 - 海康威视(9.25两面,技术 HR面 武汉 杭州)
 - 顺丰 (9.27 一面, 技术面)
 - 宇视 (9.27 两面,技术面 HR面)
 - 恒生电子 (9.28 两面, 技术面 boss终面)
 - 海信(10.11 一面)
 - 深信服(9.26赶不回去,没面了,投的测试岗)
 
3. 校招期间的所考知识点
这篇主要记录这段时间所考知识点梳理及题目(题目主要是编程,大多涉及动态规划,这里不列出)。
1.统计1个字节中1的个数
- 
知识点:字节的定义、对Java中byte和Byte用的太少了,Java中1个byte的范围位-128—127,以及对逻辑运算的理解,逻辑运算是将十进制转化为二进制后(这个过程是在底层进行的)直接进行对应位的运算。该题为提高效率就需要进行“与”运算。
public int returnOne(byte b) {
int num = 0;//计算1出现的个数
while(b != 0) {
b &= (b - 1);//每次消除b的二进制中最右边的1
num++;
}
return num;
} 
2.Spring框架主要考查DI和AOP思想,以及注解配置如注解Resource、Autowire、ApplicationContext和beanfactory等等;
3.MySQL的使用,索引机制、如Where条件与聚合函数SUM、AVERAGE等不能同时在SQL语句中执行;
4.Lock锁机制,公平锁、非公平锁、乐观锁、悲观锁等,这个要细心去实践一波;
Lock lock = new ReentrantLock();//这个是创建锁,默认非公平锁
Lock lock1 = new ReentrantLock(True);True表示公平锁
Lock lock2 = new ReentrantLock(False);False表示非公平锁
5.JavaWeb几个点还要再跟孤傲苍狼老大再实践一波,Servlet、拦截器、过滤器(使用责任链模型)、监听器,使用及区别;
6.String类的操作及StringBuffer和StringBuilder类的使用和区别,内部存储机制和字符串常量池的关系,几种不同的创建字符串方法,以及intern()方法的使用;
见如下示例代码:主要是搞清楚StringBuilder类存储机制,StringBuilder、StringBuffer都是可变字符串,但是前者线程不安全(单线程情况下效率比后者高),后者线程安全;
public static void main(String[] args) {
	StringBuilder sb1 = new StringBuilder("a");
	StringBuilder sb2 = new StringBuiler("b");
	change(sb1, sb2);
	System.out.println(sb1.toString() + " " + sb2.toString());	
}
private static void change(StringBuilder sb1, StringBuilder sb2) {
	sb1 = sb2;
	sb2.append("c");
}
7.考过的常见算法:快速排序、堆、冒泡排序、斐波那契数列、动态规划;
8.数组物理存储的偏移量
- 行存储
 - 列存储
 
9.计算机网络OSI七层、TCP/IP四层:
10.TCP/IP协议,包括UDP、TCP(三次握手、四次挥手);
11.锁机制方面的问题、多线程(真正理解多线程)、JVM及垃圾回收算法;
- 多线程
 
* 先弄清线程状态转换,再理解线程同步
1. 线程同步就是线程排队;
2. 需要牢牢记住的第二点是 “共享”这两个字。只有共享资源的读写访问才需要同步。如果不是共享资源,那么就根本没有同步的必要;
3. 只有“变量”才需要同步访问。如果共享的资源是固定不变的,那么就相当于“常量”,线程同时读取常量也不需要同步。至少一个线程修改共享资源,这样的情况下,线程之间就需要同步。
4. 多个线程访问共享资源的代码有可能是同一份代码,也有可能是不同的代码;无论是否执行同一份代码,只要这些线程的代码访问同一份可变的共享资源,这些线程之间就需要同步。
- JVM
 
12.其次就是框架实战的项目需求(自己这块做的太少,主要是把框架的功能模块了解实践了一下)。
4.总结及日后要看的书籍
总结:本人渣渣,要学的东西长路漫漫,在秋招期间备受打击,但有所收获和成长,对Java技术栈了解更加清晰,分布式、大数据也是自己以后要学习的方向;另外做事情要早点打算,多亏自己心底充满动力才让8月份开始复习Java的我能找到一个凑合的工作,否则要失业了,感恩有你们的支持!继续努力... 。
暂定要看的书:
- 《Effective Java》
 - 《多线程核心技术》
 - 《 深入浅出设计模式》
 - 《深入理解Java虚拟机》
 - 《大型网站技术架构 核心原理与案例分析》
 - 《MySQL5.6从零开始学》
 - 《Spring源码深度解析》
ps:图片来源于百度 
                    
                




                
            
        
浙公网安备 33010602011771号