JAVA面试基础知识点总结.docx
1.Java程序设计概述1. 开发JaVa语言的公司?Sun(SunMicrosyMeins)太即微电子公司开发,被Oracle公司收购2. JaVa的3个版本?J2SE(Java2StandardEdition)标准版J2EE(Java2PIatformaEnterpriseEdition)企业版J2ME(Java2MicroEdition)做小版在.5.0以后新版本中f农作:JavaSEJavaEEJavaME3. Java请吉的几个主要特点?平台无关性:使运行于不同的平台上安全性:去掉/指针操作.内存由操作系统分配面向对象:利用类使程序更加利于维护分布式:可以使用网络文件和使用本机文件样容易健壮性:检杳程序编译和运行的错误4. JaVa的三大核心机制虚拟机机制:利用虚拟机解择字节码执行java稗序实现虚平台垃圾收柒机:W:自动内存回收代码安全性机制:加我代码后校验代码后再执行代码2. Java语言的开发环境1. JDK是什么?JDK(JavaDcvclopnicntKitUava开发1:具包包括JRE.跄开发Java的人员必备的开发运行Java程序的工具.2. JRE是什么?JRE(JavaRuntimeEnVironment)Ja”运行环境,运行JAVA程序所必须的环境的集合包含八,M标准实现及Java核心类蚱.3. JVM是什么?JVM(JavaVirtualMachine)Java虚拟机,它是一个优构出来的计拓机,是通过在实际的计算机上仿真横拟各种计算机功能来实现的.4. 安装JDK的操作系统问题?必须针将于不同的操作系统卜我安装不同的JDK.例如WindOWSF安装针对于windows的JDK,Iinux下安装针对于IinUX的JDK5. 御要配湿的相关环境变IXnh:用于搜索外就命令,例仙编译程序的javac命令.执行程序的java命令CIUSSPMh:用于搜索类,即CIaSS文件,例如可以在不同的位置执行类文件6. 配网环境变收的方式?有两种:临时配置和持久配SS临时配置:在命令行下用SCI变星名=变盘依.仅在当前命令行窗”有效持久也置:在我的电脑一一属性中配置持久有效7. 可以爆写JaVa程序的常见开发I:具?记事本.EdilPlus.U1.TRAEDIT.Eclipse.Jbuildcr.NctBcaift8. JaVa文件的类型?有两种:扩展名为java的文件:是JaVa源文件,例于漏洋之前的纯文本文件,存铭java源代码。犷展名为class的文件:是JaVa类文件,限于编详之后的二进制文件,存储字节码,9. JaVa的编译运行原理?首先编写ja,a源文件,然后编译成ClasS类文件.然后通过虚拟机解界成机揩码到硬件执行。10. Java是编译型i?5方还是解择型的语言?既不是完全编译型,也不是完全解杼型.足半痂译半解样的.3. Java程序的基本结构1. JaVa语言区分大小写吗?区分,不管是数据还是标识符或者关送字都区分大小写,例如PUbIiC不能写成Public,“abc”不能写成"ABCw,inti不能写成INTI等等。2. main方法是作什么用处的?这是程序的入I方法,是由废拟机自动调用的.3. 语句必家用分号钻束吗?必须的,但是代码块”可以用分号结束,也可以不用分号结束4. JaVa中行几种注择,各自的功能有三种:单行注杵也加在行首只俄注杯-行名行注择”*人注糅多行,但不能嵌套使用文档注糅"*/:用于生成HTM1.形式的文档,甯要配合javadoc命令实现5. JaVa谱吉的数据类S?是强类中还是俄类型?是强类型,意味着禄一个变城都必Jfi明确声明数据类型。6. Java语言中数据类型的划分?有什么区别?分成基本类型和引用类型两大类.葩本类里:为8种.只能存储单一的(ft.不以对象的形式存在引用类型r除/基本类型之外其他的都是引用类型,能弊存tti曳杂数据类型.以对象的形式存在7. 基本类型都外哪8种类里?布尔类型:book;m占I字节字符类型:char占2字节整型:byre占I字节short占2字节ini占4字节long占8字节浮点型:float占4字节doublel1i8字节8,布尔值可不可以用0或者非0数代普?不可以,布尔值只能是true和false,不能使用数字,这和C语言是不一样的9 .巴接后个整数io默认是什么类型的?整型的直接量例如10.100等跃认的数据类型都是int5?10 .如何让个整型的直接IA变成IOng型的?在直接做后面加大写1.后者小写I,例如IO1.11 .整型数据在程序中直接使用可以使用什么进制?10进制.8进制.16进制,但不能使用二进制12 .浮点运匏在JaVa中有没有误差?有误差所以楂雷运算请使用BigDKimaI类13 .更接耳一个3.14的直接业是什么数据类型的?是double型,如果想表示是float的3.14必须写成3.I4F或者3.l4f.double型的3.14也可以写成3.14D14 .char型采取的是什么类型的字符集?是UniaXie全球统编码,支持任轲世界上官方的语言中的字符15 .常见的状义字符有哪些?,b退格M制表,n换行寸回车V双引V总用号Vl反斜杠1.常见的Unicode字符对应的加码?人力的A到Z是对应63到90,小巧的a到Z是时应97到122,字符0到9是对应48到572 .空字符是不是用“(两个并列的单引号)来表示?不是,空字符用"0000,来表示,两个并列的电引号什么也不是,3 .点.分号.花括号的各自的作用?点的作用行两个I一个是使用类或对象中的成员,用对象成员,再一个就是包名和子包名之间的分隔符,例如顶层包名.子包名分号的作用是表示语句结束花括号的作用是代表一个语句块4 .iff句和关键字之间可以有任意的空白吗?可以的,例如SystenkOU/.PrimIn(IO0);就是正确的语句,但是关键字本身不能加空白或换行5 .标识符是什么?标识符就是指在程序中给包.类,接口方法.变fit起的名字6 .标识符行什么起名规则?1 .应以字Rh下划线、美元符开头2 .后跟字母、下划线、美元符或数字3 .不能用关键字和保帝字4 .严格区分大小写5 .名称长便没仃限制7 .中文的变景名可以吗?是可以的,例如int数字=10:这个语句是正确的.因为java中采取Unicode字符集.所以任何的Unkode中的字符都可以作为标识符的名称,但考虑字符集的支持问题推存还是使用英文字母命8 .关穗字和保留字有区别吗?在15后没有区别,都被称作关键字,但是1.5之前认为关键字是在JaVa中有特侏用途的不允泞编程人员怕自改作其他用途,而保留字是在Java中没有"特殊用途但不允许很程人员接门改作其他用途.按此说法goto和const应该是此意义上的保留字.9 .true,false,null可以用作标识符命名吗?不可以,这3个虽然不是关键字,但都是仃特殊用途的值,也不能作为标识符命名10 .一条声明语句可以声明多个变员叫?可以的.例如以下声明那是正确的inti:inii.j;inti=IOjin【i,j二10;1 .变他在没由H值的情况下可以使用吗?不可以,变域没有赋值使用金报出变彼未初始化的编iWi,2 .常量有什么特点?在声明变fit的时候加上final怪饰符即为常知,表示这个变星只能被取一次位.3,飘数运完符有哪些?荔木算数运算符有+*/%+4 .单目运算符,次目运算符,三目运算符都是什么意则?其实也有叫一元运算符,双元操作符,三元操作符的指的是书几个操作数形成一个完整衣达式,例如+就是个取目运算符,只需要个操作数就可以形成表达式,像i+,而+运就符就是双目运算符,需要两个操作故形成表达式,例如5+3,还有三目运尊符.M15>370:-15 .+和放在面面和放在后面有什么区别?如果是在个表达式中,那+放后面去示先达北表达式,然后再进行自埔运尊,如果在一个表达式中,T放的面,则表示先进行自增运尊然后在运算表达式,同样道理,例如:inti=10:intj=i+;先进行赋值运算然后再进行自增运算j的结果是10inti=10:intj=+i;先进行自增运免然后再进行赋值运算j的结果是111.5%2等于几,5%2等于几?5%2等于l.5%2等于I,运算得到是正数还是例数取决于第个操作数的符号2.5/2结果是不是2.5?不是,是2,因为S和2都是ini类里,所以不可能得到doubleM的结果。3 .比较运算符有啷些?有>V>=<=!=六项基本比较运算4,任何数据类型都可以使用>V>=V=居心符吗?不是所有数据类型,例如lrue>fase这个表达式就是编课悟误,布尔类梨和引用类型的太达式只能用=和!=两个比较运算,例如“abc-,v="x”T这个比达式也是编译错误的5 .方>”这个表达式编译正确吗?能详正确.和'b'是字符类型,内制用UniCCde编码衣示的话a是97,b是98,所以实际上比较的是97>98,结果为false6 .逻辑运算符有哪些?有&逻辑与,画轿或.!Ol,汴或,&&短路与,Il短路或7 .逻辑与,道林或和短路与.短路或有什么区别?逻辑与和短路。的区别是: 如果是龙辑与&,不管第一个表达式爱IrUC还是间sc,都会执行第二个表达式.例如a>b&xvy,即使a>b为fake,也会执行x>y 如果是短路与&&,如果第一个表达式为false,将不会执行第:个表达式例如a>b&&xvy,如果:>b为fake.就不会执行x>y以此类推,逻辑或和短路或的区别是: 如果是逻辑或I,不管第一个表达式是Iiue还是false.都会执行第二个表达式 如果是短路或,如果第个表达式为true,将不会执行第二个表达式1. 与或非三个逻辑运算符的优先破是怎么H列的?“北”优先级故岛”与“其次."或"优先级域低2,原码,反码,补码分别是什么意思? 原码:将数字转换为二进制,第一位为符号位,正数为0,负数为1例如:12的原码是00001100-12的原码是10001100 反码:正数的反码和原码相同,负数的反码将原码符号位之外的位逐位取反例如:12的反码是OOOoIlOo-12的反码是IlI100ll 补码:正数的补码和原码相同,负数的补码将反码加1例如:12的补码是OoOoUOo-12的补码是11110100最后强调一点,计算:机存储数据用补码形式来存储“1.位运匏符部布哪些?&与I或A异或作右移VV左移>»无符号右移2. v<3S怎么理解?I是im类型是32位,所以需要把35%32=3,所以事实上是和执行I«3等价的3. 数据类型转换阕要避的什么原则?小类型向大类里找换,是自动转换的.或者说睨式转换的人类型向小类里转换,是需要强制转换的,或者说H式,专换例如:byteb=I;shorts=b:自动转换b=(byte)s:强制转换4. byteb=10这个谱句是正薪的,为什么IO是in(型比byte大还不需要强制转换呢?因为在java中做了特殊处理,其中规定byie,6n,Char类也可以直接被Pim类型的口接量.例如:byeb=10;shorts=10:chare=10:以上赋(ft语句都是正确的.但是不能超出超出类型的范围,例如以下厥值就足忸误的:byteb=128:如果超出范用.必豕得推强制转决例加以下语句是正确的:byteb=(byte)128;需要强调的是.必缜是int类型的直接量,以下语句就是错派的Ibyeb=IO1.;IO1.不是im类型的克接Iit.5. bytcb=(byic)300:强制转换后的结果是44.是按照什么规律得出来的?是先把300转换成二进制.然后根据byte类型的大小截收广后8个位300的补码是OoOoOOoO000000000000000100101100b的结果是:00GoO(KK)0090(WoO-OOOOOOOt00101100结果为441.byIeb=(bye)true;这个转换成立吗?不成立.布尔Ift和数字是不赖咨的.不能作任何转换.2 .inti=(in。“100”;这个转换成立叫?不成立,引用类型和里本类型是不能直接强制转换的,需要用包装类的方法来转换,3 .Char型和short型哪个比较大?不能说哪个大哪个小.这两个类型Char的取值是从0-65535.而ShOrt类型的取位及-32768-32767,这个两个类卵之间的转换都需要强制转换.4 .字符串是不是基本类型?不是.StringJgjavaJang包中的一个类,是引用类型的,8种一本类型中没村一个是String类型.5 .空字符;|;用什么来表示?用2(两个并列的双引号)表示,代表O个长度的字符中对象。6 .Strings-和Strings=null;有什么区别?第个表示S被赋tft.指向了一个字符中对飘.第二个表示S没有指向任何对望实例.是在空7 .两个字符串用什么运匏符可以连成一个字符中?用+运算符,例如ab<+/力后的结果就是“abcxyz"8 .数学运显符加法和字符串连接符都是+,怎么区分?是通过运算符两边的操作数来判断的.如果两边的悚作基都是数字里的基本类型,则进行教学运修,如果两边的操作数有一个是字符串,则把另一个操作数也技换为则进行字符小连接运算.例如I5+4的结果是9*5"+4的结果是549 .判断字符串内容相同用什么方法?用equals方法判断内容相同.=只能判断引用是否相同10 .提供用户输入使用哪个类H1javav.util.Suinner类11 .if语句可以用if(-i)形式判断叫?不可以,数字不能代许布尔值12 .if语句和循环语句的花括号什么时候可以省略?当执行的语句只有句的时候13 .SWitCh语句行哪些规则?表达式CXPr的返回值必须是下述几种类型之一rint.byte.char.short或枚举常址:case子句中的值必须是常址,且所有CaSc子句中的值应是不同的,也会很是下述几种类型之Iin1.byte.char.Short或枚举常fitdefault-f旬是住选的:break语句用来在执行完个Case分支后使程序跳出switch语句块:14 .时于退出循环break和continue有什么区别?break是退出整个循环CominUC是退出当解循环继续下一次循环15 .再明数批创建数组的方法?以下声明都是合法的:i11Ua:inta(:StringIa;以下创建数级对象都是合法的:inia=newi3;inta=(1.2,3);inlIa=newint(11.2.3);1.1 1训”和31昨)5达幅个数组对象,啸个是基本类型,哪个是引用类型?两个都是数加对象,都是引用类型的17 .数Jfl元索下标最小是多少,大是多少,超出范围会怎么惮?用小是0,奴大是数组元素个数减一,超出数围将会出现下标越界异常18 .得到数到长度用IengthJR性还是length()方法?是lengthWfh得到字符串长度才有Iengih方法19 .声明inta=wint网1,a是一个二维数组.邸。本身是什么类型的?二维数组的元素都是一维数组,N3是in"类型的20 .数出的大小一经创建可不可以改变大小了?不可以,数也是定长的,经创建就不能再改变大小了21 .可以把2个皿型,3个double型.4个Strin£型的值放到一个数组中吗?不可以.数组的元索类型必须是相同类蒙的.22 .java中的多维数加必须是要形成矩阵排列吗?不定,也可以是不规则ff.23 .悌作数组比较方便的实用类?java.uul.Arrays类提供门艮多关于教组的次用方法.1.对象和类1 .OOP是什么萩思?ObjectOrientedPrograrnming(面向对象编程)2 .美和对St的区别?类I对象的旅图,生成对象的模叔,是对一类事物的描述,是抽望的概念上的定义而象:对象是实际存在的该类事物的好个个体.因而也称为实例3 .类之间的3种关系?依载关系uses-a)聚集关系has-a)雄承关系is-a)4 .一个java源文件可以写多个类吗?可以,但必家只能忏一个公有类,并且文件Z和公有类的类幺相同。5 .类中有哪些成员?布.双性(数据域),方法,构造器(构造方法)6 .构造方法和普通方法的区别?构造方法没ff返网位,方法名必须和类名相同.需要用new语句谓用构造方法.7 .普诩方法可不可以也类名作为方法名?是可以的,因为调用普通方法的语法和调用构造器的语法不一样.8 .个构造器调用另外个构造器需要用什么语法?用this(语法调用另外个电敦构造器.药要注意的是啊用语句必须是构造落中的第一句9 .什么时候虚拟机会自动添加一个默认构造辉?当类中没有肢式定义任何构造牌的时候,虚拟机会自动添加一个无卷的构造得10 .宾例成员和静态成员的区别?实例成份:是闽干对象实例的,用对象.成员名称语法试用静态成员:和对取实例无关星期于类本身的,用类名.成员名称语法调用11 .静态初始化块StalCiI的执行时机是什么时候?在类被加我的时候,仅执行一次.12 .卷态方法可不可以直接试用同个类中的非峥态方法?不可以静态方法不能直接调用一个非静态成员,需要用对象调用.13 .包是什么?包实际上就是物理上的文件夹,可以把类放到不同的包中,M.把个类放到包中,需要在类中加上什么语句?常要加上包声明packageiS句,必须写在源文件的第一句.15 .什么时候需要导入炎?用什么语句?当使用的炎和当前炎并不在同个包中的时候,用impo”语句导入16 .繁认包中的类可以导入叫?不可以,不在蚊认包中的类Ai法使用默认包中的类。17 .java中哪个包中的类是自动导入的?java,lang包18 .什么叫做完整类名?顶层包名.子包名.类名19 .峥态导入语句有什么作用?在使用类中的静态成员的时候前面不需要加类名前缀.20.局部变幻和全局全!的区别?区别局陆变M全局变M声明他置方法成块内部方法外类内AJ访问权瞅修饰W没有访问权限在访问权Iu我认1没有犹认他4默认悔使用形式H按使用对象调用作用域在方法或语句块内部整个类生命周期进入方法或语句块位建退出方法或语句块销毁丽莉对象的创建而创建劭若对象的销殁而1 .赋(ft语句t给目标的是值还是引用?如果是基本类型则贼的是值本身,引用类型则赋的是引用地址1.继承和多态1 .类的维承是Ht继承处?是子类继承了父类,子类也称为派生类,父类也称为超类或荔类2 .子类继承了父类的什么东西?子类可以继承父类的数抠域(期性,方法.但构造器不能继承3 .私忏成员能被子类维承吗?能继承,但是由于访问权限的控制,在子类中不能白接使用父类的私有成员4 .Objea是什么类?这个所忏类的根类,任何类如果没有写显式的继承诺句,我认都是直接维承Objeci类的5 .java中是单继承还是多继承?是单维承,一个子类只能行一个父类6 .访问权限依的符有几种,访问的范国乂是多大?有四种:private:私用只能在被关中被访问defa<l:默认只能被同一个包中的类访问protected:受保护的只能被同个包中的类和不I可包中的子类访问public:公有可以被任何突访问7 .植靛方法的现则有哪些?子类覆盅方法和父类被斯盖方法的方法返回类型.方法名称,参数列表必须相同子类粮盅方法的访问权限必须大于等于父类的方法的访问权限方法粮盅只能存在于子类和父类之间不类覆盖方法不能比父类被撇盖方法樵出更多年常8 .参数列表是否相同从哪几方面行?从三方面看:参数个数.类中和版序段要注意的是参数的名字不相同是无所调的9 .梗说方法的规则有哪些?方法名相同方法的参数类型.个数.取序至少有一项不同方法的返回类型和修饰符均不受限;M10 .可变长参数的声明格式是什么?实际上是什么类型的?类堂.变盘,实际上是一个一堆数组11 .this和super是作什么用处的?this:本身代表当前的对象引用,可以用his成员名称调用当前对象的械性和方法.如果属性和发部变量血名,可以用Ihi$.属性名和炀部变盘区分开,也可以用thisO语法调用本类重栽构造寄>sper:本力是一个特殊关键字,可以用super.成员名称调用从父类继承的属性和方法.也可以用SUPCr()语法谑用父类构造器.12 .Miper代表子类中的父类对敦W用吗?不,这个错误的说法,super不代衣任何对象引用,仅仅是个关键字13 .什么时候子类构造器会自动调用父类无参构造器?当子类构造器中没行任何显式构造涔调用的时候,即既没有this。调用也没有super<)谓用的时候14 .个父类类型的引用变量可以引用一个子类的实例叫?可以,这个引用交班是一个多态对望15 .多态而型有什么特点?多态对量只能使用父类的成员,但如果多态对望使用了被子类覆或的方法则会动态纨定使用子类的成员,称为虚拟方法调用16 .引用类型之间的类型转换需要遵循哪些规则?自动转换:从子类到父类的类型可以门动转换强制转换:从父类到子类的类型要强制转换无继承关系的类型料换是作法的17 .Inslanccof操作符是作什么用处的?可以判断个对象的类型是否是某个类的类型或户类,也Ur以判断这个对象的类型是否是一个接口的实现类18 .IoSiring方法什么时候会自动被调用?在打印语句中传入引用类型的对象或M对弦和字符串作连接时19 .武认的equals方法实现的是比较内容汪是比较引用地址?在ObJeU中是比较引用地Ji.20 .相施equals方法和hashCcde方法有什么规则?必须保证当两个对象CqUalS比较为true的时候,返回的ha6Codc相同.当比较为fake的时候,返同的hashCode不同21 .java中有几个包袋类?Ij8个包装类,正好对应8种域本数据类型.2 .分别是IBlcanByteShortInteger1.ongCharacterFloatDouble3 .1. 装箱和拆箱分别是什么意思?袋箱指的是把基本类型包装成包装类的引用类型拆箱指的是把包装类形式的引用类里朴换为基本类里WOjiiIntegerobjlnt=newIntcgcnt103,装箱inti=ObjIn1.intValucO:拆箱2. JDK1.4和1.5的装箱和拆箱有什么区别?自动拆装箱,例如:Integerintobj-10;门动装箱inti=inbj+5%自动拆箱3. final修饰符如何使用,使用/tinal修饰符句什么特点?final修饰符可以传饰类,方法,变Iitfinal类为过终类,不能被子类继承final方法为蚁终方法,不能被子类HfifiCnal变Ia为常fit,只能赋一次值4. abstract修饰符如何使用,使用/abstract愦饰符住什么特点?abstract脩符ll以脩饰类和方法abs<rac类为抽软炎,是不能创建对象的abs<ract方法为抽象方法,只有方法的声明,没有具体的实现衡要注意的是:行抽象方法的类一定是抽象类抽象类不一定的抽象方法抽象类也百构造器,但不能创建对象实例5. abMras不能和现些修饰符配合使用?不能和private,static,final起使用6. 可以在非抽在方法中调用抽象方法吗?可以,模板方法设计模式就是典里的这种调用4,泛型程序设计1 .泛F的特意是什么?主要特点是类型参数化,后期绑定数据类型2 .泛型支持基本类型吗?不支持只支持引用类Sl3 .果没有传入类里参数.跃认是什么类型?武认是Objat类型4 .泛型方法有什么特点?将泛型参数声明在方法中,调用力.法的时候绑定泛里5 .泛型类声明泛型参数的时候.VrCXtCndSA类型表示什么迤思?表示绑定的类型必须是A类型后者是A类型的子类或实现类5.接口和内部类1 .声明一个接口的关健字是什么?interface关健字2 .接I中的成员行什么特点?数据域必须是(publicstaticfinalt)公ff睁态常M方法必很是(PUbliCabMrUCl修饰)公有抽象没有构造方法3 .接口能创建对象实例叫?不能,接口没行构造腓.不能创建对象4 .接口和类的关系?接口和类之间是实现关系.个类用implements语句实现了某接门,这个类被称为接口的实现类,一个类可以实现多个接口,一个类实现了某接口,必须粗金这个接U中的所以方法,否则这个类必须是个抽象类5 .接口和接口的关系?接口和接门之间是继承关系,个接口用extends继承另外个接口,称为这个接口的子接口一个接口可以继承多个父接口6 .内部类加何定义?一个类声明在另一个类的里面,这个类就被称为内部类,而外面的类被称为外部类7 .内隈类可以分成儿种?实例内部类:声明在方法外边没有WatiC修饰符静态内部类:声明在方法外边有StatiC修饰符局怖内部类:声明在方法里边8 .如何创建实傥内部类的对象大例?需要用外部类的时软来创建例如:classA(classB()加果像创建B类的实例,则必须用以下语句:Aa=newA();A.Bb=a.DevB();1 .如何在实例内部类中访问外储类的成员?在实例内部类中可以蜕接使用外部类的成员,不辐要创建外部类的对象实例,但是如果在内部类中的成员名称屏超KI藏j外部类的成员(即外部类和内部类的成员名相同),则需要用”外部类名.this.成员Ir访问外部类成员1.异常处理1 .异常的对象的根类是哪个类?是Thmwablefi2 .ThrOWabIe类外哪两个分支?分成Error类和EXCePion类两个分支Ermr类表示产版描说ExcelXiM类衣示Ur以花程序中处理的错误3 .EXCCP<ion类仃哪两个分支?分成运行时异常和非运行时异常(已检查异常)运行时异常编律不检衣,在运行时才会发生异常己校吉异常编课时就会作检杳,不处理异常则通不过编译4 .如果在Iry块中发生弁常,那么程序将会跳转到哪?会跳转到Catch语句块5 .CatCh语句可以用父类类型捕次子类异常吗?因为有多态特点,是可以的6 .处理界常代码finally语句会在什么时候执行?finally代码在任何时候都会执行.不管有没有发生异常.7 .如何声明已检查异常,由谁来处理这个异常?用throws语句来声明一个己检育异常,由方法的调用者来处理这个异常8 .如何抛出一个异个?用throw语旬Iti出9 .如何创建一个自定义的异常类?创建一个类,只要让它继承任何一个现有的异常类就可以了10 .粒萩方法刻于弁常有什么要求?粳般方法不能比父类方法抛出更多异常2.反射,代理,标注1,获得一个类51的CIaSS对象f邮几种途径?方法1:对象.gelCla$()方法2:类型名.class方法3:CIassIorNameO2 .反射相关的类型都有哪些?Class代表一个运行时类Field代农一个类的属性Melhod代表一个类的方法ConwUCtc代笔,个类的构造器3 .如何声明一个自定义标注?(V修饰符JinterfaceV标注名返回假方法名称O:返回(ft方法名称O:)例如:public(SinterfaceMyConmieni|intid():Stringinfb():I4 .java有几个内置标注?有3个©Override用于修饰此方法覆曲了父类的方法,而尊重我.DCPrCCatCd一用于修饰已经过时的方法.SUppreSSwarningS用户通知JaVa编译率禁止#定的君k3java常用类1. 字符申String是可变类还是不可变类?是不可变类,一经创建就不能修改其内容了2. 字符:|;的常用方法有哪些?ChilrAl方法;可以返回指定位置的字符substring可以被取子字符串Iengih7;:返问字符申长度indcxf方法:Ifii找子串的快置IaSUnArxOf方法:反向搜索7小的位置rcplaccAU方法:科按字符串SPIiI方法I分解字符:|;to1.owcCasc.toUpperCase方法:字符;I;大小耳我换3. StringBUflr先和String类什什么区别?SlringBUfi"er是"J变类,String是不Ur变类4. StringBuftcr:类和StringBuiIdcr类ff什么区别?SlringBufTer类是线程安全的,StnngBuiIder类是战程不安全的5. Math类主要提供了哪些方法?Math类提供了大量的和数学运算相关的酢态方法6. Set集合和1.E集合共同的父接1.l是什么?Collection集合7. SeI褒合和1.E集合有什么区别?Sei:CWeaiOn的子接1.不记录元素的保存版印,且不允许有重复元素1.iSt:COlICClion的子接口,记录元素的保存顺序.且允许有型复元素8. Anray1.ist和1.inked1.ist仔什么不同?AtTUy1.iM的内都更现是原J内就数组ObjIXw,所以从Wt念上讲它更像数组1.inkM1.iSt的内部实现是基于组连接的记录,所以它更象个槌友结构,所以它们在性能上有很大的差别,Airay1.ist陆机访问比较块.但楠人和IH除元率比较慢1.inkcd1.ist但插入和删除元素比较快,但随机访问比较慢9. 1IashTabIe和II;IShMaP行什么不同?HashTabte是跷程安全的.HashMap是跳程不安全的10. Vector和AiTay1.iSt有什么不RJ?Vector是线程安全的ArTHy1.iSt是战程不安全的4. IO流1 .流分成哪两类?按照单位划分分成字节流和字符流.按输入输出分成输入流和输出流2 .和文件流相关的有那几个类?FikInputStream文件输入字节流11kOutpuS<rean文件输IH字节流FnCRCadCr文件输入字符流FiiCWritCr文件输出字符瓶3 .文件流操作应该用字节流还是字符流?如果是纯文本文件应该用字符流如果是二迸M文件应该用字节流4 .文件操作用哪个类?用jaaio.Filc类5.6. 线程1 .创建一个线程类的两种方式?继承Thread类实现Runnable接口2 .战程体应该放在哪个方法里面?run方法3 .启动新的线程用什么方法?用start方法4 .,个线崔对效能移用start多次后动吗?不可以.一个线程方法只能Stan一次5 .线程有哪几种主要状态?有四种,分别是;新生状态,可运行状态,阻塞状态,死亡状态6 .线程的同步需要用什么方法?旧的方法是用synchronized关犍"7距的方法是用Rccntrain1.txrk类的IoCk和unlock方法