入门不难,但是真正想学好,不太容易,比如我们大学学的计算机可能,看起来对编程没有用,实际上你编程到一定深度以后就会用到所需的知识。比如你想写好通信框架,必须学好计算机操作系统等。

Java入门

如果你真想从事java,则可以从以下知识点进行学习:

1、如果你想从事java ,则建议从以下知识点入手:

  • java 基础知识: java数据类型、流程控制(if,while,for等)、面向对象基础(类、接口、抽象类、访问修饰符、final关键字、static关键字等)、集合(Map、List、Set、Collections工具类)、java基础类库(String,Object ,System等)、java8。

  • 高级知识: 泛型、java反射、内部类、枚举、注解、异常、IO流、java虚拟机、java并发编程、网络编程(BIO/NIO/AIO)等

  • 框架知识:Spring/SpringMVC/Mybatis/springBoot

  • 项目管理工具:Git/SVN--Maven/Gradle/Linux/Jenkins
  • java 设计模式,设计原则(开闭原则、依赖倒置原则、单一职责原则、接口隔离原则、迪米特法则、里氏替换原则、合成复用原则)、创建型(简单工厂、工厂方法、抽象工厂、建造者模式、单例模式、原型模式)、行为型(策略模式、模板方法模式、迭代器模式、委派模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式)、结构型模式(适配器模式、门面模式、装饰器模式、代理模式、享元模式、组合模式、桥接模式)

2、架构师需要掌握的知识体系

  • 源码分析:Spring 5.0、Mybatis、SpringMVC、SpringBoot2.0
  • 分布式中间件:RabbitMQ/kafka/RocketMQ
  • 性能优化: JVM/Tomcat/MySql
  • 分布式架构技术: Zookeeper/Dubbo/Netty/redis/Nginx/ShardingSphere
  • 分布式存储技术:ElasticSearch/FastDFS/Mongodb/
  • 微服务技术:SpringCloud/Spring Cloud Alibaba/ServiceMesh
  • 并发编程:并发基础(多线程、synchronized原理、volatile、ThreadLocal内存泄漏问题、CAS原理、Executor线程池、lock与java技术模型、fork-join、阻塞队列、CountDownLatch、CyclicBarrier
  • 数据结构: 线性表、链表、队列、栈、二分搜索、哈希表、树、二叉树、最小生成树、最短路径等