nowcoder-examination-java

2019-12-05 06 07

static不能用来修饰类

除非类是内部类,此时该类作为外部类的成员变量,可以用static来修饰

类方法<->静态方法

静态方法中不能调用对象的变量,因为静态方法在类加载时就初始化,对象变量需要在新建对象后才能使用

对象空间被收集前执行finalize()方法

而不是对象空间被收集之后再执行,如果这样的话执行finalize()就没有意义了。

关于继承和实现

1.类与类之间的关系为继承,只能单继承,但可以多层继承。
2.类与接口之间的关系为实现,既可以单实现,也可以多实现。
3.接口与接口之间的关系为继承,既可以单继承,也可以多继承

面向对象方法的多态性是指

相同类型的变量、调用同一个方法时呈现出多种不同的行为特征

Hashtable 和 HashMap 的区别是

HashMap 是内部基于哈希表实现,该类继承AbstractMap,实现Map接口
Hashtable 线程安全的,而 HashMap 是线程不安全的
Properties 类 继承了 Hashtable 类,而 Hashtable 类则继承Dictionary 类
HashMap允许将 null 作为一个 entry 的 key 或者 value,而 Hashtable 不允许。

Hashtable:
(1)Hashtable 是一个散列表,它存储的内容是键值对(key-value)映射。
(2)Hashtable 的函数都是同步的,这意味着它是线程安全的。它的key、value都不可以为null。
(3)HashTable直接使用对象的hashCode。
HashMap:
(1)由数组+链表组成的,基于哈希表的Map实现,数组是HashMap的主体,链表则是主要为了解决哈希冲突而存在的。
(2)不是线程安全的,HashMap可以接受为null的键(key)和值(value)。
(3)HashMap重新计算hash值

java中将ISO8859-1字符串转成GB2312编码,语句为 ?

new String(“ISO8859-1”.getBytes(“ISO8859-1”),”GB2312”)

java如何接受request域中的参数?

request.getParameter()

JAVA的跨平台特性表述为“一次编译,到处运行”

Java的跨平台特性是因为JVM的存在, 它可以执行.class字节码文件,而不是.java源代码

下列关于JAVA多线程的叙述正确的是()

正确答案: B C 你的答案: A B D (错误)
调用start()方法和run()都可以启动一个线程
CyclicBarrier和CountDownLatch都可以让一组线程等待其他线程
Callable类的call()方法可以返回值和抛出异常
新建的线程调用start()方法就能立即进行运行状态

A,start是开启线程,run是线程的执行体,run是线程执行的入口。
B,CyclicBarrier和CountDownLatch都可以让一组线程等待其他线程。前者是让一组线程相互等待到某一个状态再执行。后者是一个线程等待其他线程结束再执行。
C,Callable中的call比Runnable中的run厉害就厉害在有返回值和可以抛出异常。同时这个返回值和线程池一起用的时候可以返回一个异步对象Future。
D,start是把线程从new变成了runnable

2019-12-04

下面的程序输出的结果是( )

1
2
3
4
5
6
7
8
9
10
11
12
public class A implements B{
public static void main(String args[]){
int i;
A a1=new A();
i =a1.k;
System.out.println("i="+i);
}
}
interface B{
int k=10

}

正确答案: i=10

在接口里面的变量默认都是public static final 的,它们是公共的,静态的,最终的常量.相当于全局常量,可以直接省略修饰符。
实现类可以直接访问接口中的变量

以下叙述正确的是

正确答案: D 你的答案: B (错误)
实例方法可直接调用超类的实例方法
实例方法可直接调用超类的类方法、
实例方法可直接调用子类的实例方法
实例方法可直接调用本类的实例方法

A错误,类的实例方法是与该类的实例对象相关联的,不能直接调用,只能通过创建超类的一个实例对象,再进行调用
B错误,当父类的类方法定义为private时,对子类是不可见的,所以子类无法调用
C错误,子类具体的实例方法对父类是不可见的,所以无法直接调用, 只能通过创建子类的一个实例对象,再进行调用
D正确,实例方法可以调用自己类中的实例方法

下面代码的执行结果是 :

1
2
3
4
5
6
7
8
9
10
11
12
13
class Chinese{
private static Chinese objref =new Chinese();
private Chinese(){}
public static Chinese getInstance() { return objref; }
}

public class TestChinese {
public static void main(String [] args) {
Chinese obj1 = Chinese.getInstance();
Chinese obj2 = Chinese.getInstance();
System.out.println(obj1 == obj2);
}
}

正确答案: true

饿汉式单例模式,在类创建时,就已经实例化完成,在调用Chinese.getInstance()时,直接获取静态对象

JavaWEB中有一个类,当会话种邦定了属性或者删除了属性时,他会得到通知,这个类是:

HttpSessionAttributeListener

以下哪几种方式可用来实现线程间通知和唤醒:( )

1
2
Object.wait/notify/notifyAll
Condition.await/signal/signalAll

wait()、notify()和notifyAll()是 Object类 中的方法 ;
Condition是在java 1.5中才出现的,它用来替代传统的Object的wait()、notify()实现线程间的协作,相比使用Object的wait()、 notify(),使用Condition1的await()、signal()这种方式实现线程间协作更加安全和高效。

2019-12-03

ArrayList是可改变大小的数组,而LinkedList是双向链接串列


:D 一言句子获取中...

">Divide and Conquer5
查看全部>>