Java:回顾2012,预测未来

2012 – 回顾

对于 Java,JVM 和社区而言,2012 年是动荡的一年。James Governer(RedMonk 的分析师)说过“2012 是 Java 发展的第二个阶段的曙光”。

Java 进入云计算(这次是来真的)

基于 Java/JVM 提供的云平台在 2012 年成为了现实,它带来了很多新的 PAAS 和 IAAS 产品。Cloudbees,JElastic,HerokuJoyentOracle 现在只是众多云平台中的 5 个而已。对于作为开发者的你而言,这意味着什么呢?好吧,这意味则你有更多的选择,并且可以花很少的成品来使用不同的云空间。我强烈建议你在空闲的时候试用一下这些产品(你只需要花费几分钟的时间就可以创建一个免费账号),然后来看看这些东西到底是什么。

与之相反的是,这个领域还缺少一个行业标准,尽管 JEE8 承诺会改变这个现状(假设提供商们都参与的话)——但是在接下来的几年里你还是需要仔细考虑锁定某一个平台。如果你比较关心如何让任意的服务/代码能够在不同的平台上运行的话,那么我推荐你去看看 jClouds 的 API。

诚然,很多提供商在充分利用 JVM 的时候都是非常谨慎的,尤其是对于多客户共享的问题,同样还有垃圾回收和在虚拟环境上的性能问题。有些公司,譬如 Waratek 和 jClarity (免责声明:我是它们的 CTO),提供了缓解这些问题的方案。

Java社区的繁荣

虽然有很多主流媒体报道称“开发者渐渐离开 Java 平台”或者“Java 已死”,但是 Java 的社区依旧很繁荣。现在的 Java User Groups (JUGs) 的数目比以前多了很多,它们由来自世界各地的超过 400,000 的开发者组成。

尤为引人注目的是它们其中的一个,伦敦 Java 社区( London Java Community),它赢得了很多奖项,其中包含 Duke s Choice 大奖以及年度最杰出 JCP 成员(分享该奖项的还有 SouJava——巴西最主要的 JUG)。

世界级的 Java 巡回会议,例如 JFokusDevoxx 当然也包含 JavaOne,举办的次数越来越多,而且门票都是提前售罄。除此之外,千人左右的规模的区域性会议,也保持的很好。

Oracle 的 Java Magazine 也发行的很好,订阅者的数量已经超过了 100,000。Java 的坚定的支持者,例如 JaxEnterCoderanchJavaposse 的读者的数量也在不断增长。

OpenJDK

OpenJDK 在 2012 年做了一个影响深远的改革,现在一个新的记分卡制度可以让这个更加壮大的社区能够对社区的管理,开发和透明度进行很好的反馈。

2012 年,加入 OpenJDK 的个人和组织的数目已经破纪录了。特别值得一提的是,移植到 ARM 处理器以及在图形卡(graphic card)上运行 Java(Project Sumatra)这两个项目都是今年的亮点。

Java Community Process (JCP)

Java Community Process(JCP),Java 标准的主要社区,也还是生机勃勃,有大量的新注册用户,竞争非常激烈。除了处理商标,工业生产和 Java 的授权等重要商业问题外,在技术方面关于 Java 规范请求(Java Specification Request-JSRs)的主题也被重新关注起来。特别值得一提的是,新的采纳一个 JSR(Adopt a JSR)的规划是被 JCP 强力支持的。

Java 和 JVM

JVM 一直都在通过 OpenJDK 进行快速发展——加入到 Java 8 里的 Java 增强提议(Java Enhancement Proposals——JEPs)的数量非常大。Jigsaw 的退出很让人失望,不过相比较缺乏大量的厂商支持和大量的技术工作要做而言,这个决定是很明智的。

JEE / Spring

JEE7 的进展也非常顺利(而且很快就会发布),它给 Java 开发者带来了处理现代 web(JSON,Web Sockets 等等)的标准。当然,很多开发者都在已经在使用 SpringSource 的 API 套件,不过在规范层面得到支持会更好。

快速 Web 开发

基于 Java/JVM 的 web 快速开发框架最终得到了它们应有的肯定。类似于 JBoss 的 SEAMSpring RooGrailsPlay 等框架给 Java 开发者类似于 Rails 和 Django 等框架的开发体验。

Mechanical Sympathy

2012 年的一个焦点是 Mechanical Sympathy(Martin Thompson 在他的博客上杜撰的)。现在趋势已经改变了,我们必须要关心多核的机器和虚拟化的系统。Java 开发者需要开始考虑 Java 和 JVM 如何和底层的平台和硬件进行交互的问题了。

专注于性能的公司,例如 JClarity,一直在构建一些工具来帮助开发者理解这个复杂的领域,这样的话,开发者就可以放心地把书架上的硬件手册都拿下来了。

2013 – 预测未来

对于未来的预测往往是很有趣的,现在我们来看看一些对于 2013 年的预测!

Java8 会按时发布

Java 8 支持 Nashorn,Lambda,加上对于 ARM 处理器的支持,将会给那些在 web 和移动开发前沿的开发者带来更多的机会。我预计 Java 8 会很快被广泛采用(会比 Java 7 快不少)。不过,由于 IOS 和 Android 设备上没有 JVM,还是会减少一部分采用量。

Java在云端的商业化

2013 年将会是 Java/JVM 在云端商业化的一年——很多和多租户和内存管理的问题都会消除,并且一个丰富的 SASS 生态系统会开始慢慢形成。

那些允许企业把自己内部的 Java 应用搬到云端的组织将会是商业上的赢家。

在这个领域,我们也会见证一些大的厂商兼并一些有技术实力的小公司的例子。

OpenJDK

OpenJDK 会通过继续保持真正的开放,通过使用基于 JIRA 的公开的问题追踪,以及一个分布式的对所有开发者可用的构建和一个优秀的 code review 和 patch 系统。

Oracle,IBM 以及其他的主要提供商都积极主动把它们自己内部的测试套件公开出来,捐献给这个项目,让大家共同受益。

JVM语言和其他语言

多亏新增的静态编译以及改善的 IDE 工具,Groovy 将会复活。特别是 Grails 将会成为一个更加吸引人的快速开发框架,并且它会给中等规模的 web 应用带来相当不错的性能提升。

Scala 会一直使人保持兴奋,不过它只会在小团队里获得成功。Clojure 会继续在小的细分领域里保持自己的地位。Java 会继续帮助它们在实际数量和占有率上持续增长。

一个随机的预测是JRuby会诱惑那些想利用 JVM 的性能和可扩展性的 Rails 开发者。

1、下载并安装mysql,将脚本执行至数据库中; 2、配置java环境,使用jdk8,配置环境变量,下载IntelliJ IDEA 2019.2.4,该工具为java代码编译器 3、下载Maven,配置至环境变量(百度搜索很多),将构建器为Maven,类库配置成阿里库(方法:百度搜索很多很多) 4、将工程导入后,在application-local.yml文件中配置数据库 5、在logback-prod.xml文件中配置log日志 6、配置完毕后,即可启动 访问地址:http://localhost:8082/anime/login.html 用户名:admin 密码:admin V:china1866 1、 登录 2、 首页 3、 权限管理-用户管理 4、 权限管理-添加用户数据 5、 交通数据管理-查看交通数据 6、 交通数据管理-添加交通数据 7、 交通预测-交通数据预测 脚本: CREATE TABLE `traffic_data_t` ( `id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '序列', `trafficId` VARCHAR(50) NULL DEFAULT NULL COMMENT '交通数据编号', `trafficContent` VARCHAR(50) NULL DEFAULT NULL COMMENT '交通状况', `trafficSection` VARCHAR(200) NULL DEFAULT NULL COMMENT '交通路段', `trafficMan` VARCHAR(200) NULL DEFAULT NULL COMMENT '上报人', `trafficDate` VARCHAR(200) NULL DEFAULT NULL COMMENT '上报时间', `status` VARCHAR(200) NULL DEFAULT NULL COMMENT '交通状态', PRIMARY KEY (`id`) ) COMMENT='交通数据表' COLLATE='utf8_general_ci' ENGINE=InnoDB AUTO_INCREMENT=44 ; CREATE TABLE `sys_user_t` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `role_id` INT(11) NULL DEFAULT NULL COMMENT '角色ID', `user_id` VARCHAR(50) NOT NULL COMMENT '用户ID', `user_name` VARCHAR(100) NOT NULL COMMENT '用户名', `status` INT(11) NOT NULL COMMENT '是否有效0:false\\\\1:true', `create_date` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP, `create_by` VARCHAR(100) NULL DEFAULT NULL, `last_update_date` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP, `last_update_by` VARCHAR(100) NULL DEFAULT NULL, `password` VARCHAR(128) NOT NULL, `tenantcode` VARCHAR(50) NOT NULL, `diskId` VARCHAR(500) NULL DEFAULT NULL, `remarks` VARCHAR(500) NULL DEFAULT NULL, PRIMARY KEY (`id`) ) COMMENT='系统用户表' COLLATE='utf8_general_ci' ENGINE=InnoDB AUTO_INCREMENT=51 ; CREATE TABLE `sys_role_t` ( `role_id` INT(11) NOT NULL COMMENT '角色ID', `role_name` VARCHAR(200) NOT NULL COMMENT '权限名称', `status` INT(11) NOT NULL COMMENT '是否有效0:true\\\\1:false', `create_date` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP, `create_by` VARCHAR(100) NULL DEFAULT NULL, `last_update_date` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP, `last_update_by` VARCHAR(100) NULL DEFAULT NULL ) COMMENT='系统角色表' COLLATE='utf8_general_ci' ENGINE=InnoDB ; CREATE TABLE `sys_menu_t` ( `id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '序列', `parent_id` VARCHAR(50) NOT NULL COMMENT '父节点ID', `menu_id` VARCHAR(50) NOT NULL COMMENT '菜单ID', `menu_name` VARCHAR(200) NOT NULL COMMENT '菜单名称', `menu_url` VARCHAR(200) NULL DEFAULT NULL COMMENT '菜单URL', `status` INT(11) NOT NULL COMMENT '有效(0有效,1失效)', `create_date` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP, `create_by` VARCHAR(200) NULL DEFAULT NULL, `last_update_date` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP, `last_update_by` VARCHAR(200) NULL DEFAULT NULL, PRIMARY KEY (`id`) ) COMMENT='菜单表' COLLATE='utf8_general_ci' ENGINE=InnoDB AUTO_INCREMENT=33 ; CREATE TABLE `sys_menu_role_relation_t` ( `id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '序列', `menu_id` VARCHAR(50) NOT NULL COMMENT '菜单ID', `role_id` VARCHAR(50) NOT NULL COMMENT '角色ID', `status` INT(11) NOT NULL COMMENT '有效(0有效,1失效)', `create_date` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP, `create_by` VARCHAR(200) NULL DEFAULT NULL, `last_update_date` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP, `last_update_by` VARCHAR(200) NULL DEFAULT NULL, PRIMARY KEY (`id`) ) COMMENT='角色与菜单关系表' COLLATE='utf8_general_ci' ENGINE=InnoDB AUTO_INCREMENT=51 ;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值