JAVA编程:有用技能 Java范例转换与强迫范例转换
java也能做一些底层语言开发做的事情(难度很高,不是java顶尖高手是做不来的),技能|转换<Pstyle="TEXT-INDENT:2em">假如你之前有编程履历,那末你已晓得把一品种型的值赋给别的范例的一个变量是相称罕见的。假如这2品种型是兼容的,那末Java将主动地举行转换。比方,把int范例的值赋给long范例的变量,老是可行的。但是,不是一切的范例都是兼容的,因而,不是一切的范例转换都是能够隐式完成的。比方,未将double型转换为byte型的界说。幸亏,取得不兼容的范例之间的转换仍旧是大概的。要到达这个目标,你必需利用一个强迫范例转换,它能完成两个不兼容的范例之间的显式变更。让我们看看主动范例转换和强迫范例转换。<Pstyle="TEXT-INDENT:2em">3.9.1Java的主动转换<Pstyle="TEXT-INDENT:2em">假如以下2个前提都能满意,那末将一品种型的数据赋给别的一品种型变量时,将实行主动范例转换(automatictypeconversion):<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">・这2品种型是兼容的。<Pstyle="TEXT-INDENT:2em">・<Pstyle="TEXT-INDENT:2em">目标范例数的局限比来历范例的年夜。<Pstyle="TEXT-INDENT:2em">当以上2个前提都满意时,拓宽转换(wideningconversion)产生。比方,int型的局限比一切byte型的正当局限年夜,因而不请求显式强迫范例转换语句。<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">关于拓宽转换,数字范例,包含整数(integer)和浮点(floating-point)范例都是相互兼容的,可是,数字范例和字符范例(char)或布尔范例(bollean)是不兼容的。字符范例(char)和布尔范例(bollean)也是相互不兼容的。<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">3.9.2不兼容范例的强迫转换<Pstyle="TEXT-INDENT:2em">只管主动范例转换是很有匡助的,但其实不能满意一切的编程必要。比方,假如你必要将int型的值赋给一个byte型的变量,你将怎样办?这类转换不会主动举行,由于byte型的变更局限比int型的要小。这类转换偶然称为“减少转换”(),由于你一定要将源数据范例的值变小才干合适方针数据范例。<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">为了完成两种不兼容范例之间的转换,你就必需举行强迫范例转换。所谓强迫范例转换只不外是一种显式的范例变更。它的通用格局以下:<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">(target-type)value<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">个中,方针范例(target-type)指定了要将指定值转换成的范例。比方,上面的程序段将int型强迫转换成byte型。假如整数的值超越了byte型的取值局限,它的值将会由于对byte型值域取模(整数除以byte失掉的余数)而削减。<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">inta;byteb;//...b=(byte)a;<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">当把浮点值赋给整数范例时一种分歧的范例转换产生了:截断(truncation)。你晓得整数没有小数部分。如许,当把浮点值赋给整数范例时,它的小数部分会被舍往。比方,假如将值1.23赋给一个整数,其了局值只是1,0.23被抛弃了。固然,假如浮点值太年夜而不克不及合适方针整数范例,那末它的值将会由于对方针范例值域取模而削减。<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">上面的程序申明了强迫范例转换:<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">//Demonstratecasts.classConversion{publicstaticvoidmain(Stringargs[]){byteb;inti=257;doubled=323.142;System.out.println("Conversionofinttobyte.");b=(byte)i;System.out.println("iandb"+i+""+b);System.out.println("Conversionofdoubletoint.");i=(int)d;System.out.println("dandi"+d+""+i);System.out.println("Conversionofdoubletobyte.");b=(byte)d;System.out.println("dandb"+d+""+b);}}<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">该程序的输入以下:<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">Conversionofinttobyte.iandb2571Conversionofdoubletoint.dandi323.142323Conversionofdoubletobyte.dandb323.14267<Pstyle="TEXT-INDENT:2em">让我们看看每个范例转换。当值257被强迫转换为byte变量时,其了局是257除以256(256是byte范例的变更局限)的余数1。当把变量d转换为int型,它的小数部分被舍弃了。当把变量d转换为byte型,它的小数部分被舍弃了,并且它的值削减为256的模,即67。windows系统样,他们做了什么事或者留了一些后门程序,谁都不知道,二,java开发是跨平台,任何系统上都可以运行,对于保密型系统和大型系统开发这是必要的 如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。 象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。 J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。 多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。 你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢? 接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。 象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。 Java 编程语言的风格十分接近C、C++语言。 所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。 是一种使用者不需花费很多时间学习的语言 如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
页:
[1]