Java真的很难吗?

https://www.bilibili.com/video/BV19q4y1u75D?from=search&seid=11151445128167596847&spm_id_from=333.337.0.0

Java技术栈说实在的知识点非常多,绝不仅仅是学一门语言和一个数据库那么简单。

要让我们的程序运行在流量洪峰下还能保证结果正确,我们需要处理好并发问题。
实际生产环境中我们的应用一定是分布式的,我们还需要用到各种框架(rpc服务框架、消息中间件、除了关系型数据库还可能用到nosql、newsql),还需要掌握分布式设计知识。
当程序遇到内存飙高的问题我们排查的时候需要掌握JVM知识
在面对复杂业务场景为了写出优雅、可维护性强的代码我们需要掌握设计模式以及DDD(领域驱动设计)。
部分大数据场景我们还需要用到实时计算框架flink或spark

先出一张Java的技术栈脑图

 

 

 编程语言的学习一定要遵循一个核心原则:“理论+实践”,逐步迭代递进的过程。

 

 

 

这里吐血整理了一些实践中踩坑总结的经验,希望大家少走弯路。

  • 一定要理论结合实践,不要只看书,一定要多动手看代码、写代码。
  • 不要一开始就抱着大块头的书去啃,也不要从头到尾啃,要抓重点。一开始掌握最基本的知识就可以,然后就可以开始实践了。
  • 学习建议看书+视频结合的方式,视频会更生动,不会那么枯燥。

下面再详细讲讲应该如何学习Java?

(一)计算机基础课程

打牢基础!打牢基础!打牢基础!重要的事情说三遍!

基础非常重要,不管你以后从事什么方向,应用开发也好,大数据开发也要,客户端工程师也好,要想吃得开必须依赖这些基础课程:操作系统、组成原理、计算机网络、数据结构、算法、数据库

(二)Java语言基础

Java语言基础知识主要包含如下内容

  • 集合:list、map、set等。
  • 反射
  • 并发:synchronized、volatile、final关键字。
  • IO:基本IO的体系包括有InputStream , OutputStream, Reader/Writer,文件读取,各种流读取等。
    NIO、AIO的区别和使用场景。
  • 异常

(三)JVM

JVM体系结构

 

 

 

 

 核心知识点整理

 

 

(五)常用开发框架-spring

spring是一个轻量级java开发框架,最早由Rod Johnson,目的是解决企业级应用开发的业务逻辑层和其他各层的耦合问题。其最根本的使命是解决企业级应用开发的复杂性

spring的核心:控制反转(IOC)和面向切面编程(AOP)。

spring的优点

  • 解耦,简化开发。开发者可以将所有对象创建和依赖关系维护,交给spring管理。
  • AOP编程的支持。可以方便的实现对程序进行权限拦截、监控等功能。
  • 非常方便集成各种优秀框架。如mybatis、hibernate。
  • 降低javaee api的使用难度,进行了比较好的封装。

 

spring模块组成

Spring Core:Spring核心模块,包含控制反转(IOC)和依赖注入(DI)。
spring-beans 模块:提供了BeanFactory工厂模式的一个经典实现(Spring将管理对象称为Bean)
Spring Context:访问定义和配置对象的媒介。
Spring AOP:面向切面编程AOP实现,以动态代理技术为基础,允许定义各种拦截器,方便解耦。
Spring JDBC:提供了JDBC的抽象层,消除了JDBC编码的繁琐工作和不同数据库厂商的处理逻辑,简化JDBC。
Spring JMS:JAVA消息发送和接收服务。
Spring ORM:ORM框架支持,集成了hibernate、jpa和jdo用于资源管理、dao的实现和事务。
Spring Web:为创建Web应用程序提供支持。
Spring Test:提供了对 JUnit 和 TestNG 测试的支持、
Spring Aspects:该模块为与AspectJ的集成提供支持。
Spring Web:Spring框架支持与Struts集成,为基于web的应用程序提供了上下文。
https://www.bilibili.com/video/BV19q4y1u75D?from=search&seid=11151445128167596847&spm_id_from=333.337.0.0
希望这些总结对你有用。
posted @ 2021-11-20 17:12  蓝按  阅读(70)  评论(0)    收藏  举报