Java self-test questions

Java自测题——做错及不会的题(题号顺序不固定)

  • 抽象类和抽象方法有哪些规则?
    (1)抽象类必须使用abstract修饰符来修饰,抽象方法必须使用abstract修饰符来修饰。
    (2)抽象类不能被实例化,无法使用new关键字来调用抽象类的构造器创建抽象类的实例,即使抽象类里不包含抽象方法,这个抽象类也不能创建实例。
    (3)抽象类可以包含属性、方法(普通方法和抽象方法)、构造器、初始化块、内部类、枚举类。抽象类的构造器不能用于创建实例,主要是用于被其子类调用。
    (4)含有抽象方法的类(包括直接定义了一个抽象方法;继承了一个抽象父类,但没有完全实现父类包含的抽象方法;以及实现了一个接口(本书第六章详细介绍),但没有完全实现接口包含的抽象方法三种情况)只能被定义成抽象类。

  • 任何一个Java程序都默认引入一个包,这个包的名字是_______java.lang_________。

  • 匿名类的特点有哪些?
    (1)匿名类可以继承父类的方法也可以重写父类的方法。
    (2) 匿名类可以访问外嵌类中的成员变量和方法,在匿名类中不能声明静态变量和静态方法。
    (3)使用匿名类时,必须在某个类中直接使用匿名类创建对象。
    (4)在使用匿名类创建对象时,要直接使用父类的构造方法。

  • 匿名类的一般格式是________________。
    new ClassName(){
    ……
    }

  • 11.关于下面程序片段,结论正确的是( B )。——不知为哈
    String a =”Java”;
    String b=”Java”;
    String x=”Ja”;
    String y=”va”;
    String c=x+y;
    A.a和b指向同一个实例对象,a和c指向同一个实例对象
    B.a和b指向同一个实例对象,a和c不指向同一个实例对象
    C.a和b不指向同一个实例对象,a和c指向同一个实例对象
    D.a和b不指向同一个实例对象,a和c不指向同一个实例对象

  • 13.关于继承的说法,正确的是( D )。——不知为哈
    A. 超类的对象就是子类的对象
    B. 一个类可以有几个超类
    C. 一个类只能有一个子类
    D. 一个类只能有一个超类

  • 15.输入输出流一般分为__________________________________________。
    字节输入流、字节输出流、字符输入流和字符输出流

  • 9.List接口、Set接口、Map接口和Collection接口的主要特征是什么?
    (1)Collection接口是List接口和Set接口的父接口,通常情况下不被直接使用;
    (2)List接口实现了Collection接口,List接口允许存放重复的对象,按照对象的插入顺序排列;
    (3)Set接口实现了Collection接口,Set接口不允许存放重复的对象,按照自身内部的排序规则排列;
    (4)Map接口以键值对(key-value)的形式存放对象,其中键(key)对象不可以重复,值(value)对象可以重复,按照自身内部的排序规则排列。

  • 10.HashMap类,在重写hashCode()方法时需要遵循的原则是?
    (1)不唯一原则:不必为每个对象生成一个唯一的哈希码,只要通过hashCode方法生成的哈希码能够利用get()方法得到利用put()方法添加的映射关系就可以;
    (2)分散原则:生成哈希码的算法应尽量使哈希码的值分散一些,不要很多哈希码值都集中在一个范围内,这样有利于提高由HashMap类实现的Map集合的性能。

  • 15.请列举出三种常见的过滤器及其作用。
    BufferedReader:该过滤器用来对流的数据加以处理再输出。
    LineNumberReader:该过滤器也是一种缓冲流,可用来记录读入的行数。
    PrintWriter:该过滤器用来将输出导入某种设备。

  • 3.字符流和字节流的区别在于( D )。
    A.前者带有缓冲,后者没有
    B.前者是块读写,后者是字节读写
    C.二者没有区别,可以互换使用
    D.每次读写的字节数不同

  • 4.下列流中哪个不属于字节流( D )。
    A.FileInputStream B.BufferedInputStream
    C.FilterInputStream D.InputStreamReader

  • 7.接口和抽象类的用法区别是什么?
    (1)接口中只能包含抽象方法,不能包含普通方法;抽象类中可以包含普通方法。
    (2)接口中不能定义静态方法;抽象类中可以定义静态方法。
    (3)接口中只能定义静态常量属性,不能定义普通属性;抽象类里可以定义静态常量属性,也可以定义普通属性。
    (4)接口不能包含构造器;抽象类可以包含构造器,抽象类里的构造器为了让其子类调用并完成初始化操作。
    (5)接口中不能包含初始化块,但抽象类可以包含初始化块。
    (6)一个类最多只能有一个直接父类,包括抽象类;但是一个类可以实现多个接口。

  • 8.Java是一种不支持多重继承的语言,但是我们可以通过___________实现。
    接口

  • 9.FileInputStream是_______,BufferedWriter是_______,ObjectOutputStream是_______。
    字节流 字符流 对象流

  • 11.在使用interface声明一个接口时,只可以使用_______修饰符修饰该接口。
    public

  • 13.Java中,byte数据类型的取值范围是( C )。
    A.-256~255
    B.-255~255
    C.-128~127
    D.-127~128

  • 14.Java中的布局管理器,下列说法错误的是( C )。
    A.FlowLayout以由上到下的方式从左到右排列组件
    B.BorderLayout使用“东”、“西”,“南”,“北”,“居中”来指定组件的位置
    C.GridLayout可以创建网格布局,网格布局中各组件的大小可以任意调整
    D.可以通过容器的setLayout方法为容器指定布局管理器

  • 15.Java中,关于HashMap类的描述,错误的是( B )。
    A.HashMap使用键/值的形式保存数据
    B.HashMap能够保证其中元素的顺序
    C.HashMap允许将null用作键
    D.HashMap允许将null用作值

  • 5.一般造成死锁必须同时满足的4个条件是?
    (1)互斥条件:线程使用的资源必须至少有一个是不能共享的;
    (2)请求与保持条件:至少有一个线程必须持有一个资源并且正在等待获取一个当前被其他线程持有的资源;
    (3)非剥夺条件:分配的资源不能从相应的线程中被强制剥夺;
    (4)循环等待条件:第一个线程等待其他线程,后者又在等待第一个线程序。

  • 9.下列哪一项不属于Swing的顶层容器?( B )
    A.JApplet B. JTree C. JDialog D.JFrame

  • 10.覆盖和重载的关系是( A )。
    A. 覆盖只能发生在父类与子类之间,而重载可以发生在同一个类中
    B. 覆盖方法可以不同名,而重载方法必须同名
    C. final修饰的方法可以被覆盖,但不能被重载
    D. 覆盖与重载是同一回事

  • 12.Java中的字符类型采用的是Unicode编码方案,每个Unicode码占用(B)个比特位。
    A.8 B.16 C.32 D.64

  • 15.什么是重载?什么是覆盖?它们二者之间有怎样的区别与联系?
    重载是指在同一个类中定义了多个名字相同而内容不同的成员方法;覆盖则是指在子类中定义了与父类具有相同名字的成员方法。
    重载和覆盖的区别在于:重载是存在于同一个类的不同方法之间的多态关系,它们主要通过参数李表中的参数个数、参数的数据类型和参数的顺序等方面的不同来区分;而覆盖是存在于父类与子类之间的多态关系,它们在引用时通过指出所属类的类名来区分。

  • 3.以下对自定义异常描述错误的是( C )。
    A. 自定义异常必须继承Exception
    B. 自定义异常可以继承自Error
    C. 自定义异常可以更加明确定位异常出错的位置和给出详细出错信息
    D. 程序已经提供了丰富的异常类,使用自定义异常没有意义

  • 4.以下对TCP和UDP描述正确的是( D )。
    A. TCP不能提供数据的可靠性
    B. UDP能够保证数据库的可靠性
    C. TCP数据传输效率高于UPD
    D. UPD数据传输效率高于TCP

  • 5.在开发JDBC应用程序时,使用DriverManager类的getConnection()方法建立与数据源链接语句为:Connection con = DriverManager.getConnection(“jdbc:odbc:news”);其中,“news”表示的是________________。
    数据源的名称

  • 6.________________接口以键值对的方式存储对象。
    java.util.Map

  • 7.下列关于对象序列化描述正确的是( C )。
    A. 使用FileOutputStream可以将对象进行传输
    B. 使用PrintWriter可以将对象进行传输
    C. 使用ObjectOutputStream类完成对象存储,使用ObjectInputStream类完成对象读取
    D. 对象序列化的所属类不需要Serializable接口

  • 10.在Swing中,如何设置组件的边框( C )
    A.通过根窗格的setBorder函数设置某个组件的边框
    B.通过内容窗格的setBorder函数设置某个组件的边框
    C.通过组件的setBorder函数设置
    D.通过框架的setBorder函数设置某个组件的边框

  • 11.结构化程序设计所规定的的三种基本控制结构是( C )。
    A.输入、处理、输出 B.树形、网形、环形
    C.顺序、选择、循环 D.主程序、子程序、函数

  • 15.在进行方法覆盖时,需要注意什么?
    (1)子类不能覆盖父类中声明为final或者static的方法。
    (2)子类必须覆盖父类中声明为abstract的方法,或者子类也将该方法声明为abstract。
    (3)子类覆盖父类中的同名方法时,子类中方法的声明也必须和父类中被覆盖的方法的声明一样。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是一个简单的self-attention代码示例,使用Keras实现: ```python from keras.layers import Input, Dense, Dropout, Lambda, Layer from keras.models import Model import keras.backend as K class SelfAttention(Layer): def __init__(self, units, **kwargs): self.units = units super(SelfAttention, self).__init__(**kwargs) def build(self, input_shape): self.W = self.add_weight(name='W', shape=(input_shape[-1], self.units), initializer='glorot_uniform', trainable=True) self.b = self.add_weight(name='b', shape=(self.units,), initializer='zeros', trainable=True) self.u = self.add_weight(name='u', shape=(self.units,), initializer='glorot_uniform', trainable=True) super(SelfAttention, self).build(input_shape) def call(self, x): u_it = K.tanh(K.dot(x, self.W) + self.b) a_it = K.dot(u_it, self.u) a_it = K.softmax(a_it) weighted_input = x * a_it[..., None] output = K.sum(weighted_input, axis=1) return output def compute_output_shape(self, input_shape): return (input_shape[], input_shape[-1]) # 定义模型 inputs = Input(shape=(100,)) x = Dense(64, activation='relu')(inputs) x = Dropout(.5)(x) x = Dense(32, activation='relu')(x) x = Dropout(.5)(x) outputs = SelfAttention(units=16)(x) model = Model(inputs=inputs, outputs=outputs) # 编译模型 model.compile(optimizer='adam', loss='mse') # 训练模型 model.fit(x_train, y_train, epochs=10, batch_size=32, validation_data=(x_test, y_test)) ``` 这个模型包含一个自注意力层,它将输入张量的每个间步的特征向量转换为一个加权平均值,其中权重由该间步的特征向量和其他间步的特征向量之间的相似度计算得出。该模型使用MSE损失函数和Adam优化器进行训练。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值