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后端技术体系庞大。这些内容可以根据你的工作或者兴趣,选择性深入学习。
2 自学Java的三大途径—书籍、视频、博客自学Java一般有书籍、视频、博客等学习资料,这里主要讲解三者在自学Java中的异同点。
看书自学Java看书是最为传统的学习方式,我们从小到大大部分的自学知识是通过看书来获得的,所以可能很多人都喜欢和适应这种方式。书籍具有严谨、体系完整等特点,并且纸质的内容来回翻阅在回顾的时候也更便捷。
但看书也有一些缺点:可能分不清主次,在学习Java的时候其实是有侧重点的,而书上可能在这方面并不会有太多的介绍和标注,并且一些冷门淘汰知识可以不用学习(例如Java Swing部分);有些内容即使作者写得很棒了,但可能会因为案例、解释较少不能完全理解(尤其是小白)。
看视频自学Java比起书籍,更多人愿意看视频自学Java,因为看书时大部分人会觉得比较枯燥。但是视频就不一样了,视频中老师们通常会边敲边讲解,更易于知识点的理解,并且人是感性动物,看视频就如同与老师交流,好的老师会让学习效率直接翻倍。