java为什么不能直接控制硬件?问题有点深,高手进。
java是:源代码-->;字节码-->JVM-->;操作系统->;硬件(你少了一个)java是不能直接控制硬件,java帮助开发者隐藏了硬件,软件的不同导致的兼容性问题,这也导致了开发者无法直接操作硬件。
意思就是java寄生在操作系统上,做了一个虚拟机,所有装了java runtime的jvm都是一样的。
这个jvm提供的API都是一样,硬件的不同不能在代码上产生改变,所以就是不能直接访问硬件咯。
java能开发硬件远程控制的软件吗?
展开全部您首先需要PBX服务器,可以是硬件也可以是软件。
硬件可用各种程控电话交换机。
软件pbx可以参考asterisk、freepbx、freeiris、elastix、freeswitch等等…… 这些软硬件设备基本都可以实现自动语音提示功能。
有的还能够实现树状语音菜单(IVR)、自动来电排队(ACD)和录音。
PBX服务器有了,那么外呼单元可以采用板卡+电话线也可以采用VOIP。
板卡可以使用模拟卡:三汇、东进、维卡等等……电话线需要您自己向电话局申请。
VOIP方式您可以找找运营商,付费以后给您开通一个VOIP帐号(通常是SIP协议),然后会给您一个IP、端口、用户名、密码。
这样您就可以用软件pbx服务器注册到VOIP运营商的服务器外呼了。
...
java怎么和外部硬件连接
java帮助开发者隐藏了硬件,软件的不同导致的兼容性问题,这也导致了开发者无法直接操作硬件。
这个jvm提供的API都是一样;字节码-->JVM-->,硬件的不同不能在代码上产生改变,所以就是不能直接访问硬件咯;操作系统->硬件(你少了一个)java是不能直接控制硬件。
意思就是java寄生在操作系统上,做了一个虚拟机,所有装了javaruntime的jvm都是一样的java是:源代码-->...
Java控制面板是干什么用的?
Java虚拟机是一个想象中的机器,在实际的计算机上通过软件模拟来实现。
Java虚拟机有自己想象中的硬件,如处理器、堆栈、寄存器等,还具有相应的指令系统。
某些游戏和程序 需要使用java,或者需要java支持。
安装了java的机器,就会在控制面版上生成一个控制器,以方便对java运行做一定的调整 a/为什么要使用Java虚拟机 Java语言的一个非常重要的特点就是与平台的无关性。
而使用Java虚拟机是实现这一特点的关键。
一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码。
而引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。
Java语言使用模式Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。
Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。
b/谁需要了解Java虚拟机 Java虚拟机是Java语言底层实现的基础,对Java语言感兴趣的人都应对Java虚拟机有个大概的了解。
这有助于理解Java语言的一些性质,也有助于使用Java语言。
对于要在特定平台上实现Java虚拟机的软件人员,Java语言的编译器作者以及要用硬件芯片实现Java虚拟机的人来说,则必须深刻理解Java虚拟机的规范。
另外,如果你想扩展Java语言,或是把其它语言编译成Java语言的字节码,你也需要深入地了解Java虚拟机。
用JAVA实现工资管理软件设计
展开全部 目前通用的编程语言有两种形式:汇编语言和高级语言。
汇编语言的实质和机器语言是相同的,都是直接对硬件操作,只不过指令采用了英文缩写的标识符,更容易识别和记忆。
它同样需要编程者将每一步具体的操作用命令的形式写出来。
汇编程序通常由三部分组成:指令、伪指令和宏指令。
汇编程序的每一句指令只能对应实际操作过程中的一个很细微的动作,例如移动、自增,因此汇编源程序一般比较冗长、复杂、容易出错,而且使用汇编语言编程需要有更多的计算机专业知识,但汇编语言的优点也是显而易见的,用汇编语言所能完成的操作不是一般高级语言所能实现的,而且源程序经汇编生成的可执行文件不仅比较小,而且执行速度很快。
高级语言是目前绝大多数编程者的选择。
和汇编语言相比,它不但将许多相关的机器指令合成为单条指令,并且去掉了与具体操作有关但与完成工作无关的细节,例如使用堆栈、寄存器等,这样就大大简化了程序中的指令。
同时,由于省略了很多细节,编程者也就不需要有太多的专业知识。
高级语言主要是相对于汇编语言而言,它并不是特指某一种具体的语言,而是包括了很多编程语言,如目前流行的VB、VC、FoxPro、Delphi等,这些语言的语法、命令格式都各不相同。
高级语言所编制的程序不能直接被计算机识别,必须经过转换才能被执行,按转换方式可将它们分为两类: 解释类:执行方式类似于我们日常生活中的“同声翻译”,应用程序源代码一边由相应语言的解释器“翻译”成目标代码(机器语言),一边执行,因此效率比较低,而且不能生成可独立执行的可执行文件,应用程序不能脱离其解释器,但这种方式比较灵活,可以动态地调整、修改应用程序。
编译类:编译是指在应用源程序执行之前,就将程序源代码“翻译”成目标代码(机器语言),因此其目标程序可以脱离其语言环境独立执行,使用比较方便、效率较高。
但应用程序一旦需要修改,必须先修改源代码,再重新编译生成新的目标文件(* .OBJ)才能执行,只有目标文件而没有源代码,修改很不方便。
现在大多数的编程语言都是编译型的,例如Visual C++、Visual Foxpro、Delphi等。
[NextPage] 学习编程,从何入手 如果您想学习编程,却又不知从何入手,那么您不妨看看下面的几种学习方案,可能会给您一些启示吧! ============================================== 方案一 Basic语言 & Visual Basic 优点 (1)Basic 简单易学,很容易上手。
(2)Visual Basic 提供了强大的可视化编程能力,可以让你轻松地做出漂亮的程序。
(3)众多的控件让编程变得象垒积木一样简单。
(4)Visual Basic 的全部汉化让我们这些见了English就头大的人喜不自禁。
缺点 (1)Visual Basic 不是真正的面向对象的开发文具。
(2)Visual Basic 的数据类型太少,而且不支持指针,这使得它的表达能力很有限。
(3)Visual Basic 不是真正的编译型语言,它产生的最终代码不是可执行的,是一种伪代码。
它需要一个动态链接库去解释执行,这使得Visual Basic 的编译速度大大变慢。
综述:方案一适合初涉编程的朋友,它对学习者的要求不高,几乎每个人都可以在一个比较短的时间里学会vB编程,并用VB 做出自己的作品。
对于那些把编程当做游戏的朋友来说,VB 是您最佳的选择。
Basic/Visual Basic简介 ============================================== 方案二 Pascal语言 & Delphi 优点 (1)Pascal语言结构严谨,可以很好地培养一个人的编程思想。
(2)Delphi是一门真正的面向对象的开发工具,并且是完全的可视化。
(3)Delphi使用了真编译,可以让你的代码编译成为可执行的文件,而且编译速度非常快。
(4)Delphi具有强大的数据库开发能力,可以让你轻松地开发数据库。
缺点 Delphi几乎可以说是完美的,只是Pascal语言的过于严谨让人感觉有点烦。
综述: 方案二比较适合那些具有一定编程基础并且学过Pascal语言的朋友。
Pascal语言简介 Delphi简介 ============================================== 方案三 C语言 & Visual C++ 优点 (1)C语言灵活性好,效率高,可以接触到软件开发比较底层的东西。
(2)微软的MFC库博大精深,学会它可以让随心所欲地进行编程。
(3)VC是微软制作的产品,与操作系统的结合更加紧密。
缺点 对使用者的要求比较高,既要具备丰富的C语言编程经验,又要具有一定的WINDOWS编程基础,它的过于专业使得一般的编程爱好者学习起来会有不小的困难。
综述: VC是程序员用的东西。
如果你是一个永不满足的人,而且可以在编程上投入很大的精力和时间,那么学习VC你一定不会后悔的。
C语言简介 ============================================== 方案四 C++语言 & C++ Builder 优点 (1)C++语言的优点全部得以继承。
(2)完全的可是化。
(3)极强的兼容性,支持OWL、VCL和MFC三大类库。
(4)编译速度非常快。
缺点 由于推出的时间太短,关于它的各种资料还不太多。
综述:我认为C++ Builder 是最好的编程工具。
它既保持了C++语...
java工作原理
展开全部 Java虚拟机 一、什么是Java虚拟机 Java虚拟机是一个想象中的机器,在实际的计算机上通过软件模拟来实现。
Java虚拟机有自己想象中的硬件,如处理器、堆栈、寄存器等,还具有相应的指令系统。
1.为什么要使用Java虚拟机 Java语言的一个非常重要的特点就是与平台的无关性。
而使用Java虚拟机是实现这一特点的关键。
一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码。
而引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。
Java语言使用模式Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。
Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。
2.谁需要了解Java虚拟机 Java虚拟机是Java语言底层实现的基础,对Java语言感兴趣的人都应对Java虚拟机有个大概的了解。
这有助于理解Java语言的一些性质,也有助于使用Java语言。
对于要在特定平台上实现Java虚拟机的软件人员,Java语言的编译器作者以及要用硬件芯片实现Java虚拟机的人来说,则必须深刻理解Java虚拟机的规范。
另外,如果你想扩展Java语言,或是把其它语言编译成Java语言的字节码,你也需要深入地了解Java虚拟机。
3.Java虚拟机支持的数据类型 Java虚拟机支持Java语言的基本数据类型如下: byte://1字节有符号整数的补码 short://2字节有符号整数的补码 int://4字节有符号整数的补码 long://8字节有符号整数的补码 float://4字节IEEE754单精度浮点数 double://8字节IEEE754双精度浮点数 char://2字节无符号Unicode字符 几乎所有的Java类型检查都是在编译时完成的。
上面列出的原始数据类型的数据在Java执行时不需要用硬件标记。
*作这些原始数据类型数据的字节码(指令)本身就已经指出了*作数的数据类型,例如iadd、ladd、fadd和dadd指令都是把两个数相加,其*作数类型别是int、long、 float和double。
虚拟机没有给boolean(布尔)类型设置单独的指令。
boolean型的数据是由integer指令,包括integer 返回来处理的。
boolean型的数组则是用byte数组来处理的。
虚拟机使用IEEE754格式的浮点数。
不支持IEEE格式的较旧的计算机,在运行 Java数值计算程序时,可能会非常慢。
虚拟机支持的其它数据类型包括: object//对一个Javaobject(对象)的4字节引用 returnAddress//4字节,用于jsr/ret/jsr-w/ret-w指令 注:Java数组被当作object处理。
虚拟机的规范对于object内部的结构没有任何特殊的要求。
在Sun公司的实现中,对object的引用是一个句柄,其中包含一对指针:一个指针指向该object的方法表,另一个指向该object的数据。
用Java虚拟机的字节码表示的程序应该遵守类型规定。
Java虚拟机的实现应拒绝执行违反了类型规定的字节码程序。
Java虚拟机由于字节码定义的限制似乎只能运行于32位地址空间的机器上。
但是可以创建一个Java虚拟机,它自动地把字节码转换成64位的形式。
从Java虚拟机支持的数据类型可以看出,Java对数据类型的内部格式进行了严格规定,这样使得各种Java虚拟机的实现对数据的解释是相同的,从而保证了Java的与平台无关性和可 移植性。
二、Java虚拟机体系结构 Java虚拟机由五个部分组成:一组指令集、一组寄存器、一个栈、一个无用单元收集堆(Garbage-collected-heap)、一个方法区域。
这五部分是Java虚拟机的逻辑成份,不依赖任何实现技术或组织方式,但它们的功能必须在真实机器上以某种方式实现。
1.Java指令集 Java虚拟机支持大约248个字节码。
每个字节码执行一种基本的CPU运算,例如,把一个整数加到寄存器,子程序转移等。
Java指令集相当于Java程序的汇编语言。
Java指令集中的指令包含一个单字节的*作符,用于指定要执行的*作,还有0个或多个*作数,提供*作所需的参数或数据。
许多指令没有*作数,仅由一个单字节的*作符构成。
虚拟机的内层循环的执行过程如下: do{ 取一个*作符字节; 根据*作符的值执行一个动作; }while(程序未结束) 由于指令系统的简单性,使得虚拟机执行的过程十分简单,从而有利于提高执行的效率。
指令中*作数的数量和大小是由*作符决定的。
如果*作数比一个字节大,那么它存储的顺序是高位字节优先。
例如,一个16位的参数存放时占用两个字节,其值为: 第一个字节*256+第二个字节字节码指令流一般只是字节对齐的。
指令tableswitch和lookup是例外,在这两条指令内部要求强制的4字节边界对齐。
2.寄存器 Java虚拟机的寄存器用于保存机器的运行状态,与微处理器中的某些专用寄存器类似。
Java虚拟机的寄存器有四种: pc:Java程序计数器。
optop:指向*作数栈顶端的指针。
frame:指向当前执行方法的执行环境的指针。
vars:指向当前执行方法的局部变量区第一个变量的指针。
Java虚拟机 Java虚拟机是栈式的,它不定义或使用寄存器来传递或接受参数,其目的是为了保证指令集的简洁性和实现时的高效性(特别是对于寄存器数目不多的处理器)。
所有寄存器都是32位的。
3.栈 Java虚拟机的栈有三个区域...
JAVA能做EXE吗?
⒈把JAVA生成EXE文件需要用软件VB6.0来做⒉做网页新建一个文本文档,输入: 之类保存后缀名为.html的文件也可以做成网页⒊JAVA不仅做游戏和网页,到下面网址看一下↓⒋Java 主分 三大块 J2EE\J2SE\J2ME J2ME主要应用于嵌入是系统开发,如手机和PDA的编程(小型电子设备的系统);J2EE主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
J2SE开发桌面应用软件(单机软件)。
⒌“良葛格”的书入门比较不错(很通俗^-^,不过数据量少一些)。
入门以后是比较能获得思想上的提高的书。
另外还需要一本全面的工具书方便查资料,推荐(也叫).
java编程除eclipse外还有哪些工具软件
图形界面的java开发工具JDKBorland的JBuilderJBuilder,JDeveloper,VisualAgeforJavajcreater.常见的十五种Java开发工具的特点1、JDK(JavaDevelopmentKit)Java开发工具集从初学者角度来看,采用JDK开发Java程序能够很快理解程序中各部分代码之间的关系,有利于理解Java面向对象的设计思想。
JDK的另一个显著特点是随着Java(J2EE、J2SE以及J2ME)版本的升级而升级。
但它的缺点也是非常明显的就是从事大规模企业级Java应用开发非常困难,不能进行复杂的Java软件开发,也不利于团体协同开发。
2、JavaWorkshop3、NetBeans与SunJavaStudio5NetBeans是开放源码的Java集成开发环境(IDE),适用于各种客户机和Web应用。
SunJavaStudio是Sun公司最新发布的商用全功能JavaIDE,支持Solaris、Linux和Windows平台,适于创建和部署2层JavaWeb应用和n层J2EE应用的企业开发人员使用。
NetBeans是业界第一款支持创新型Java开发的开放源码IDE。
开发人员可以利用业界强大的开发工具来构建桌面、Web或移动应用。
同时,通过NetBeans和开放的API的模块化结构,第三方能够非常轻松地扩展或集成NetBeans平台。
NetBeans3.5.1主要针对一般Java软件的开发者,而JavaOneStudio5则主要针对企业做网络服务等应用的开发者。
Sun不久还将推出ProjectRave,其目标是帮助企业的开发者进行软件开发。
NetBeans3.5.1版本与其他开发工具相比,最大区别在于不仅能够开发各种台式机上的应用,而且可以用来开发网络服务方面的应用,可以开发基于J2ME的移动设备上的应用等。
在NetBeans3.5.1基础上,Sun开发出了JavaOneStudio5,为用户提供了一个更加先进的企业编程环境。
在新的JavaOneStudio5里有一个应用框架,开发者可以利用这些模块快速开发自己在网络服务方面的各种应用程序。
4、Borland的JBuilderJbuilder进入了Java集成开发环境的王国,它满足很多方面的应用,尤其是对于服务器方以及EJB开发者们来说。
下面简单介绍一下Jbuilder的特点:1)Jbuilder支持最新的Java技术,包括Applets、JSP/Servlets、JavaBean以及EJB(EnterpriseJavaBeans)的应用。
2)用户可以自动地生成基于后端数据库表的EJBJava类,Jbuilder同时还简化了EJB的自动部署功能.此外它还支持CORBA,相应的向导程序有助于用户全面地管理IDL(分布应用程序所必需的接口定义语言InterfaceDefinitionLanguage)和控制远程对象。
3)Jbuilder支持各种应用服务器。
Jbuilder与InpriseApplicationServer紧密集成,同时支持WebLogicServer,支持EJB1.1和EJB2.0,可以快速开发J2EE的电子商务应用。
4)Jbuilder能用Servlet和JSP开发和调试动态Web应用。
5)利用Jbuilder可创建(没有专有代码和标记)纯Java2应用。
由于Jbuilder是用纯Java语言编写的,其代码不含任何专属代码和标记,它支持最新的Java标准。
6)Jbuilder拥有专业化的图形调试介面,支持远程调试和多线程调试,调试器支持各种JDK版本,包括J2ME/J2SE/J2EE。
JBuilder环境开发程序方便,它是纯的Java开发环境,适合企业的J2EE开发;缺点是往往一开始人们难于把握整个程序各部分之间的关系,对机器的硬件要求较高,比较吃内存,这时运行速度显得较慢。
5、Oracle的JDeveloperOracle9iJDeveloper(定为9.0版,最新为10g)为构建具有J2EE功能,XML和Webservices的复杂的,多层的Java应用程序提供了一个完全集成的开发环境。
它为运用Oracle9i数据库和应用服务器的开发人员提供特殊的功能和增强性能,除此以外,它也有资格成为用于多种用途Java开发的一个强大的工具。
Oracle9iJDeveloper的主要特点如下:①具有UML(UnifiedModelingLanguage,一体化建模语言)建模功能。
可以将业务对象及e-business应用模型化。
②配备有高速Java调试器(Debuger)、内置Profiling工具、提高代码质量的工具“CodeCoach”等。
③支持SOAP(SimpleObjectAccessProtocol)“简单对象访问协议”、UDDI(UniversalDescription,DiscoveryandIntegration)“统一描述、发现和集成协议”、WSDL(WebServicesDescriptionLanguage)“WEB服务描述语言”等Web服务标准。
JDeveloper不仅仅是很好的Java编程工具,而且是OracleWeb服务的延伸,支持ApacheSOAP,以及9iAS,可扩充的环境和XML和WSDL语言紧密相关。
Oracle9iJdeveloper完全利用Java编写,能够与以前的Oracle服务器软件以及其他厂商支持J2EE的应用服务器产品相兼容,而且在设计时着重针对Oracle9i,能够无缝化跨平台之间的应用开发,提供了业界第一个完整的、集成了J2EE和XML的开发环境,允许开发者快速开发可以通过Web、无线设备及语音界面访问的Web服务和交易应用,以往只能通过将传统Java编程技巧与最新模块化方式结合到一个单一集成的开发环境中之后才能完成J2EE应用开发生命周期管理的事实,从根本上得到改变。
缺点就是对于初学者来说,较复杂,也比较难。
6、IBM的VisualAgeforJavaVisualAgeforJava是一个非常成熟的开发工具,它的特性以于IT开发者和业余的Java编程人员来说都是非常用有用的。
它...
转载请注明出处51数据库 » java实现软件控制硬件
续写不尽的未来44151296