高级语言——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,觉得可以和大家分享下: 下面为拼多多.饿了么.蚂蚁金服.哈啰出 ...
随机推荐
- Linux 命令行初始化MySQL数据库
作为一个技术纯小白,在Linux服务器初始化MySQL数据库的时候遇到了一点小问题: 1.不会使用MySQL图形工具,几乎没玩过 2.客户的VPN没有开放3306端口,没法用navicat等工 ...
- Csharp:jquery.ajax-combobox
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...
- VS2019 开发Django(五)------createsuperuser
导航:VS2019开发Django系列 上篇我们已经把LazyOrders中用到的C#的实体转成了Django中的Entity,并且已经迁移数据库成功,那么,今天继续介绍Django中内置的数据库操作 ...
- django-建表出现的错误
在执行python3 manage.py migrate时出现以下错误 ?: (mysql.W002) MySQL Strict Mode is not set for database connec ...
- GCC编译警告选项总结
一 前言 GCC有很多的编译选项,警告选项:指定头文件.库路径:优化选项.本文针整理一下GCC的警告选项,主要依据http://gcc.gnu.org/onlinedocs/gcc/Warning-O ...
- (好文转载与总结)Windows10安装ubuntu18.04
Windows10中安装Ubuntu,期间踩了非常多的坑,最终安装成功了,梳理下来Windows10装Ubuntu的步骤还是比较简明的. 制作Ubuntu系统U盘 Windows磁盘为新系统进行分区, ...
- autojump 之 git本地安装
1.克隆autojump的repo,Terminal下执行: git clone git://github.com/joelthelion/autojump.git 然后进入c ...
- 高维数据Lasso思路
海量数据的特征工程中, 如果数据特征维度达到几千乃至上万 常规的lasso很容易失效 这里介绍几种泛义lasso,是在实际数据处理中常用的 迭代与分块思路/分组的使用(有兴趣的同学可自行实践一下) 1 ...
- linux-认识vi vim
vi 编译器 Linux vi 命令非常强大,熟练地使用它可以高效的编辑代码,配置系统文件等 命令:vi [文件] vim [文件] vi 分为三种模式:命令模式.文字模式.末尾模式 -------- ...
- 第十六届浙江大学宁波理工学院程序设计大赛 E 雷顿女士与平衡树(并查集)
题意 链接:https://ac.nowcoder.com/acm/contest/2995/E来源:牛客网 卡特莉正在爬树,此时她又在树梢发现了一个谜题,为了不令她分心以至于发生意外,请你帮她解决这 ...