




已阅读5页,还剩37页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
SPOTOJAVABOOTCAMPversion2.0,SCJP+第五章:基本数据类型与字符串,目录,Java基本数据类型各种整型数据类型的转换Java8种封装类自动装包/拆包(Autoboxing/unboxing)JDK1.4中,必须手动进行转换Java引用类型不可变的(immutable)字串,Java基本数据类型,数据类型,基本数据类型,引用数据类型,数值型,字符型(char),布尔型(boolean),整数类型(byte,short,int,long),浮点类型(float,double),类(class),接口(interface),数组,常量和所有原始数据类型的范围,Java基本数据类型,布尔类型boolean类型适于逻辑运算,一般用于程序流程控制boolean类型数据只允许取值true或false,不可以0或非0的整数替代true和false。用法举例:booleanb=false;if(b)/dosomething,Java基本数据类型,字符型char型数据用来表示通常意义上“字符”字符常量是用单引号括起来的单个字符charc=A;Java字符采用Unicode编码,每个字符占两个字节,因而可用十六进制编码形式表示(前缀为u表示Unicode)charc1=u0061;/aJava语言中还允许使用转义字符来将其后的字符转变为其它的含义charc2=n;/代表换行符,Java基本数据类型,classTemppublicstaticvoidmain(Stringargs)charx=国;System.out.println(x);该程序正确编译,运行后输出国,Java基本数据类型,特殊字符,Java基本数据类型,Java各整数类型有固定的表数范围和字段长度,而不受具体操作系统的影响,以保证Java程序的可移植性。,Java基本数据类型,整数类型Java语言整型常量的三种表示形式:十进制整数,如12,-314,0。八进制整数,要求以0开头,如012十六进制数,要求0 x或0X开头,如0 x12Java语言的整型常量默认为int型,如:inti=3;声明long型常量可以后加l或L,如:longl=3L;,Java基本数据类型,浮点型Java浮点类型有固定的表数范围和字段长度。和整数类型一样,在java中,符点类型的范围与机器无关。,Java基本数据类型,Java浮点类型常量有两种表示形式十进制数形式,必须含有小数点,例如:3.14314.0.314科学记数法形式,如3.14e23.14E2314E2Java浮点型常量默认为double型,如要声明一个常量为float型,则需在数字后面加f或F,如:doubled=3.14;floatf=3.14f;,Java基本数据类型,各种整型数据类型的转换,通常,我们需要在不同的数据类型之间进行转换。简单类型除了boolean类型以外,其他的数据类型可以自动转换成其他的数据类型,只要遵循如下图所示的原则:,Java8种封装类,例如:int数据类型的封装类Integer。classCmdArgpublicstaticvoidmain(Stringargs)intsum=0;for(intcut=0;cut“just”重新指向后str-“justin”引用新的字串对象,不可变的(immutable)字串,在Java中,使用=將一个字串对象指定给一个名称,其意义为改变名称的引用对象,原来的字串对象若沒有其它对象来引用它,就会在适当的时机被Java的垃圾回收(Garbagecollection)机制回收,在Java中,程式设计人员通常不用关心无用对象的资源释放问题,Java会检查对象是否不再被引用,如果沒有任何名称引用的对象将会被回收。如果在程式中使用下面的方式来申明,则实际上是指向同一个字串对象:Stringstr1=flyweight;Stringstr2=flyweight;System.out.println(str1=str2);/trueorfalse?,不可变的(immutable)字串,以上程式的执行结果会显示true,在Java中,会维护一个StringPool,对于一些可以共享的字串对象,会先在StringPool中查找是否存在相同的String內容(字符相同),如果有就直接传回,而不是直接创造一个新的String对象,以減少内存的占用。,不可变的(immutable)字串,再来看个例子,String的intern()方法,来看看它的API说明:,不可变的(immutable)字串,以上这段话其实说明了Flyweight模式的运行方式,来用个实例来说明会更清楚:Stringstr1=fly;Stringstr2=weight;Stringstr3=flyweight;Stringstr4;str4=str1+str2;/fly“+weightSystem.out.println(str3=str4);/trueorfalse?str4=(str1+str2).intern();System.out.println(str3=str4);/trueorfalse?,不可变的(immutable)字串,在程式中第一次比较str3与str4对象是否为同一对象时,结果是false;而intern()方法会先检查StringPool中是否存在字符部份相同的字串对象,如果有的话就传回,由于程式中之前已经有“flyweight”字串对象,intern()在StringPool中发现了它,所以直接传回,这时再进行比较,str3与str4所指向的其实是同一对象,所以结果会是true。,不可变的(immutable)字串,=运算符在Java中被用来比较两个名称是否引用至同一对象,所以不可以用=来比较两个字串的內容是否相同,例如:Stringstr1=newString(“bcterry);Stringstr2=newString(“bcterry);System.out.println(str1=str2);上面会显示false的结果,因为str1与str2是分別引用至不同的字串对象,如果要比较两个(字串)对象是否相同,要使用equals()方法,例如:Stringstr1=newString(“bcterry);Stringstr2=newString(bcterry);System.out.println(str1.equals(str2);这样结果才会显示所想要的比较结果:true,思考,总结”=“和”equals()”的区别?重写equals()?,SCJP试题分析,QUESTION58Given:publicclassReturnItreturnTypemethodA(bytex,doubley)return(long)x/y*2;WhatisthenarrowestvalidreturnTypeformethodAinline2?A.intB.byteC.longD.shortE.floatF.double,SCJP试题分析,13.publicclassPass14.publicstaticvoidmain(Stringargs)15.intx=5;16.Passp=newPass();17.p.doStuff(x);18.System.out.print(”mainx=“+x);19.20.21.voiddoStuff(intx)22.System.out.print(”doStuffx=“+x+);23.24.Whatistheresult?A.Compilationfails.B.Anexceptionisthrownatruntime.C.doStuffx=6mainx=6D.doStuffx=5mainx=5E.doStuffx=5mainx=6F.doStuffx=6mainx=5,SCJP试题分析,publicclassApublicstaticvoidmain(Stringargs)/insertcodehereSystem.out.println(s);Whichtwocodefragments,insertedindependentlyatline3,generatetheoutput4247?(choosetwo)A.Strings=123456789s=(s-123).replace(1,3,24)-89;B.StringBuffers=newStringBuffer(123456789);s.delete(0,3).replace(1,3,24).delete(4,6);C.StringBuffers=newStringBuffer(123456789);s.subString(3,6).delete(1,3).insert(1,24);D.StringBuffers=newStringBuffer(123456789);s.subString(3,6).delete(1,2).insert(1,24);E.StringBuffers=newStringBuffer(123456789);s.delete(0,3).replace(1,3,).delete(2,5).insert(1,24);,SCJP试题分析,packagespoto;classTestpublicStringname=spoto;Whatcandirectlyaccessandchangethevalueofthevariablename?A.anyclassB.onlytheTestclassC.anyclassintheTestpackageD.anyclassthatextendsTest,SCJP试题分析,publicclassTestpublicstaticvoidmain(Stringargs)for(intx=1;xargs.length;x+)System.out.print(argsx+);andthecommandlineinvocationjavaTestabcwhatistheresult?A.abB.bcC.abcD.CompilationfailsE.Anexceptionisthrownatruntime,Given:11.publicclassYikes12.13.publicstaticvoidgo(Longn)System.out.println(”Long“);14.publicstaticvoidgo(Shortn)System.out.println(”Short“);15.publicstaticvoidgo(intn)System.out.println(”int“);16.publicstaticvoidmain(Stringargs)17.shorty=6;18.longz=7;19.go(y);20.go(z);21.22.Whatistheresult?A.intLongB.ShortLongC.Compilationfails.D.Anexceptionisthrownatruntime.,SCJP试题分析,SCJP试题分析,Given:12.publicclassWow13.publicstaticvoidgo(shortn)System.out.println(”short”);14.publicstaticvoidgo(Shortn)System.out.println(”S
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 危急值报告制度与流程考试题(附答案)
- 2024年安全员之A证考试题库带答案2
- 2024年上半年事业单位联考A类综合应用能力真题及答案
- 煤矿专业通风毕业论文
- 感恩教育演讲稿五-多篇
- 2025年企业人力资源管理师三级专业技能考试真题与答案
- 2025年危险化学品安全重氮化工艺作业模拟考试题库试卷(含答案)
- 油画系本科毕业论文大纲
- 电焊毕业论文
- 2025年六年级学科复习计划交流研讨会议记录
- 产房分娩安全管理制度
- 食堂从业人员健康管理制度
- 普通化学无机化合物
- Q-GDW10166.1-2025 输变电工程初步设计内容深度规定第1部分:110(66)kV架空输电线路
- JG/T 503-2016承插型盘扣式钢管支架构件
- 2025年福建省无人驾驶航空器操作控制职业技能大赛(航拍无人机驾驶员)试题(附答案)
- 落户防离职协议书
- 职称评审委托合同协议
- T/SFABA 5-2024食品配料天然度检测
- 铁路团体车票协议书
- 2025年中国高考评价体系深度分析解读课件
评论
0/150
提交评论