2018编程技术学习列表
编程通用
CPU IO的本质
CPU计算的实质
吐吞量的实质
并发量的实质
数据类型的实质
磁盘和内存数据读取计算区别
性能调优 https://www.toutiao.com/i6533104240003383822/
网络通信的实质
通信协议的本质
数据存储方式比较:如json,parquet,xml
缓存
架构与思想
数据库
Java基础
Java类基本结构
访问控制权限
类加载机制
Java数据类型实现机制
枚举类的使用
内部类与回调函数
异常处理机制
IO流的实质:设计的角度理解IO流
NIO:NIO(New Input/Output)类,引入了一种基于通道(Channel)与缓冲区(Buffer)的I/O方式,它可以使用Native函数库直接分配堆外内存,然后通过一个存储在Java堆中的DirectByteBuffer对象作为这块内存的引用进行操作。 这样能在一些场景中显著提高性能,因为避免了在Java堆和Native堆(堆外内存)中来回复制数据。
java的4种引用类型
Direct ByteBuffer:堆外内存 http://www.importnew.com/26334.html
netty:
泛型机制
反射机制
注解机制
动态代理、CGLib等ByteCode框架、
动态生成JSP
OSGi
JDK功能使用
JVM内存分配,内存管理,底层资源控制
垃圾回收
并发多线程:java.util.concurrent.forkjoin学习
网络编程
数据结构与算法:java基础卷1 13章 入门
数据结构是如何实现的
应用
Java框架技术
Spring生态圈
Elastic生态圈
Hadoop生态圈
通信框架
Doctor容器技术
Java框架基础功能
复用性设计 模块化思维
经常可以听到一些程序员有这样的抱怨,写了几年程序,变成了熟练工,每天都是重复写一些没有任何新意的代码。复用性设计,模块化思维就是要程序员在完成任何一个功能模块或函数的时候,要多想一些,不要局限在完成当前任务的简单思路上,想想看该模块是否可以脱离这个系统存在,是否可以通过简单的修改参数的方式在其他系统和应用环境下直接引用,这样就能极大避免重复性的开发工作,如果一个软件研发单位和工作组能够在每一次研发过程中都考虑到这些问题,那么程序员就不会在重复性的工作中耽误太多时间,就会有更多时间和精力投入到创新的代码工作中去
日志模块
线程池
连接池
异常处理模块()
大数据
技术解决方案级别
回调
事务回滚
web相关
play框架
设计相关
设计模式
复用,模块化
项目相关
测试方法论
1、Java基础技术体系、JVM内存分配、垃圾回收、类装载机制、性能优化、反射机制、多线程、网络编程、常用数据结构和相关算法。
2、对面向对象的软件开发思想有清晰的认识、熟悉掌握常用的设计模式。
3、熟练掌握目前流行开源框架(spring/springmvc/ibatis),并且对其核心思想、实现原理有一定认知。
4、熟悉Oracle、MySQL等数据库开发与设计以及缓存系统Redis或 Memcached的设计和研发。
5、熟悉底层中间件、分布式技术(包括缓存、消息系统、热部署)、消息中间件:ActiveMQ、RabbitMQ、工作流中间件:JBPM。
6、精通shell编程,熟练应用awk、sed、grep、strace、tcudump、gdb等常用命令。
7、有大型分布式、高并发、高负载(大数据量)、高可用性系统设计开发经验。
8、对配置管理和敏捷研发模式有所了解(svn,git)。
9、熟悉常见的一些解决方案及其原理:单点登录、分布式缓存、SOA、全文检索、消息中间件,负载均衡、连接池、流计算等。
10、能大概知道市面上主流技术的特点及业务瓶颈。
反射、动态代理、CGLib