Java常用API知识测试-B卷

Java常用API知识测试-B卷
Java常用API知识测试-B卷

常用API部分测试题

考试宣言:

同学们, 考试考多少分不是我们的目的! 排在班级多少的名次也不是我们的初衷!

我们考试的目的是要通过考试中的题目,检查大家在这段时间的学习中,是否已经把需要掌握的知识掌握住了,如果哪道题目你不会做,又或者做错了, 那么不用怕, 考完试后, 导师讲解的时候你要注意听! 那时候学会了, 记住了, 也一样不影响你高薪就业!

本套题共40道不定项选择题,其中单选30道,多选10道。单选2分/题,多选4分/题。多选题不全对半分,全对满分。

1.关于StringBuffer和StringBuilder说法正确的是( c )

a)StringBuffer和StringBuilder的方法不同

b)StringBuffer和StringBuilder都是线程安全的

c)StringBuffer是线程安全的,StringBuilder不是线程安全的

d)StringBuffer不是线程安全的,StringBuilder是线程安全的

2.下面哪个程序的运行结果是true( c )

a)System.out.println(“abc”.equals(“Abc”));

b)System.out.println(“”.equals(null));

c)System.out.println(“abc”==”ab”+”c”);

d)System.out.println(“”.equalsIgnoreCase(null));

3.下面代码”ibelieve”.lastIndexOf(…e?) 的运行结果是( d )

a) 2

b) 5

c)-1

d)7

4.StringBuffer类中的append()方法描述正确的是( ac )

a)向缓冲区追加字符串数据

b)将缓冲区中的字符串删除

c)append()方法返回值类型是StringBuffer类型

d)append()方法返回值类型是String类型

5.能切割字符串的方法是( c )

a)indexOf()

b)substring()

c)split()

d)trim()

6.截取字符串的方法是( d )

a)replace()

b)toString()

c)substr()

d)substring()

7.关于Math.PI说法正确的是( ab )

a)静态常量

b)被final修饰

c)Math.PI每次运行结果不一样

d)以上的说法都正确

8.下面程序运行的结果是( c )

String str = “abcdefg”;

str.substring(0,2);

System.out.println(str);

a)ab

b)abc

c)abcdefg

d)出现下标越界异常

9.下面程序的运行结果是( c )

public static void main(String[] args){ StringBuffer sb = new StringBuffer();

sb.append("qq").append("ww");

show(sb,"ss");

System.out.println(sb.length());

}

static void show(StringBuffer sb,String str){

sb.append(str);

}

a) 4

b) 2

c) 6

d)0

10.String类中的substring()方法描述正确的是( ab )

a)获取字符串中的一部分

b)返回新的字符串

c)返回新的字符串数组

d)此方法没有返回值

11.下面程序运行的结果是( d )

String str1= “1”, str2=”2”;

if(str1==str2)

System.out.println(“ABC”);

else if(str1

else

System.out.println(“GHJ”);

a)ABC

b)DEF

c)GHJ

d)编译失败

12.下面关于代码String str = new String(“abc”);描述正确的是( bc )

a)创建了一个字符串对象

b)创建了两个对象,一个是new String( )对象,一个是”abc”对象

c)str.equ als(“abc”);将返回true

d)str.equals(“abc”);将返回false

13.关于Integer类中的静态方法parseInt()方法说法正确的是( b )

a)将小数转换成整数

b)将数字格式的字符串转成整数

c)parseInt()方法永远不会抛出异常

d)将单个字符转成整数

14.将十进制数100转成二进制数用哪个方法( a )

a)toBinaryString()

b)toHexString()

c)intValue()

d)toOctalString()

15.String类中split()方法描述正确的是( ac )

a)切割字符串

b)返回一个新的字符串

c)返回一个新的字符串数组

d)此方法没有返回值

16.下面代码运行的结果是( c )

Integer x = 3 ; //自动装箱

x = x + 3; //自动拆箱

System.out.println(x);

a)编译失败

b)x3

c) 6

d)Null

17.System.getProperties()的作用是( a )

a)获取当前的操作系统的属性

b)获取当前JVM的属性

c)获取指定键指示的操作系统属性

d)获取指定键指示的JVM的属性

18.下面所有描述String类中equals()方法正确的是( abc )

a)equals()方式是覆盖Object类中的equals()方法

b)equals()比较字符串中的内容,区分大小写

c)equals()方法的的返回值是布尔类型

d)以上说法都不正确

19.可以获取绝对值的方法是( d )

a)Math.ceil()

b)Math.floor()

c)Math.pow()

d)Math.abs()

20.Math.random()说法正确的是( c )

a)返回一个不确定的整数

b)返回0或是1

c)返回一个随机的double类型数,该数大于等于0.0小于1.0

d)返回一个随机的int类型数,该数大于等于0.0小于1.0

21.Math.ceil(-12.5)运行结果是( d )

a)-13

b)-11

c)-12

d)-12.0

22.Math.floor(15.6)运行结果是( a )

a)15.0

b)15

c)16.0

d)16.6

23.在Random类中,可以生成100以内非负整数的随机数的方法是( c )

a)nextDouble()

b)nextFloat()

c)nextInt(100)

d)nextInt()

24.Date类中,哪个方法可以返回当前日期对象的毫秒值( b )

a)getSeconds()

b)getTime()

c)getDay()

d)getDate()

25.哪个方法可以将毫秒值转成日期对象( a )

a)Date类中的构造方法

b)Date类中的setTime方法

c)Date类中的getTime方法

d)SimpleDateFormat类中的format方法

26.可以获取当前日期毫秒值的方法是( ab )

a)Date d = new Date(); d.getTime();

b)long start = System.currentTimeMillis();

c)Calendar中的getTime();

d)DateFormat中的getTime()

27.DateFormat类中的parse()方法描述正确的是( c )

a)将毫秒值转成日期对象

b)格式化日期对象

c)将字符串转成日期对象

d)将日期对象转成字符串

28.Calendar类中的Day_OF_WEEK可以获取到( c )

a)年中的某一天

b)月中的某一天

c)星期中的某一天

d)月中的最后一天

29.下面程序的运行结果是( d )

String s1 = “abc”;

String s2 = new String(“abc”);

System.out.println(s1==s2);

String s3 = “你好吗”;

String s4 =”你”;

String s5 =”好吗”;

System.out.println(s3==(s4+s5))

a)true true

b)false true

c)true flase

d)false false

30.下面说法正确的是( acd )

a)字符串缓冲区是为了提高字符串的操作效率

b)StringBuilder是线程安全的

c)StringBuffer是线程安全的

d)String类的valueOf()方法可以将任意类型变成字符串

31.String类中的getBytes()方法的作用是( c )

a)将整数变成字符串

b)将字符串变成字符数组

c)将字符串变成字节数组

d)获取字符串中字符的个数

32.对字符串”ababcdabcdefg”使用indexOf(…a?)和lastIndexOf(…a?),的运行

结果是( d )

a)1,1

b)0,6

c)0,0

d)1,6

33.下面程序的运行结果是什么( a )

public static void main(String[] args){

String s1 = “abc”;

String s2 = “xyz”;

show(s1,s2);

System.out.println(s1+”-----”+s2);

}

static void show(String s1,String s2){

s1 = s2+s1+”Q”;

s2 = “W”+s1;

}

a)abc-----xyz

b)xyzabcQ-----xyzWabc

c)xyzabcQ---- xyzabcQWabc

d)xyzQ----Wabc

34.对字符串的说法正确的是( d )

a)字符串是基本数据类型

b)字符串值存储在栈内存中

c)字符串值初始化后可以被改变

d)字符串值一旦初始化就不会被改变

35.关于null和“”说法正确的是( abd )

a)null是常量

b)“”是字符串对象

c)null可以调用方法

d)“”可以调用方法

36.关于String类的indexOf说法不正确的是( cd )

a)返回指定字符在字符串中第一次出现的索引

b)返回指定子字符串在字符串第一次出现的索引

c)返回指定字符在字符串中最后一次出现的索引

d)返回指定子字符串在此字符串最后一次出现的索引

37.String类charAt()方法作用是 ( a )

a)返回指定索引处的字符

b)返回指定索引出的字符串

c)返回指定字符的索引

d)返回指定字符串的索引

38.将字符串转成字符数组的方法是( b )

a)toString()

b)toCharArray()

c)toUpperCase()

d)toLowerCase()

39.StringBuffer字符串缓冲区的初始容量是多少个字符( d )

a)10个

b)12个

c)14个

d)16个.

40.向字符串缓冲区中追加字符串,使用的方法是( c )

a)length()

b)delete()

c)append()

d)toString()

实验5 JAVA常用类

山西大学计算机与信息技术学院 实验报告 姓名学号专业班级 课程名称 Java实验实验日期成绩指导教师批改日期 实验5 JAVA常用类实验名称 一.实验目的: (1)掌握常用的String,StringBuffer(StringBuilder)类的构造方法的使用;(2)掌握字符串的比较方法,尤其equals方法和==比较的区别; (3)掌握String类常用方法的使用; (4)掌握字符串与字符数组和byte数组之间的转换方法; (5)Date,Math,PrintWriter,Scanner类的常用方法。 二.实验内容 1.二进制数转换为十六进制数(此程序参考例题249页9. 2.13) 程序源代码 import java.util.*; public class BinToHexConversion{ //二进制转化为十六进制的方法 public static String binToHex(String bin){ int temp; //二进制转化为十六进制的位数 if(bin.length()%4==0) temp = bin.length()/4; else temp = bin.length()/4 + 1; char []hex = new char[temp]; //十六进制数的字符形式 int []hexDec = new int[temp];//十六进制数的十进制数形式 int j = 0; for(int i=0;i=0&&dec<10) return (char)('0'+dec-0); else if(dec>=10&&dec<=15) return (char)('A'+dec-10); else return '@'; }

4. Java集合知识测试_B卷

集合部分测试题 本套题共40道,前30道为单选,后10道为多选。单选题2分/题,多选题4分/题。多选题不全对半分,全对满分。 单选题 1.LinkedList类的特点是( ) A.查询快 B.增删快 C.元素不重复 D.元素自然排序 2.关于迭代器说法错误的是( ) A.迭代器是取出集合元素的方式 B.迭代器的hasNext()方法返回值是布尔类型 C.List集合有特有迭代器 D.next()方法将返回集合中的上一个元素 3.单列集合的顶层接口是( ) A.java.util.Map B.java.util.Collection C.java.util.List D.java.util.Set 4.实现下列哪个接口,可以启用比较功能( ) A.Runnable接口 B.Iterator接口 C.Serializable接口

https://www.360docs.net/doc/dc4470310.html,parator接口 5.对于增强for循环说法错误的是( ) A.增强for循环可以直接遍历Map集合 B.增强for循环可以操作数组 C.增强for循环可以操作Collection集合 D.增强for循环是JDK1.5版本后出现的 6.下面代码运行的结果是( ) ArrayList al = new ArrayList(); al.add(true); al.add(123); al.add(“abc”); System.out.println(al); A.编译失败 B.[true,123] C.[true,123,abc]; D.[abc]; 7.将Map集合中的键存储到Set集合的方法是( ) A.entrySet() B.get() C.keySet() D.put() 8.ArrayList和Vector的区别说法正确的是( ) A.ArrayList是线程安全的,Vector是线程不安全 B.ArrayList是线程不安全的,Vector是线程安全的 C.ArrayList底层是数组结构,Vector底层是链表结构 D.ArrayList底层是链表结构,Vector底层是数组结构

Java基础知识测试

单选题:(每道题目2分) 1. 下列哪个声明是错误的?(B) A. int i=10; B. float f=1.1; C. double d=34.4; D. byte b=127; 2. 下面哪个不是java中的关键字?(C) A. public B. true C. main D. class 3. 下面程序哪个语句是正确的C A. byte a=0,b=3; byte c =a+b; B. short s =23; s=s+12; C. short s=23; s+=12; D. float f = 23+23.23; 4. 下面程序执行的结果是?(B) class Test { public static void main(String[] args) { System.out.println(“”+‘a’+1); } } A. 98 B. a1 C. 971 D. 197 5. 下面程序执行的结果是?(B) int i = 100 while(true) { if (i++ > 100) { break; } System.out.println(i); } A. 100 B. 101

C. 102 D. 报错 6. 下面程序的运行结果是 ( D ) int a=3, b=1; if(a==b) { System.out.println("a="+a); } A. a=1 B. a=3 C. 编译错误 D. 正常运行但没有输出 7. 下面程序的运行后,结果正确的是:B int a=1,b=2; int c=(a+b>3?a++:++b); A. a=2,b=3 B. a=1,b=3 C. a=1,b=2 D. c=2 8. 下面程序的运行结果B class Demo { public static int fun(int c) { return c+=2; } public static void main(String[] args) { int temp = fun(2); System.out.println(temp); } } A. 2 B. 4 C. 6 D. 8 9. 下面数组定义错误的是(c) A. int [] arr ={23,45,65,78,89}; B. int [] arr=new int[10] ; C. int [] arr=new int[4]{3,4,5,6};

5. Java_IO知识测试

IO 部分测试题 考试宣言: 同学们, 考试考多少分不是我们的目的! 排在班级多少的名次也不是我们的初衷! 我们考试的目的是要通过考试中的题目,检查大家在这段时间的学习中,是否已经把需要掌握的知识掌握住了,如果哪道题目你不会做,又或者做错了, 那么不用怕, 考完试后, 导师讲解的时候你要注意听! 那时候学会了, 记住了, 也一样不影响你高薪就业! 本套题共40道不定项选择题,其中单选30道,多选10道。单选2分/题,多选4分/题。多选题不全对半分,全对满分。 1.下列叙述中,正确的是 (C ) A. Reader是一个读取文本文件的接口 B. Reader是读取二进制数据文件的抽象类 C. Reader是一个读取文本文件的抽象类 D. Reader是读取二进制数据文件的一般类 2.下面关于IO流的说法正确的是( ABC ) A. IO流可以分为字节流和字符流 B. FileReader和FileWriter是专门用于读取和写入文本文件的 C. 顶层类有InputStream和OutputStream D. 顶层类有Reader和Writer,他们都是接口 3.FileReader类描述正确的是(B ) A. 字节输入流 B. 字符输入流 C. 打印流 D. 序列化流 4.下列关键字能和try一起使用的有( CD ) A. final

B. finalize C. finally D. catch 5.具有readLine()方法的类是( D ) A. FileWriter B. InputStreamReader C. FileReader D. BufferedReader 6.关于newLine()方法描述错误的是( C ) A. newLine()方法写入换行 B. newLine()方法会根据不同操作系统自动选择使用相应的换行符 C. newLine()方法是FileWiter类的方法 buffered D. newLine()方法是BufferedWriter类的方法 7.实现下列哪个接口,可以启用序列化功能( C ) A. Runnable接口 B. Comparable接口 C. Serializable接口 D. Comparator接口 8.以下关于java异常说法不正确的是(D )。 A. Throwable 类是 Java 语言中Error类和Exception类的父类。 B. 当异常对象是Exception类(或其子类)的实例时,能通过 Java 虚拟机或者 throw 语句抛出该异常对象,并能通过try…catch…finally处理。 C. jdk6(包括jdk6)之前,如果只用一个catch块捕捉多个异常对象,则catch 子 句中的参数类型应是所有存在的异常对象的父类。 D. 以上说法都不对。 9.字节输出流的抽象基类是( A ) A. OutputStream类 B. InputStream类 C. Writer类 D. Reader类 10.下面程序的运行结果是( D ) FileOutputStream fos = new FileOutputStream(“c:\\demo.txt”); fos.write(“abc”);字节流不能写入字符串

Java基础知识笔试题及答案2

1.Java中提供了名为()的包装类来包装原始字符串类型。 A.Integer B.Char C.Double D.String 2.https://www.360docs.net/doc/dc4470310.html,ng包的()方法比较两个对象是否相等,相等返回true。 A.toString()B.equals()C.compare()D.以上所有选项都不正确3.使用()方法可以获得Calendar类的实例。 A.get()B.equals()C.getTime()D.getInstance() 4.下面的集合中,()不可以存储重复元素。 A.Set B.Collection C.Map D.List 5.关于Map和List,下面说法正确的是()。 A.Map继承List B.List中可以保存Map或List C.Map和List只能保存从数据库中取出的数据 D.Map的value可以是List或Map 6.给定如下Java代码,编译运行的结果是()。 Import java.util.*; public class Test { public static void main(String[] args) { LinkedList list=new LinkedList(); list.add(“A”); list.add(2,”B”); String s=(String)list.get(1); System.out.println(s); }

A.编译时发生错误B.运行时引发异常C.正确运行,输出:A D.正确运行,输出:B ###############################################################3 3.所有异常的父类是()。 A.Error B.Throwable C.RuntimeException D.Exception 4.下列()操作不会抛出异常。 A.除数为零B.用负数索引访问数组 C.打开不存在的文件D.以上都会抛出异常 5.能单独和finally语句一起使用的块是()。 A.try B.throws C.throw D.catch 6.在多重catch块中同时使用下列类时,()异常类应该最后列出。 A.Exception B.ArrayIndexOutOfBoundsException C.NumberFormatException D.ArithmeticException 7.执行下面的代码会引发()异常。 String str=null; String strTest=new String(str); A.InvalidArgumentException B.IllegalArgumentException C.NullPointerException D.ArithmeticException 8.这段代码的输出结果是()。 try{ System.out.print(“try,“); return; } catch(Exception e){ System.out.print(“catch,“); } finally { System.out.print(“finally”);

Java常用类和方法面试题+答案

2015年12月20日18:25:21 Java常用类和方法重点总结 作者:数据分析玩家 1、简述Java中内存分配的问题 1>凡是new()出来的东西,都是在堆中进行分配的 2>局部变量【数据类型+变量名】都是在栈中进行分配的 3>静态变量【static】和字符串常量【“String”】都是在数据区进行分配的 4>方法【代码】都是在代码区进行存放的 2、简述Java中Object类的地位 1>Java中所有的类【自己定义的类以及Sun公司提供的类】都默认自动继承了Object类 2>Java中所有的类都从Object类中继承了toString()方法、hashCode()方法和equals()等方法 3、简述Object类中toString()方法的注意事项 1>toString()方法的返回值是一个字符串 2>toString()方法返回的是类的名字和该对象的哈希码组 成的一个字符串,即toString()方法返回的是该对象的字符串表示形式 3>在Java中System.out.println(类对象名)实际输出的是该对象的toString()方法返回的字符串,即括号中的内容等价于类对象名.toString(),toString方法的好处是在碰到

println方法的时候会被自动调用,不用显示的写出来 4>建议所有的子类都重写从Object类中继承过来toString 方法,否则toString方法的返回值没有什么实际含义 4、简述Object类中equals()方法的注意事项 1>equals方法的返回值为true或false 2>Object类中equals方法只有在两个对象是同一块内存区域时,即不但内容相同、地址还必须相同时才返回true,否则即便内容相同、如果地址不同只会返回false 3>重写Object类中的equals方法目的在于:保证只要两个对象的内容相同,equals方法就返回true 5、简述Object类中hashCode()方法的注意事项 1>哈希码原本指的是内存空间地址的十六进制表示形式 2>hashCode()方法返回的是该对象的哈希码、即该对象的真实内存地址的十六进制表示形式,但是重写完hashCode()方法之后,返回的不再是该对象真实内存地址的十六进制表示形式 6、学习Java中toString方法、equals方法、hashCode方法共同的一个注意事项 在Java中,凡是动态分配的内存都是没有名字的,而是将其地址赋给一个指针变量【引用】,用指针变量去代表这个事物,所以引用和动态分配的内存有本质上的区别,但是在学习Java中的toString方法、equals方法和hashCode方

4._Java集合知识测试

集合部分测试题 考试宣言: 同学们, 考试考多少分不是我们的目的! 排在班级多少的名次也不是我们的初衷! 我们考试的目的是要通过考试中的题目,检查大家在这段时间的学习中,是否已经把需要掌握的知识掌握住了,如果哪道题目你不会做,又或者做错了, 那么不用怕, 考完试后, 导师讲解的时候你要注意听! 那时候学会了, 记住了, 也一样不影响你高薪就业! 本套题共40道不定项选择题,其中单选30道,多选10道。单选2分/题,多选4分/题。多选题不全对半分,全对满分。 1.下列选项哪个正确(ac) a)对象数组是引用数据类型 b)对象数组是基本数据类型 c)对象数组存储的元素是引用数据类型 d)对象数组存储的元素是基本数据类型 2.下列选项关于集合和数组的区别说确的是(a) a)集合的长度是可变的,数组的长度是不可变的 b)集合的长度是不可变的,数组的长度是可变的 c)集合和数组都能存储基本数据类型和存储引用类型 d)集合只能存储基本数据类型,数组既能存储基本类型也能存储引用类型 3.Collection获取长度的方法是哪个(b ) a)length() b)size() c)add() d)iterator()

4.将集合转换成数组的方法是哪个(c ) a)toCharArray() b)getBytes() c)toArray() d)size() 5.iterator()方法的功能是什么(c ) a)获取集合对象 b)获取集合的长度 c)获取迭代器对象 d)获取集合中元素 6.并发修改异常的解决方案哪些正确( abc ) a)用普通for循环和get()可以解决并发修改异常 b)用列表迭代器可以解决并发修改异常 c)用迭代器可以解决并发修改异常 d)没有方法能解决并发修改异常 7.下列关于Vector说确的是(ad ) a)Vector是JDK1.0开始出现的 b)Vector是一个抽象类 c)Vector是一个接口 d)Vector后来被ArrayList取代了,但是某些老项目中还在延续使用 8.数组数据结构的特点是什么(ac ) a)增删慢 b)查询慢 c)查询快 d)增删快 9.下列描述ArrayList集合特点正确的是( bd) a)底层是链表数据结构 b)底层是数组数据结构 c)是线程安全的 d)是线程不安全的 10.列描述LinkedList集合特点正确的是( d ) a)底层是数组数据结构

实验一java基础知识

实验一:java基础知识 实验目的: 1.掌握jave中变量的类型。 2.掌握常用的运算符 3.程序流程控制:顺序,选择和分支 实验内容: 1、回文数: 编写一个Java程序。用户从键盘输入一个1-9999之间的数,程序将判断这个数是几位数,并判断这个数是否回文数。回文数是指该数含有的数字逆序排列后得到的数和原数相同。 实验类别:验证性 2、猜数字游戏 编写一个Java应用程序,实现如下功能: 程序随机分配给客户一个1-100之间的整数 用户在输入对话框中输入自己的猜测 程序返回提示信息,提示信息分别是:“猜大了”、“猜小了”、和“猜对了”用户可以根据提示信息再次输入猜测,直到提示信息是“猜对了” 实验类别:设计性 3、输出希腊字母表 为了输出希腊字母表,首先获取希腊字母表的第一个字母和最后一个字母在unicode表中的位置,然后使用循环输出剩余的希腊字母 要观察一个字符在uniclde表中的顺序位置 实验类别:设计性

实验二类和对象 实验目的: 1.理解类的基本概念。 2.掌握如何定义类,定义类的成员变量和成员方法.创建和使用对象。 3.掌握定义重载方法和构造方法,方法参数的传递。 4. static变量和方法的使用。 实验内容: 1、定义一个名为Rectangle的类表示矩形,其中含有length,width两个double型 的成员变量表示矩形的长和宽。要求为每个变量定义访问方法和修改方法,定义求矩形周长的方法peremeter和求面积的方法area。定义一个带参数构造方法,通过给出的长和宽创建矩形对象。定义默认构造方法,在该方法中调用有参构造方法,将矩形长宽设置为1.0。 实验类别:验证性 2、方法重载: 编写一个Java程序,反映方法重载的使用特点,该程序包含多个重载的加法的运算,如整型加法,实型加法。 实验类别:验证性 3、学生类的创建: 1)创建一个student类,包括的域有学号、班号、姓名、性别、年龄等 2)声明一个构造方法,以初始化对象的所有域 3)声明分别获得各属性(学号、班号、姓名、性别、年龄)的各个public方法。4)声明修改各属性(学号、班号、姓名、性别、年龄)的各个public方法。5)创建一个具体学生对象,进行输出。 实验类别:设计性 4、定义一个类,类中有两个整型变量x和y,并定义构造函数初始化这两个变量。(通过构造函数传数据,数据值自定) 类中还可定义以下方法: 求两个数的和(x+y)并返回结果,求两个数的差(x-y)并返回结果,求两个数商(x/y)并返回结果,求两个数的余数(x%y)并返回结果,求两个数的最大值并返回结果。 编写应用程序,测试上面定义的类,使用类中定义的各个方法并将其结果输出。实验类别:验证性 5、用set()、get()方法传递数据: 本工程共有三个类,Person类、Employee类、和Test类,其中Test类 为测试类,其中有main()方法。 调用的是默认的构造方法,参数为空。 实验类别:设计性

2019最新Java面试题,常见面试题及答案汇总

ava最新常见面试题+ 答案汇总 1、面试题模块汇总 面试题包括以下十九个模块:Java 基础、容器、多线程、反射、对象拷贝、Java Web 模块、异常、网络、设计模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Hibernate、Mybatis、RabbitMQ、Kafka、Zookeeper、MySql、Redis、JVM 。如下图所示: 可能对于初学者不需要后面的框架和JVM 模块的知识,读者朋友们可根据自己的情况,选择对应的模块进行阅读。 适宜阅读人群 需要面试的初/中/高级java 程序员 想要查漏补缺的人 想要不断完善和扩充自己java 技术栈的人 java 面试官 具体面试题 下面一起来看208 道面试题,具体的内容。 一、Java 基础 1.JDK 和JRE 有什么区别? 2.== 和equals 的区别是什么? 3.两个对象的hashCode()相同,则equals()也一定为true,对吗? 4.final 在java 中有什么作用? 5.java 中的Math.round(-1.5) 等于多少? 6.String 属于基础的数据类型吗? 7.java 中操作字符串都有哪些类?它们之间有什么区别? 8.String str="i"与String str=new String(“i”)一样吗? 9.如何将字符串反转? 10.String 类的常用方法都有那些? 11.抽象类必须要有抽象方法吗? 12.普通类和抽象类有哪些区别? 13.抽象类能使用final 修饰吗?

14.接口和抽象类有什么区别? 15.java 中IO 流分为几种? 16.BIO、NIO、AIO 有什么区别? 17.Files的常用方法都有哪些? 二、容器 18.java 容器都有哪些? 19.Collection 和Collections 有什么区别? 20.List、Set、Map 之间的区别是什么? 21.HashMap 和Hashtable 有什么区别? 22.如何决定使用HashMap 还是TreeMap? 23.说一下HashMap 的实现原理? 24.说一下HashSet 的实现原理? 25.ArrayList 和LinkedList 的区别是什么? 26.如何实现数组和List 之间的转换? 27.ArrayList 和Vector 的区别是什么? 28.Array 和ArrayList 有何区别? 29.在Queue 中poll()和remove()有什么区别? 30.哪些集合类是线程安全的? 31.迭代器Iterator 是什么? 32.Iterator 怎么使用?有什么特点? 33.Iterator 和ListIterator 有什么区别? 34.怎么确保一个集合不能被修改?

JAVA基础知识考核含答案

精品文档 JAVA基础知识考核题 班级:姓名:成绩: 一、选择题(80分,每题2分) 1.J ava编译器的命令是( D ) A.java B. appletviewer C. jdb D. javac 2. Java解释器的命令是( A ) A.java B. appletviewer C. jdb D. javac 3. Java开发人员使用的开发工具包是( C ) A.JVM B. JRE C. JDK D. Eclipse 4. 下列说法正确的是( B ) A. 使用Java语言开发的程序可以在任何平台下运行,且不需要JRE B. 使用Java语言开发的程序可以在任何平台下运行,但需要JRE C. Java虚拟机是独立的,JDK中不包含虚拟机 D. Java语言编译后是字节码文件,操作系统可直接执行 5. 下列全部是合法的Java标识符的是( B ) A. 09stu teacher $money B _salary post123 name C case abstract final D #ID list today 6. 程序中有如下语句 final float PI = 3.14f; 下列说法正确的是( C ) A PI 是一个变量,初始化的值是3.14. B 定义有错误,PI 是float类型3.14后不能加f C PI 是一个常量,其值是3.14 D 对PI可以重新赋值,如PI = 3.1415926; 7 下列初始化值正确的是(B )

A float score = 90.5; B boolean flag = false; C char 慮敭?尠张三; D boolean num = 1; 8. 有如下代码 . 精品文档 class ScopeVar { public static void main(String [ ] args) { int num = 10; if ( num = = 10) { int num1 = num * num; } num1 = num1+10; System.out.println(num1); } } 输出正确的是( D ) A 110 B 20 C 不确定 D 程序错误 9. 下面对Scanner 描述正确的是( C ) A Scanner类提供输入数据的方法,但只能输入字符串 B Scanner的使用方法:Scanner.next(); C 使用Scanner需要导入java.util.Scanner类 D 从键盘读取一个整数的方法 Scanner sc = new Scanner(); int num = sc.nextInt(); 10. 有String str1=hello; int num=100; 则对str1+100 说法正确的是( A ) A str1+100 的值是一个字符串hello100 B str1+100会产生语法错误,字符串不能和整数相加 C str1+100不会产生语法错误,最终的结果是100,str1的值被忽略掉 D str1+100不会产生语法错误,最终的结果是hello,100被忽略掉 11. 哪种方法返回String中的字符数( B ) A. size() B. length() C.width() D.girth() 12. 下面创建数组正确的是B A int[] int_array = int[10]; B int[] int_array = new int[10]; C int[] int_array = new int(10);

java中常用关键字总结

Java中的关键字总结 final 关键字 1、用final修饰的类不能被继承,没有子类; 2、用final修饰的方法,方法不能被重写; 3、用final修饰变量,变量的值不能被修改,表示常量,(书写规范:全部字母都要大写;多个单词,可以使用下划线(_)分开;) 注意:如果被final修饰的变量是一个引用类型的数据,那么通过这个引用改变堆空间中的数据,不会报错;如果被final修饰的变量是一个引用类型的数据,那么通过这个引用改变堆空间中的数据,不会报错; 4、final用于成员变量表示该成员变量为常量,不能被修改,必须在变量定义时赋值。 5、final用于局部变量表示该局部变量为常量,不能被修改,可以在变量定义时赋值,也可以先定义变量后赋值。 什么时候用final关键字? 有的时候不想别人重写我的方法就使用final关键字修饰该方法; static关键字 1、static用于成员变量表示该变量只有一份,也就是说静态成员变量属于类而不属于某个具体的类实例对象,所有的类实例对象共享这个静态成员变量;静态函数是不需要对象的,直接可以使用类名来调用; 2、非静态函数可以调用静态函数;静态函数不能调用非静态函数(非静态函数都是通过对象调用的);静态函数不能使用非静态成员变量,但可以使用静态成员变量; 3、静态函数调用时不需要对象的,所以不能使用和对象有关的关键字;(this;super;) 4、构造函数不能使用static修饰(构造函数是创建对象,开辟空间,给所有成员变量赋默认值之后,有JVM调用进栈,用来给对象的成员变量赋初始值的) static用于类,这里指的是内部类,那么在别的地方就可以通过外部类名来引用这个静态的内部类。 5、static还可以用于类的代码块,叫做静态代码块,静态代码块在类加载的时候就执行完毕,而类只加载一次;是在类中独立于类成员的static语句块,可以有多个,位置可以随便放,它不在任何的方法体内,JVM加载类时会执行这些静态的代码块,如果static代码块有多个,JVM将按照它们在类中出现的先

JAVA技术--Java基础知识常见考试题JAVA技术.doc

一、单选题 1.对类:(B) public class Test( //...do something } 下面那个正确地定义了类Test的构造函数。 A)public void Test() () B)publicTest()(} C ) public static Test() (} D) publicTest(); 2.下面哪个函数是public void example()(...)的重载函数。(A) A)public void example( float f)(...) B)public int example() (...) C)public void example2()(...} D)public int example_overLoad ()(...) 3.下面的代码段中,执行之后i和j的值是_C_。 int i = 1; intj; j = i++; A)1, 1 B) 1,2 C) 2, 1 D) 2,2 4.以下for循环的执行次数是_B o for(int x=0,y=0;(y !=0)&&(x<4) ;x++); A)无限次B) 一次也不执行 C)执行4次D)执行3次 5.下面程序的输出结果是—C o public class People( String name; int id; public People( String str, int n )( name = str; id = n; } public String toString(){ return id + " :” + name; } public String print()(

JAVA中常用类的常用方法

JAVA中常用类的常用方法 一、https://www.360docs.net/doc/dc4470310.html,ng.Object类 1、clone()方法 创建并返回此对象的一个副本。要进行“克隆”的对象所属的类必须实现https://www.360docs.net/doc/dc4470310.html,ng. Cloneable接口。 2、equals(Object obj)方法 ?功能:比较引用类型数据的等价性。 ?等价标准:引用类型比较引用,基本类型比较值。 ?存在特例:对、Date及封装类等类型来说,是比较类型及对象的内容而不考虑引用的是否为同一实例。 3、finalize()方法 当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。 4、hashCode()方法返回该对象的哈希码值。 5、notify()方法唤醒在此对象监视器上等待的单个线程。 6、notifyAll()方法唤醒在此对象监视器上等待的所有线程。 7、toString()方法 返回该对象的字符串表示。在进行String与其它类型数据的连接操作时,自动调用toString()方法。可以根据需要重写toString()方法。 8、wait()方法 在其他线程调用此对象的notify() 方法或notifyAll() 方法前,导致当前线程等待。 二、字符串相关类 l String类 charAt(int index) 返回指定索引处的char 值。 compareTo(String anotherString) 按字典顺序比较两个字符串。 compareToIgnoreCase(String str) 按字典顺序比较两个字符串,不考虑大小写。 concat(String str) 将指定字符串连接到此字符串的结尾。 endsWith(String suffix) 测试此字符串是否以指定的后缀结束。 equals(Object anObject) 将此字符串与指定的对象比较。 equalsIgnoreCase(String anotherString) 将此String 与另一个String 比较,不考虑大小写。indexOf(int ch) 返回指定字符在此字符串中第一次出现处的索引。 indexOf(String str) 返回第一次出现的指定子字符串在此字符串中的索引。 lastIndexOf(int ch) 返回指定字符在此字符串中最后一次出现处的索引。 length() 返回此字符串的长度。 replace(char oldChar, char newChar) 返回一个新的字符串,它是通过用newChar 替换此字符串中出现的所有oldChar 得到的。split(String regex) 根据给定正则表达式的匹配拆分此字符串。 startsWith(String prefix) 测试此字符串是否以指定的前缀开始。 substring(int beginIndex) 返回一个新的字符串,它是此字符串的一个子字符串。该子字符串始于指定索引处的字符,一直到此字符串末尾。 substring(int beginIndex, int endIndex) 返回一个新字符串,它是此字符串的一个子字符串。该子字符串从指定的beginIndex 处开

Java基础知识测试__A卷_答案讲解

考试宣言: 同学们, 考试考多少分不是我们的目的! 排在班级多少的名次也不是我们的初衷! 我的考试的目的是要通过考试中的题目,检查大家在这段时间的学习中,是否已经把需要掌握的知识掌握住了,如果哪道题目你不会做,又或者做错了, 那么不用怕, 考完试后, 导师讲解的时候你要注意听! 那时候学会了, 记住了, 也一样不影响你高薪就业! 本套题共40道不定项选择题,其中单选30道,多选10道。单选2分/题,多选4分/题。多选题不全对半分,全对满分。 1.下面说法正确的是() A. JVM就是Java虚拟机,包含java核心类库// JRE: JVM+Java library。 B. JRE就是java运行环境,包含java程序编译运行的工具环境// JDK:JRE+Tools C. JDK就是java开发环境,javac是其中的一个工具 D. 功能范围:JDK > JVM > JRE 2.下面的说法正确的是( ) A. Java 语言是面向对象的、解释执行的网络编程语言。 B. Java 语言具有可移植性,是与平台无关的编程语言。 C. Java 语言可对内存垃圾自动收集。 D. Java 语言编写的程序虽然是“一次编译,到处运行”,但必须要java的运行环境。 3.给定java代码,如下: public byte count(byte b1, byte b2){ return ____; }

要使这段代码能够编译成功,横线处可以填入 A. (byte)(b1-b2) //返回值类型为byte,要求选项结果为byte B. b1-b2 C. (byte)b1+b2 D. (byte)b1/b2 4.关于类的命名,正确说法是() A. 可以由数字和英文拉丁字母组成,且可以任意排序//数字不能开头 B. 命名要做到见名知意 C. 如果是由多个单词组成,每个单词首字母大写 D. 可以是Java已经定义过的关键字//囧 5.关于main方法说法错误的是() A.main方法是java程序执行的入口 B.main方法的方法体重至少要有一行代码//可以没有代码 C.main必须定义在一个类中 D. main方法的定义格式为:public static void main(String[] args){} 6.类中某方法定义如下: double fun(int a,int b){ return a*1.0/b; } 同一类内其它方法调用该方法的正确方式是: A. double a = fun(1,2); B. double a = fun(1.0,2.0); C. int x = fun(1,2); D. int x = fun(1.0,2.0); 7.给定java代码,如下,编译运行,结果是() public static void main(String[] args){ boolean flag; System.out.println(“flag”+flag); //局部变量需要先初始化再使用} A. 编译错误 B. 编译通过,单出现运行时错误 C. 正常运行,输出flag=false D. 正常运行,输出flag= 8.下面哪个关键字可以定义一个类()

实验5Java常用类(一)

实验5 Java类库和常用类(一) 一. 实验目的及实验环境 1理解类库的概念,掌握分析、应用类库中的类的方法。 2熟练掌握Math类的常用方法。熟悉Random类的常用方法。 3理解String类的特性,熟练掌握String类的常用方法。 4能用Date类创建对象,熟练掌握Date类的常用方法。 5熟练掌握SimpleDateFormat解析日期和设置日期输出格式。 6学会查阅Java API在线参考文档和离线文档的方法。 二. 实验内容 1 基本内容(实验前请及时熟悉如下相关内容) 1)练习使用Math类的常用方法。 2)应用String类编程练习。 3)编写程序应用Random类生成随机数。 4)练习使用Date类的常用方法。 5)查阅Java API在线参考文档和下载Java API离线文档。 示例1. 应用SimpleDateFormat类的程序示例如下,共同学们模仿参考。 import java.text.*; import java.util.Date; public class FormatDateTime { public static void main(String[] args) { SimpleDateFormat myFmt = new SimpleDateFormat("yyyy年MM月dd日 HH 时mm分ss秒"); SimpleDateFormat myFmt1 = new SimpleDateFormat("yy/MM/dd HH:mm"); SimpleDateFormat myFmt2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");// 等价于now.toLocaleString() SimpleDateFormat myFmt3 = new SimpleDateFormat("yyyy年MM月dd日 HH 时mm分ss秒 E "); SimpleDateFormat myFmt4 = new SimpleDateFormat("一年中的第 D 天一年中第w个星期一月中第W个星期在一天中k时 z时区"); Date now = new Date();//当前时间 System.out.println(myFmt.format(now)); System.out.println(myFmt1.format(now)); System.out.println(myFmt2.format(now)); System.out.println(myFmt3.format(now)); System.out.println(myFmt4.format(now)); System.out.println(now.toGMTString());//The method toGMTString() from the type Date is deprecated. System.out.println(now.toLocaleString()); System.out.println(now.toString()); } }

java常用类知识点总结

java常用类知识点总结 Java常用类 要求: 1、掌握String和StringBuffer的区别,可以熟练使用String和StringBuffer的各 种方法进行相关操作。 2、能够自己编写一个得到日期的操作类,并将日期进行格式化操作。 3、掌握比较器及其基本原理,并可以通过比较器进行对象数组的比较操作。 4、掌握对象克隆技术及其实现 5、能够灵活应用正则表达式对字符串的组成进行判断 6、掌握Math、Random、基本数据类型的包装类的使用 7、描述出Object System对垃圾收集的支持 8、使用NumberFormat、DecimalFormat、BigInteger、BigDecimal进行数字的操 作 String和StringBuffer String的内容一旦声明不可改变,如果要改变,改变的是String的引用地址,如果一个字符串要经常改变,必须使用StringBuffer。 在一个字符串内容需要频繁修改时,使用StringBuffer可以提升操作性能,因为StringBuffer内容可以改变,而String内容不可改变。StringBuffer支持的方法大部分与String类似。 StringBuffer常见用法: (1) 字符串的连接操作

String类可以通过“+“进行字符串的连接,而StringBuffer中却只能使用append方法进行字符串的连接,而且此方法返回一个StringBuffer类的实例,这样就可以采用代码链的形式一直调用append方法。 (2) 在任意位置处为StringBuffer添加内容 可以使用insert方法在指定位置上为StringBuffer添加内容 字符串的反转操作(较为常见的操作,使用reverse方法) (3) 替换指定范围的内容 replace方法可对指定范围的内容进行替换。在String中如果要替换,使用的是replaceAll (4) 字符串截取(使用subString方法从指定范围中截取内容) (5) 删除指定范围的字符串(使用delete方法删除指定范围内容) (6) 查找指定内容是否存在(indexOf查找指定内容,查找到返回内容的位置, 没查到返回-1) 问题:(1)String s = "Hello";s = s + " world!";这两行代码执行后,原始的String对象中的内容到底变了没有, 没有。因为String被设计成不可变(immutable)类,所以它的所有对象都是不可变对象。在这段代码中,s原先指向一个String对象,内容是 "Hello",然后我们对s进行了+操作,那么s所指向的那个对象是否发生了改变呢,答案是没有。这时,s不指向原来那个对象了,而指向了另一个 String对象,内容为"Hello world!",原来那个对象还存在于内存之中,只是s这个引用变量不再指向它了。通过上面的说明,我们很容易导出另一个结论,如果经常对字符串进行各种各样的修改, 或者说,不可预见的修改,那么使用String来代表字符串的话会引起很大的内存开销。因为 String对象建立之后不能再改变,所以对于每一个不同的字符

相关文档
最新文档