Contents
  1. 1. 项目经历
  2. 2. 技能学习
    1. 2.1. 数据结构和算法
    2. 2.2. 缓存
    3. 2.3. 分布式
    4. 2.4. linux相关
    5. 2.5. JVM
    6. 2.6. 数据库
    7. 2.7. 项目改造:
    8. 2.8. 框架学习
    9. 2.9. 其它
  3. 3. 项目经验
  4. 4. 其他:

项目经历

2017年2月1号到5月20号在 Nielsen项目
2017年6月在上海办公室打酱油看书
2017年7月10号到TCS杭州报到做e学e用项目

技能学习

数据结构和算法

  • 各种排序算法的实现(代码实现、原理分析、适用场景、性能和空间复杂度)
  • 经典的数据结构:数组、链表、平衡二叉树、散列表
  • hashmap、arraylist、等java集合类的原理

缓存

  • spring缓存注解的使用
  • redis的使用和整合spring、keysGenerator的重写
  • memcache的使用和整合spring
  • ehcache的使用和整合spring

分布式

  • ActiveMQ的原理和整合spring、结合我们的项目看
  • 消息队列的原理
  • dubbo+zookeeper 实现RPC
  • keepalive
  • nginx 反向代理、负载均衡、动静分离等技术和项目实战

linux相关

  • 常用的命令
  • linux if判断、for循环、参数等脚本的编写
  • linux上环境的搭配:tomcat、JDK、Mysql、mailx
  • linux定时任务和邮件功能
  • linux分区和性能监控
  • docker的使用和特点

JVM

  • java类加载的生命周期
  • JVM的内存结构和原理
  • GC机制和回收器的原理
  • JVM日志的生成和查看
  • 调试工具 jconsole、virtualVM的使用和优化
  • 自带命令 jstat jmap 的使用

数据库

  • mysql存储引擎
  • mysql锁机制、mvcc
  • mysql的日志和集群、主从复制、读写分离
  • mysql的分区、分表
  • mysql索引的原来和使用注意事项
  • 数据库三大范式
  • mongoDB数据库的使用:schemaless、全文索引、地图函数、整合spring

项目改造:

  • nginx做负载均衡2个tomcat支持千人在线、redis做session共享、tomcat修改发布脚本
  • mvc扫描方式的修改,按照注解的类型来扫描而不是按照包路径来扫描
  • 引入mybatis-template、pageHelper、xml热加载引入(包括原理的学习IO流定时扫描modified时间)
  • 项目瘦身,把200M压缩到100M的大小,删除掉不依赖的图片和前端类库、maven依赖jar包,一些大的不经常变的图片,都用nginx动静分离直接从war包中剥离出来了,提高上传的速度

框架学习

  • mybatis框架搭建、mybatisTemplate、pagehelper、xml热加载、mybatis generator的使用
  • spring的配置、依赖注入和AOP编程、操作日志注解的实现
  • JPA的使用
  • ssmh的整合

其它

  • IO、NIO、NIO2
  • tomcat的server.xml的学习、JNDI数据源的配置
  • Quartz的使用
  • springBoot大致有个概念了
  • 学会了github博客的搭建和hexo网站管理框架的使用
  • 机器学习(k临近、决策树、python的学习数据脚本的抓取)
  • 初步了解Scala

项目经验

  • 微信平台的开发和维护
  • Nielsen项目中复杂事务控制的任务调度功能
  • Nielsen的复杂sql的编写能力
  • 展视直播的嵌入、K值认证、参与人员信息的接口获取
  • 电信云服务器迁移:服务器迁移方案的讨论、服务器综合信息、分区
  • PCB模块(含VIP专区)的PC端开发、AW学院的嵌入、病例库模块、还有其他的小功能

其他:

  1. 给别人做了面试,汲取了一些面试的经验
  2. 带小徒弟了,还给他们做了2次培训,还积累了一个套路
  3. 书单:《JAVA虚拟机》、《并发编程》、《java特种兵》、《JAVA程序员进阶手册》、《算法4》
Contents
  1. 1. 项目经历
  2. 2. 技能学习
    1. 2.1. 数据结构和算法
    2. 2.2. 缓存
    3. 2.3. 分布式
    4. 2.4. linux相关
    5. 2.5. JVM
    6. 2.6. 数据库
    7. 2.7. 项目改造:
    8. 2.8. 框架学习
    9. 2.9. 其它
  3. 3. 项目经验
  4. 4. 其他: