前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >面试题 | 《Java面试题集》 -- 第二套

面试题 | 《Java面试题集》 -- 第二套

作者头像
码神联盟
发布2018-10-08 14:14:46
5650
发布2018-10-08 14:14:46
举报
文章被收录于专栏:码神联盟

说明:以下面试题中,选项背景为这个颜色的,则代表为正确答案,后续会继续总结其它面试题系列,持续做题关注。

01

下面程序运行的结果为?

代码语言:javascript
复制
 public static void main(String args[]){
    Thread t = new Thread(){
        public void run(){
            pong();
        }
    };
    t.run();
    System.out.println("ping");
 }
 static void  pong(){
   System.out.println("pong");
 }

A.

pingpong

B.

pongping

C.

pingpong和pongping都有可能

D.

都不输出

解析

考点:Thread类中start()和run()方法的区别

start()用来启动一个线程,当调用start方法后,系统才会开启一个新的线程,进而调用run()方法来执行任务,而单独的调用run()就跟调用普通方法是一样的,已经失去线程的特性了。因此在启动一个线程的时候一定要使用start()而不是run();

02

下面哪个流属于面向字符的输入流()?

A.

BufferedWriter

B.

FileInputStream

C.

ObjectInputStream

D.

InputStreamReader

解析

考点:I/O流、字节流、字符流、输入流、输出流

Java的I/O操作中有面向字节(Byte)和面向字符(Character)两种方式。 面向字节的操作为以8位为单位对二进制的数据进行操作,对数据不进行转换,这些类都是InputStream和OutputStream的子类。 面向字符的操作为以字符为单位对数据进行操作,在读的时候将二进制数据转为字符,在写的时候将字符转为二进制数据,这些类都是Reader和Writer的子类。

总结:

以InputStream(输入)/OutputStream(输出)为后缀的是字节流;

以Reader(输入)/Writer(输出)为后缀的是字符流;

03

新建一个流对象,下面哪个选型的代码是错误的?

A.

new BufferedWriter(new FileWriter("a.txt"));

B.

new BufferedReader(new FileInputStream("a.dat"));

C.

new GZIPOutputStream(new FileOutputStream("a.zip"));

D.

new ObjectInputStream(new FileInputStream("a.dat"));

解析

考点:对象流的使用

Reader只能用FileReader进行实例化

04

System.out.println("5"+2);的输出结果应该是?

A.

52

B.

7

C.

2

D.

5

解析

考点:类型转换

Java会自动将2转换为字符串

05

以下程序运行的结果是?

代码语言:javascript
复制
public class Test{
   static boolean foo(char c){
      System.out.println(c);
      return true;
   }
   public static void main(String[] args){
       int i = 0;
       for(foo('a');foo('b')&&(i<2);foo('c')){
            i++;
            foo('d');
      }
   }
}

A.

abdcbdcb

B.

abcdabcd

C.

abcddcdb

D.

an exception is thrown at runtime

解析

考点:for循环的执行顺序

for(表达式1;表达式2;表达式3){

//循环体

}

先执行“表达式1”,再进行“表达式2”的判断,判断为真则执行“循环体”,循环体执行完以后执行表达式3

06

关于sleep()和wait(),以下描述错误的一项是?

A.

sleep是线程类(Thread)的方法,wait是Object类的方法

B.

sleep不释放对象锁,wait放弃对象锁

C.

wait后进入等待锁定池,只有针对此对象发出notify方法后获得对象锁进入运行状态

D.

sleep暂停线程、但监控状态仍然保持,结束后会自动恢复

解析

考点:sleep()和wait()区别

sleep是线程类(Thread)的方法,导致此线程暂停执行指定时间,给执行机会给其他线程,但是监控状态依然保持,到时后会自动恢复。调用sleep不会释放对象锁。 wait是Object类的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify方法(或notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行状态

07

提供Java存取数据库能力的包是?

A.

java.sql

B.

java.awt

C.

java.lang

D.

java.swing

解析

考点:工具包的使用

java.sql是JDBC的编程接口 java.awt和java.swing是做图像界面的类库 java.lang: Java 编程语言进行程序设计的基础类

08

下面哪个表达式的值与数组下标量总数相等?

代码语言:javascript
复制
已知表达式 int m[] ={1,2,3,4,5,6}; 

A.

m.length()

B.

m.length()+1

C.

m.length

D.

m.length() - 1

解析

考点:数组下标API

数组下标是从零开始的,但是数据下标的总量和数据长度相同

09

如下代码,如何使成员变量m被函数fun()直接访问?

代码语言:javascript
复制
class Test{
    private int m;
    public static void fun() {
    //some code„
    }
}

A.

将private int m改为 protected int m

B.

将private int m改为 public int m

C.

将private int m改为 static int m

D.

将private int m改为int m

解析

考点:静态属性的使用

静态的方法中可以直接调用静态数据成员

10

不能用来修饰interface的有?

A.

private

B.

public

C.

protected

D.

static

解析

考点:接口修饰符有哪些

修饰接口可以是public、默认、final;

11

JDBC中,用于表示数据库连接的对象是?

A.

Statement

B.

Connection

C.

DriverManager

D.

PreparedStatement

解析

考点:JDBC连接数据库的步骤

1:加载驱动

Class.forName("oracle.jdbc.driver.OracleDriver");

2:创建连接

Connection con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "1111", "1111");

3:创建语句

PreparedStatement ps = con.prepareStatement("select * from user");

4:执行语句

ResultSet rs = ps.executeQuery();

5:处理结果

while(rs.next()) {

rs.get.....(“”);

}

6:关闭资源

finally {

if(con != null) {

try {

con.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

}

12

如下代码,输出的结果是?

代码语言:javascript
复制
public class Foo {
   public static void main(String[] args) {
     try {
        return;
     }catch(Exception e){
     }finally {
        System.out.println( "Finally" );
     }
  }
}

A.

Finally

B.

编译失败

C.

代码正常运行但没有任何输出

D.

运行时抛出异常

解析

考点:finally执行

try.... catch...finally...结构,不管代码是否有异常,finally代码块总会执行

13

下面关于Java的引用,说法正确的是?

A.

引用实际上就是指针

B.

引用本身是Primitive

C.

引用就是对象本身

D.

一个对象只能被一个引用所指引

解析

考点:Java引用

Java中没有指针,到处都是引用(除了基本类型),在Java中,变量有两种类型,一种是原始类型,一种是引用类型;

引用数据型在被创建时,首先要在栈上给其引用(句柄)分配一块内存,而对象的具体信息都存储在堆内存上,然后由栈上面的引用指向堆中对象的地址;

强引用--弱引用--软引用--幻想引用(虚引用)

primitive type: 基本类型,eg:int、double等

wrapped type:包装类型,int—>Integer,double—>Decimal等

基本类型跟就是不可实例化的,可以直接初始化、赋值、运算。不可调用方法,不可放入容器;

包装类型就是把基本类型变成一个类实例,一定要new才产生,可以调用方法,可以放入容器;

14

在一个线程中Sleep(1000)方法,将使得该线程在多少时间后获得对CPU的控制(假设睡眠过程中不会有其他事件唤醒该线程)?

A.

正好1000毫秒

B.

1000毫秒不到

C.

=>1000毫秒

D.

不一定

解析

考点:线程sleep方法

调用sleep(1000)方法后,线程会在1000毫秒之后,才可以重新运行,此时为就绪状态,需要进入到队列中,等待CPU资源的释放,然后才可以获取执行权限,所以需要最少1000毫秒才可以获取CPU的控制权限

15

下面哪个不是JAVA关键字?

A.

integer

B.

double

C.

float

D.

default

解析

考点:Java关键字

Java中存在关键字为:Integer

16

下列关于构造方法的叙述中,错误的是?

A.

Java语言规定构造方法名与类名必须相同

B.

Java语言规定构造方法没有返回值,但不用vold声明

C.

Java语言规定构造方法不可以重载

D.

Java语言规定构造方法只能通过new自动调用

解析

考点:构造方法

构造方法可以被重载、类的多态性体现

17

Java语言中下面哪个可以用作正确的变量名称?

A.

3D

B.

name

C.

extends

D.

implements

解析

考点:Java命名规范

1:名称只能由字母、数字、下划线、$符号组成

2:不能以数字开头

3:名称不能使用JAVA中的关键字

4:坚决不允许出现中文及拼音命名

18

在JavaScript中如何验证一个数据是否是数字?

A.

如果用Integer.parseInt(value)有误就不是数字

B.

int I = value 若报错就不是数字

C.

没有方法验证

D.

利用isNaN(value) 返回的boolean进行判断

解析

考点:JS验证API的使用

isNaN(value)判断value是否为数字

19

如下代码,如何使成员变量m被函数fun()直接访问?

代码语言:javascript
复制
class Test{
    private int m;
    public static void fun() {
       //TODO
    }
}

A.

将private int m改为 protected int m

B.

将private int m改为 static int m

C.

将private int m改为 public int m

D.

将private int m改为int m

解析

考点:static静态变量使用

静态方法中必须使用类变量中的静态变量

20

下面哪些是Thread类的方法?

A.

start()

B.

run()

C.

exit()

D.

getPriority()

解析

考点:Thread类

看Java API docs吧:http://docs.oracle.com/javase/7/docs/api/,exit()是System类的方法,如System.exit(0)

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-08-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 码神联盟 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档