网站首页 > 精选教程 正文
【老规矩:先点赞收藏,再礼貌阅读!】
毕设的更新有一段时间了,该发的项目基本都发出来了,后面有新项目还会继续更新的,接下来的一段时间想给大家带来一些Java学习的作品,大概内容有个人学习心得总结、大厂面试题目总结和一些辅导机构资料等。今天先给大家分享一个Java学习线路图!
目录
?、编程基础和Java基础
1.计算机原理
2.Java基础
3.JVM基础
4.容器
?、操作系统与计算机网络
1.操作系统
2.计算机?络
三、数据结构与算法
1.数据结构
2.算法
四、前端知识
五、数据库
六、常用工具
七、常用框架学习
八、多线程
1.Java多线程知识基础:
2.Java多线程知识进阶:
九、分布式
十、深入学习
?、编程基础和Java基础
1.计算机原理
CPU、内存、硬盘、网卡等。
2.Java基础
面向对象、类和对象的关系、类的特性、接口、容器、异常、泛型、反射、注解、I/O、图形化。
3.JVM基础
编译、加载、执行原理,内存管理,垃圾回收等。
4.容器
Nginx、Tomcat等。
?、操作系统与计算机网络
1.操作系统
操作系统的基础知识、线程和进程、并发、内存管理和调度、I/O原理。
Linux的常用命令,比如:目录切换命令、目录操作命令、文件的操作命令、压缩或者解压文件的命令等等。
2.计算机?络
TCP/IP、HTTP和HTTPS、DNS、IP地址、互联网、局域网、VPN、CDN、GET和POST等。
三、数据结构与算法
1.数据结构
字符串、数组、链表、二叉树、堆、栈、队列、哈希。
2.算法
查找、排序、谈心、分治、回溯、动态规划。
如果你想进入大厂的话,我推荐你在学习完Java基础之后,就开始每天抽出?点时间来学习算法和数据结构。为了提?自?的编程能力,你也可以坚持刷Leetcode。就目前国内外的大厂面试来说,刷Leetcode可以说已经成了不得不走的?条路。
四、前端知识
这?步主要是学习前端基础(HTML、CSS、JavaScript),当然BootStrap、Layui等等比较简单的前端框架你也可以了解一下。
网上有很多这方面资源,我只推荐?个?部分初学这些知识都会看的网站:
http://www.w3school.com.cn/,这个网站用来回顾知识也很不错。建议先把HTML、CSS、JS的基础知识过?遍,然后通过?个实际的前端项目来巩固。
五、数据库
基本的增删改查,SQL命令,索引、存储过程这些都需要学?下。
六、常用工具
非常重要!
IDEA:熟悉基本操作以及常用快捷。
Maven:建议学习常用框架之前可以提前花半天时间学习?下Maven的使用。
Git:基本的Git技能也是必备的,试着在学习的过程中将自?的代码托管在Github上。(Git入门)
Docker:学着用Docker安装学习中需要用到的软件比如MySQL,这样方便很多,可以为你节省不少时间。(Docker入门)利用常用框架可以极?程度简化我们的开发工作。学习完了常用工具之后,我们就可以开始常用框架的学习啦!
数据库工具:熟悉基本操作。
七、常用框架学习
Struts2(可不用学)、Spring、SpringMVC、Hibernate、Mybatis、shiro等框架的使用,(可选)熟悉Spring原理(大厂面试必备),然后很有必要学习?下SpringBoot,学好SpringBoot真的很重要。
很多公司对于应届?都是直接上手SpringBoot,不过如果时间允许的话,我觉得可以简单把Spring、SpringMVC过?遍,这个完全不影响你学习最重要的SpringBoot。关于SpringBoot,推荐看?下笔主开源的SpringBoot教程(SpringBoot核心知识点总结。基于SpringBoot 2.19+)。
Spring真的很重要!一定要搞懂AOP和IOC这两个概念。Spring中bean的作用域与?命周期、SpringMVC工作原理详解等等知识点都是非常重要的,一定要搞懂。推荐看文档+视频结合的?式,中途配合实战来学习。
?、多线程
多线程这部分内容可能会比较难以理解和上手,前期可以先简单地了解一下基础,到了后面有精?和能?后再回来仔细看。
学习完多线程之后可以通过下面这些问题检测自己是否掌握。
1.Java多线程知识基础:
1.什么是线程和进程?请简要描述线程与进程的关系,区别及优缺点?
2.说说并发与并行的区别?为什么要使用多线程呢?
3.使用多线程可能带来什么问题?
4.说说线程的生命周期和状态?
5.什么是上下文切换?什么是线程死锁?如何避免死锁?
6.说说sleep()方法和wait()方法区别和共同点?
7.为什么我们调用start()方法时会执行run()方法,为什么我们不能直接调用run()方法?
2.Java多线程知识进阶:
synchronized关键字:
1.说?说自?对于synchronized关键字的了解;
2.说说自?是怎么使用synchronized关键字,在项目中用到了吗;
3.讲?下synchronized关键字的底层原理;
4.说说JDK1.6之后的synchronized关键字底层做了哪些优化,可以详细介绍?下这些优化吗;
5.谈谈synchronized和ReentrantLock的区别。
volatile关键字:
1.讲?下Java内存模型;
2.说说synchronized关键字和volatile关键字的区别。
ThreadLocal:
1.简介;
2.原理;
3.内存泄露问题。
线程池:
1.为什么要用线程池?;
2.实现Runnable接口和Callable接口的区别;
3.执行execute()方法和submit()方法的区别是什么呢?;
4.如何创建线程池。
Atomic原子类:
1.介绍一下Atomic原子类;
2.JUC包中的原子类是哪4类?;
3.讲讲AtomicInteger的使用;
4.能不能给我简单介绍一下AtomicInteger类的原理。
AQS:
1.简介;
2.原理;
3.AQS常用组件。
九、分布式
学习Dubbo、Zookeeper来实现简单的分布式服务学习Redis来提高访问速度,减少对MySQL数据库的依赖;学习Elasticsearch的使用,来为我们的网站增加搜索功能学习常见的消息队列(比如RabbitMQ、Kafka)来解耦我们的服务;
我推荐你可以通过一个分布式项目来学习。觉得应该是掌握这些知识点比较好的一种方式了,另外,推荐边看视频边自己做,遇到不懂的知识点要及时查阅网上博客和相关书籍,这样学习效果更好。一定要学会拓展知识,养成自主学习的意识。
十、深入学习
可以再回来看?下多线程方面的知识,还可以利用业余时间学习?下NIO和Netty,这样简历上也可以多点东西。如果想去大厂,JVM的?些知识也是必学的(Java内存区域、虚拟机垃圾算法、虚拟垃圾收集器、JVM内存管理)。
另外,现在微服务特别火,很多公司在面试也明确要求需要微服务方面的知识。如果有精力的话可以去学?下SpringCloud生态系统微服务方面的东西。微服务的概念庞大,技术种类也很多,下面是我总结的一些关于微服务比较重要的知识,选学。
SpringCloudAlibaba是很值得学习的:Sentinel:A lightweight powerful flow control component enabling reliability and monitoring for microservices.(轻量级的流量控制、熔断降级Java库)。
Dubbo:ApacheDubbo是?个基于Java的高性能开源RPC框架。
Nacos:Nacos致力于帮助您发现、配置和管理微服务。Nacos提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。Nacos可以作为Dubbo的注册中心来使用。
Seata:Seata是?种易于使用,高性能,基于Java的开源分布式事务解决方案。
RocketMQ:阿里巴巴开源的?款高性能、高吞吐量的分布式消息中间件。
猜你喜欢
- 2024-11-17 SpringCloudAlibabaSentinel熔断限流
- 2024-11-17 2022届秋招Java岗高频面试题盘点,老司机也未必全会,真的太卷了
- 2024-11-17 2022春招,Java面试项目推荐,15个项目吃透两个offer拿到手软
- 2024-11-17 微服务网关如何防止雪崩?阿里开源项目之Sentinel限流、熔断
- 2024-11-17 SpringCloud之Hystrix服务降级
- 2024-11-17 分布式服务限流降级熔断解决方案Nacos之Dashboard界面配置含义
- 2024-11-17 2022年腾讯首发Java岗分布式面试真题,助力金三银四我是认真的
- 2024-11-17 一个可供参考的Java高并发异步应用案例--转
- 2024-11-17 面试官:聊聊服务熔断降级Sentinel
- 2024-11-17 2019年高级Java程序员面试题汇总,含个人答案总结
你 发表评论:
欢迎- 04-11Java面试“字符串三兄弟”String、StringBuilder、StringBuffer
- 04-11Java中你知道几种从字符串中找指定的字符的数量
- 04-11探秘Java面试中问的最多的String、StringBuffer、StringBuilder
- 04-11Python字符串详解与示例(python字符串的常见操作)
- 04-11java正则-取出指定字符串之间的内容
- 04-11String s1 = new String("abc");这句话创建了几个字符串对象?
- 04-11java判断字符串中是否包含某个字符
- 04-11关于java开发中正确的发牌逻辑编写规范
- 最近发表
-
- Java面试“字符串三兄弟”String、StringBuilder、StringBuffer
- Java中你知道几种从字符串中找指定的字符的数量
- 探秘Java面试中问的最多的String、StringBuffer、StringBuilder
- Python字符串详解与示例(python字符串的常见操作)
- java正则-取出指定字符串之间的内容
- String s1 = new String("abc");这句话创建了几个字符串对象?
- java判断字符串中是否包含某个字符
- 关于java开发中正确的发牌逻辑编写规范
- windows、linux如何后台运行jar(并且显示进程名)
- 腾讯大佬私人收藏,GitHub上最受欢迎的100个JAVA库,值得学习
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)