C++java答辩问题?

   2.Java是面向对象的

   Java是一种面姠对象的编程语言除了简单的类型,如数字和布尔算子之外Java中的大部分都是对象。

   正如任何面向对象的语言一样Java代码也按类组織。每个类定义一组规定对象行为的方法一个类可以继承另一个类的行为。在类的根层次上通常是类对象。

   Java支持单继承类层次结構这就是说,每个类一次只能继承一个别的类有些语言允许多继承性,但这可能造成混乱使语言不必要地复杂化。例如难以想像,一个对象会继承两个完全不同的类的行为

Java还支持摘要类的接口。这允许编程人员先定义接口的方法而不必急于马上确定方法的实现。一个类可以施行多个接口从而具有真正多继承性的许多优点。一个对象也可实施任意数量的接口Java接口与IDL接口极其相似。很容易建立IDLJ編译器这就是说,Java可用于CORBA对象系统来建立分布式对象系统鉴于在许多计算机系统中都采用IDL接口和CORBA对象系统,这种兼容性是重要的

   3.Java是静态类型的

   在一个Java程序中,必须定义所用对象(数字、字符、数组等)的类型这有助于编程人员很快发现java答辩问题,因为当程序编譯时可以检测类型错误

   不过,Java系统中的对象也有动态类型要求一个对象为动态类型往往是可能的,所以编程人员写的程序可以对鈈同类型的对象做不同的事

当运行Java程序时,它首先被编译成字节代码字节代码非常类似于机器指令,所以Java程序非常高效然而,字节玳码并不专对一种特定的机器所以Java程序无需重新编译便可在众多不同的计算机上执行。

Java源程序被编译成类文件它相当于程序的字节代碼表现。在一个Java类文件中所有对方法及实例变量的参照均按名进行,并在第一次执行代码时加以分辨这使得代码更通用,更不易受修妀的影响而仍具高效。    5.Java是体系结构中立的

Java语言对每种计算机都一样比如,简单的类型都是不变的:整数总是32位长整数总是64位。囹人奇怪的是诸如CC++等时髦的编程语言却不是这样。由于这些语言定义如此自由每种编译器及开发环境便各有不同了,这使程序的移植成为讨厌的java答辩问题Java程序的移植却很容易,而且不需要进行重新编译

   Java程序不可能造成计算机崩溃。Java系统仔细检测对内存的每次訪问确认它是合法的,而且不致引起任何java答辩问题

   不过,即使Java程序也可能有错误如果出现某种出乎意料之事,程序不会崩溃洏把该例外抛弃。程序会发现这类例外并加以处理。

传统的程序可以访问计算机的全部内存程序可能(无意识地)修改内存中的任何值,這就会造成java答辩问题Java程序只能访问内存中允许它们访问的那些部分,所以Java程序不可能修改不拟修改的值

由于Java的设计是要在小的计算机仩运行,作为一种编程语言来说其系统是相对较小的它能有效地在4MB以上RAMPC机上运行。Java翻译器只占用几百KB这种翻译器对Java的平台无关性和鈳移植性是可靠的。

   由于Java很小它对内存很小的计算机,如基于JavaPC机以及电视机、烤箱、***机及家用计算机等,是很理想的

   Java程序可以执行一个以上的线程。比如它可以在一个线程中完成某一耗时的计算,而其它线程与用户进行交互对话所以用户不必停止笁作,等待Java程序完成耗时的计算

   在多线程环境中的编程通常是困难的,因为许多东西可能同时出现但是,Java提供了易于使用的同步特性使编程更为方便。

Java线程通常被映射为实际的操作系统线程只要底层操作系统支持这种映射。因此用Java写的应用程序可说是“MP。这就是说如果它们在多处理器机器上运行,它们更将表现不凡 
   9.Java是可收集无用的存储单元的

   CC++写软件的编程人员必须仔细哏踪所用的内存块。当一个块不再使用时他们务必让程序释放它,从而方可再用在大的项目中,这可能很困难并往往成为出错和内存不足的根源。

Java的情况下编程人员不必为内存管理操心。Java系统有一个叫做无用单元收集器的内置程序它扫描内存,并自动释放那些不再使用的内存块

   Java比典型的脚本语言大为有效,但它比C20倍这对大多数应用是可接受的。

   不久的将来代码生成器就可供利用了,这将使Java程序几近于用CC++编写的程序那么快

Java程序没有指针,而且象这样的字节代码程序强在类型上所以在执行之前它可能验證Java程序。被验证的Java程序得以保证不突破Java语言的任何限制而且可以安全地执行。Java字节代码验证被Web浏览器用来确保小程序不含病毒

   Java程序可与用其它语言编写的现存程序库连接。由于Java数据结构与C的数据结构的类型极为相似这是相当方便的。最大的java答辩问题在于现有多線程程序库为数不多。

   Java程序可以声明某些方法是内部的然后,把这些内部方法映射成软件库所定义的功能从而动态地链接到虚拟機。

计算机语言的种类非常的多总嘚来说可以分成机器语言,汇编语言高级语言三大类。

电脑每做的一次动作一个步骤,都是按照以经用计算机语言编好的程序来执行嘚程序是计算机要执行的指令的集合,而程序全部都是用我们所掌握的语言来编写的所以人们要控制计算机一定要通过计算机语言向計算机发出命令。

计算机所能识别的语言只有机器语言即由0和1构成的代码。但通常人们编程时不采用机器语言,因为它非常难于记忆囷识别

目前通用的编程语言有两种形式:汇编语言和高级语言。

汇编语言的实质和机器语言是相同的都是直接对硬件操作,只不过指囹采用了英文缩写的标识符更容易识别和记忆。它同样需要编程者将每一步具体的操作用命令的形式写出来汇编程序通常由三部分组荿:指令、伪指令和宏指令。汇编程序的每一句指令只能对应实际操作过程中的一个很细微的动作例如移动、自增,因此汇编源程序一般比较冗长、复杂、容易出错而且使用汇编语言编程需要有更多的计算机专业知识,但汇编语言的优点也是显而易见的用汇编语言所能完成的操作不是一般高级语言所能实现的,而且源程序经汇编生成的可执行文件不仅比较小而且执行速度很快。

高级语言是目前绝大哆数编程者的选择和汇编语言相比,它不但将许多相关的机器指令合成为单条指令并且去掉了与具体操作有关但与完成工作无关的细節,例如使用堆栈、寄存器等这样就大大简化了程序中的指令。同时由于省略了很多细节,编程者也就不需要有太多的专业知识

高級语言主要是相对于汇编语言而言,它并不是特指某一种具体的语言而是包括了很多编程语言,如目前流行的VB、VC、FoxPro、Delphi等这些语言的语法、命令格式都各不相同。

高级语言所编制的程序不能直接被计算机识别必须经过转换才能被执行,按转换方式可将它们分为两类:

解释類:执行方式类似于我们日常生活中的“同声翻译”应用程序源代码一边由相应语言的解释器“翻译”成目标代码(机器语言),一边执行因此效率比较低,而且不能生成可独立执行的可执行文件应用程序不能脱离其解释器,但这种方式比较灵活可以动态地调整、修改應用程序。

编译类:编译是指在应用源程序执行之前就将程序源代码“翻译”成目标代码(机器语言),因此其目标程序可以脱离其语言环境独立执行使用比较方便、效率较高。但应用程序一旦需要修改必须先修改源代码,再重新编译生成新的目标文件(* .OBJ)才能执行只有目标文件而没有源代码,修改很不方便现在大多数的编程语言都是编译型的,例如Visual C++、Visual Foxpro、Delphi等

如果楼主想学习编程,却又不知从何入掱那么楼主不妨看看下面的几种学习方案,可能会给楼主一些启示吧!

(1)Basic 简单易学很容易上手。

(2)Visual Basic 提供了强大的可视化编程能力可以让你轻松地做出漂亮的程序。

(3)众多的控件让编程变得象垒积木一样简单

(4)Visual Basic 的全部汉化让我们这些见了English就头大的人喜不自禁。

(1)Visual Basic 不是真正的面向对象的开发文具

(2)Visual Basic 的数据类型太少,而且不支持指针这使得它的表达能力很有限。

(3)Visual Basic 不是真正的编译型语訁它产生的最终代码不是可执行的,是一种伪代码它需要一个动态链接库去解释执行,这使得Visual Basic 的编译速度大大变慢

综述:方案一适匼初涉编程的朋友,它对学习者的要求不高几乎每个人都可以在一个比较短的时间里学会vB编程,并用VB 做出自己的作品对于那些把编程當做游戏的朋友来说,VB 是您最佳的选择

(1)Pascal语言结构严谨,可以很好地培养一个人的编程思想

(2)Delphi是一门真正的面向对象的开发工具,并且是完全的可视化

(3)Delphi使用了真编译,可以让你的代码编译成为可执行的文件而且编译速度非常快。

(4)Delphi具有强大的数据库开发能力可以让你轻松地开发数据库。

Delphi几乎可以说是完美的只是Pascal语言的过于严谨让人感觉有点烦。

综述: 方案二比较适合那些具有一定编程基础并且学过Pascal语言的朋友

(1)C语言灵活性好,效率高可以接触到软件开发比较底层的东西。

(2)微软的MFC库博大精深学会它可以让随惢所欲地进行编程。

(3)VC是微软制作的产品与操作系统的结合更加紧密。

对使用者的要求比较高既要具备丰富的C语言编程经验,又要具有一定的WINDOWS编程基础它的过于专业沟靡话愕谋喑贪 谜哐 捌鹄椿嵊胁恍〉睦 选?

综述: VC是程序员用的东西。如果你是一个永不满足的人而且鈳以在编程上投入很大的精力和时间,那么学习VC你一定不会后悔的

(1)C++语言的优点全部得以继承。

(3)极强的兼容性支持OWL、VCL和MFC三大类庫。

(4)编译速度非常快

由于推出的时间太短,关于它的各种资料还不太多

综述:我认为C++ Builder 是最好的编程工具。它既保持了C++语言编程的優点又做到了完全的可视化。

对于一些传统的数据开发人员来说Foxpro系列也许让他们感到更加熟悉。但是对于初学者来说PowerBuilder也许是最好的數据库开发工具。各种各样的控件功能强大的PowerBuilder语言都会帮助你开发出自己的数据库应用程序。

在Sun正式发布JSP(Java Server Pages)之后这种新的Web应用开发技术佷快引起了人们的关注。JSP为创建高度动态的Web应用提供了一个独特的开发环境按照 Sun 的说法,JSP能够适应市场上包括Apache WebServer 、IIS4.0在内的85%的服务器产品

JSP與Microsoft的ASP技术非常相似。两者都提供在HTML代码中混合某种程序代码、由语言引擎解释执行程序代码的能力在ASP或JSP环境下,HTML代码主要负责描述信息嘚显示样式而程序代码则用来描述处理逻辑。普通的HTML页面只依赖于Web服务器而ASP和JSP页面需要附加的语言引擎分析和执行程序代码。程序代碼的执行结果被重新嵌入到HTML代码中然后一起发送给浏览器。ASP和JSP都是面向Web服务器的技术客户端浏览器不需要任何附加的软件支持。

ASP的编程语言是VBScript之类的脚本语言JSP使用的是Java,这是两者最明显的区别

此外,ASP与JSP还有一个更为本质的区别:两种语言引擎用完全不同的方式处理頁面中嵌入的程序代码在ASP下,VBScript代码被ASP引擎解释执行;在JSP下代码被编译成Servlet并由Java虚拟机执行,这种编译操作仅在对JSP页面的第一次请求时发苼

执行 JSP 代码需要在服务器上*** JSP 引擎。此处我们使用的是 Sun 的 JavaServer Web Development Kit ( JSWDK )为便于学习,这个软件包提供了大量可供修改的示例*** JSWDK 之后,只需执行 startserver 命令即可启动服务器在默认配置下服务器在端口 8080 ***,使用 即可打开缺省页面

在运行 JSP 示例页面之前,请注意一下*** JSWDK 的目录特别是" work "子目录下的内容。执行示例页面时可以在这里看到 JSP 页面如何被转换成 Java 源文件,然后又被编译成 class 文件(即 Servlet ) JSWDK 软件包中的示例页面汾为两类,它们或者是 JSP 文件或者是包含一个表单的 HTML 文件,这些表单均由 JSP 代码处理与 ASP 一样, JSP 中的 Java 代码均在服务器端执行因此,在浏览器中使用"查看源文件"菜单是无法看到 JSP 源代码的只能看到结果 HTML 代码。所有示例的源代码均通过一个单独的" examples "页面提供

Java Servlet是一种开发Web应用的理想构架。 JSP以Servlet技术为基础又在许多方面作了改进。JSP页面看起来象普通HTML页面但它允许嵌入执行代码,在这一点上它和ASP技术非常相似。利鼡跨平台运行的JavaBean 组件JSP为分离处理逻辑与显示样式提供了卓越的解决方案。JSP必将成为ASP技术的有力竞争者

SQL全称是“结构化查询语言(Structured Query Language)”,最早的是IBM的圣约瑟研究实验室为其关系数据库管理系统SYSTEM R开发的一种查询语言它的前身是SQUARE语言。SQL语言结构简洁功能强大,简单易学所以洎从IBM公司1981年推出以来,SQL语言得到了广泛的应用。如今无论是像Oracle ,Sybase,Informix,SQL server这些大型的数据库管理系统还是像Visual Foxporo,PowerBuilder这些微机上常用的数据库开发系统,嘟支持SQL语言作为查询语言

1986年10月,美国ANSI采用SQL作为关系数据库管理系统的标准语言(ANSI X3. 135-1986)后为国际标准化组织(ISO)采纳为国际标准。

目前所有主要嘚关系数据库管理系统支持某些形式的SQL语言, 大部分数据库打算遵守ANSI SQL89标准

SQL广泛地被采用正说明了它的优点。它使全部用户包括应用程序员、DBA管理员和终端用户受益非浅。

SQL是一个非过程化的语言因为它一次处理一个记录,对数据提供自动导航SQL允许用户在高层的数据结構上工作,而不对单个记录进行操作可操作记录集。所有SQL 语句接受集合作为输入返回集合作为输出。SQL的集合特性允许一条SQL语句的结果莋为另一条SQL语句的输入 SQL不要求用户指定对数据的存放方法。 这种特性使用户更易集中精力于要得到的结果所有SQL语句使用查询优化器,咜是RDBMS的一部分由它决定对指定数据存取的最快速度的手段。查询优化器知道存在什么索引哪儿使用合适,而用户从不需要知道表是否囿索引表有什么类型的索引。

SQL可用于所有用户的DB活动模型包括系统管理员、数据库管理员、 应用程序员、决策支持系统人员及许多其咜类型的终端用户。基本的SQL 命令只需很少时间就能学会最高级的命令在几天内便可掌握。 SQL为许多任务提供了命令包括:

● 在表中插入、修改和删除记录

● 建立、修改和删除数据对象

● 控制对数据和数据对象的存取

● 保证数据库一致性和完整性

以前的数据库管理系统为上述各类操作提供单独的语言,而SQL 将全部任务统一在一种语言中

(3) 是所有关系数据库的公共语言

由于所有主要的关系数据库管理系统都支持SQL語言,用户可将使用SQL的技能从一个RDBMS转到另一个所有用SQL编写的程序都是可以移植的。

当1995年SUN推出Java语言之后全世界的目光都被这个神奇的语訁所吸引。那么Java到底有何神奇之处呢

Java语言其实最是诞生于1991年,起初被称为OAK语言是SUN公司为一些消费性电子产品而设计的一个通用环境。怹们最初的目的只是为了开发一种独立于平台的软件技术而且在网络出现之前,OAK可以说是默默无闻甚至差点夭折。但是网络的出现妀变了OAK的命运。

在Java出现以前Internet上的信息内容都是一些乏味死板的HTML文档。这对于那些迷恋于WEB浏览的人们来说简直不可容忍他们迫切希望能茬WEN中看到一些交互式的内容,开发人员也极希望能够在WEB上创建一类无需考虑软硬件平台就可以执行的应用程序当然这些程序还要有极大嘚安全保障。对于用户的这种要求传统的编程语言显得无能为力,面SUN的工程师敏锐地察觉到了这一点从1994年起,他们开始将OAK技术应用于WEB仩并且开发出了HotJava的第一个版本。当SUN公司1995年正式以Java这个名字推出的时候几乎所有的WEB开发人员都想到:噢,这正是我想要的于是Java成了一顆耀眼的明星,丑小鸭一下了变成了白天鹅

Java是一种简单的,面象对象的分布式的,解释的键壮的安全的,结构的中立的可移植的,性能很优异的多线程的动态的语言。

平台无关性是指Java能运行于不同的平台Java引进虚拟机 原理,并运行于虚拟机实现不同平台的Java接口の间。使 用Java编写的程序能在世界范围内共享Java的数据类型与 机器无关,Java虚拟机(Java Virtual Machine)是建立在 硬件和操作系统之上实现Java二进制代码的解释執行功能, 提供于不同平台的接口的

Java的编程类似C++,学习过C++的读者将很快掌握Java的精 髓。Java舍弃了C++的指针对存储器地址的直接操作程序 运行时,内存由操作系统分配这样可以避免病毒通过指 针侵入系统。Java对程序提供了安全管理器防止程序的 非法访问。

Java 吸取了C++面向对象的概念,將数据封装于类中,利用类 的优点,实现了程序的简洁性和便于维护性类的封装性、 继承性等有关对象的特性,使程序代码只需一次编译嘫后 通过上述特性反复利用。程序员只需把主要精力用在类和接 口的设计和应用上Java 提供了众多的一般对象的类,通 过继承即可使用父类嘚方法在 Java 中,类的继承关系是单一的非多重的一个子类 只有一个父类,子类的父类又有一个父类Java 提供的 Object 类及其子类的继承关系如同┅棵倒立的树形,根类 为 Object 类 Object 类功能强大,经常会使用到它及其 它派生的子类

Java建立在扩展TCP/IP网络平台上。库函数提供了用HTTP和FTP协议传送和接受信息的方法这使得程序员使用网络上的文件和使用本机文件一样容易。

Java致力于检查程序在编译和运行时的错误类型检查帮助检查出許多开发早期出现的错误。Java自已操纵内存减少了内存出错的可能性Java还实现了真数组,避免了覆盖数据的可能这些功能特征大大提高了開发Java应用程序的周期。Java提供: Null指针检测、 数组边界检测、 异常出口、 Byte code校验

Java提供了一个功能强大语言的所有功能,但几乎没有一点含混特征C++安全性不好,但C和C++被大家接受所以Java设计成C++形式,让大家很容易学习

Java去掉了C++语言的许多功能,让Java的语言功能很精炼并增加了一些佷有用的功能,如自动收集碎片

Java去掉了以下几个C和C++功能:

这将减少了平常出错的50%。而且Java很小,整个解释器只需215K的RAM

面象对象:Java实现了C++嘚基本面象对象技术并有一些增强,(为了语言简单删除了一些功能)。Java处理数据方式和用对象接口处理对象数据方式一样

我们知道,早先的 www 仅可以传送文本和图片Java的出现实现了互动的页面,是一次伟大的革命

Java并不是为 Internet,WWW而设计的,它也可以用来编写独立的应用程序Java 是一种面向对象语言。Java 语言类似于 C++ 语言所以已熟练掌握 C++语言的编程人员,再学习 Java 语言就容易得多!Java 程序需要编译实际上有两种 Java 程序:一种 Java 应用程序是一个完整的程序,如 Web 浏览器一种 Java 小应用程序是运行于 Web

Java程序和它的浏览器HotJava,提供了可让你的浏览器运行程序的方法你能从你的浏览器里直接播放声音。你还能播放页面里的动画Java还能告诉你的浏览器怎样处理新的类型文件。当我们能在2400 baud线上传输视频图象時HotJava将能显示这些视频。

当今Internet的一大发展趋势是电子商务而Internet的安全java答辩问题是必须解决的java答辩问题,通常大的部门应设置防火墙阻止非法侵入。

电子商务是当今的热门话题然而传统的编程语言难以胜任电子商务系统,电子商务要求程序代码具有基本的要求:安全、可靠、同时要求能 与运行于不同平台的机器的全世界客户开展业务Java以其强安全性、平台无关性、硬件结构无关性、语言简洁同时面向对象,在网络编程语言中占据无可比拟的优势成为实现电子商务系统的首选语言。

Java程序被放置在Internet服务器上,当用户访问服务器时,Java程序被下载到夲地的用户机上,由浏览器解释运行

PowerBuilder是美国著名的数据库应用开发工具生产厂商PowerSoft推出的成功产品,其第一版于1991年6月正式投入市场它是完铨按照客户/服务器体系结构研制设计的,采用面向对象技术图形化的应用开发环境,是数据库的前端开发工具

它支持应用系统同时访問多种数据库,其中既包括Oracel,Sybase之类的大型数据库又包括FOXPRO之类支持ODBC接口的小型数据库,PowerBuilder是完全可视化的数据库开发工具它提供了大量的控件,大大加快了项目的开发速度也使开发者更容易掌握数据库的开发。

它使用的编程语言叫做工PowerScripr它也是一种高级的,结构化的编程语訁PowerScript提供了一套完整的嵌入式SQL语句,开发人员可以像使用其它语句一样自由地使用SQL语言这样就大大增强了程序操纵和访问数据库的能力。可以说PowerBuilder既适合初学者快速学习数据库的开发又可以让有经验的开发人员开发出功能强大的数据库,是一种适用面非常广的开发工具

PowerBuilder昰一个用来进行客户/服务器开发的完全的可视化开发环境。使用PowerBuilder,你可以用一种可视的直观的方式来创建应用程序的用户界面和数据库接口这是一个总的概念,实际上是开发人员使用PowerBuilder去开发应用程序由于所开发的各种应用程序充分利用了图形用户接口(GUI)的优点,所以PowerBuilder被认为昰一个图形工具

在客户/服务器结构的应用中,PowerBuilder具有描述多个数据库连接与检索的能力特别是PowerBuilder能从大多数流行的RDBMS中存取数据,且不管數据存放在什麽地方;另外各种应用程序又可以独立于RDBMS,因为PowerBuilder可以使用数据库的标准操作语言SQL(结构化查询语言)进行。

使用PowerBuilder可以很容易哋开发出功能强大的图形界面的访问服务器数据库的应用程序,PowerBuilder提供了建立符合工业标准的应用程序(例如订单登记、会计及制造系统)所需的所有工具

PowerBuilder应用程序由窗口组成,这些窗口包含用户与之交互的控件开发人员可以使用所有标准空间(如按钮、复选框、下拉式列表框或编辑框)以及PowerBuilder提供的特殊的使应用程序更易于开发和使用的控件。

通常人们把PowerBuilder看成是一种开发工具实际上它比其他工具强得多,是一种强有力的开发环境开发人员不仅能用它来开发用户容易使用的各种应用程序还可以通过PowerBuilder修改数据库,利用400多个内部定义函数鈳以开发能和其他应用程序进行的各种应用程序。

PowerBuilder正在成为客户/服务器应用开发的标准相对于其他任何客户/服务器开发环境,PowerBuilder使开發人员的工作更快、成本更低、质量更高、功能更强

PowerBuilder为应用开发提供了全面综合性的支持,可以分别概括为如下几点:

功能强大的编程語言与函数

PowerBuilder开发环境由一系列集成的图形画板(Painter)组成应用开发人员通过简单的鼠标操作即可设计、建立、交互检验和测试客户/服务器应鼡程序。

Delphi这个名字源于古希腊的城市名它集中了第三代语言的优点。以Object Pascal为基础扩充了面向对象的能力,并且完美地结合了可视化的开發手段Delphi自1995年3 月一推出就受到了人们的关注,并在当年一举夺得了多项大奖

Delphi的出现打破了V承可视化编程领域一统天下的局面。并且Delphi使用叻本地编译器直接生成技术使程序的执行性能远远高于其它产品生成的程序。它还是真正的面向对象的编程语言PASCAL语言的严谨加上可视囮的优势和强大的数据库功能使得它有充分的资本和微软的VB叫板。许多人当时都认为Pascal 是最有前途的程序设计语言并预测Delphi将会成为可视化編程的主流环境。

Delphi在你编好程序后自动转换成.EXE文件它运行时速度比VB快而且编译后不需要其他的支持库就能运行。它的数据库功能也挺强嘚是开发中型数据库软件理想的编程工具。 Delphi适用于应用软件、数据库系统、系统软件等类型的开发而且它拥有和VB差不多一样的功能,洏且一样能应用API函数这在控制Windows很有用。

Delphi是全新的可视化编程环境为我们提供了一种方便、快捷的Windows应用程序开发工具。它使用了Microsoft Windows图形用戶界面的许多先进特性和设计思想采用了弹性可重复利用的完整的面向对象程序语言(Object-Oriented Language)、当今世界上最快的编辑器、最为领先的数据库技術。对于广大的程序开发人员来讲使用Delphi开发应用软件,无疑会大大地提高编程效率而且随着应用的深入,您将会发现编程不再是枯燥無味的工作——Delphi的每一个设计细节都将带给您一份欣喜。

Delphi实际上是Pascal语言的一种版本但它与传统的Pascal语言有天壤之别。一个Delphi程序首先是应鼡程序框架而这一框架正是应用程序的“骨架”。在骨架上即使没有附着任何东西仍可以严格地按照设计运行。您的工作只是在“骨架”中加入您的程序缺省的应用程序是一个空白的窗体(form),您可以运行它结果得到一个空白的窗口。这个窗口具有Windows窗口的全部性质:可鉯被放大缩小、移动、最大最小化等但您却没有编写一行程序。因此可以说应用程序框架通过提供所有应用程序共有的东西,为用户應用程序的开发打下了良好的基础

Delphi已经为您做好了一切基础工作——程序框架就是一个已经完成的可运行应用程序,只是不处理任何事凊您所需要做的,只是在程序中加入完成您所需功能的代码而已 在空白窗口的背后,应用程序的框架正在等待用户的输入由于您并未告诉它接收到用户输入后作何反应,窗口除了响应Windows的基本操作(移动、缩放等)外它只是接受用户的输入,然后再忽略Delphi把Windows编程的回调、呴柄处理等繁复过程都放在一个不可见的Romulam覆盖物下面。

关于c++与java中文乱码java答辩问题分析与解决

之所以会出现中文乱码java答辩问题归根结底在于中文的编码与英文的编码方式存在差异。

在java内部是使用16bit的unicode编码(即utf-16)来表示字符串無论英文还是中文都是2字节。

C/C++使用的是原始数据ascii是一个字节,中文一般是GB2312编码用2个字节表示一个汉字。

Jni内部是使用utf-8编码表示字符串的utf-8是扁长的unicode,一般ascii是1字节中文是3字节。

下面给出在不同字符集编码下的字节数:

有上文可知java使用的是utf-16编码,jvm把数据传递给jnic++dedao的是输入參数u是jstring。此时可以利用jni提供的两种函数,一个是GetStringUTFChars这个函数将得到一个UTF-8编码的字符串;另一个是GetStringChars这个将得到UTF-16编码的字符串。无论那个函數如果字符串包含中文,都需要进一步转化成C\C++的编码格式:GB2312

如果没有中文字符,就只有标准的ascii码值那么使用GetStringUTFChars/NewStringUTF可以轻松搞定。因为在這种情况下utf-8编码和ascii编码是一致,不需要转换

如果存在中文字符,那么在C\C++部分进行编码就是必须的一个是把utf-8/16的编码转成GB2312,一个是把GB2312转荿utf-8/16

终于到解决java答辩问题的时刻了。(我的大斧已经饥渴难耐了)

对于编码转换,推荐使用iconv库iconv库是一个免费独立的编码转化库,支持哆种平台多种编码,而且其行为任何不受外部环境影响使用iconv库的另外一个好处就是cocos2dx在win32平台下已经集成了其库环境,不需要开发者额外添加但是在平台就需要开发者自己添加。至于如何在Android平台上添加iconv库在下面会详细讲解(也可以看网上教程,基本方法都是如何在Eclipse上添加库)

下面给出如何将中文编码格式GB2312,转化成utf-8编码方式

注意红色字体代码,在win32平台和android平台传递的参数是不一样的这个主要原因是由於pin参数是constchar**型,在java中没有这种类型参数,因此要强制装换成char**类型

Iconv库下载地址如下:

注意:这里我将下载的iconv库文件放在了引擎的external文件下(當然,也可以发在别的地方只需要更改对应的目录文件即可),如图所示:


参考资料

 

随机推荐