当前位置: 首页 > 科技观察

刷完三个Java教程后不再犹豫

时间:2023-03-14 16:10:19 科技观察

看完三个Java教程就不再犹豫了height:423px;"data-type="block">花了我2周的时间,就像看小说一样,迫不及待地一口气看完了这个教程。最震撼和反复出现的认知点是Java8大数据类型:byte,short,int,long,float,double,boolean,char,都是“小写”,Java有严格的大小写约定,类名以大写字母开头,基本types有对应的wrapperclasses,封装了更多基本类型的方法,比如Integer。还有2个特殊的小写关键字:void和array(数组)。大写的String其实是一个类,不是基本类型。让人联想到basicPython的类型:Number(数字)、String(字符串)、List(列表)、Tuple(元组)、Set(集合)、Dictionary(字典),你就能理解为什么Python是“一切皆对象”的意思了这句话消失了。Python没有Java的“元类型”,Python的基本类型已经是“类维度”。所以Python变量是它们指向的类的对象。Python中出现的int()、str()等小写字符,其实是“函数”,不是基本类型。语言真的是相通的!熬过了这一点,很多之前卡在里面的概念就可以自然而然的融合起来了。对象、类、接口、包、继承、集合、泛化、Lambda表达式、注解、异常等概念很容易被吃掉。最难理解的就是Stream,以后在实践中慢慢掌握吧。另一个感触很深的点是“Java的包管理机制”。其命名是公司域名的倒置,如com.jd+一级目录+二级目录+三级目录+等。Java提供了几个默认包,例如java.lang。Java本身的很多类都在这个包中,并且已经被隐式导入,不需要单独导入。与Python不同的是,Python中的每个文件都是一个模块,必须导入其他文件中的对象;而在Java中,每个文件就是一个类,文件夹就是一个包。对于同一个包下的文件,如果想引用其他文件里面的类是不需要导入的。而且Java只有包的同级,父文件夹和子文件夹不是同一个包。也就是说,如果子文件夹中的类要引用父文件夹中的类,还是需要导入。了解了这一层之后,再看看公司的后台代码,就会清楚很多。所谓分层设计,必须要用到Java的包管理机制。SpringBoot官方教程看完了Java官方教程,就马不停蹄的刷了SpringBoot官方教程。说实话,体验很差。给我印象最深的是spring-boot-start以SpringBoot官方提供的打包库开头,以三方自定义库结尾。这个看pom.xml可以稍微看出来。下面很多知识点都是各种配置,再加上全是英文,非常难懂。然而,我却像吞枣一样彻底的经历了一遍。可能以后想起来,有点印象,可以帮忙检索一下。PS:后来发现SpringBoot本身更多的是约定而不是配置,有助于简化开发。真正要学习的框架是“Spring”。Java全栈知识体系这不是官方教程,是大佬整理的博客。建议大家关注Spring专栏下的内容。Spring、Framework|三个专栏下的内容全部看完了中间件和架构。大部分都跳过了,重点讲了Spring的演进过程,缓存,限流,降级熔断,负载均衡。有三大收获:“第一,Spring是由bean组成的”。Spring中的bean相当于功能组件,我们通过组装这些bean来实现一个系统应用。IOC容器就是用来存放这些bean的容器。IOC是一种控制反转。就是说我们不需要自己用new来创建bean,而是Spring会帮我们创建bean。将创建的bean注入到程序代码中称为依赖注入。有XML配置、代码配置、注解三种方式。了解底层逻辑后,再往上看就可以理解设计理念了。Spring的演变过程是:J2EE(Java到企业版)→Spring(SpringMVC是遵循MVC规范的Web开发框架)→SpringBoot(简化Spring开发)。“其次,接触Java,开阔眼界。”看架构专栏,有很多学习Python时无法理解的概念,比如缓存、限流、降级熔断、负载均衡、分布式系统、全局唯一ID、数据库Sharding等,这些是背-许多公司的终端技术。了解这些技术有助于更深入的测试。“第三,你要善于画画。”文章包含很多图片,流程图,结构图,序列图,架构图,各种图。还有淘宝、京东、闲鱼、美团等公司的案例分享文章,以及各种图片。由此可见,图表是报道中最具表现力的形式,这是社会共识。在快速浏览的过程中,我也会先看图片,再看文字。会画图,会写PPT是很重要的软技能。回忆一下左耳鼠标的话:“离开了Java的世界,基本上就是离开了架构的世界。注:我觉得Java适合架构应该是常识,但是评论里很多人很反对对此。。那我解释一下:首先,小项目可以使用任何语言,喜欢用什么就用什么设施和控制系统,如:应用网关、服务发现、配置中心、健康检查、服务监控、服务治理(熔断、限流、幂等、重试、隔离、事务补偿)、Tracing监控、SOA/ESB、CQRS、EDA...这些东西在非Java的技术栈体系中很难看清全貌,Java强大的生态环境就是让你专注于更高层的架构和业务。(别想了,RPC几服务ices,加个缓存,加个队列,你可以叫它架构,那只是系统集成)”。“以【努力成为一名测试架构师】为目标,精通Java是必经之路。”参考:Java官方教程https://dev.java/learn/SpringBoot官方教程https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#getting-startedJava全栈知识体系https://pdai.tech/别让自己“围墙”https://coolshell.cn/articles/20276.html