Java主流的技术栈及工具

@


提一嘴我对学习一门新技术的心得


  1. .一门新技术的诞生,必然会有它的作用,存在即合理,凡事都要问个为什么?(不是钻牛角尖的那种为什么?你要是问我为什么一加一等于二,我会觉得你二),新技术的诞生必然是解决某一类问题的,关于这个话题,又能扯到架构的发展是演化的还是设计出来的这个问题....
    答案是演化而来的!新技术的诞生其实也很像,就是由于软件的不断发展,架构需要的技术旧的技术不能再完成时,这时候造轮子的人就要想着造新的轮子出来了,造的新轮子就是新的技术>>>>

  2. 学习一门新的技术,最好的办法是看官网(我刚开始学编程时,听过我们老师说过这句话,可能因为当初菜如狗(现在勉强比之前好点),
    内心很不屑,这tm谁看得懂?现在看官网真香!)看它解决了什么问题,再看官网的Demo,还有api,还有看看利用Java怎样操作,框架里面怎样集成等等..看不懂的地方查查博客,看看视频

  3. 第三个就是关于学完新技术后,过两天就忘了...然后无限套娃操作,学完忘,忘了又学....至于为什么会出现这种情况,并不是我们没有学会这门技术,而是技术这玩意,得用,
    1.第一个记笔记
    2.要结合具体的应用场景(项目),把这门技术用到,可以称为场景式记忆!
    3.这样也就差不多不会忘了,就算忘了简单看看也能很快用起来(概念性的东西能不能记得这个我也很无语,我就是属于那种并不是太喜欢及概念的人)

  4. 除了基础要好,还有一个就是学习一门新技术的难度,自我认为哈!并不在这个新技术有多难,而是如何在项目里用好,用的如鱼得水!才是最难的,需要反复的使用,反复的练,(心中有剑,手里无剑 能达到这个境界其实很厉害了)

1.从基础开始


JAVASE必学,没啥好说的 --<-<-<@ 基础不牢地动山摇,另外强调一下,<<计算机组成原理>>和<<计算机操作系统>>,<<计算机网络>>,<<数据结构与算法>>真的特别重要!特别重要!特别重要!重要的事情说三遍 我为什么这么说,之前也是不理解,随着所学技术越来越多,发现了一个很有趣的事情,

你会发现其实学一门新的技术并不是很难,一门新的技术,其实只要看看官方,看看官方的demo,不理解的地方查查博客,看看视频,

其实学一会一门新的技术也就是十天半个月,简单的技术可能也就是两三天,(这里我指后端哈..前端我是真的只能看懂,可以cv别人的代码修改,但是自己真的一点都不会写!)

一个很有趣的点是什么?就是这些新技术的思想都用到了之前的基础和知识,把之前的技术再次封装起来变得更简单!如果基础不好,越往后学,

学会使用这门新技术并不是很困难,但是这个新技术的思想或者有的地方你理解起来很吃力(或者想不通为什么可以这么用! 就算你有"起夜级李姐"的脑子也没有用ヾ(≧へ≦)〃)

JDK(罪恶之路的开始,还有这玩意更新太快了!官方这些人不睡觉的吗??) 官方网址

顺带聊一嘴JDK,JRE,JVM的关系(看到JDK这家伙就想聊聊这三个哥们的关系)..忍下,后面重新来谝一谝这三个家伙什么关系,学过java的应该都知道(肯定是正当关系,别乱想啊.)

  1. java基础语法
  2. 流程控制与java方法
  3. 数组
  4. 面向对象
  5. 异常
  6. 常用类
  7. 集合
  8. IO(Input/Output)
  9. 多线程编程
  10. 网络编程
  11. 反射和注解
  12. JUC(进阶)
  13. JVM(进阶)
  14. 23种设计模式(进阶)

2.前端基础


  1. HTML5(网页的骨架)
  2. CSS3(网页的衣服)
  3. JavaScript(网页的灵魂)
  4. 至于前端框架,这里推荐几个(VUE_前后端分离很火,Bootstrap等等,这个玩意我只看的懂...不会用),如果CV还是会用一点点

3.数据库


  1. MySQL(我没压岁钱了/玛涩扣),这个玩意就叫数据库,更新也挺快..你更任你更,我用5.7 官方网址
    贴心小助手(msyql驱动jar包也放这里) 点击下载,密码:fn8r

  2. JDBC(java操作MySQL数据库的一套API而已)

  3. 还有个玩意叫作数据库连接池(想到的东西都会写这里,可以当作学习路线,也可以当作回顾来看,对于我自己来说,看作是温故知新回顾更好!新的技术的太多了,学的这些玩意有的用不上的,甚至名字都忘记了..记录下也好,免得白学一趟)
    1.druid(这家伙有一个叫作数据源监控的功能,非常好用!) 官方网址
    2.c3p0 官方网址

4.框架


  1. Mybatis(持久层数据库框架) 官方网址

    贴心小助手(mybatis包也放这里) 点击下载,密码:b9q3

  2. Spring(目前Java最流行也是大腿的容器框架,Apache官方出品的大杂烩框架) 官方网址

  3. SpringMVC(JavaWeb框架,目前主流框架) 官方网址

  4. Shiro(蟹肉,安全框架,apache旗下基于用户-角色-权限模型的安全框架) 官方网址

  5. SpringBoot(对spring的相关功能进行了封装,完美的避开复杂的配置,开箱即用,能更专注于业务开发) 官方网址

5.微服务


  1. SpringCloud(治理boot开发的微服务,提供了一套微服务的生态链/解决方案) 官方网址

    1. eureka(服务注册中心和zookepper那个家伙一样,充当服务与服务之间的桥梁)
    2. gateway(网关)
    3. fegin(负载均衡)
    4. 等等...
  2. Dubbo(这家伙也是服务微服务架构的,不过只专注于微服务的服务,其他微服务的事情不管) 官方网址

    1. zookepper(注册中心,注册生产者和消费者,这家伙长得像个管道工人) 官方网址
    2. dubbo这家伙也有自己的管理控制台和监控中心(可以管理微服务和监控微服务)

6.项目构建工具


  1. Maven(这兄弟集中管理jar包的,没那么高大上) 官方网址
  2. Gralde(这位兄弟也是管理jar包的,我是没用过..只听其名) 官方网址

7.版本控制工具


  1. Git(目前主流的版本控制工具吧!有对应的仓库的github,全球最大的同性交友网站) 官方网址
  2. SVN(没用过,也是版本控制工具)

8.中间件/容器


  1. Swagger(丝袜哥,这位哥是接口文档,提高前后端沟通的效率) 官方网址

  2. Nginx(web服务器,毛子用c语言写的,一般用来给那只tom猫做负载均衡/反向代理用,如有分布式文件存储需求,可和FastDFS这位兄弟联手) 官方网址中文文档

  3. Redis(缓存数据库,有很多功能,一般就作为缓存来用,最常用的就是SSO单点登录,还有前后端开发中的数据缓存) 官方网址

    3.1.单点登录,这里还有spring官方的一个家伙叫作SpringSession,也可实现(后面写一篇关于sso的文章吧..也是自己在项目中经常用到的)

  4. RabbitMQ(消息中间件,有6种工作模型,一个系统发送消息给这位兄弟,这位兄弟接收到消息发送给其他系统,比如...用户注册功能,注册成功后,发送手机短信同时发送邮件提醒) 官方网址

    4.1.还有一位哥叫作Kafka也是消息队列,本人没用过

  5. 还有个家伙叫作FastDFS(分布式文件系统,学过没用过..) 官方网址

  6. Docker(大鲸鱼背上装集装箱,环境独立,互不影响,容器化技术 解决运维与开发环境不同) 官方网址

9.杂七杂八的技术


  1. 数据库层面的
    1. jdbc(这没啥说的.Java提供的操作数据库的官方api) 学习网址
    2. mybatis-plus(支持逆向代码生成,偷懒工具.) 官方网址
    3. springdata-jpa(spring官方的一个框架,这家伙有一个利用其他语法代替sql的好处,新技术都是懒人搞出来的...) 官方网址
  2. 身份校验层面的
    1. jwt(java_web_token) 这位哥可比cookie/session好用多了!也更安全,也是单点登陆的一种方案(最常用的是把jwt存在redis中) 官方网址
    2. oauth2(第三方登录开源组件..),其实github上还有比这个更好用的开源项目,开箱即用 官方网址

10.Linux


  1. 服务器基本都是linux吧,安全开源轻量,当服务器最合适不过了!(记不住没关系,忘了百度查,知识大爆炸的时代..记不住会查会用就行)

    1.1.最基本的防火墙操作要知道吧

    1.2.把一个服务加到系统服务并且设置为开机自启要知道吧

    1.3.SSH要会用吧(阿里云还有个安全组的东西也要会用,不要开了防火墙没更新安全组...这就很尴尬了)

    1.4.基本的linux操作要知道吧(java主流的技术栈在Linux中怎样配置一定是要会的,)

    1.5.最后是我对Linux这块的看法(在工作中经常用到的也就那么些,可以忘记,但是不能不会查,解决问题的能力和搜索能力是每个优秀的程序员必备的技能)

11.工具


  1. 开发工具

    1.IntelliJ IDEA(推荐使用,这家伙是真的好用!) 官方网址

    2.Eclipse(前几年还可,现在还有人再用) 官方网址

    3.STS(Spring官方自研的开发工具,定制版的eclipse) 官方网址

    可能还有其他的开发工具..但是不实用也不主流,这里不推荐

  2. 压测工具

    1.jmeter(接口压力测试工具,也可以当作接口测试工具来用) 官方网址

  3. JVM调优工具

    1.jprofile(jvm分析调优工具) 官方网址

  4. 查看代码工具

    1.SublimeText(这个软件针不戳 推荐) 官方网址
    2.EditPlus(也还好,反之我装了没用过...) 官方网址

  5. 远程连接工具

    1.XShell(远程连接工具 稳定 用户量大) 官方网址
    2.XFTP(远程文件传输工具) 官方网址

  6. 数据库连接工具

    1.Navicat Premium 12(界面清爽,支持各种数据库连接,我用的挺爽,缺点:收费) 官方网址

    2.sqlyog(界面一般,功能和上面差不多 优点:免费) 官方网址

    3.redis desktop manager(redis官方连接工具,大方美观,稳定性好,用这也挺爽 缺点:收费) 官方网址

    4.fastoredis(开源的redis管理工具) 官方网址

  7. 数据库设计工具:

    1.workbench(orcale官方出品的mysql数据库设计工具) 官方网址

    2.PowerDesigner(功能齐全,也还好 缺点:收费) 官方网址

    3.PDMan(国产开源,功能齐全 优点:开源免费) 官方网址

  8. 接口测试工具

    1.Postman(功能齐全,不收费 缺点:太重了 现在有很多插件可以代替) 官方网址

    2.HTTP Client(idea中就自带的一个插件 挺好用)

  9. JSON可视化工具

    1.JsonView(一般作为插件使用,客户端只有windows版本) 官方网址

  10. HOST工具

    1.SwitchHosts(支持修改本地Host以及远程的) 官方网址

  11. 虚拟机工具

    1.vmware workstation pro(这估计都没啥说的,主流虚拟机软件就是这家伙) 官方网址

12.镜像仓库/开源镜像


  1. Maven仓库(这家伙经常让人机验证,不太喜欢用) 官方网址

  2. 阿里云仓库 官方网址

  3. 国内常用开源软件镜像源

03-26 13:34