Java实训【JAVA SE】-核心API考试题库整理

一、注释

  • /** */文档注释;///**/普通注释
  • 有关javadoc命令生成文档叙述正确的是()
    A.如果是一个包命令为javadoc –d docDir nameOfPackage
    B.如果是一个包命令为javadoc –d docDir nameOfPackages
    C.如果文件在默认包中命令为javadoc –d docDir *.java
    D.如果文件在默认包中命令为javadoc –d docDir *.javac
    【正确答案】A,C
    【答案解析】此题目考查javadoc命令生成文档的了解,BD语法错误,AC均正确
  • 文档注释规范说明:
    • @author Lee Boynton代表作者
    • @version 1.2.1代表版本号
    • @see import java.util.Arrays;代表参见
    • @since JDK1.8代表JDK版本

二、字符串操作

  • 正则表达式"\d+\.?\d{1,2}"在匹配下列字符串时结果失败的是( )
    A.“12.5”
    B.“1.025”
    C.“0125”
    D.“125.00”
    【正确答案】B
    【答案解析】\d+表示可以出现 1 次或是n次数字;\. ?表示"."可以出现 1 次,也可以不出现;\d{1,2}表示最少出现 1 次 最多出现 2 次数字
  • Java 语言中,String类的indexOf()方法返回的类型是( )
    A.int16
    B.int32
    C.int
    D.long
    【正确答案】C
    【答案解析】indexOf方法的声明为:public int indexOf(int ch)在此对象表示的字符序列中第一次出现该字符的索引;如果未出现该字符,则返回-1
  • 下面代码的打印结果是
    String s1 = "abc";
    String s2 = "abc";
    System.out.println(s1 == s2);
    System.out.println(s1.equals(s2));
    
    A.true,true
    B.true,false
    C.false, false
    D.false,ture
    【正确答案】A
    【答案解析】此题目考查的是对于Java常量池的理解,Java中的常量池技术,是为了方便快捷地创建某些对象而出现的,当需要一个对象时,就可以从池中取一个出来(如果池中没有则创建一个),则在需要重复创建相等变量时节省了很多时间。常量池其实也就是一个内存空间,常量池存在于方法区中。根据代码顺序,先在常量池中创建”abc“,并指向s1,而后在创建s2时,由于常量池中已经存在”abc“,只需指向s2就可以,而不需要再创建。”==”在这里比较的是对象引用,故结果为trueString中的equals方法经过重写后操作为“比较此字符串与指定的对象。当且仅当该参数不为 null,并且是表示与此对象相同的字符序列的String对象时,结果才为true。很明显,s1s2的字符序列相同,故而结果为true
  • 关于java.lang.String类,以下描述正确的一项是( )
    A.String类是final类故不可以继承
    B.String类是final类故可以继承
    C.String类不是final类故不可以继承
    D.String类不是final类故可以继承
    【正确答案】A
    【答案解析】String类是final的,在 java 中final修饰类的不能被继承
  • System.out.println("5" + 2);的输出结果应该是()
    A.52
    B.7
    C.2
    D.5
    【正确答案】A
    【答案解析】因为5是字符串类型的不会和2进行+运算,会进行拼接
  • String为引用数据类型,引用类型数据成员的默认值为 null
  • String类型变量取值应为小写null或其他用""双引号括起来的内容
  • 已知如下代码:String s = "Example";下列选项中可以编译通过的是( )
    A.s>>>=3;
    B.s[3] = "X";
    C.int i = s.length;
    D.s = s +10;
    【正确答案】D
    【答案解析】选项A,移位运算需要整数类型才可以;选项B,s不是数组,数组才有length属性,字符串只有length()方法;选项C,String类有length()方法而不是属性;选项D,属于字符串拼接操作
  • 查看如下代码:
    String s = new String("hello");	
    String t = new String("hello");
    char c [ ] = {'h', 'e', 'l', 'l', 'o'}; 
    
    下列哪些表达式返回true( )
    A.s.equals(t);
    B.t.equals(c);
    C.s==t;
    D.t.equals (new String("hello"));
    【正确答案】A,D
    【答案解析】String类的equals方法已经覆盖了Object类的equals方法,比较的是两个字符串的内容是否相等,双等号比较的是两个对象的内存地址是否相等

三、Object

  • 以下关于hashCode说法正确的是( )
    A.两个对象如果hashCode值不同,则两个对象可能相同
    B.两个对象如果hashCode值相同,则两个对象必定相同
    C.两个对象如果hashCode值相同,则两个对象可能相同
    D.两个对象如果hashCode值不同,则两个对象必定不同
    【正确答案】C,D
    【答案解析】先通过hashcode来判断某个对象是否存放某个桶里,但这个桶里可能有很多对象,那么我们就需要再通过equals来在这个桶里找到我们要的对象
  • equals()方法用来判断字符串的内容是否相同
  • ==用来比较字符串对象的地址是否相同
  • =用来赋值

四、包装类

  • 下面代码的执行结果是( )
    import java.util.*;
    public class ShortSet {
    	public static void main(String args[]) {
    		Set<Short> s = new HashSet<Short>();
    		for(Short i = 0; i < 100; i++) {
      			s.add(i);
      			s.remove(i - 1);
    		} 
    		System.out.println(s.size());
    	}
    }
    
    A.1
    B.100
    C.Throws Exception.
    D.None of the Above.
    【正确答案】B
    【答案解析】ishort类型;i-1int类型,其包装类为Integer,所以s.remove(i-1);不能移除Set集合中short类型对象

五、集合框架

  • 如果要保证元素唯一,且按照存放顺序读取,可以选用 LinkedHashSet
  • 欲构造ArrayList类的一个实例,此类继承了List接口,下列哪个方法是正确的( )
    A.ArrayList myList = new Object();
    B.List myList = new ArrayList();
    C.ArraylList myList = new List();
    D.List myList = new List();
    【正确答案】B
    【答案解析】接口不能newObject对象不能直接转型成ArrayList类型
  • 以下哪个不是Collection的子接口( )
    A.List
    B.Set
    C.Map
    D.SortedSet
    【正确答案】C
    【答案解析】MapCollection是两个不同的接口,没有继承关系
  • 关于以下代码描述正确的有( )
    public class Cats {
    	public static void main(String args[]) {
    		List<Cat> cats = new ArrayList<Cat>();
    		cats.add(new Cat());
    	 	Animal b = new Animal();
    		Cat a = null;
    		if(b instanceof Animal) 
      			a = (Cat) b;
    		if(a != null) 
      			cats.add(a);
    		System.out.println(cats.size() + "cats");
    	}
    }
    class Animal {}
    class Cat extends Animal {}
    
    A.编译失败
    B.输出1 cats
    C.输出2 cats
    D.运行时抛出异常
    【正确答案】D
    【答案解析】a = (Cat)b;处抛出java.lang.ClassCastException异常,bAnimal类型,并且具体引用对象是Animal对象,不能强转成Cat类型
  • 下面哪个是链式存储并快速顺序(不需要随机访问)访问的集合类型( )
    A.java.util.LinkedList
    B.java.util.Queue
    C.java.util.ArrayList
    D.java.util.LinearList
    【正确答案】B
    【答案解析】考查集合队列的结构特点及元素的存取
  • Java的集合框架中重要的接口java.util.Collection定义了许多方法。选项中哪个方法不是Collection接口所定义的( )
    A.int size()
    B.boolean containsAll(Collection c)
    C.int compareTo(Object obj)
    D.boolean equals(Object o)
    【正确答案】C
    【答案解析】考查api文档手册
  • 关于集合类以下说法错误的是( )
    A.Vector是线程安全的
    B.ArrayList是线程安全的
    C.HashMap中可以存放null值作为key
    D.Set中存放的对象是唯一的
    【正确答案】B
    【答案解析】ArrayList不是线程安全的
  • 请选出下列正确的答案( )
    1.   import java.util.*;
    2.   public class WrappedString {
    3.     private String s;
    4.     public WrappedString(String s) { this.s = s; }
    5.     public static void main(String[] args) {
    6.       HashSet<Object> hs = new HashSet<Object>();
    7.       WrappedString ws1 = new WrappedString("aardvark");
    8.       WrappedString ws2 = new WrappedString("aardvark");
    9.       String s1 = new String("aardvark");
    10.      String s2 = new String("aardvark");
    11.      hs.add(ws1); hs.add(ws2); hs.add(s1); hs.add(s2);
    12.      System.out.println(hs.size()); 
    13. 	} 
    14.   }
    
    A.1
    B.4
    C.2
    D.3
    【正确答案】D
    【答案解析】HashSet集合里面存储的元素是无序的且不重复的,本题中的是s1s2两个对象在底层判断时返回的相关信息被视为相同元素,所以最终结果集合中值有3个元素
  • 下面代码的执行结果是( )
    import java.util.*;
    public class ShortSet {
    	public static void main(String args[]) {
    		Set<Short> s=new HashSet<Short>();
     		for(Short i=0;i<100;i++) {
      			s.add(i);
      			s.remove(i-1);
    		} 
    	System.out.println(s.size());
    	}
    }
    
    A.1
    B.100
    C.Throws Exception.
    D.None of the Above.
    【正确答案】B
    【答案解析】iShort类型i-1int类型,其包装类为Integer,所以s.remove(i-1);不能移除Set集合中Short类型对象

Map

  • HashSet子类依靠( )方法区分重复元素。
    A.toString(),equals()
    B.clone(),equals()
    C.hashCode(),equals()
    D.getClass(),clone()
    【正确答案】C
    【答案解析】HashSet内部使用Map保存数据,即将HashSet的数据作为Mapkey值保存,这也是HashSet中元素不能重复的原因。而Map中保存key值前,会去判断当前Map中是否含有该key对象,内部是先通过keyhashCode,确定有相同的hashCode之后,再通过equals方法判断是否相同
  • 以下哪个不是Collection的子接口?( )。
    A.List
    B.Set
    C.Map
    D.SortedSet
    【正确答案】C
    【答案解析】MapCollection是两个不同的接口,没有继承关系

File

  • 在Java中,"目录"被看作是()
    A.文件
    B.流
    C.数据
    D.接口
    【正确答案】A
    【答案解析】目录在Java中作为一种特殊文件,即文件名的列表,通过类File所提供的方法,可得到文件或目录的描述信息(包括名字、路径、长度、可读、可写等),也可以生成新文件、目录、修改文件和目录,查询文件属性,重命名文件或者删除文件

RandomAccessFile

  • RandomAccessFilejava.io包中的一个兼有输入输出功能的类。以下说法正确的是()
    A.可以选择文件中的任意位置开始操作
    B.必须从文件中的终止位置开始操作
    C.必须从文件中的起始位置开始操作
    D.必须从文件中的某个固定位置开始操作
    【正确答案】A
    【答案解析】文件操作中经常需要的是随机访问,Java中的RandomAccessFile类提供了随意访问文件的功能,它继承了Object类,用DataInputDataOutput接口来实现。接口中定义了从流中读/写基本类型的数据方法,因此也可以随意读/写数据文件的记录

I/O

  • FilterOutputStreamBufferedOutputStreamDataOutputStreamPrintStream的父类,以下哪个类可能是FilterOutputStream构造函数的参数类型( )
    A.OutputStream
    B.File
    C.InputStream
    D.BufferedOutputStream
    【正确答案】A
    【答案解析】请参考api文档手册
  • 流,最早从C语言中引入的。其可以看成是一个流动的数据缓冲区。数据从数据源方向经过缓冲区流向数据的目的地。在传送的过程中,其传送方式是串行的。在Java中的java.io包中定义了Java中常见流的接口与类。其中包括两个最基本的流的抽象类,它们分别是OutputStreamInputStream。其余的流都分别从这两个基本类中继承而来
  • OutputStream用于写操作;InputStream用于读操作且是抽象类不是接口;I/O支持对文件的读写
  • 下面哪个流类属于面向字符的输入流( )
    A.ByteArrayInputStream
    B.FileInputStream
    C.ObjectInputStream
    D.InputStreamReader
    【正确答案】D
    【答案解析】A、B、C选项,3个都是字节流

异常处理

  • 下列不是异常体系中Exception类包括的异常类的有( )
    A.Error
    B.NullPointerException
    C.SQLException
    D.InputMismathException
    【正确答案】A
    【答案解析】一个程序在编译和运行时出现的错误我们统一称之为异常; 一个合理的应用程序不能截获的严重的问题属于错误
  • getCustomerInfo()方法如下,try中可以捕获三种类型的异常,如果在该方法运行中产生了一个IOException,将会输出什么结果()
    public void getCustomerInfo() {
        try {
            // do something that may cause an Exception
        } catch (java.io.FileNotFoundException ex) {
            System.out.print("FileNotFoundException!");
        } catch (java.io.IOException ex) {
            System.out.print("IOException!");
        } catch (java.lang.Exception ex) {
            System.out.print("Exception!");
        }
    }
    
    A.IOException!
    B.IOException!Exception!
    C.FileNotFoundException!IOException!
    D.FileNotFoundException!IOException!Exception!
    【正确答案】A
    【答案解析】考察多个catch语句块的执行顺序。当用多个catch语句时,catch语句块在次序上有先后之分。从最前面的catch语句块依次先后进行异常类型匹配,这样如果父异常在子异常类之前,那么首先匹配的将是父异常类,子异常类将不会获得匹配的机会,也即子异常类型所在的catch语句块将是不可到达的语句。所以,一般将父类异常类即Exception总放在catch语句块的最后一个
  • 下列哪种异常是检查型异常,需要在编写程序时声明( )
    A.NullPointerException
    B.ClassCastException
    C.FileNotFoundException
    D.IndexOutOfBoundsException
    【正确答案】C
    【答案解析】A、B、D选项,3个异常都属于运行时异常
  • 下面关于java.lang.Exception类的说法正确的是()
    A.继承自Throwable
    B.继承自Serialable
    C.继承自Error
    D.以上说法均不正确
    【正确答案】A
    【答案解析】Java异常的基类为java.lang.Throwablejava.lang.Errorjava.lang.Exception继承ThrowableRuntimeException和其它的Exception等继承Exception
  • 下列选项中可以填写在’Point X’处的是()
    public class ExceptionTest {
    	class TestException extends Exception {}
     	public void runTest () throws TestException {}
    	public void test () /* Point X*/{
    		runTest ();
    	}
    }
    
    A.throws TestException
    B.catch (Exception e)
    C.throws RuntimeException.
    D.catch (TestException e).
    【正确答案】A
    【答案解析】方法上应使用throws抛出异常,test()方法中执行调用了runTest()方法,而runTest()方法抛出的是TestException异常
  • finalfinallyfinalize三个关键字的区别是()
    A.final是修饰符(关键字)可以修饰类、方法、变量
    B.finally在异常处理的时候使用,提供finally块来执行任何清除操作
    C.finalize是方法名,在垃圾收入集器将对象从内存中清除出去之前做必要的清理工作
    D.finally和finalize一样都是用异常处理的方法
    【正确答案】A,B,C
    【答案解析】finally是关键字不是方法
  • 关于异常(Exception),下列描述正确的是( )
    A.异常的基类为 Exception,所有异常都必须直接或者间接继承它
    B.异常可以用 try{ . . .}catch(Exception e){ . . .}来捕获并进行处理
    C.如果某异常继承 RuntimeException,则该异常可以不被声明
    D.异常可以随便处理,而不是抛给外层的程序进行处理
    【正确答案】A,B,C
    【答案解析】异常可以在自己方法内部处理,当自己无法解决时,需要抛出给调用者来处理

线程

  • run方法是线程的执行体
  • 关于线程设计,下列描述正确的是( )
    A.线程对象必须实现Runnable接口
    B.启动一个线程直接调用线程对象的run()方法
    C.Java提供对多线程同步提供语言级的支持
    D.一个线程可以包含多个进程
    【正确答案】C
    【答案解析】A. 线程对象也可以继承ThreadB. 启动线程需要调用start()方法 D. 一个进程可以包含多个线程
  • 下列程序的功能是在控制台上,每隔1秒钟显示字符串"Hello",能够填写在程序中下划线位置,使程序完整,并能够正确运行的语句是( )
    public class Test implements Runnable{
    	public static void main(String[] args){
    		Test t=new Test();
    		Thread tt=new Thread(t);
    	 	tt.start();
     	}
    	public void run(){
    		for(;;){
      			try{
        			__________
      			}catch(_________  e ){}
      			System.out.println(“Hello”);
     		} 
    	}
    }
    
    A.Thread. sleep (1000) InterruptedException
    B.sleep (1000) InterruptedException
    C.t. sleep (1000) InterruptedException
    D.Thread. sleep (1000) RuntimeException
    【正确答案】A
    【答案解析】睡眠需要调用Threadsleep方法,传入参数为一个long类型毫秒值,本题中要求间隔时间为1秒,所以需要传入1000毫秒作为参数。打断睡眠程序会抛出InterruptedException异常
  • 下列有关线程的说法正确的是( )
    A.启动一个线程是调用start()方法,是线程所代表的虚拟处理机处于可运行状态,这意味着线程此时就会立即运行。
    B.notify()方法可以确切的唤醒某个处于等待状态的线程。
    C.wait()方法可以使一个线程处于等待状态,但不会释放所持有对象的锁。
    D.sleep()方法使一个正在运行的线程处于睡眠状态,是一个静态方法,调用此方法时,需要捕捉InterruptedException异常。
    【正确答案】D
    【答案解析】线程调用start方法后不会立即运行此线程,而是将该线程处于就绪状态;notify方法不能确切唤醒某个整处于等待状态的线程,而是需要通过其他线程来调用该等待线程中的notify方法来唤醒该线程;wait方法会释放掉锁
  • 请选出正确的一项( )
    1. public class ThreadTest {
    2.   public static void main (String[] args) {
    3.     new Thread(new Runnable() {
    4.       public void run() {
    5.         System.out.print("bar");
    6.       }}).start();
    7.   }
    8. }
    
    A.Compilation fails.
    B.An exception is thrown at runtime.
    C.The code executes normally, but nothing prints.
    D.The code executes normally and prints “bar”.
    【正确答案】D
    【答案解析】此段代码使用的是匿名类的写法,线程执行时,所执行的内容是其执行计划中的内容,也就是run方法中所定义的逻辑
  • java Thread中,run方法和start方法的区别,下面说法错误的是?
    A.通过调用Thread类的start()方法来启动一个线程,这时此线程是处于就绪状态,并没有运行
    B.他们都可以实现了多线程运行
    C.run方法是thread的一个普通方法调用
    D.调用start方法后,一旦得到cpu时间片,就开始执行run()方法
    【正确答案】B
    【答案解析】两种方法的区别:
    1.start方法:用 start方法来启动线程,是真正实现了多线程, 通过调用Thread类的start方法来启动一个线程,这时此线程处于就绪(可运行)状态,并没有运行,一旦得到cpu时间片,就开始执行run方法。但要注意的是,此时无需等待run方法执行完毕,即可继续执行下面的代码。所以run方法并没有实现多线程
    2.run方法:run方法只是类的一个普通方法而已,如果直接调用run方法,程序中依然只有主线程这一个线程,其程序执行路径还是只有一条,还是要顺序执行,还是要等待run方法体执行完毕后才可继续执行下面的代码
  • suspend方法可以挂起一个线程,就是把这个线程暂停了,它占着资源,但不运行,用resume方法是恢复挂起 的线程,让这个线程继续执行下去
  • 以下哪一个是错误的( )
    A.public synchronized void go() { /* code here / }
    B.private synchronized(this) void go() { /
    code here / }
    C.void go() {
    Object o = new Object();
    synchronized(o) { /
    code here / }
    }
    D.synchronized(Object.class) { /
    code here */ }
    【正确答案】B
    【答案解析】如果在方法声明时给该方法加锁,只需要使用synchronized关键字来修饰该方法即可,不需要传入任何对象,只有在方法内部的某些代码块中才需要传入对象参数
  • 在主线程中启动新线程后,新线程处于就绪状态,那么新线程对象中的哪个方法被系统执行时,视为已经进入执行新线程的内容( )
    A.public void start()
    B.public void run()
    C.public static void main(Stirng[] args)
    D.public void runnable()
    【正确答案】B
    【答案解析】线程的执行计划是在run方法中的
  • 线程生命周期:新建状态、可运行状态、运行状态、阻塞状态和终止状态
  • 有关线程的哪些叙述是对的( )
    A.一旦一个线程被创建,它就立即开始运行。
    B.使用 start()方法可以使一个线程成为可运行的,但是它不一定立即开始运行。
    C.当一个线程因为抢先机制而停止运行,它被放在可运行队列的前面。
    D.一个线程可能因为不同的原因停止并进入就绪状态。
    【正确答案】B,D
    【答案解析】线程被创建后不可能立即开始运行。 不同优先级的线程间是抢先式的,同级线程间是轮转式的。 即使线程因为抢先而停止也不一定就进入可运行队列的前面。 而同级线程是轮换式的,它的运行可能就是因为轮换,而它因抢占而停止后只能在轮换队列中排队而不能排在前面
  • 下面能让线程停止执行的有( )
    A.sleep();
    B.stop();
    C.notify();
    D.wait();
    【正确答案】A,B,D
    【答案解析】sleep:导致此线程暂停执行指定时间; stop:这个方法将终止所有未结束的方法,包括run方法; wait:当前正在被服务的线程需要睡一会,醒来后继续被服务

XML解析

  • XML文档注释符号是<!-- -->
  • java解析XML文件四种方式:SAX、DOM、JDOM、DOM4J
  • XML元素必须遵循以下命名规则: 名称可以含字母、数字以及其他的字符; 名称不能以数字或者标点符号开始; 名称不能以字符 “xml”(或者 XML、Xml)开始; 名称不能包含空格; 可使用任何名称,没有保留的字词
  •   <?xml version="1.0" encoding="GB2312"?>
      <!ELEMENT Customer EMPTY>
      <!ATTLIST Customer 
      称呼 CDATA #IMPLIED 
      姓名 CDATA #REQUIRED 
      职位 CDATA #REQUIRED>
    
    关于上述DTD 定义的描述正确的是( )
    A.Customer 元素能包含子元素,并且能为空
    B.Customer 元素能包含文本,并且能为空
    C.Customer 元素不能包含文本,也不能包含子元素
    D.Customer 元素的所有实例的“称呼”属性必须有值,不能为空
    【正确答案】C
    【答案解析】EMPTY表示元素不能包含文本,也不能包含子元素; #IMPLIED属性可以没有值;#REQUIRED属性必须有值
  • 定义xml文档时通过命名空间来避免重复的命名
  • xml文档中实体符号是用&作为开头的
  • 定义xml文档时,通过encoding属性来指定字符集
  • SchemaDTD的相同之处有( )
    A.基于XML语法
    B.支持命名空间
    C.可扩展
    D.对XML文档结构进行验证
    【正确答案】D
    【答案解析】DTD不遵循XML语法;DTD不支持命名空间;DTD不可扩展
  • 下列选项中,哪一个是预定义实体?( )
    A.<
    B.&left;
    C.>
    D.&right;
    【正确答案】A,C
    【答案解析】表示>
  • 在XML中,下列关于DOM的叙述是正确的( )
    A.DOM是独立于开发语言和平台的,因此使用Visnal Basic、Java、Visual C++等开发工具使用的DOM编程API是一致的
    B.XML文档通过load方法被装载进内存后,在内存中形成一个DOM文档对象模型树
    C.通过DOM API,软件开发人员可以控制XML文档的结构和内容
    D.通过DOM在XML文档中只能按照顺序方式导航
    【正确答案】A,B,C
    【答案解析】选项D错误,SAX解析文档需要按照顺序,DOM可以随意
  • 以下说法符合xml语法规则的是( )
    A.标记头和标记末的大小写一致
    B.元素之间要正确的嵌套
    C.结束标记可有可无
    D.每个XML文档只能有一个根元素
    【正确答案】A,B,D
    【答案解析】XML语法规则: 必须有XML声明语句; 是否有DTD文件; 注意大小写; 给属性值加引号; 所有的标识必须有相应的结束标识; 所有的空标识也必须被关闭
  • 以下声明正确的是( )
    A.<xml-stylesheet type="txt/css" href="abc.css">
    B.<?xml-stylesheet type='txt/css' href='abc.css'?>
    C.<?xml-stylesheet type="txt/css" href="abc.css"?>
    D.<%xml-stylesheet type="txt/css" href="abc.css"%>
    【正确答案】B,C
    【答案解析】单引号,双引号都可以使用在属性上

进制

  • 二进制数左移一位相当于数位上的数值乘以2,右移一位相当于数位上的数值除以2
  • 阅读下列代码 :
    	public class Test{  
    		public static void main(String args[]){  
    			System.out.println(89 >>1)} 
    	}  
    
    其运行结果是 ()
    A.44
    B.45
    C.88
    D.90
    【正确答案】A
    【答案解析】89>>1相当于89X(1/2)取整
  • 已知如下代码片段:
  1. public class test {
  2. public static void main (String args[]) {
  3. int i = 0xFFFFFFF1;
  4. int j = ~i;
  5. }
    7.}
    当程序运行到第5行时, i 和 j 的值分别为多少( )
    A.–15
    B.0
    C.1
    D.14
    【正确答案】A,D
    【答案解析】0xFFFFFFF1为十六进制数,其转为二进制数为11111111 11111111 11111111 11110001,所对应的十进制数为-15"~"符号为取反操作,即将0、1对换,结果为00000000 00000000 00000000 00001110,该二进制数转为十进制数结果为14

api

  • 下列代码中,哪一项可以编译通过且正常运行出结果( )
    A.int foo = (int) Math.max(bar);
    B.int foo = (int) Math.min(bar);
    C.int foo = (int) Math.abs(bar);
    D.int foo = (int) Math.ceil(bar);
    【正确答案】C,D
    【答案解析】A,B两个选项方法使用错误,都是两个参数。
    abs方法是取bar的绝对值,ceil方法返回大于或者等于指定表达式的最小整数,即向上取整,本题中该值大于等于参数bar
    例如:
    Math.ceil(5.6) //6
    Math.ceil(-5.6) //-5
    
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值