java基础10题

1.abstract和final可以同时作为一个类的修饰符。( )
A.正确
B,错误
2.有以下类定义:

abstract class Animal{
	abstract void say();
}
public class Cat extends Animal{
	public Cat(){
		System.out.printf("I am a cat");
	}
	public static void main(String[] args) {
		Cat cat=new Cat();
	}
}

运行后:
A.I am a cat
B.Animal能编译,Cat不能编译
C.Animal不能编译,Cat能编译
D.编译能通过,但是没有输出结果
3.执行语句“int a= ’ 2 ’ ”后,a的值是( )
4.Which statement is true for the class java.util.ArrayList?
A.The elements in the collection are ordered.
B.The collection is guaranteed to be immutable.
C.The elements in the collection are guaranteed to be unique.
D.The elements in the collection are accessed using a unique key.
E.The elements in the collections are guaranteed to be synchronized.
5.下列说法正确的是()?
A.我们直接调用Thread对象的run方法会报异常,所以我们应该使用start方法来开启一个线程
B.一个进程是一个独立的运行环境,可以被看做一个程序或者一个应用。而线程是在进程中执行的一个任务。Java运行环境是一个包含了不同的类和程序的单一进程。线程可以被称为轻量级进程。线程需要较少的资源来创建和驻留在进程中,并且可以共享进程中的资源
C.synchronized可以解决可见性问题,volatile可以解决原子性问题
D.ThreadLocal用于创建线程的本地变量,该变量是线程之间不共享的
6.以下会产生精度丢失的类型转换是( )
A.float a=10
B.int a=(int)8846.0
C.byte a=10; int b=-a
D.double d=100
7.知有下列Test类的说明,在该类的main方法的横线处,则下列哪个语句是正确的?()
public class Test
{
private float f = 1.0f;
int m = 12;
static int n = 1;
public static void main (String args[])
{
Test t = new Test();
————————
}
}
A.t.f = 1;
B.this.n = 1;
C.Test.m = 1;
D.Test.f = 1;
8.关于java编译和运行命令叙述不正确的是? ( )
A.运行“java Scut.class”
B.运行“java Scut”
C.编译 Scut.java文件,使用“javac Scut.java”命令的输出文件是Scut.class
D.java这个命令的运行对象是Scut.class
9.java中Hashtable, Vector, TreeSet, LinkedList哪些线程是安全的?
A.Hashtable
B.Vector
C.TreeSet
D.LinkedList
10.实现或继承了Collection接口的是()
A.Map
B.List
C.Vector
D.Iterator
E.Set
(1)选B
Abstract表示抽象类,抽象类本身不可实例化,必须有子类去继承,且子类中实现抽象父类中所有的抽象方法,子类才可实例化。
final修饰的类,不可继承。
这个修饰符功能相克的。
(2)B 当一个实体类集成一个抽象类,必须实现抽象类中的抽象方法,抽象类本身没有错误,但是cat类编译通不过
(3)50
题中int a = ‘2’,这种定义与int a = 2是完全不同的
int a = '2’中的数字2使用单引号来表示字符2,字符2对用的ascii码值是50,因此这种情况下,a的值是50
int a = 2中的数字2表示了数字本身,这种情况下,a的值是2
(4)A
Serializable, Cloneable , Iterable , Collection , List , RandomAccess List接口是有序的,通常允许重复,因此可以确定A对,C错;ArrayList是实现List 接口的大小可变数组,所以B错;D是Map的特性,所以D错;查看手册: Note that this implementation is not synchronized. ArrayList的实现是不是线程同步的,所以E错。
(5)BD
volatile与synchronized的区别:
volatile本质是在告诉jvm当前变量在寄存器中的值是不确定的,需要从主存中读取,synchronized则是锁定当前变量,只有当前线程可以访问该变量,其他线程被阻塞住.
volatile仅能使用在变量级别,synchronized则可以使用在变量,方法.
volatile仅能实现变量的修改可见性,但不具备原子特性,而synchronized则可以保证变量的修改可见性和原子性.
volatile不会造成线程的阻塞,而synchronized可能会造成线程的阻塞.
volatile标记的变量不会被编译器优化,而synchronized标记的变量可以被编译器优化.
A:可以直接调用run方法, 但就起不到多线程的目的了。
(6)B
会产生信息丢失不如说丢失精度,这样可能更容易明白,而精度丢失只会发生在从大范围到小范围的转换
上面四个选项,只有 B 是从 double 到 int ,也就是从大范围到小范围。
(7)正确答案: A
this不能在static的方法中使用~
(8)正确答案: A
A 错误 运行命令是 java + 你的 Java 程序的名字但是不加后缀 所以这道题错在多了 .class这个后缀
B 正确
C javac 是编译命令,后跟 你的 Java 程序名字加后缀,也就是 YourClassName.java 所以答案正确
D JVM (Java 虚拟机)运行的是编译后的字节码文件(以.class为后缀的文件),也就是 YourClassName.class 所以答案正确
(9)正确答案: A B
HashTable是线程安全的
Vector是线程安全的ArrayList
TreeSet和LinkedList都不是线程安全的
(10)答案:BCE

A,Map接口未实现Collection接口
B,List接口的定义为
public interface Listextends Collection
C,Vector定义为
public class Vectorextends AbstractListimplements List, RandomAccess, Cloneable, Serializable
Vector实现了List接口自然实现了Collection接口

D,Iterator接口未实现Collection接口
E,
public interface Setextends Collection
Set接口继承自Collection接口

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Nicholas_giao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值