来看java的外型运算符(Cast)
C#是盗用了Java的源代码,仿照开发的,原因是Java是开源的啊,盗了也白盗,还有一点,开发C#语言的团队是就是开发Java语言的团队,是微软重金挖过去的啊“外型”(Cast)的感化是“与一个模子婚配”。在得当的时分,Java会将一种数据范例主动转换成另外一种。比方,假定我们为浮点变量分派一个整数值,盘算时机将int主动转换成float。经由过程外型,我们可明白设置这类范例的转换,大概在一样平常没有大概举行的时分强制它举行。
为举行一次外型,要将括号中但愿的数据范例(包含一切修正符)置于其他任何值的左边。上面是一个例子:
voidcasts(){
inti=200;
longl=(long)i;
longl2=(long)200;
}
正如您看到的那样,既可对一个数值举行外型处置,亦可对一个变量举行外型处置。但在这儿展现的两种情形下,外型均是过剩的,由于编译器在需要的时分会主动举行int值到long值的转换。固然,仍旧能够设置一个外型,提示本人寄望,也使程序更分明。在其他情形下,外型只要在代码编译时才显出主要性。
在C和C++中,外型偶然会让人头痛。在Java里,外型则是一种对照平安的操纵。可是,若举行一种名为“减少转换”(NarrowingConversion)的操纵(也就是说,剧本是能包容更多信息的数据范例,将其转换成容量较小的范例),此时便可能面对信息丧失的伤害。此时,编译器会强制我们举行外型,就好象说:“这多是一件伤害的事变——假如您想让我不顾地做,那末对不起,请明白外型。”而关于“缩小转换”(Wideningconversion),则不用举行明白外型,由于新范例一定能包容本来范例的信息,不会形成任何信息的丧失。
Java同意我们将任何主范例“外型”为其他任何一种主范例,但布尔值(bollean)要除外,后者基本不同意举行任何外型处置。“类”不同意举行外型。为了将一品种转换成另外一种,必需接纳特别的办法(字串是一种特别的情形,本书前面会讲到将对象外型到一个范例“家属”里;比方,“橡树”可外型为“树”;反之亦然。但关于其他外来范例,如“岩石”,则不克不及外型为“树”)。
1.字面值
最入手下手的时分,若在一个程序里拔出“字面值”(Literal),编译器一般能正确晓得要天生甚么样的范例。但在有些时分,关于范例倒是暗昧不清的。若产生这类情形,必需对编译器加以得当的“引导”。办法是用与字面值联系关系的字符情势到场一些分外的信息。上面这段代码向人人展现了这些字符。
//:Literals.java
classLiterals{
charc=0xffff;//maxcharhexvalue
byteb=0x7f;//maxbytehexvalue
shorts=0x7fff;//maxshorthexvalue
inti1=0x2f;//Hexadecimal(lowercase)
inti2=0X2F;//Hexadecimal(uppercase)
inti3=0177;//Octal(leadingzero)
//HexandOctalsoworkwithlong.
longn1=200L;//longsuffix
longn2=200l;//longsuffix
longn3=200;
//!longl6(200);//notallowed
floatf1=1;
floatf2=1F;//floatsuffix
floatf3=1f;//floatsuffix
floatf4=1e-45f;//10tothepower
floatf5=1e+9f;//floatsuffix
doubled1=1d;//doublesuffix
doubled2=1D;//doublesuffix
doubled3=47e47d;//10tothepower
}///:~
十六进制(Base16)——它合用于一切整数数据范例——用一个前置的0x或0X唆使。并在前面跟从接纳年夜写或小写情势的0-9和a-f。若试图将一个变量初始化成超越本身才能的一个值(不管这个值的数值情势怎样),编译器就会向我们呈报一条堕落动静。注重在上述代码中,最年夜的十六进制值只会在char,byte和short身上呈现。若超越这一限定,编译器会将值主动酿成一个int,并告知我们必要对这一次赋值举行“减少外型”。如许一来,我们便可分明获知本人已超载了界限。
八进制(Base8)是用数字中的一个前置0和0-7的数位唆使的。在C,C++大概Java中,对二进制数字没有响应的“字面”暗示办法。
字面值后的跟随字符标记着它的范例。若为年夜写或小写的L,代表long;年夜写或小写的F,代表float;年夜写或小写的D,则代表double。
指数老是接纳一种我们以为很不直不雅的暗号办法:1.39e-47f。在迷信与工程学范畴,“e”代表天然对数的基数,约即是2.718(Java一种更准确的double值接纳Math.E的情势)。它在象“1.39 Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站 是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能 是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言 是一种突破用户端机器环境和CPU 一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从 还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。 你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。 在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。 有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想) 多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。 一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从 至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。 是一种将安全性(Security)列为第一优先考虑的语言 其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。 设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧 Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台 不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。 让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。 一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
页:
[1]
2