1.在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数个数、类型或顺序各不相同,传回的值也可以不相同。这种面向对象程序的特性称为(重载)。
2.在java中,要表示10个学生的成绩,声明并初始化数组:int score[]=new int[10]。
3.关于Float:
(1)Float是类,float不是类;
(2)查看JDK源码就可以发现Byte,Character,Short,Integer,Long,Float,Double,Boolean都在java.lang包中;
(3)Float正确复制方式是Float f=1.0f,若不加f会被识别成double型,double无法向float隐式转换;
(4)Float a= new Float(1.0)是正确的赋值方法,但是在1.5及以上版本引入自动装箱拆箱后,会提示这是不必要的装箱的警告,通常直接使用Float f=1.0f。
4.ArrayLists和LinkedList的区别,下述说法正确的有(ABCD)
A.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。
B.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。
C.对于新增和删除操作add和remove,LinkedList比较占优势,因为ArrayList要移动数据。
D.ArrayList的空间浪费主要体现在在list列表的结尾预留一定的容量空间,而LinkedList的空间花费则体现在它的每一个元素都需要消耗相当的空间。
5.Java是一门支持反射的语言,基于反射为Java提供了丰富的动态性支持,下面关于Java反射的描述,哪些是错误的:(ADF)
A.Java反射主要涉及的类如Class,Method,Filed等,他们都是在java.lang.reflet包下
B.通过反射可以动态的实现一个接口,形成一个新的类,并可以用这个类创建对象,调用对象方法
C.通过反射,可以突破Java语言提供的对象成员、类成员的保护机制,访问一般方式不能访问的成员
D.Java反射机制提供了字节码修改的技术,可以动态的修剪一个类
E.Java的反射机制会给内存带来额外的开销。例如对永生堆的要求比不通过反射要求的更多
F.Java反射机制一般会带来效率问题,效率问题主要发生在查找类的方法和字段对象,因此通过缓存需要反射类的字段和方法就能达到与之间调用类的方法和访问类的字段一样的效率
6.switch支持10种类型 (jdk1.7之前byte,short ,int ,char,jdk1.7之后加入String)
基本类型:byte char short int ;
包装类 :Byte,Short,Character,Integer String enum ;
实际只支持int类型 Java实际只能支持int类型的switch语句。
7.一个抽象类并不需要其中所有的方法都是抽象的。
8关系R和S进行自然连接时,要求R和S含有一个或多个公共。(属性)
候选码中的属性可以有( 一个或多个 )
9.在数据库三级模式结构中,描述数据库中全体逻辑结构和特性的是(模式)
10.类Person里面有个方法sleep(),如果直接用Person.sleep(),则方法sleep前面必须用的关键词是? ( static )
11.以下关于继承的叙述正确的是(A)
A.在Java中类只允许单一继承
B.在Java中一个类不能同时继承一个类和实现一个接口
C.在Java中接口只允许单一继承
D.在Java中一个类只能实现一个接口
12.为AB类的一个无形式参数无返回值的方法method书写方法头,可以用AB.method()方式调用,该方法头的形式为( static void method( ) )。
分析:什么是静态方法:
(1)用static修饰的方法
(2)静态方法是使用公共内存空间的,就是说所有对象都可以直接引用,不需要创建对象再使用该方法。
静态方法的使用:
(1)在外部调用静态方法时,可以使用"类名.方法名"的方式,也可以使用"对象名.方法名"的方式。
(2)而实例方法只有后面这种方式。也就是说,只有调用静态方法时可以无需创建对象。
13.初始化过程:
(1)初始化父类中的静态成员变量和静态代码块 ;
(2)初始化子类中的静态成员变量和静态代码块 ;
(3)初始化父类的普通成员变量和代码块,再执行父类的构造方法;
(4)初始化子类的普通成员变量和代码块,再执行子类的构造方法;
执行顺序:
父类静态代码块→子类静态代码块→父类构造代码块→父类构造函数→子类构造代码块→子类构造函数
14.访问控制符
(1)private(私有):当类中属性或方法被private修饰时,表示此成员或方法只能被自己类中的方法使用,而不能被外部类或对象直接使用。
(2)default(默认):具有包访问权限,如果类中属性或方法不使用
public,protected,privete修饰符修饰时,则说明其具有包访问权限,具有包访问权限的属性或方法既可以被自己类中的方法使用也可以被同一包下的其他类使用,但不能被其他包中的类使用。
(3)protected(保护):具有子类访问权限。如果类中属性或方法被protected修饰符修饰,则此类中属性或方法可以被同一包下的类使用,也可以被不同包下的子类使用,但不能被不同包下的其他类使用。
(4)public(公共):具有公共访问权限。如果类中的属性或方法被public修饰,则此类中的属性或方法可以被任何类调用。
15.创建socket连接:Socket s = new Socket(“192.168.1.1”,8080)
16.下面哪个修饰符修饰的变量是所有同一个类生成的对象共享的( C )
A.public B.private C.static D.final
17.Java三大注解分别是@Override @Deprecated @Suppresswarnings
(1)@Override 注解表名子类中覆盖了超类中的某个方法,如果写错了覆盖形式,编译器会报错
(2)@Deprecated 表明不希望别人在以后使用这个类,方法,变量等等
(3)@Suppresswarnings 达到抑制编译器产生警告的目的,但是不建议使用,因为后期编码人员看不懂编译器提示的警告,不能更好的选择更好的类去完成任务
18.重写:要求两同两小一大原则, 方法名相同,参数类型相同,子类返回类型小于等于父类方法返回类型,子类抛出异常小于等于父类方法抛出异常,子类访问权限大于等于父类方法访问权限。注意:这里的返回类型必须要在有继承关系的前提下比较
重载:方法名必须相同,参数类型必须不同,包括但不限于一项,参数数目,参数类型,参数顺序
18.HttpServletResponse完成:设置http头标,设置cookie,设置返回数据类型,输出返回数据;读取路径信息是HttpServletRequest
19.在创建派生类对象,构造函数的执行顺序:类构造函数→派生类对象成员构造函数→派生类本身的构造函数。
20.下面哪个流类不属于面向字符的流(BC)
A.BufferedWriter B.FileInputStream C.ObjectInputStream D.InputStreamReader
21.下面有关java classloader说法正确的是?(ACD)
A.ClassLoader就是用来动态加载class文件到内存当中用的
B.JVM在判定两个class是否相同时,只用判断类名相同即可,和类加载器无关
C.ClassLoader使用的是双亲委托模型来搜索类的
D.Java默认提供的三个ClassLoader是Boostrap ClassLoader,Extension ClassLoader,App ClassLoader
解析:Java语言系统自带有三个类加载器:
(1) Bootstrap ClassLoader最顶层的加载类,主要加载核心类库,%JRE_HOME%Nlib下的rt.jar,resources.jar、charsets.jar和class等。另外需要注意的是可以通过启动jvm时指定Xbootclasspath和路径来改变Bootstrap ClassLoader的加载目录。比如java -
Xbootclasspath/a:path被指定的文件追加到默认的bootstrap路径中。我们可以打开我的电脑在上面的目录下查看,看看这些jar包是不是存在于这个目录。
(2)Extention ClassLoader扩展的类加载器,加载目录%JRE_HOME%Nliblext目录下的jar包和class文件。还可以加载-D java.ext.dirs选项指定的目录。
(3) Appclass Loader也称为systemAppClass加载当前应用的classpath的所有类。