可以的,可以做Java游戏。\x0d\x0a【资料】\x0d\x0a主要是用Java分支中的J2ME来写,但是J2ME中需要Java的基础知识。\x0d\x0a现在有大部分人,都是从零开始学J2ME的,学习J2ME的时候,总是从Java基础开始学习,而且现在讲Java基础的书籍中都是以J2SE来讲基础,这就给学习造成了一些不必要的麻烦,下面将J2ME中用到的和不需要的Java基础知识做一个简单的说明。\x0d\x0aJ2ME中使用到的Java基础知识:\x0d\x0a1、Java语法基础:包括基本数据类型、关键字、运算符等等\x0d\x0a2、面向对象的思想:类和对象的概念,继承和多态等等。\x0d\x0a3、异常处理\x0d\x0a4、多线程
在现实社会中有很多地方使用到了Java,从电子商务网站到Android apps,从科学应用到金融产品,例如电子交易系统,从类似Minecraft的游戏再到Eclipse,Netbeans和IntelliJ的桌面应用,从开源的资源库J2MEapps等等。下面带你一起详细了解Java的应用领域。
1、安卓Apps
如果你想知道Java应用在哪里,你离答案并不远。打开你的安卓手机或者任何的App,它们完全是用有着谷歌AndroidAPI的Java编程语言编写的,这个API和JDK非常相似。前几年安卓刚开始起步而到今日已经很多Java程序员是安卓App的开发者。
2、在金融服务行业的服务器应用
Java在金融服务业有着很大应用。很多的全球性投资银行例如GoldmanSachs(高盛投资公司),Citigroup(花旗集团),Barclays(巴克莱银行),StandardCharted(英国渣打银行)和一些其他银行都用Java编写前台和后台的电子交易系统,结算、信息确认系统,数据处理项目和以及其他的项目。
Java被运用于编写服务端应用,但大多数没有前端,都是从一个服务端(上一级)接收数据,处理数据后发向其他的处理系统(下一级)。JavaSwing由于能开发出图形用户界面的客户端供交易者使用而备受欢迎,但是现在C#正在快速地取代Swing的市场,这让Swing倍有压力。
3、网站应用
Java同样也在电子商务和网站开发上有着广泛的运用。你可以运用很多RESTfull架构,这些架构是用SpringMVC,Struts2.0和类似的框架开发出来的。甚至简单的Servlet,JSP和Struts在各种政府项目也是备受欢迎,许多政府,医疗,保险,教育,国防和其他部门的网站都是建立在Java之上的。
4、软件工具
很多有用的软件和开发工具都是运用Java编写和开发的,例如Ecilpse,InetelliJIdea和NetbansIDE.。我认为这些都是经常使用的用Java编写的桌面应用程序。
就如上面所说,Swing曾经在图形用户界面的客户端开发非常流行,它们大多数应用在金融服务领域以及投资银行。虽然现在JavaFx正在逐渐地流行起来,但仍然无法替代Swing,而且C#已经在大部分金融领域中代替了Swing。
5、交易系统
第三方交易系统,金融服务行业的一大部分,同样也是使用Java编写的。例如像Murex这种受欢迎的交易系统,运用于与许多的银行前端链接,同样也是用Java编写的。
6、J2MEApps
虽然IOS和Android的到来几乎扼杀了J2ME的市场,但是仍然有很多的低端诺基亚和三星手机在使用着J2ME。曾经有段时间大部分的游戏,手机应用都是利用MIDP和CLDC,或者J2ME部分平台编写的,以适用于Android系统。.J2ME依然在蓝光、磁卡、机顶盒等产品中流行着。app之所以如此流行是因为对于所有的诺基亚手机,app仍然适用于J2ME。
7、嵌入式领域
Java在嵌入式领域也有很大的应用。你只需要130KB就能够使用Java技术(在一块小的芯片或者传感器上),这显示了这个平台是多么的可靠。Java当初是为了嵌入式设备而设计的。事实上,这也是Java当初的一项“立即编写,随处运行”主旨的一部分。
8、大数据技术
Hadoop和其他的大数据技术也在不同程度使用着Java,例如Apache的基于Java的Hbase,Accumulo(开源),以及ElasticSearch。但是Java并没有占领整个领域,还有其他的大数据技术例如MongoDB就是使用C++编写的.如果Hadoopor和ElasticSearch逐渐发展,那么Java就能有潜力在大数据技术领域上得到更大的发展空间。
9、高频交易领域
Java平台已经大大提高了性能特点和JITS,并且Java也拥有像C++级别的传输性能。因此,Java也流行于编写高并发系统。虽然Java的传输性能不比C++,但你可以不用考虑Java的安全性,可移植性和可维护性等问题(Java内部已经实现好了),而且Java有着更快的运行速度。安全性等问题会使一个没有经验的C++程序员编写的应用程序变得更加缓慢和不可靠。
10、科学应用
现在Java经常是科学应用的默认选择,包括了自然语言处理。这主要的原因是因为Java比起C++或者其他语言有更加的安全,可移植,可维护,而且Java有着更好的高级并发工具。
其实不管是选择哪个领域只要自己技术够强高新就不是问题。
作为一个多年游戏服务端开发者,我来回答一下这个问题。只要你仔细去招聘网站看,会发现游戏招java的非常少(我希望杠精不要抬杠,我说的少,而且非常少,并不是说没有)。那么为什么在其他领域的霸主在游戏行业连喝口汤的资格都没有呢?其实主要有两个原因,而且这两个原因都和程序员最关心的效率有关系,一个是开发效率,一个是运行效率。很遗憾的作为一个不上不下的java两个都占不了。
首先是开发效率,在几年前手机游戏开始火爆,游戏公司多,产品相似度高,那么如何能以最快的速度开发完游戏并且上线运营,在快速迭代中试错,降低开发周期就是减少开发成本。在这种环境下,很多脚本语言成了首选,比如nodejs、php甚至还有lua和python(这里多说一句,别看lua语言本身简单,其实lua在游戏领域的使用成本是非常高的,至少在这四种脚本语言中是最高的,因为他只是一个胶水语言,要依附于c/c++,作为游戏周边的库都要自己造轮子或找轮子,同时对于引擎部分来说,对核心开发人员要求也非常高,如果公司没有经验丰富的c/c++程序员,lua基本玩不转)。在这些脚本语言面前,java毫无优势。nodejs开箱即用,用js可以前后端一起写(html5的流行让这种情况更是越来越多)。而php上手容易,开发简单,而且像一些用http的弱交互游戏,热更新简直不要太爽,无感知修bug。一些简单的休闲游戏,用这些脚本语言完全可以很快速的完成,就拿之前比较火的刀塔传奇来说,用这些脚本语言一点压力都没有,还有特别是棋牌类游戏,脚本语言更是首选。
其次再来说说运行效率,在一些密集型计算的游戏中,c++是首选,一些大型游戏,对计算要求很高,业务逻辑复杂的情况下,提升效率就能多容纳在线人数,也是成本的减少。同时对内存要求也高,使用c++可以数着内存写代码(手法过于夸张[捂脸]),对象啥时候申请,啥时候释放都是程序员说了算,gc消耗不存在的。而java生成的都是字节码,代码执行都要经过jvm来跑,这中间的消耗对于那些对性能要求苛刻的程序来说,绝对不能接受。
综合以上两点,java处于运行效率和开发效率中间的语言,在游戏这个行业自然是不会受到青睐。
做游戏引擎,当然还是看性能啦,c的性能最好。java性能其实也很好了,看谁出个简单快速的框架呗
JAVA可以做游戏服务端的开发,也就是网络游戏的开发,网络游戏的实时性高,对高并发,数据的一致性处理要求较高,并且因为是自身JVM的垃圾回收机制对服务器的内核性能要求高,会占用一定的资源去处理这部分数据,游戏的实时性代表了大量数据会经常被更改替换。
JAVA不是不能做,而是对开发人员的能力要求高!如果能够充分利用JAVA的并发优势,那是可以做到的,并且这已经被有些小公司当做网络游戏服务端的开发语言了。
PC端,移动端的单机游戏就不用再考虑JAVA了,显然JAVA的2D3D处理效果没有一些主流的游戏开发语言好!语言具有其使用场景,抓住其优点去利用之,而不是拿它的缺点如何别的语言优点相比!如今JAVA是做服务端开发的不二人选,因为他的帝国大厦已经很完善,开发人员也多!
因为java中间多出来一个jvm,效率低,游戏实时性很重要。
看一个语言适合开发什么,主要有三点
1.效率问题,包括开发效率和执行效率。
2.生态圈,有人家提供好的成套解决方案,为什么不用呢?
3.产品的侧重点。
就拿java和c++来说,java主要用于web开发,但是c++通过cgi也可以写web,而且c++的执行效率甩java几条街,但是为什么不用c++写web呢,因为c++的开发web的效率太低,而java有各种web方面的框架,开发效率高。
如果产品是游戏,游戏实时性很重要,你玩个游戏反应慢半拍那肯定很恼火。游戏这个产品的实时性就注定了要采用高效率的语言开发,那c,c++自然就跑不掉了。
Java何来不适合游戏开发一说的呢?
毕竟游戏有分类,而且游戏也分客户端,服务端
很多游戏的服务端就是Java的
而且实时性要求不高的游戏客户端,也可以用Java开发,例如我的世界
我想题主想问为什么3A大作没有用Java开发的吧
这其实是一个路径绑定问题,目前大作基本上都是用游戏引擎做的,而且这些游戏引擎都是发展多年的,如果用Java做,可能要用没经过业内验证的新东西,大公司不想冒险,还有Java的垃圾回收机制本身也是个难点,不适合做实时性非常强的游戏。
java开发游戏性能和效率差,开发一些小游戏还可以,java面向对象,所有方法都是封装在类里的,要调用方法就得实例类,而游戏主要侧重的是逻辑
对象就像是很多功能的机器,但是我的游戏逻辑只要每台机器的其中一个功能,但要用的话必须把这一整台机器制造出来。这就是面向对象的缺陷吧
而c是面向过程的可以更加灵活地设计过程逻辑,少去很多多余东西,大大提高性能
java的长处就是利用各种现存的类包,达到复用的效果,大大提高开发效率,
当然java也可以只针对逻辑来设计类,但那不是java的长处,没有多大的意义
百度搜索圈T社区()免费视频教程
如果你问我java适合开发游戏吗?我回答肯定是适合的,java开发效率高,运行效率一般,需要运行效率的地方用c或者cxx写就好了,现在市面大多数游戏都不是单一编程语言开发的,不需要在语言方面纠结太久。
很多人说,运行效率也很重要,但实际上,一般逻辑,你是感受不出差异的,普通逻辑使用java或者c#,或者脚本语言等这种开发效率,调试效率高的语言会让你开发更舒服。特别是脚本语言。
c和cxx只在特别需要效率的地方才使用。
哈_,这里子期!java开发游戏性能和效率差,开发一些小游戏还可以,远标老师讲过java面向对象,所有方法都是封装在类里的,要调用方法就得实例类,而游戏主要侧重的是逻辑
对象就像是很多功能的机器,但是我的游戏逻辑只要每台机器的其中一个功能,但要用的话必须把这一整台机器制造出来。这就是面向对象的缺陷吧
而c是面向过程的可以更加灵活地设计过程逻辑,少去很多多余东西,大大提高性能
java的长处就是利用各种现存的类包,达到复用的效果,大大提高开发效率,
当然java也可以只针对逻辑来设计类,但那不是java的长处,没有多大的意义
上一篇:java基础知识可以做游戏吗
下一篇:java开发游戏用到的知识点