您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 商业计划书 > COREJAVA第一阶段笔试题_答案
选用的题目如下:01.数组有没有length()这个方法?String有没有length()这个方法?数组没有length方法数组提供的获得元素个数的方式是通过访问数组的length属性String也就是字符串类型有length()用于返回字符串的字符个数也就是俗话说的字数但是字符数和字节数是不同的intnum=str.getBytes().length-str.length();可以得到一个字符串当中有多少个汉字02.Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?为什么?Overload:方法重载指发生在同一类当中,方法名字相同,参数列表(类型、个数、顺序)不同的两个方法(体现静态多态)Override:方法覆盖发生在有继承关系的两个类之间子类类型当中访问控制权限修饰符不能更严格抛出的异常种类不能更广泛方法重载的时候可以改变返回值的类型returntypemaybedifferent因为方法名字和参数列表一旦确定在一个类当中就可以唯一确认一个方法所以即便方法返回类型不同也能判断出来调用的是哪个方法,因而不会出错03.==与equals有何区别?==是Java当中的运算符用于比较两个引用当中存放的内存地址也就是内存指向是否相同或者说用于判断两个对象是否是同一个对象equals()是Java当中所有类型的父类既Object类当中的一个方法用于任何一个子类类型通过覆盖equals从而给这个类型提供另外一种比较规则(因为java当中没有运算符重载)很多人看到equals就认为是比较内容的方法其实不然在Object类当中equals方法当中也是采用==实现比较04abstractclass和interface有什么区别?抽象类当中可以定义普通的属性可以定义普通的方法(有完整方法体的方法),抽象类依然是Object的子类类型interface从某种意义上应当理解成为更为纯粹的抽象类当时其中只能定义抽象方法和常量接口当中定义的变量默认就是常量接口当中定义的方法默认就是抽象方法接口的概念没有父类换言之接口不是Object类型的子类类型05.接口是否可继承接口?抽象类是否可实现(implements)接口?抽象类是否可继承实体类(concreteclass)?接口可以继承接口而且可以多重继承在继承多个接口的同时子接口等价于两个接口的方法汇总抽象类可以实现接口因为抽象类当中可以有方法的具体实现抽象类可以继承实体类但是如果实体类继承抽象类就必须实现当中所有的抽象方法否则自身也得变为抽象类06.作用域public,private,protected,以及不写时的区别。区别大概分为以下两点a能够修饰什么类方法属性publictruetruetrueprivatefalsetruetrueprotectedfalsetruetrue(default)truetruetrueb作用public公共的谁都可以访问的private私有的只有本类中可见protected受保护的本包内可见包外有继承关系的子类中也可见(default)默认的只有本包内可见07.ArrayList和Vector的区别?ArrayList和Vector都是List接口的实现类或者说都是存放单值而且有序不唯一的集合类型他们的区别主要有两点1.同步特性:ArrayList是线程不安全的或者说多个线程可以同时对其进行访问的可能出现并发错误Vector是线程安全的也就是同一时间只能有一个线程对其进行访问如果没有访问结束其它线程不能访问Collections当中有synchronizedList方法能够将线程不安全的List集合转变为线程安全的2.扩容机制:ArrayList扩容遵从*3/2+1的机制Vector如果未指定扩容增量那么遵从*2的机制如果在构造方法第二个参数中提供了扩容增量那么每次扩容都增加相同的增量08.float型floatf=3.4是否正确?不正确因为java当中默认的浮点类型是double而double64位将64位数据存放在flaot32位空间当中会出错应当写成floatf=3.4F;09.两个对象值相同x.equals(y),但却可有不同的hashcode,这句话对不对?这种情况是官方不允许出现的但是可以通过特殊的编码实现(随机生成hashCode()...?)因为如果x.equals(y)那么代表程序员需要将这两个对象视作同一个对象但是如果他们返回不同的哈希码那么将会导致散列到不同的分组当中从而使HashSet、HashMap、Hashtable等这样的集合当中出现两个需要视作重复对象的元素破坏其唯一特性10.当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?Java存在的两种关于引用类型传递的说法:1.Java当中只有值传递2.Java当中基本数据类型传值引用类型传地址其实两者并不矛盾因为引用类型的值就是内存地址11.在Collection中,实现比较要实现什么样的接口?java.lang.Comparable并且实现当中的抽象方法compareTo(Objectobj)倘若实现比较的类型源文件不能进行修改那么可以通过提供比较器完成比较比较器类型需要实现java.util.Comparator实现当中的compare(Objecto1,Objecto2)方法12.谈谈final,finalize的区别。finaljava当中的修饰符最终的可以用于修饰类、方法或者变量最终类不能被继承最终方法不能被覆盖最终变量值一旦确定不能被修改finalizeObject类当中的方法也称作对象的遗言方法当gc回收一个对象之前要自动调用的方法13.&和&&的区别。&&&都可以作为逻辑运算符使用&&逻辑短路运算符&逻辑非短路运算符既当通过前面的条件能够判断出整个表达式的值的时候逻辑短路运算符不会进行后面的条件判断直接得出结果而逻辑非短路运算符依然会执行后面的判断直到所有条件都判断结束才得出结果两者的结果没有任何区别但是如果后面的条件判断对变量进行修改那么将会导致最终变量值的不同&也可以作为按位运算符使用14.HashMap和Hashtable的区别。HashMap是线程不安全的HashMap指定的分组组数只能为2的次方数如果不指定默认为16组Hashtable是线程安全的Hashtable可以指定分组组数为任意数字如果不指定默认为11组15.gc是什么?为什么要有gc?Java当中回收对象所占用的内存空间的系统级别守护线程对象的存储是要占用内存空间的如果不回收不会再次使用的内存空间那会造成资源浪费甚至导致系统崩溃而无法正常执行程序16.shorts1=1;s1=s1+1;有没有错为什么?shorts1=1;s1+=1;有没有错为什么?有错因为Java当中默认的整数类型为ints1+1的运算结果为int32位存放在short16位存储空间当中会导致数据溢出没错因为+=自动保持运算符左侧的类型不发生变化17.switch是否能作用在byte上,是否能作用在long上,是否能作用在String上?可以使用在byte之上不能使用在long类型上到目前为止不能使用在String上(7.0新特性)switch()当中可以存放的类型为byteshortcharintEnum(枚举)18.String,StringBuffer,StringBuilder的区别。String和StringBuffer为线程安全的StringBuilder是线程不安全的但是由于没有同步特性所以效率较StringBuilder稍高另外StringBuffer和StringBuilder在底层存储空间当中有缓冲空间由于缓冲空间的存在在诸如追加内容等操作时这两者的效率明显高于String但是也付出了存储空间为代价19.super()与this()的区别?super()和this()都可以出现在构造方法的第一个语句super()代表执行本类构造方法之前优先调用父类的构造方法具体调用哪个需要看()当中如何传参this()代表执行本类构造方法之前先调用本类其它构造方法具体调用哪个需要看参数如何传20.如何将数值型字符转换为数字(Integer,Double)?如何将数字转换为字符?Stringstr=newString(12345);intnum1=Integer.parseInt(str);doublenum2=Double.parseDouble(str);inti=10;Strings=i+;或者使用String类的静态方法valueOf()inti=10;Strings=String.valueOf(i);21.说出一些常用的类,包,接口,请各举5个类:ObjectStringMathArrayListHashSetHashMapLinkedList....包:java.langjava.mathjava.utiljava.awtjavax.swingjava.awt.eventjava.iojava.net接口:ComparableComparatorCloneableSerializableListMapSetCollectionSortedSetSortedMap22.java中实现多态的机制是什么?Java当中多态有两种存在机制:静态多态:指的是方法重载Overload动态多态:指的是父类类型子类对象的赋值例如Peoplepeo=newChinese();23.静态变量和实例变量的区别?静态变量用static修饰实例变量依赖于对象而存在是对象的一部分每个对象都有一份实例变量的存储空间实例变量在创建对象的时候初始化静态变量不依赖对象存在所以可以使用类名.变量名直接访问静态变量在整个内存当中只有一份值而且在类第一次被加载的时候初始化24.是否可以从一个static方法内部发出对非static方法的调用?不能直接调用但是如果先new对象再通过对象去调用非静态方法是成立的25.冒泡排序法,如何用Java实现快速排序手动冒泡:for(inti=0;iiset.length-1;i++){for(intj=0;jiset.length-1-i;j++){if(iset[j]iset[j+1]){inttemp=iset[0];iset[0]=iset[1];iset[1]=temp;}}}java.util.Collection.sort();java.util.Arrays.sort();26.集合的作用是什么?一个集合当中可以存放多个类型不同的对象所以集合更像一个容器而且类型不同的集合其特点也不一样换言之不同的集合采用了不同的数据结构从而有不同的特点而且合理的数据结构对于程序的执行效率也有影响31.Collection和Collections的区别CollectionJava当中所有单值类型集合的统一的父接口CollectionsJava当中集合常用的工具类当中方法多是静态的提供处理集合的某些常用功能27.面向对象的特征有哪些方面封装继承多态28.编程题:用最有效率的方法算出2乘以8等於几?2329.是否可以继承String类?为什么?不能因为String类型是final修饰的最终类最终类不能被继承也就是不能派生子类30.List、Map、Set三个接口,存取元素时,各有什么特点?List有序不唯一的单个对象而且存储顺序按照添加的顺序Map键值对也就是键对象和值对象的映射关系主键无序且唯一实现类如HashMap子接口SortedMap主键有序且唯一例如TreeMapSet无序唯一的单个对象实现类如HashSet子接口SortedSet元素有序且唯一31.编程题:写一个Singleton出来醉汉:classSun{privatestaticSuntheOne=newSun();privateSun(){}publicstaticSungetSun(){returntheOne;
本文标题:COREJAVA第一阶段笔试题_答案
链接地址:https://www.777doc.com/doc-2906901 .html