java刷题笔记2

1.一般情况下,以下哪个选项不是关系数据模型与对象模型之间匹配关系?

正确答案: D   

A.表对应类
B.记录对应对象
C.表的字段对应类的属性
D.表之间的参考关系对应类之间的依赖关系

分析:一般关系数据模型和对象数据模型之间有以下对应关系:表对应类,记录对应对象,表的字段对应类的属性

2.下列流当中,属于处理流的是:()     

正确答案: C D  

A.FilelnputStream
B.lnputStream
C.DatalnputStream
D.BufferedlnputStream

分析:

JAVA常用的节点流:

  • 文 件 FileInputStream FileOutputStrean FileReader FileWriter 文件进行处理的节点流。
  • 字符串 StringReader StringWriter 对字符串进行处理的节点流。
  • 数 组 ByteArrayInputStream ByteArrayOutputStreamCharArrayReader CharArrayWriter 对数组进行处理的节点流(对应的不再是文件,而是内存中的一个数组)。
  • 管 道 PipedInputStream PipedOutputStream PipedReaderPipedWriter对管道进行处理的节点流。

常用处理流(关闭处理流使用关闭里面的节点流)

  • 缓冲流:BufferedInputStrean BufferedOutputStream BufferedReader BufferedWriter  增加缓冲功能,避免频繁读写硬盘。
  • 转换流:InputStreamReader OutputStreamReader 实现字节流和字符流之间的转换。
  • 数据流 DataInputStream DataOutputStream  等-提供将基础数据类型写入到文件中,或者读取出来.

3.以下类型为Final类型的为()

正确答案: B C   

A.HashMap
B.StringBuffer
C.String
D.Hashtable

分析:StringBuilder , StringBuffer ,String 都是 final 的。

4.若有定义语句: int a=10 ; double b=3.14 ; 则表达式 'A'+a+b 值的类型是()

正确答案: C   

A.char
B.int
C.double
D.float

分析:char < short < int < float < double  不同类型运算结果类型向右边靠齐。

5.关于下面一段代码,以下说法正确的是: ()

1

2

3

4

5

6

7

8

9

10

11

12

13

14

public class Test {

    private synchronized void a() {

    }

    private void b() {

        synchronized (this) {

        }

    }

    private synchronized static void c() {

    }

    private void d() {

        synchronized (Test.class) {

        }

    }

}

正确答案: A C  

A.同一个对象,分别调用方法a和b,锁住的是同一个对象
B.同一个对象,分别调用方法a和c,锁住的是同一个对象
C.同一个对象,分别调用方法b和c,锁住的不是同一个对象
D.同一个对象,分别调用方法a、b、c,锁住的不是同一个对象

分析:

方法a为同步方法,方法b里面的是同步块,同步方法使用的锁是固有对象this,同步块使用的锁可以是任意对象,但是方法b里面的同步块使用的锁是对象this,所以方法a和方法b锁住的是同一个对象。方法 c为静态同步方法,使用的锁是该类的字节码文件,也就是Test.class。方法d里面的也是同步块,只不过使用的锁是Test.class,所以方法c和方法d锁住的是同一个对象。

6.ResultSet中记录行的第一列索引为?

正确答案: C   

A.-1
B.0
C.1
D.以上都不是

分析:ResultSet跟普通的数组不同,索引从1开始而不是从0开始

7.在Java中,关于HashMap类的描述,以下错误的是()?

正确答案: A  

A.HashMap能够保证其中元素的顺序
B.HashMap允许将null用作值
C.HashMap允许将null用作键
D.HashMap使用键/值得形式保存数据

分析:HashMap(集合)中值的存储是无序的,依靠键值来存取元素,一个键对应一个值,就是说通过键来找值,并且键值都可为空

8.关于String、StringBuffer、StringBuilder以下说法错误的是

正确答案: C 

A.StringBuilder运行速度最快
B.StringBuffer是线程安全的
C.String的值是可变的
D.StringBuffer运行速度比String快

分析:在运行速度上StringBuffer因为兼顾了线程安全,效率不及StringBuilder

9.关于下面程序,哪些描述是正确的: (  )

1

2

3

4

5

6

7

8

9

 public class While {

    public void loop() {

        int x= 10;

        while ( x )  {

            System.out.print("x minus one is " + (x - 1));

            x -= 1;

        }

    }

}

正确答案: B  

A.行1有语法错误
B.行4有语法错误
C.行5有语法错误
D.行6有语法错误

分析:while()括号里参数必须是布尔类型,要么true要么false

10.下面哪个不属于HttpServletResponse接口完成的功能?

正确答案: C 

A.设置HTTP头标
B.设置cookie
C.读取路径信息
D.输出返回数据

分析:HttpServletResponse完成:设置http头标,设置cookie,设置返回数据类型,输出返回数据;读取路径信息是HttpServletRequest做的

11.关于java集合下列说法不正确的有哪些()

正确答案: A B D  

A.HashSet 它是线程安全的,不允许存储相同的对象
B.ConcurrentHashMap 它是线程安全的,其中存储的键对象可以重复,值对象不能重复
C.Collection接口是List接口和Set接口的父接口,通常情况下不被直接使用
D.ArrayList线程安全的,允许存放重复对象

分析:HashSet和ArrayList一样线程不安全,ConcurrentHashMap键不能重复,值可以重复

12.看以下代码:
文件名称:forward.jsp

1

2

3

4

5

6

<html>  

     <head><title> 跳转  </title> </head

     <body>  

         <jsp:forward page="index.htm"/>     

     </body>

 </html

如果运行以上jsp文件,地址栏的内容为

正确答案: A  

A.http://127.0.0.1:8080/myjsp/forward.jsp
B.http://127.0.0.1:8080/myjsp/index.jsp
C.http://127.0.0.1:8080/myjsp/index.htm
D.http://127.0.0.1:8080/myjsp/forward.htm

分析:forward是转发,地址栏无变化 redirect是重定向,地址栏发生变化

13.以下哪种JAVA得变量声明方式可以避免程序在多线程竞争情况下读到不正确的值(  )

正确答案: A B   

A.volatile
B.static volatile
C.synchronized
D.static

分析:

A B选项,免程序在多线程竞争情况下读到不正确的值需要保证内存可见性,即当一个线程修改了volatile修饰的变量的值,volatile会保证新值立即同步到主内存,以及每次使用前立即从主内存读取。

C选项,synchronized可以修饰方法、代码块或对象,并不修饰变量。

D选项,static修饰的变量属于类,线程在使用这个属性的时候是从类中复制拷贝一份到线程工作内存中的,如果修改线程内存中的值之后再写回到原先的位置,就会有线程安全问题。用static修饰的变量可见性是无法确保的。

14.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

public boolean returnTest()

{

    try

    {

        return true;

    }

    catch (Exception e)

    {

    }

    finally

    {

        return false;

    }

}

以上代码返回值是什么?

正确答案: B   

A.true
B.false

分析:一旦在finally块中使用了return或throw语句,将会导致try块,catch块中的return,throw语句失效

15.关于Java的一些概念,下面哪些描述是正确的:(    )

你的答案: A (错误)

A.所有的Java异常和错误的基类都是java.lang.Exception, 包括java.lang.RuntimeException

分析:错误(Error)的基类是Throwable

16.下列叙述错误的是( )

正确答案: D 

A.在接口中定义的方法除了default和static关键字修饰的方法拥有方法体,其他方法都应是没有方法体的抽象方法(JDK1.8以后)
B.一个java类只能有一个父类,但可以实现多个接口
C.在类声明中,用implements关键字声明该类实现的接口
D.定义接口时使用implements关键字。

分析:JDK8开始,接口中可以定义有方法体的方法,方法必须被default和static修饰。除此之外,其他方法都是抽象方法。

17.下面的代码运行的结果是:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

class extends Object

{

    static

    {

        System.out.println("Load B");

    }

    public B()

    {

        System.out.println("Create B");

    }

}

class extends B

{

    static

    {

        System.out.println("Load A");

    }

    public A()

    {

        System.out.println("Create A");

    }

}

public class Testclass

{

    public static void main(String[] args)

    {

        new A();

    }

}

正确答案: B   

A.Load B ->Create B->Load A -> Create A
B.Load B -> Load A  ->Create B  ->Create A
C.Load B -> Create B-> Create A -> Load A
D.Create B ->Create A ->Load B ->Load A

分析:

父类静态代码块-》子类静态代码块-》父类构造代码块-》父类构造函数-》子类构造代码块-》子类构造函数

char 类型的编码是Unicode 编码。

input和output指的是对于程序而言。input是从文件读取进来,output是输出到文件。

18.对于以下代码段,4个输出语句中输出true的个数是(    )。

class A{}

class B extends A{}

class C extends A{}

class D extends B{}

A obj = new D();

System.out.println(obj instanceof B);

System.out.println(obj instanceof C);

System.out.println(obj instanceof D);

System.out.println(obj instanceof A);

正确答案: C   

A.1
B.2
C.3
D.4

19.关于匿名内部类叙述正确的是? ( )

正确答案: B   

A.匿名内部类可以继承一个基类,不可以实现一个接口
B.匿名内部类不可以定义构造器
C.匿名内部类不能用于实参
D.以上说法都不正确

分析:

  1. 使用匿名内部类时,必须继承一个类或实现一个接口
  2. 匿名内部类由于没有名字,因此不能定义构造函数
  3. 匿名内部类中不能含有静态成员变量和静态方法

20.下列关于进程与线程的说法,错误的是(5.0分)

  • A、
    线程是系统资源分配的基本单位
    
  • B、
    一个线程可以创建一个新的线程
    
  • C、
    一个进程中可以存在多个线程
    
  • D、
    同一进程的线程之间不能共享资源
    

正确答案:AD

分析:进程是资源分配的最小单位,线程是CPU调度的最小单位

21.静态变量通常存储在进程哪个区(5.0分)

  • A、
    代码区
    
  • B、
    全局区
    
  • C、

       栈区

  • D、
    堆区
    

正确答案:B

22.表tg_user,主键为tg_id,tg_email是允许为空的列,下列能正确统计出该表记录数的语句是(   )

  • A、
    SELECT count(*) FROM `tg_user`
    
  • B、
    SELECT count(1) FROM `tg_user`
    
  • C、
    SELECT count( tg_email ) FROM `tg_user `
    
  • D、
    SELECT count(tg_id) FROM `tg_user`

正确答案:A B D 

分析:select count(1) from table 也是返回表中包括空行和重复行在内的行数,不会扫描所有列,1其实就是表示有多少个符合条件的行,但是此时没有where,所有没条件也就是返回总行数

23.下面的输出语句不会有编译错误的是() public class NowCoder {     public static void main(String[] args) {         int a = 5, b = 5;         System.out.println("a + b = " + a + b);         System.out.println("a - b = " + a - b);         System.out.println("a * b = " + a * b);         System.out.println("a / i2 = " + a / b);     } }

  • A、
    System.out.println("a + b = " + a + b);
    
  • B、
    System.out.println("a * b = " + a * b);
    
  • C、
    System.out.println("a / i2 = " + a / b);
    
  • D、
    System.out.println("a - b = " + a - b);

正确答案:A B C

分析:正确写法应该是 :System.out.println("a - b = "+ (a - b))

字符串不能和int类型进行减法运算

24.关于where和having子句说法正确的有?( )

  • A、
    HAVING子句只能用于限制组。
    
  • B、
    HAVING子句不能在子查询中使用。
    
  • C、
    如果查询使用HAVING子句,则不能在查询中使用WHERE子句。
    
  • D、
    WHERE子句只能用于限制行。
    
  • E、
    WHERE子句可用于限制行和组。
    
  • F、
    HAVING子句可用于限制行和组

正确答案:A D

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值