高级语言——java

起源与发展

  • 1991 年,James Gosling 博士发布产品 Oak,这是 Java 语言的前身。

  • 1995 年,Oak 语言改名为 Java。

  • 1996 年,JDK(Java开发所使用的工具包)1.0 发布,提供了纯解释执行的 Java 虚拟机实现:Sun Classic VM。

  • 1997 年,JDK1.1 发布,代表技术有:JDBC、JavaBeans、内部类、反射。

  • 1998 年,JDK1.2 发布,Java 技术体系被拆分为 J2SE、J2EE、J2ME 三大体系。

  • 2000 年,JDK1.3 发布,默认的 Java 虚拟机由 Sun Classic VM 改为 HotSopt。

  • 2002 年,JDK1.4 发布,Java 真正走向成熟,代表技术有:正则表达式、NIO等。

  • 2004 年,JDK1.5 发布,对语法易用性做了很大改进,新增了泛型、枚举等,代表技术有:并发包等。

  • 2006 年,JDK1.6 发布,将 J2EE/J2SE/J2ME 的命名方式改为 Java SE 6、Java EE 6、Java ME 6。

  • 2009 年,Sun 公司因为经营不善被 Oracle 公司收购。

  • 2011 年,JDK1.7 发布。

  • 2013 年,JDK1.8 发布。

java的优势

java起初是为了解决其他语言移植性差的问题,比如说c或者c++编写的程序只能在单一系统上面跑,要想移植代码几乎需要完全重写一遍程序,java在底层系统之上建立了一个叫做JVM(Java虚拟机)的东西,来隔绝因系统不同产生的影响,所以java一出来就广受欢迎,随着规模的壮大,参与的人员越来越多,java形成了一个庞大而完善的社区。

java后端和MVC架构

架构是一种软件设计典范,将整个前端请求数据服务器端处理数据的过程分为三个部分:

  • M:Model(模型)定义数据的增删查改 例如Mybatis、Hibernate

  • V:View(视图)负责处理前端的请求以 例如SpringMVC、Struts

  • C:Controller(控制器)负责逻辑的处理。

介绍框架之前不得不介绍下Spring框架,Spring是框架的框架,本身并不处理具体的业务,例如将MyBatis和SpringMVC直接连接在一起似乎有点强人所难,毕竟 强扭的瓜不甜,但是Spring这个中间媒人的存在就提供了极大的便利,因为Spring几乎拥有所以框架的接口,直接调用即可。

SSH

Struts、Spring、Hibernate

早期的javaWeb三大框架,由图可见Spring负责全局控制,而其他框架之间并不之间进行交互,都是通过Spring完成的

SSM

SpringMVC、Spring、Mybatis

SSH框架更替为SSM主要是Struts和SpringMVC、以及Hibernate和Mybatis之间的优胜劣汰,当然并不是前者完全不行,只是大众选择了后者,前者也有很多可取之处胜过后者的。

SpringBoot和SpringCloud

当然没有什么东西永远是最好的,Spring已经开始被人嫌弃了(==!),因为其繁琐的配置文件,往往整合一个SSH或者SSM项目就需要半天时间,这对于当前高效开发的社会来说简直太慢了,so,SpringBoot应运而生,其实SpringBoot就是简化的Spring,做了更加简洁的封装,再配合Maven搭建一个JavaWeb项目只需要几分钟。

Spring Cloud 是一套完整的微服务解决方案,基于 Spring Boot 框架,准确的说,它不是一个框架,而是一个大的容器,它将市面上较好的微服务框架集成进来,从而简化了开发者的代码量。这已经不是一个简单的后端程序员能涉及到的了。什么是微服务架构,改天再议。

高级语言——java的更多相关文章

  1. JAVA、C、C++、Python同样是高级语言,为什么只有C和C++可以编写单片机程序?

    JAVA.C.C++.Python这四种编程语言,前三种玩的比较多,python做为兴趣爱好或者玩脚本的时候弄过,编程语言在使用的时候主要还是适合不合适,单片机使用的场景属于功能简单,成本相对较低,现 ...

  2. 40个Java多线程问题总结

    前言 Java多线程分类中写了21篇多线程的文章,21篇文章的内容很多,个人认为,学习,内容越多.越杂的知识,越需要进行深刻的总结,这样才能记忆深刻,将知识变成自己的.这篇文章主要是对多线程的问题进行 ...

  3. JAVA基础篇NO1--环境变量的配置及命名规则

    标签(空格分隔): java基础 一:计算机概述 计算机:硬件和软件 硬件:控制器 运算器 存储器 输入和输出设备       存储器:外存(硬盘) 内存 软件:系统软件 应用软件   系统软件:wi ...

  4. Java多线程问题总结

    前言 Java多线程分类中写了21篇多线程的文章,21篇文章的内容很多,个人认为,学习,内容越多.越杂的知识,越需要进行深刻的总结,这样才能记忆深刻,将知识变成自己的.这篇文章主要是对多线程的问题进行 ...

  5. [java] 40个Java多线程问题总结

    40个问题汇总 1.多线程有什么用? 一个可能在很多人看来很扯淡的一个问题:我会用多线程就好了,还管它有什么用?在我看来,这个回答更扯淡.所谓"知其然知其所以然","会用 ...

  6. 学习Java第一天,大致了解

    第一章: java核心 1 了解 java的产生背景 2 了解java的体系结构和组成 3 了解java程序的编写 编译 运行 4 掌握java的 api文档的使用 5 了解 jdk的组成 1. ja ...

  7. Java 多线程的一些问题

    1.volatile关键字的作用 一个非常重要的问题,是每个学习.应用多线程的Java程序员都必须掌握的.理解volatile关键字的作用的前提是要理解Java内存模型,volatile关键字的作用主 ...

  8. 40个Java多线程问题

    1.多线程有什么用? 一个可能在很多人看来很扯淡的一个问题:我会用多线程就好了,还管它有什么用?在我看来,这个回答更扯淡.所谓”知其然知其所以然”,”会用”只是”知其然”,”为什么用”才是”知其所以然 ...

  9. 拼多多、饿了么、蚂蚁金服Java面试题大集合

    自己当初找工作时参加过众多一线互联网公司的Java研发面试,这段时间处于寒冬,然而前几天跳槽找工作,两天面了3家,已经拿了两个offer,觉得可以和大家分享下: 下面为拼多多.饿了么.蚂蚁金服.哈啰出 ...

随机推荐

  1. SVN清理失败(clean up)或者(lock)问题进入死循环最终解决方案

    解决方法: step1: 到 sqlite官网 (http://www.sqlite.org/download.html) 下载 sqlite3.exe step2: 将下载到的 sqlite3.ex ...

  2. .NET Core 发布(dotnet publish)

    目录 一.需求 二.方法 三.参考 一.需求 使用.net core 3.0建的项目,一般情况下,每次想发布都要打开vs,然后点击发布,选择配置: 如果想用cmd命令行发布,应该怎么写呢? 二.方法 ...

  3. 破解另一家网站的反爬机制 & HMAC 算法

    零.写在前面 本文涉及的反爬技术,仅供个人技术学习,禁止并做到: 干扰被访问网站的正常运行 抓取受到法律保护的特定类型的数据或信息 搜集到的数据禁止传播.交给第三方使用.或者牟利 如有可能,在爬到数据 ...

  4. 在 .NET Core 3.0 中支持 Newtonsoft.Json 的使用

    .NET Core 3.0 已经使用了一整套内置的 Josn 序列化/反序列化方案,而且看上去效率还不错.但对于某些项目必须使用到 Newtonsoft.Json 的时候,就会抛出如下异常: Syst ...

  5. What happened when new an object in JVM ?

    原文链接:https://www.javaspring.net/java/what-happened-when-new-an-object-in-jvm I. Introduction As you ...

  6. Python-xlwt库的基本使用

    安装xlwt库 pip install xlwt 基本使用 ①创建工作簿 wa = xlwt.Workbook() ②添加工作表 添加“class”工作表 b = wa.add_sheet('clas ...

  7. HeadFirst设计模式<1>

    HeadFirst设计模式<1> 1 策略模式 鸭子飞行和嘎嘎叫策略 2 工厂模式 简单工厂 工厂方法 抽象工厂 简单工厂简单的pizza工厂 通过一个工厂类的方法,创建和返回对象实例 原 ...

  8. 深入理解JavaScript程序设计

    今天没事情回顾了一下我在去年4-6月份学习JavaScript程序设计的笔记.发现书到用时方恨少,感觉自己学的还不够深,准备抽时间啃一下<JavaScript高级程序设计>,同时深入了解一 ...

  9. FS-Cache和CacheFS 有什么不同吗?(转载)

    FS-Cache and CacheFS. Are there any differences between these two? Initially, I thought both were sa ...

  10. 关于Git和GitHub的一些知识

    git是分布式的版本控制工具,可离线,svn是集中式的,要联网操作.集中式的所有数据都放在服务器端,如果服务器宕机,则历史记录也可能就丢失了,这叫做单点故障.分布式的数据可直接保存在客户端. 为何要版 ...