1 了解Java知识体系
自学Java前,要对Java和Java体系知识有一定认识,心中有个大概的轮廓去学习,方能更踏实。通过几个问题了解Java。
什么是Java?
Java是一种可以撰写跨平台应用程序的、面向对象的程序设计语言。简单说,Java就是一种语言,不过是一种跑在JVM上的语言,Java编译后是字节码,而JVM会把这些字节码解释成机器码,然后做出相应的动作。
Java能干什么?
Java当前用的较多的就是做后端开发、大数据开发、安卓开发,这是当前Java技术栈较为热门的三种岗位,其中以Java后端的市场需求最大。Java也可以做桌面应用开发、游戏开发,但需求相对较少。
国内大厂,像阿里巴巴、美团、京东、拼多多等,使用的主要语言都是Java,大部分中小企业为了成熟稳定也选择Java作为后端开发语言。此外,很多著名的中间件是由Java编写的,例如:Elasticsearch、RocketMQ、Hadoop等。
Java有哪些知识?
一、Java基础
Java入门部分:
- JDK、IDEA安装,第一个HelloWorld
- 基础内容:输入输出、命名规范、注释
- 数据类型:基础数据类型(及其包装类)、引用类型
- 修饰符:访问修饰符、非访问修饰符
- 运算符:赋值、算数、自增自减、比较、逻辑、位、三元运算符及其优先级
- 控制流程:条件判断、循环语句
- 数组、字符型
- 类与对象
- 面向对象三大特征:继承、封装、多态
- 日期、正则、大数运算(简单了解)
Java进阶部分:
- IO常见文件操作
- 集合框架:ArrayList、LinkedList、HashMap、HashSet、ArrayDeque等
- 异常处理
- 泛型
- JDBC
- 网络编程
- Java8新特性(Lambda)
- 反射、注解(有点难)
二、Java高级
- 多线程、高并发
- 23种设计模式
- 树、红黑树、B树、散列、堆、图等
- 算法:十大排序、二分查找、分治、贪心算法、位运算、回溯、动态规划、搜索算法(bfs、dfs)、最短路径(Dijkstra、Floyd)、最小生成树(Prim、Kruskal)、并查集、KMP等算法
三、JavaWeb:
- HTML、JavaScript、CSS
- XML、JSON
- Tomcat
- Servlet/JSP(以Servlet为主)
- JQuery、Ajax
- MVC
- Cookie、Session
- 过滤器、监听器
- 文件上传下载(Servlet3.0)
- Linux
四、常见框架:
- ORM框架:Mybatis
- Spring全家桶:Spring、SpringMVC、SpringBoot
- 安全框架:Shiro、Spring Security(可选一种先学)
- 其他框架:Swagger(在线接口)、Log4j2(日志)、Quartz(定时)等
- 微服务:SpringCloud、Dubbo等
五、常见中间件和工具:
- 版本控制:Git、SVN
- 包管理:Maven、Gradle
- 关系型数据库:MySQL、Oracle等
- 非关系型数据库:Redis(缓存)、Memcached(缓存)、MongoDB(文档型)等
- 搜索引擎:Elasticsearch、Solr等
- 消息队列:RocketMQ、ActiveMQ、RabbitMQ、Kafka等
- Web服务器:Apache、 Nginx
- 容器:Docker、K8S
- 大数据:Hadoop、Spark、Strom、Flink等
当然,上面只是罗列了大部分知识点,还有很多知识比如日志分析监控(ELK)、持续集成、分库分表等也都是热门技术,Java后端技术体系庞大。这些内容可以根据你的工作或者兴趣,选择性深入学习。