高级语言——java
高级语言——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的更多相关文章
- JAVA、C、C++、Python同样是高级语言,为什么只有C和C++可以编写单片机程序?
JAVA.C.C++.Python这四种编程语言,前三种玩的比较多,python做为兴趣爱好或者玩脚本的时候弄过,编程语言在使用的时候主要还是适合不合适,单片机使用的场景属于功能简单,成本相对较低,现 ...
- 40个Java多线程问题总结
前言 Java多线程分类中写了21篇多线程的文章,21篇文章的内容很多,个人认为,学习,内容越多.越杂的知识,越需要进行深刻的总结,这样才能记忆深刻,将知识变成自己的.这篇文章主要是对多线程的问题进行 ...
- JAVA基础篇NO1--环境变量的配置及命名规则
标签(空格分隔): java基础 一:计算机概述 计算机:硬件和软件 硬件:控制器 运算器 存储器 输入和输出设备 存储器:外存(硬盘) 内存 软件:系统软件 应用软件 系统软件:wi ...
- Java多线程问题总结
前言 Java多线程分类中写了21篇多线程的文章,21篇文章的内容很多,个人认为,学习,内容越多.越杂的知识,越需要进行深刻的总结,这样才能记忆深刻,将知识变成自己的.这篇文章主要是对多线程的问题进行 ...
- [java] 40个Java多线程问题总结
40个问题汇总 1.多线程有什么用? 一个可能在很多人看来很扯淡的一个问题:我会用多线程就好了,还管它有什么用?在我看来,这个回答更扯淡.所谓"知其然知其所以然","会用 ...
- 学习Java第一天,大致了解
第一章: java核心 1 了解 java的产生背景 2 了解java的体系结构和组成 3 了解java程序的编写 编译 运行 4 掌握java的 api文档的使用 5 了解 jdk的组成 1. ja ...
- Java 多线程的一些问题
1.volatile关键字的作用 一个非常重要的问题,是每个学习.应用多线程的Java程序员都必须掌握的.理解volatile关键字的作用的前提是要理解Java内存模型,volatile关键字的作用主 ...
- 40个Java多线程问题
1.多线程有什么用? 一个可能在很多人看来很扯淡的一个问题:我会用多线程就好了,还管它有什么用?在我看来,这个回答更扯淡.所谓”知其然知其所以然”,”会用”只是”知其然”,”为什么用”才是”知其所以然 ...
- 拼多多、饿了么、蚂蚁金服Java面试题大集合
自己当初找工作时参加过众多一线互联网公司的Java研发面试,这段时间处于寒冬,然而前几天跳槽找工作,两天面了3家,已经拿了两个offer,觉得可以和大家分享下: 下面为拼多多.饿了么.蚂蚁金服.哈啰出 ...
随机推荐
- Docker设置镜像加速
一.为什么要设置镜像加速 由于docker的镜像源地址再国外,例如官方地址:https://hub.docker.com/search?q=hyperledger&type=image:因此下 ...
- 【红宝书】第20章.JSON
JSON是一种轻量级的数据格式.JSON使用JS语法的子集表示对象.数组.字符串.数值.布尔值和null,不支持undefined JSON.stringify() // JSON.stringi ...
- Python真牛逼,获取压缩文件密码,我只要一分钟!
事情的经过是这样的: 又是奶茶,行吧行吧. 快点开工,争取李大伟回来之前搞定. 李大伟说是6位数字密码 那么我们可以利用python生成全部的六位数字密码 这样,我们就生成了一个从000000到999 ...
- PlayJava Day026
1.泛型:指代任意对象类型 public class CC<T> {} C<Integer> c = new C<Integer>(1) ; 2.限制泛型:用于继承 ...
- Lucene&Solr框架之第三篇
1.SolrCore的配置 a)schma.xml文件 b)配置中文分析器 2.配置业务域和批量索引导入 a)配置业务域 b)批量索引导入 c)Solrj复杂查询(用Query页面复杂查询.用程序实现 ...
- RESTful 架构风格
在移动互联网的大潮下,『微服务』的概念也越来越被大家接受并应用于实践,日益增多的web service逐渐统一于RESTful 架构风格,如果开发者对RESTful 架构风格不甚了解,则开发出的所谓R ...
- markdown简单使用
Markdown介绍: Markdown是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档.使用Markdown编写的文档可以导出为HTML.Word.图像.PDF等多种格式的文档. ...
- Mac Electron 应用的签名(signature)和公证(notarization)
背景 在MacOS 10.15之前,应用如果没有签名,那么首次打开时就会弹出这种“恶意软件”的提示框. 这时只要应用签名了,就不会弹这个框. 但在MacOS 10.14.5之后,应用如果没有公证(简单 ...
- FloatingActionButton动态更换背景色
版权声明:本文为xing_star原创文章,转载请注明出处! 本文同步自http://javaexception.com/archives/186 FloatingActionButton 动态更换背 ...
- java根据value获取Map对象的key
Map<String, String> map= new HashMap<String,String>(); for(Map.Entry<String, String&g ...