校招感悟1

校招经历感悟总结1

  1. 校招准备
  2. 总共笔试和面试的公司
  3. 校招期间的所考知识点
  4. 总结及日后要看的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四层:
OSI七层模型 | center
TCP/IP | center
10.TCP/IP协议,包括UDP、TCP(三次握手、四次挥手);
11.锁机制方面的问题、多线程(真正理解多线程)、JVM及垃圾回收算法;

  • 多线程
    * 先弄清线程状态转换,再理解线程同步线程状态转换
    1. 线程同步就是线程排队;
    2. 需要牢牢记住的第二点是 “共享”这两个字。只有共享资源的读写访问才需要同步。如果不是共享资源,那么就根本没有同步的必要;
    3. 只有“变量”才需要同步访问。如果共享的资源是固定不变的,那么就相当于“常量”,线程同时读取常量也不需要同步。至少一个线程修改共享资源,这样的情况下,线程之间就需要同步。
    4. 多个线程访问共享资源的代码有可能是同一份代码,也有可能是不同的代码;无论是否执行同一份代码,只要这些线程的代码访问同一份可变的共享资源,这些线程之间就需要同步。
  • JVM
    • JVM内存图解

12.其次就是框架实战的项目需求(自己这块做的太少,主要是把框架的功能模块了解实践了一下)。

4.总结及日后要看的书籍

总结:本人渣渣,要学的东西长路漫漫,在秋招期间备受打击,但有所收获和成长,对Java技术栈了解更加清晰,分布式、大数据也是自己以后要学习的方向;另外做事情要早点打算,多亏自己心底充满动力才让8月份开始复习Java的我能找到一个凑合的工作,否则要失业了,感恩有你们的支持!继续努力... 。

暂定要看的书:

  • 《Effective Java》
  • 《多线程核心技术》
  • 《 深入浅出设计模式》
  • 《深入理解Java虚拟机》
  • 《大型网站技术架构 核心原理与案例分析》
  • 《MySQL5.6从零开始学》
  • 《Spring源码深度解析》
    ps:图片来源于百度
posted @ 2018-10-17 17:38  AM24  阅读(209)  评论(0)    收藏  举报