Java教程

从思路到不断优化,算法太TM重要了

本文主要是介绍从思路到不断优化,算法太TM重要了,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

今年互联网形式依旧严峻,再次爆发几次大规模裁员潮。我决定把这篇文章分享出来帮助那些对前途感到迷茫的朋友。

在猎头的眼里,我已不是根正苗红的程序员。何为根正苗红?计算机专业毕业,从毕业起就从事特定方向的开发工作,这才是猎头眼中的香饽饽。

毕业之后的那段岁月,可以用悲惨形容,每当和人提起,我总会有点自嘲的说“睡过凌晨一点的办公室,吃过凌晨三点的便利店,做过凌晨五点的首班车”。但是回头想想,我却要感谢那不堪的经历,让我找到了适合自己的方向。

作为技术人员,我一直有个疑问,什么是你引以为傲的资本?面对已经来临的资本寒冬,应该何去何从?

大学期间,我每年都会给自己总结一个词语。回首做技术的这几年,我同样给自己总结了几个关键词。希望大家可以从中受益。

流行框架:

框架就是开发人员定义好的一套模板,程序员只需要往模板中添加响应的代码即可,填完代码,项目就完成了。所以框架存在的意义以及我们学习框架的目的就是想办法能够让程序员快速的完成整个项目的开发。

Spring

Spring框架大家都听过吧,这个框架特别重要,在目前整个市场上来看的话是基本上有一个一统江湖的趋势。Spring是整个Java体系里使用频率最高,稳定性最好,而且在各个领域都能遇到的一个框架。那什么是Spring呢?其实你可以把Spring理解为一个管家,如果我们不用Spring的话,我们之前写的代码实际上是杂乱无章的,这一块,那一块,然后用各种各样的关联关系把它们绑在一起,整个项目是杂乱无章的,那么我们用了Spring之后,它就把每个区域的代码进行分离,自己是自己的,然后由Spring在中间做一个调控,Spring之所以能火起来,就是因为它的做管理的理念好,它去协调各个框架,协调各块代码,这是Spring的工作。

SpringMVC

学了Spring,就来学Spring的第一个子项目叫SpringMVC,一看名字,MVC,这个在学JavaWeb的时候听过吧,SpringMVC其实就是处理Servlet里的那些内容,把那些内容给替换调了,也就是说用Spring来写MVC层的代码,这样就比较方便,简单,而且SpringMVC封装的前端处理是真的非常方便,方便到让程序员爽到不行的地步。

MyBatis

MyBatis是一个做持久层的框架,其实就是相当于替换了Hibernate,之前说Hibernate的缺点是封装的东西太多了,MyBatis就比较聪明,它知道不需要给程序员封装太多,它只封装了一半,另外一半留给程序员自己完成。那它封装了什么呢?它把从结果集里面我们查询SQL之后把结果集的内容封装到Java对象里面,这一块它保留了,然后SQL语句它不管,让程序员根据自己的需求自己写,然后它帮程序员自动执行,自动处理结果集的问题,所以MyBatis又被称为半自动的持久层框架。我们听了全自动和半自动,那手动的是谁?其实就是DBUtil和JDBC的操作。这个是纯手动,什么都要自己写,然后到MyBatis这,你写一半,它帮你干一半,而Hibernate是全自动,你什么都不用管,挺方便的,但Hibernate封装太厚重,JDBC又太麻烦,所以MyBatis恰好处在它们两个之间的一个位置,所以目前市面上使用MyBatis的公司还是特别多的。

JPA

JPA全程Java Persistence API,它叫Java持久层API,API说白了就是Java官方给的一套标准,一堆注解,然各个框架自己想办法去实现,在JPA的视线中其实Hibernate是实现最好的,因此我们在使用JPA的时候感觉很使用Hibernate一样,特别像。

SpringBoot

SpringBoot是近几年火起来的一个框架,也是Spring家族体系里面的,SpringBoot把整个Web应用,就网页的应用把它的启动放在了一个类里面,我们之前写的所有的包括Servlet,JSP包括用一些框架写的项目,这些项目想启动的话,我们需要把它放到服务器(Tomcat)中,那到了SpringBoot里面就不是这样了,你写一个很普通的Java类,在这个类上写行注解,然后右键运行Run这个类,你一运行,它就帮你启动了一个服务,Java中有很多个类,这样每个类都能右键运行,一个项目就可以把它分割成非常非常多个小的服务,其实这个概念就是所谓的叫微服务的一个基本概念,那这时候就产生了关于微服务的一个应用,SpringBoot官方曾经放出过这么一句话,就是用一百多个字符就可以搞定一个Web程序的开发,由此可见它的整个的封装的体系是非常健全的,它把Tomcat,还有Apache,Jetty这些个服务器全都封装起来了,所以我们用SpringBoot的时候就不需要Tomcat了,它内置了,里面直接带了,所以SpringBoot官方的意义其实是非常明确的,就是程序员就乖乖写代码就行了,其它的环境上的工作,SpringBoot全都提供给你了,你直接拿去用就行了。所以SpringBoot学起来还是挺简单,也挺好用的。

Maven

这个Maven不是框架,而是一个构建工具,我们用框架写的项目中需要导入大量的各种不同的jar包,这时候jar包的维护以及jar包版本的管理就会成为非常大的一个问题,如果我们用Maven,就能很好的解决这个问题了,Maven是一个项目自动的构建工具,它可以帮我们自动管理和下载jar包,而且在我们整个项目打包进行上线的时候,它也会帮我们自动打包,而且打包的时候还特别方便,把一些没用的东西给你干掉,建议好好学一下Maven,很多框架都要用到Maven。

SVN协同开发工具

我们以后在公司写项目都是团队协同的,不是一个人搞的,是很多人一起开发同一个项目,这时就需要一个能够协同的开发工具,比如一个团队有十个人,那十个人一起开发一个项目,他们的代码肯定需要放在一起,放一起的话,就需要能提交能下载,我先把代码下载下来然后进行编写,写完后再提交上去,每个人都应该有这样的操作,那这个时候就需要能够协同的开发工具,目前市面上比较常见的协同开发工具有两个,一个叫SVN,一个叫Git,SVN是一个比较老的工具了,Git是比较年轻的,就看你用哪一个了。

感受:

其实我投简历的时候,都不太敢投递阿里。因为在阿里一面前已经过了字节的三次面试,投阿里的简历一直没被捞,所以以为简历就挂了。

特别感谢一面的面试官捞了我,给了我机会,同时也认可我的努力和态度。对比我的面经和其他大佬的面经,自己真的是运气好。别人8成实力,我可能8成运气。所以对我而言,我要继续加倍努力,弥补自己技术上的不足,以及与科班大佬们基础上的差距。希望自己能继续保持学习的热情,继续努力走下去。

也祝愿各位同学,都能找到自己心动的offer。

分享我在这次面试前所做的准备(刷题复习资料以及一些大佬们的学习笔记和学习路线),都已经整理成了电子文档,需要的朋友可以【点赞+关注】戳这里即可免费获取

注】戳这里即可免费获取](https://docs.qq.com/doc/DSmxTbFJ1cmN1R2dB)**

拿到字节跳动offer后,简历被阿里捞了起来,二面迎来了P9"盘问"

这篇关于从思路到不断优化,算法太TM重要了的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!