Java可移动性不强_java地位无可撼动的原因

如今,面对曾经在程序员中被各种新技术掩盖直至堙灭的技术值得怀念。犹如COBOL这当年被老程序员们尊为神器的语言如今也基本没有价值。而Java作为现代程序员的中坚力量在这点上会不会成为下一个COBOL?

有关JAVA的技术卖出多少本书已经是一个很久远的记忆了。现处中年时期的Java语言的用途已经不再出现在各种杂志的封面上了。JAVA从出生到现在已经26年了,应用开发圈已经开始绕着那些更有吸引力的新技术。Java或许是Web 1.0时代的一个传说。

fce1172a4cf032dd1c638997ee7e6b89.png

从招聘信息你就可以知道,跟iOS相关的开发有2500左右的招聘,Java则有17000多个。数据不一定能的衡量技术的价值,但是在不断推陈出新的技术推广压力下,Java职位是iOS的7倍之多可以说明问题。

在忘记Java在计算机行业里所扮演的角色和做出的那些卓越贡献前,有12个的理由来告诉你Java不但不会和COBOL一样被堙灭,并且在其后时代中更加壮大。换句话说:Java一直就在并且其地位无法撼动。

Java在市场斗争中不屈不挠

技术界从来没认为Java会成功,尽管它的对手太多但依然繁荣发展起来。那些诧异Java仍然存在的人们并没有真正去理解为什么Java会成功。微软是Java个面对的强大对手,因为那时MS-DOS提供了通用性,而微软看到Java是此通用性具可能性的替代者。

此外,苹果Steve Jobs从来没接收过Java,即使是在Mac被除了Adobe之外所有人忽视的年代。Java的兼容性可以带来很多有用的代码,但是Apple一直未把Java视作选择。

Java内部的很多斗争也给它带来了巨大痛苦。IBM喜欢Java,但是一直在和Sun斗争。IBM将其开发的的IDE工具称为“Eclipse”的决定,一直没被Sun的人员欣然接受。Sun也从来没像IBM那样深刻理解商业领域。

尽管这些原因,尽管Java创造者也在Java发展中有许多失策之处,Java依然壮大,在服务器应用领域如鱼得水,在桌面应用领域满足基本业务需求。

Java虚拟机优化线程的魔力

Java虚拟机的强项之一是多线程控制。JVM针对大型多核机上数百线程的稳定性做了的优化。其他语言会为了能跑在JVM上面搞出交叉编译器和模拟器。Java的这个能力同时也吸引了很多高流量的网站。他们可以在台式机上搞开发然后丢到服务器上让JVM发挥出多核的功效。

Ruby因为语法的简洁和源码可读性好成为了Java目前的一个对手。但是当性能成为瓶颈时,Ruby开发人员转到了JRuby,一个用Java模拟出来的Ruby环境并增强了高负载下的线程处理能力。

Java成为编程初学者的语言

作为大学AP计算机课程,意味着在很多学生次接触到的计算机语言就是Java。由于这个先入为主的原因,当他们学习其他新的语言时,即便转行学其他语言课程,但是他们在思考的时仍会受到Java的影响。

Java作为一个教学语言是有它的原因的。声明数据类型看上去可能比较抽象,但是为了能让初学者理解计算机的原理,声明数据类型通过编译器会告诉他们数据类型不匹配而无法编译时,可以让他们更好的理解计算机的底层原理。而一些新语言已经摒弃了花括号,维护麻烦使得新人有所厌倦,但是花括号对那些新手是非常有用的,因为能帮助他们理解嵌套的代码块。

Java具有跨平台兼容性

虽然Java并不是个提供跨平台兼容能力的语言,但是Java已经成为受欢迎的跨平台编程工具,Sun以及Oracle已经为程序可以跨平台使用提供支持。当程序不能在多个平台上使用时,导致问题的原因通常是可以解决的。

Java程序员可以使用他们的桌面开发工具进行编码,并部署到目标设备,可能是一台手机或者一台服务器。如果编译器包含了正确的库并且使用了正确的版本,代码就可以运行。

Java在移动领域上的持续成功

Java也许并没在大型应用程序中有很好体现,但它却在移动领域的细分市场获得发展。Android平台从上到下都是基于Java构建起来的,并且它如今的销量轻易的超过了iPhone。JAVA ME作为精简版的语言和VM已经被广泛应用在智能手机上,而智能手机如今已经遍布在全世界。

Java在蓝光应用取得突破

Java曾经为机顶盒而设计的语言,Sun想在占据此市场,但是Java却在另外领域中找到了合适的位置。蓝光标准是围绕Java建立,任何想在蓝光光碟中添加额外内容的人,必须得到其Javac编译器版本。蓝光光碟不止限于存放视频内容。那些额外特性和交互工具可以使用纯Java代码修改并增强。压缩后的视频和压缩后的Java字节码的混合。

Java让花括号能优化代码工作

类似Ruby、Python或CoffeeScript等语言的开发者对于Java要求程序员们敲打花括号键来明确表达代码段的开始和结束。括号、花括号、甚至方括号对于程序员略显多余。但是改变符号并不能消除复杂性,使用像制表符等空白后你只能用直觉去感受那些无法看到的东西。

如果if语句只引导了一行代码,这样不会有问题,但是当很多层嵌套时,就很难看明白。当用Python编程时,并不意味着代码像理解英文简单。

Java动态类型语法工具Groovy

Java开发者必须要有一个带有动态类型的语法,可以使用Groovy一个带有预处理器的工具,它能够生成出Java字节码来。这种语言也完全集成到了Java中,因此可以在Groovy中混入对Java库的调用。就像是编写Java代码的缩略形式。

这一灵活性让开发工程师得以找到问题的出路。在使用了动态方法调用时,开发者可以用Java来重写重要的核心操作。

Java虚拟机让编程更加的灵活

Java虚拟机是按照运行Javac编译器产生的代码源头来设计和优化,但开发者们意识到Java虚拟机也可以运行其他代码。只要编译器们产出标准的Java字节码,Java虚拟机根本不关心是使用的那种编程语言。Haskell、Scala和Clojure的开发者们设计编译器就采用Java,而只是这个由Java虚拟机产生的。

另外,Sun/Oracle为创建跨平台环境而努力,工程师们消除平台间差异,并考虑兼容性问题,然后所有人可以运行他们想运行的程序。微软在创建C#时为大部分主要语言设计了编译器,使得C#虚拟机可以运行这些语言编写的所有程序。C#程序员可以用很多不同的语言编写程序,只要通过一个Windows盒子将其运行在一个虚拟机上即可。

NoSQL建立在Java之上

数据库是保存信息并有效应对查询请求。NoSQL的出现让程序员们可以自己编写数据库,并根据需求修剪其代码。那些重要NoSQL工具中很多都是用Java编写。Cassandra、Lucene、ElasticSearch、HBase和Neo4J只是一些经常提到的NoSQL选择。

据了解,工具通常是开源的。开发者将其独立运行,或将它们集成在自己的模块中,使得Java在数据库层中成为通用语言,保证了Java开发者们担心由于字符编码和行结束符带来的故障。这意味着Java开发者们可以享受由NoSQL革命带来的丰硕果实。

Minecraft游戏中00后的情结

非主流们对Java嗤之以鼻,但是Java程序员们却一步。在Ruby时尚团正聚集起自己的一群粉丝时,Minecraft让之后的一代人爱上了Java。它用Java编写而成,要扩展该游戏就需学习Java来设计其插件,这保证下一代程序员是Java。

开源成就Java代码广泛的应用

Sun一直是开源领域中的之一,Java程序员们发布众多开源许可的库和项目。Apache项目一直都在使用一个没要求太多回报的许可证来提供的Java代码。07年完成在GPL许可下公开大部分代码的工作,这种开放的立场一直延续并保证Java平台很大程度是开放和0元的。

由此,Java有自己的问题,花括号增加混乱等缺点。但目前还没有一个广度和深度上可与之竞争的语言。接近的也许是JavaScript,依靠有闪电般速度的Node.js在服务器领域受到广泛关注。而语言是开源且灵活多变,意味着Java程序继续存在甚至更加兴旺。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/528376.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php rar_PHP: rar:// - Manual

说明The wrapper takes the url encoded path to the RAR archive (relative or absolute),an optional asterik (*), an optional number sign(#) and an optional url encoded entry name, as stored in thearchive. Specifying an entry name requires the number sign; a l…

终端执行php,PHP命令行执行PHP脚本的注意事项总结

文章来给各位同学介绍在PHP命令行执行PHP脚本的注意事项总结,如果你不注意这些东西,很可能服务器安全就出问题哦。如果你使用的wamp集成安装环境的话,那么你php的配置是在D:/wamp/bin/apache/Apache2.2.17/bin你要先把他复制覆盖掉D:/wamp/bin/php/php5.…

敏感词过滤的php代码,PHP敏感词过滤

/*** 禁词过滤* 执行效率:每篇用时0.05秒* author liuxu**/class Logic_BlackWord{const APP_FORUM 1;const APP_BLOG 2;const APP_VOTE 3;/*** 过滤得到禁词* param unknown $txt* return Ambigous */public function getHitList($txt){$hitList array();//对…

? php 为啥报错,如何解决js里面的php代码报错问题

在一个模块中,前端是extjs,后端是php,报错,这是在php的错误警告开到最严格的时候报的错,虽然程序可以跑,可是日志堆积越来越多。Undefined variable:loginUserNameExt.onReady(function () {var app Ext.c…

java其他进程,Java进程优先于其他Windows进程

我的任务是创建一个自定义文件备份服务,允许任何使用此服务的笔记本电脑在连接到我们的网络服务器时备份某些目录.我得到的一个要求是,该服务应该基本上优先于用户在该笔记本电脑上的正常活动而不是阻碍性能……太多了.我用Java创建了这个程序,目的是将它作为服务包装在YAJSW中…

centos php redhat,RHEL / CentOS 安装 OPcache 提升 PHP 效能

OPcache 在 PHP 5.5 (默认没有开启)开始内建在 PHP, 前身是 Zend Optimizer, PHP 5.2, 5.3 及 5.4 则要透过安装 PECL extension 安装。它的作将已经编译的 PHP Script 储存在内存, 当下次存取 PHP Script 时不用重新编译, 这样便可以提高 PHP 的效能。以下是在 CentOS 7 安装指…

php数据回显是什么意思,jquery回显是什么意思

首先来看一下回显是什么意思?在数据提交出现错误的时候, 已填写的信息仍在文本框中, 比如用户登录, 当用户输入错误的密码之后, 用户名仍在文本框, 只是密码框清空。对于一些要填写很多信息的表单, 如果因为一些错误导致已经填写的整个表单信息重新填写, 对于用户非…

Java摩托车汽车轮胎数量,摩托车轮子上的知识,你知道多少?

原标题:摩托车轮子上的知识,你知道多少?摩托车轮子好比人的两条腿,决定了车子跑得远,跑得快和跑得是否安稳。摩友们似乎对轮子的关心不多,因为它是易损件,概念中轮子轮胎出了问题,随便找路边的“风火补胎”…

matlab中的 variable,matlab中的问题Missing variable or function

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼请教各位大虾啦!!matlab中的问题Missing variable or function.??? Error: File: D:\matlab\one.m Line: 17 Column: 11Missing variable or function.是什么意思啊?源程序是:%machine characteristic %p109 machine parameter…

php抽象方法db,PHP笔记之抽象方法抽象类

抽象方法定义:一个方法如果没有方法体,则这个方法就是抽象方法。1.一个方法们没有{},直接使用分号结束的方法;2.如果是抽象方法,必须使用abstract(抽象关键字来修饰)抽象类1.如果一个类中有一个方法是抽象方法&#xf…

php配置文件加盐解密,PHP实现支持加盐的图片加密解密

一个简单的图片加解密函数&#xff0c;使用client跑&#xff0c;不要使用浏览器跑话不多说&#xff0c;直接上代码/*** Created by hello.* User: qq 845875470* Date: 2016/4/2* Time: 11:21*/$notice <<为了稳定性&#xff0c;必须在客户端跑格式 &#xff1a;php pat…

matlab中的uint8函数,未定义与 'uint8' 类型的输入参数相对应的函数 'fitnessty'

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼程序如下&#xff1a;clear allclcticpopsize15;lanti10;maxgen50;cross_rate0.4;mutation_rate0.1;a00.7;zpopsize5;bestf0;nf0;number0;Iimread(C:\Users\Yu\Pictures\feiji.jpg);if numel(I)>2Irgb2gray(I);end[m,n]size(I);…

php文本文件操作,文本文件操作的php类

var $file;var $index;//建立一个文件并写入输入 function null_write($new) {$ffopen($this->file,w);flock($f,LOCK_EX);fputs($f,$new);fclose($f);} // 添加数据记录到文件末端 function add_write($new) { $ffopen($this->file,a);flock($f,LOCK_EX);fputs($f,$new)…

php创建输入文本框,Asp:文本框与输入文本(PHP开发人员学习ASP)

What is the advantage to using an over using a standard ?>您可以在代码隐藏页面中更容易地引用文本框>注意,您可以通过在控件中使用runat “server”来访问代码隐藏中的任何HTML元素>您可以访问文本框上的更多属性,而不是输入html元素>您可以与其他ASP.NET控件…

oracle没有注册mdsdora,oracle rac一个节点服务注册不上,必须重启监听才能注册上,各位大神帮忙看一下...

环境是windows 2008 oracle 11.2.0.4 rac其中rac1节点服务总是注册不上&#xff0c;rac2节点正常--1、查看监听状态C:\Users\Administrator>lsnrctl statusLSNRCTL for 64-bit Windows: Version 11.2.0.4.0 - Production on 22-1月 -2017 17:24:16Copyright (c) 1991, 2013…

Oracle导入dmp文件报12504,ORA-12504:TNS :监听程序在 CONNECT_DATA 中未获得SERVICE_NAME...

使用本地的SQLPlus连接服务器上的Oracle数据库&#xff0c;这是由于本地有安装了Oracle数据库服务&#xff0c;所以才会系统先提示&#xff1a;ORA-12504:TNS: 监听程序在 CONNECT_DATA 中未获得 SERVICE_NAME再次输入用户名密码系统又提示&#xff1a;ORA-12560: TNS: 协议适配…

oracle数据库创建回滚,如何重建Oracle数据库的回滚段?

1、将数据关闭 svrmgrl >Shutdown abort2、修改初始化参数文件 $ vi $ORACLE_HOME/dbs/init。ora添加以下参数 rollback_segments(system) _corrupted_rollback_segments(r01,r02,r03,r04) _allow_resetlogs_corruptionture3、重新装载数据库 svrmgrl >Startup mount4、从…

oracle去掉默认值sql,如何在T-SQL中删除默认值或类似约束?

这里有我自己的版本&#xff0c;它会删除所有依赖的约束 – 默认约束 (如果存在的话)和所有受影响的检查约束 (正如SQL标准似乎暗示的一样&#xff0c;和其他一些数据库似乎是这样)declare constraints varchar(4000); declare sql varchar(4000); with table_id_column_positi…

oracle 取消exp权限,oracle 复制账号权限oracle11gexp导出问题:部分表导不出来

在oracle导出表的命令exp时候发现一个问题&#xff0c;就是部分表完全的导不oracle账号出来&#xff0c;经检查发现只要是表为空的都会导不出来。在如下表中发现segment_created都为NO的是导不出来的&#xff0c;经查询后&#xff0c;将语句提取出来执行即可。select alter tab…

linux下挂载samba服务器,Linux使用mount挂载samba共享

mysql can&&num;39&semi;t create threads in threadpool最近,我们在券商端的mysql运行一段时间后,发生mysql cant create threads in threadpool,如下所示: 据官网一个报告显示,目测是一个bug,内存紧张导致,那天 ...css content之counter-reset、content-incremen…