Java适合不适合开发自动化软件
发布网友
发布时间:2022-04-23 14:42
我来回答
共2个回答
热心网友
时间:2023-08-05 02:45
Java 从90年代初期,有人用applet写过写图形监视画面的东西,也仅限于某行业封闭式的项目中,applet也没了前途.,Java发展到2.0后,逐渐走向成熟,虚拟机中运行字节码,在今天的CPU等硬件环境条件下
也是可以胜任做写控制软件的,至少象组态软件这样的"慢速"家伙,Java是可以胜任的.那样,控制室里就没必要是青一色的windows了, 另用java的JNI写过些应用的朋友,给提出些建议,
热心网友
时间:2023-08-05 02:45
我的结论是单从编程语言本身来看,Java是最适合开发上位机自动化软件的语言。
先说说为什么目前自动化行业java用得少。
下位机方面:由于单片机没有内存管理电路,不支持动态分配内存,而面向对象的编程语言都需要内存管理电路,致使下位机编程基本上是清一色的C语言。对于PLC开发,则是梯形图为主。下位机要想使用java或C++必须解决内存管理问题。但这样会使成本增加。单片机和PLC本来就是为了解决简单问题而设计的,不需要太高级的配置。
上位机方面:由于java出现得比C++晚,早期的自动化编程多用的C语言,C++可以无缝调用C语言的程序,所以C++出现后的自动化编程是C语言与C++共存的情况。1990年的java运行速率是C++的1/20,而当时的CPU主频还是以MHz为单位的,自动化程序对实时性要求较高,java的低速率使它无法完成任务。虽然java可通过JNI来调用C++程序,但是JNI的编程非常麻烦,不是任何IDE都能够编译JNI的。就算使用JNI,把现有的C++程序重新封装成JNI也是一件非常庞大工程。如果使用JNA,道理和JNI一样,因工程太过庞大而不现实。如果放弃C++的代码,把所有算法在java上重写,代价太高,工作量只会更大。
以上是java没有用在自动化软件的历史原因,但是如果抛开大量的现成算法,重点来看语言本身的特性,现在的局面就和以前大不相同了。
性能方面:目前的主流工控机的CPU是双核心的,主频达到1.8GHz,可以流畅地运行java。而且现在的java有动态编译技术,并不像最初版本那样以解释方式运行,对于高度优化的代码,java性能是C++的1/2,对于未优化的代码,java的性能有时会比C++更好。
工具集:java有大量用于网络通信、数据处理、线程管理的工具,这些是SUN和Oracle定义的的标准java工具集,具有很好的兼容性,也经过了专家的优化。java的用量在上位机程序语言中是最高的,所以java的工具集也经过了大量的实践测试,是可靠的工具集。而C++的现成代码很多并不是由正规的专业机构来设计的,C++的基础工具集太少是造成C++开发难的重要原因。
资源释放:java有垃圾回收器,内存资源会自动释放,不用担心忘记释放内存或引用了无效指针。不管是否忘记释放系统资源,jvm退出时都会统一释放。不像C++那样,如果程序卡死,某些系统资源必须等系统注销或重启才能被释放。
导出的程序文件大小:同样的功能,jar文件的大小比exe文件小得多了。
IDE:java的主流IDE是eclipse,比Visual Studio功能丰富。
数据库解决方案:java可以使用Map来作为数据库使用,虽然C++也有Map,但是C++的Map功能不够强大。大多数C++的电气类程序都用到了SQL数据库,SQL的操作比内存操作复杂,SQL的漏洞也会变成自动化软件的漏洞。而且数据库的性能不如内存。java提供了大量好用的数据结构,可以在内存中处理大量的开关量模拟量等数据。java不只提供数据结构,还提供了每种数据结构的单线程版本和多线程版本。如果确实要用SQL,java与SQL对接也很简单。
人机界面:这里仅讨论自动化程序常用的技术。C++的人机界面一般是MFC、QT及其它开源架构。java中最合适的是JavaFX,但是需要累积项目经验。没有经验又不想累积经验的开发者可以选择swing。swing的窗体设计器直接将设计图转换为java代码,它的好处是便于调试及个性化改造,容易入门。而JavaFX提供更先进的控件,使用SceneBuilder来设计人机界面并生成一个资源文件。资源文件需要在程序中导入,调试难度较swing高,个性化改造更复杂一点。在人机界面方面,很难说谁更有优势,只能说java也有很强的人机界面设计功能。
java能做硬件吗
Java主要用于软件开发,它本身并不能直接处理硬件。然而,通过编写Java程序控制制造硬件的设备,可以实现某种程度上的间接硬件制作。例如,可以开发一个Java应用程序来监控和控制3D打印机的操作,从而影响硬件产品的最终形态。在更广泛的工业环境中,Java可以用来开发自动化控制系统。比如,它可以在工厂的生产线...
现在自动化测试用java好还是python好?
Java作为面向对象的语言,拥有丰富的库支持,如JUnit、Selenium WebDriver等,非常适合构建复杂的自动化测试框架。Java的代码结构清晰,易于维护和扩展,适合大型项目。此外,Java在企业级应用中的应用广泛,与现有的IT基础设施兼容性好,有助于长期项目的持续发展。Python则以其简洁的语法和强大的库支持(如Se...
自动化专业编程学什么语言
综上所述,选择哪种编程语言要根据具体需求和个人兴趣来决定。Python适合快速开发自动化任务,C/C++适合对性能要求较高的场景,Java适合物联网设备端和服务器端开发,MATLAB适合科学计算和信号处理等领域。合理选择编程语言,才能更好地服务于自动化领域。
想问java开发和自动化测试哪个发展前景好
无论是选择Java开发还是自动化测试,关键在于个人的兴趣和专长。如果你对编程有浓厚的兴趣,乐于解决问题,并且具备扎实的编程基础,那么Java开发可能是一个不错的选择。另一方面,如果你更倾向于解决复杂的问题,具备一定的逻辑思维能力和动手能力,那么自动化测试领域也许更适合你。总之,这两者都是非常好的...
java能从事什么工作
在软件测试领域,Java的JUnit框架支持自动化测试,确保代码质量和系统稳定性。综上所述,Java作为多用途编程语言,适用于软件开发、数据库管理、金融科技、云计算、物联网、游戏开发、大数据处理、机器学习等多个领域。其性能、可靠性和跨平台性,使其成为构建高质量应用程序的首选。如果您对上述领域感兴趣...
JavaEE技术能否应用于电气工程或自动化相关的软件?
当然是可以的。
学java能做什么工作
学习Java可以从事的工作有:1、.WEB应用程序设计,能够从事网站应用程序开发、网站维护、网页制作、软件生产企业编码、软件测试、系统支持、软件销售、数据库管理与应用、非IT企事业单位信息化;2、可视化程序设计,能够从事软件企业桌面应用开发、软件生产企业编码、软件测试、系统支持、软件销售、数据库管理与...
plc和java哪个
一、答案明确 PLC和Java是两种不同领域的技术,它们的应用范围和特点各不相同。PLC主要应用于工业自动化控制领域,而Java则广泛应用于软件开发、网站构建等多个领域。二、详细解释 1. PLC的应用与特点:PLC作为一种工业控制装置,主要用于自动化设备的控制。它采用可编程的存储器,用于执行逻辑运算、顺序...
Python 和Java 哪个更适合做自动化测试
两者任意一个掌握到比较精的程度都可以找到好工作。如果不局限于测试,想转开发:java程序员数量大。如果想转devops:搞devops的人现在python用得多。哪个语言更适合主攻学习:我个人觉得是你现在单位在用的语言最值得去学。我之前单位所有测试组都用python,我也是主要搞自动化测试,所以我主攻python。
java主要是做什么的?
3. 客户端开发 Java在政府、教育机构和其他大型企业的客户端软件开发中也扮演着重要角色。它用于开发医疗信息系统、学校管理平台、办公自动化系统、电子邮件服务、投票系统、金融服务、考试平台、物流跟踪和矿山监控等多样化的应用。尽管如此,客户端开发往往不是企业核心业务的重点,因此相关产品可能不会得到...