黑马就业班java测试题
2023黑马java相关面试题
2023黑马java相关面试题2023黑马Java相关面试题Java基础•Java的特点有哪些?•什么是Java的封装、继承和多态?•Java中的抽象类和接口有何区别?•Java中的异常处理机制是什么样的?•说一下Java中的四种访问权限修饰符及其作用。
•什么是Java中的重载和重写?•什么是Java中的静态变量和静态方法?•什么是Java中的集合框架?它的常用类有哪些?•Java中如何实现线程同步?•Java中的反射机制是什么?数据库•什么是数据库的三大范式?请列举各自的要求。
•什么是事务?如何保证数据库的事务安全?•什么是数据库的索引?索引有什么优缺点?•什么是数据库的触发器和存储过程?•请介绍一下SQL语句中的JOIN操作。
•数据库中的连接池是什么?如何实现连接池的管理?•什么是数据库的事务隔离级别?各个级别有什么区别?•如何进行数据库的优化?Spring框架•请介绍一下Spring框架的特点和优势。
•Spring框架中的IOC和AOP是什么?各自的作用是什么?•Spring中的Bean的作用域有哪些?它们之间有何区别?•什么是Spring事务管理?它的底层原理是什么?•如何实现Spring框架中的注解配置?•Spring中的MVC是什么?请简要描述其工作原理。
•什么是Spring Boot?它的主要特点是什么?•Spring框架中的依赖注入有哪些方式?Web开发•请介绍一下HTTP协议的基本原理和特点。
•什么是Servlet和JSP?它们之间有何区别?•说一下Servlet中的请求转发和重定向。
•什么是Cookie和Session?它们之间有何区别?•请介绍一下RESTful API的概念和特点。
•什么是前后端分离?如何实现前后端分离开发?•请简要描述MVC模式在Web开发中的应用。
•前端开发中常用的HTML、CSS和JavaScript框架有哪些?数据结构与算法•请介绍一下常见的数据结构,如数组、链表、栈、队列等。
黑马训练营入学测试题
黑马训练营入学测试题黑马训练营入学测试题共50道题,每道题2分,总分100分,80分为合格。
注意,所有题目均为多项选择题。
1.在JAVA中,下列哪些说法是正确的()A.java源文件的扩展名为.javaB.写好的java源程序可以直接运行C.编写的源程序必须先编译后才能运行D.程序员可以读懂扩展名为.class的文件2.在java中,关于数组描述正确的是()A.数组中的索引下标从1开始B.存储在数组当中的数据都属于同一数据类型C.通过数组名.length()能获得数组的长度D.数组的最大索引下标是数组的长度减13.下列标识符哪个是合法的()A.classB.$abcC.1234D._name4.下面程序的输出结果是什么( )int[] arr = new int[10];System.out.println(arr[0]);A.编译不通过B.运行时出错C.输出nullD.输出05.下面哪些赋值语句是正确的?( )A. long test = 012;B. float f = -412;C. int other = (int) true;D. double d = 0x12345678;E. byte b = 128;6.下面哪个语句正确地声明一个整型的二维数组( )A. int a[][] = new int[][];B. int b[10][10] = new int[][];C. int c[][] = new int[10][10];D. int []d[] = new int[10][10];7.下面哪些函数是public void aMethod(){...}的重载函数?( )A. void aMethod( ){...}B. public int aMethod(int a, float b){...}C. public void aMethod (){...}D. public float aMethod (int m){…}8.下列代码运行的结果是( )public static void main(String[] args) {int x = 4;int y = 5;if(x++>4 & ++y>5) {x++;}System.out.println("x=" + x + ",y=" + y);}A. x=4,y=5B. x=4,y=6C. x=5,y=6D. x=6,y=69.尝试运行下面的代码会发生什么?( )public class Test {public static void main(String[] args) {boolean m = true;if (m = false) {System.out.println("true");} else {System.out.println("false");}}}A. 输出字符串”true”B. 输出字符串”false”C. 编译时错误D. 运行时错误10.在Java中,下列语句不能通过编译的有( )A. String s= “join”+ 3;B. int a= “join”+3;C. int a= …a?+5;D. float f=5+5.5;11.设 a = 3,则表达式 (--a )<<a的结果是()< bdsfid="137" p=""></a的结果是()<>A. 16B. 8C. 24D. 1212.下面关于java中包的说法正确的是( )A. 在java中可以使用import语句导入包B. 在java中可以使用package语句导入包C. 位于同一个包中的类,不需要导包就可以直接访问D. 不同的包中可以出现类名相同的类13.以下代码段的输出结果是?( )public class MyClass{public static void main(String argv[]){int i;int j;outer: for (i = 1; i < 3; i++)inner: for(j = 1; j < 3; j++) {if (j == 2)continue outer;System.out.println("Value for i = " + i + " Value for j = " +j); }}}A. Value for i = 1 value for j = 1B. Value for i = 2 value for j = 1C. Value for i = 2 value for j = 2D. Value for i = 3 value for j = 114.编译并运行以下代码将发生什么?()public static void main(String args[]){ char digit = 'a';for (int i = 0; i < 10; i++){switch (digit){case 'x' :{int j = 0;System.out.println(j);}default :{int j = 100;System.out.println(j);}}}int i = j;System.out.println(i);}A. 输出11次100B. 输出10次100,然后抛出运行期异常C. 编译错误,因为变量i不能在main() 方法中被声明2次D. 编译错误,因为变量j不能在main() 方法中被声明2次E. 以上都不对15.下列关于 html 的说法哪些是正确的? ( )A. Html就是超文本标记语言的简写,是最基础的网页语言B. Html代码不用区分大小写C. Html 是由 xml 发展而来的D. Html中所有的标签都必须要有开始标签和结束标签16.在Java中,用来跳出循环的关键字为( )A. returnB. continueC. breakD. exit17.下列关于 tcp 协议的描述正确的有( )A. tcp协议是sun公司制定的协议B. tcp是基于ip协议的一种连接协议C. tcp协议面向无连接D. tcp协议面向连接18.在web页面中,经常需要使用javascript进行表单验证,现假设对用户名的限定为字母数字或下划线,以下的正则表达式哪些可以完成这样的限定?()A. [a-z0-9_]B. \wC. [a-zA-Z0-9_]D. \W19.下列关于接口的说法正确的是( )A. 接口中所有的方法都是默认抽象的B. 接口是一种特殊的java类,所以也可以定义构造函数C. 接口中的方法前面必须要加上publicD. 一个类只能extends继承一个父类,但是可以实现多个接口20.运行以下代码片段,输出结果是?()class X {Y b = new Y();X() {System.out.print("X");}}class Y {Y() {System.out.print("Y");}}public class Z extends X {Y y = new Y();Z() {System.out.print("Z");}public static void main(String[] args) {new Z();}}A. ZB. YZC. XYZD. YXYZ21.下面程序的输出结果是什么( )Set set= new HashSet();set.add("aaa");set.add("bbb");set.add("aaa");System.out.println(set.size());A. 编译不通过B. 运行时出错C. 输出3D. 输出222.下列选项中关于Java中super关键字的说法正确的是()A. super关键字是在子类对象内部指代其父类对象的引用。
Java常用API知识测试 黑马
常用API部分测试题考试宣言:同学们, 考试考多少分不是我们的目的! 排在班级多少的名次也不是我们的初衷!我们考试的目的是要通过考试中的题目,检查大家在这段时间的学习中,是否已经把需要掌握的知识掌握住了,如果哪道题目你不会做,又或者做错了, 那么不用怕, 考完试后, 导师讲解的时候你要注意听! 那时候学会了, 记住了, 也一样不影响你高薪就业!本套题共40道不定项选择题,其中单选30道,多选10道。
单选2分/题,多选4分/题。
多选题不全对半分,全对满分。
1.下列关于Scanner类描述错误的是( )a)一个可以使用正则表达式来解析基本类型和字符串的简单文本扫描器。
b)Scanner只能从键盘扫描数据c)Scanner可以从很多源(文件,键盘)中获取数据d)Scanner类不可以被继承2.下列程序的输出结果是( )class Demo {publicstaticvoid main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println(sc.nextInt()+" "+sc.nextLine());}}从键盘录入:20回车a)20 \r\nb)20c)20 \nd)抛出异常3.关于String类的描述错误的是( )a)字符串是常量b)字符串的值在创建后不可修改c)字符串常量会放在常量池中存储d)S tring str=”abc”,str的引用不可改变4.String s1 = "ab"; String s3 = s1 + "c";创建了几个对象( )a) 2b) 3c) 4d) 55.下列程序的输出结果是( )class Demo {publicstaticvoid main(String[] args) {String s1 = new String("abc");String s2 = "abc";System.out.println(s1 == s2);System.out.println(s1.equals(s2));}}a)true falseb)false falsec)truetrued)false true6.判断一个字符串是否包含另一个字符串使用的方法是( )a)contains(String str)b)startsWith(String str)c)concat(String str)d)equals(Object obj)7.关于null和“”说法正确的是( )a)null是常量b)“”是字符串对象c)null可以调用方法d)“”可以调用方法8.返回指定字符在此字符串中第一次出现处的索引使用的方法是( )a)intindexOf(intch)b)intindexOf(String str)c)intindexOf(intch,intfromIndex)d)intindexOf(String str,intfromIndex)9.String类中能够将字符串转成字符数组的方法( )a)toCharArray()b)charArray(String str)c)toCharArray(String str)d)charArray();10.String类中的valueOf方法的作用是( )a)将整数变成字符串b)将字符串转换成整数c)把任意类型的数据转换成字符串d)将字符串转换成任意类型数据11.补全下列代码( )把数组中的数据按照指定个格式拼接成一个字符串,最终结果为"[1, 2, 3]"publicstaticvoid main(String[] args) {int[] arr = { 1, 2, 3 };String s = "[";for (int i = 0; i < arr.length; i++) {if (i ==____) {s = s + arr[i] + ___;} else {s = s + arr[i] + ___;}}}a)arr.length-1 “]” “,”b)arr.length “]” “,”c)arr.length “]” “,”d)arr.length-1 “]” “, ”12.String类中trim()方法作用( )a)去除字符串中的空白b)去除字符串首端的空白c)去除字符串尾端的空白d)去除字符串两端的空白13.StringBuffer类当中的哪个方法可以获取StringBuffer对象的理论容量( )a)capacity()b)length()c)size()d)length14.以下哪个是向StringBuffer对象末尾追加数据的方法( )a)add()b)insert()c)append()d)in()15.以下哪方法可以删除StringBuffer对象的指定字符( )a)deletes()b)deleteCharAt(int index)c)getCharAt(int index)d)deleteChar (int index)16.以下可以删除StringBuffer对象指定区间字符的方法是( )a)public StringBuffer delete(int start,int end)b)public StringBuffer delete(int start)c)public StringBuffer deleteCharAt(int start,int end)d)public StringBuffer delete(int delete)17.以下可以替换StringBuffer对象指定区间字符的方法是( )a)public StringBuffer replace(int start,int end)b)public StringBuffer replace(String str)c)public StringBuffer replace(int start,int end,String str)d)public StringBuffer replace(String start,String end)18.可以将StringBuffer从指定位置截取到末尾的方法是? ( )a)substring(String start)b)substring(int start)c)substring(int start,int end)d)substring(String start,String end)19.可以将一个StringBuffer对象转换成String的方式,哪些是正确的( )a)通过StringBuffer的构造方法b)通过String的构造方法c)通过toString()方法d)通过subString(0,length)20.以下描述正确的是( )a)String是一个不可变的字符序列b)StringBuffer,StringBuilder是可变的字符序列c)StringBuffer是jdk1.0版本的d)StringBuffer线程不安全21.关于Arrays工具类中的toString(int a)方法描述正确的是( )a)将字符串转数组b)方法是静态的c)将数组转换成字符串d)以上说法都不对22.基本数据类型的包装类一共有几个( )a) 1b) 2c) 6d)823.关于自动装箱,自动拆箱描述正确的是? ( )a)自动装箱:把包装类类型转换为基本类型b)自动拆箱:把基本类型转换为包装类类型c)自动装箱:把基本类型转换为包装类类型d)自动拆箱:把包装类类型转换为基本类型24.以下代码1 2的位置运行结果是( )Integer i5 = 127;Integer i6 = 127;System.out.println(i5 == i6); 1System.out.println(i5.equals(i6)); 2System.out.println("-----------");a)false trueb)true falsec)true trued)false false25.关于StringBuffer和StringBuilder说法正确的是( )a)StringBuffer和StringBuilder的方法不同b)StringBuffer和StringBuilder都是线程安全的c)StringBuffer是线程安全的,StringBuilder不是线程安全的d)StringBuffer不是线程安全的,StringBuilder是线程安全的26.下面程序的运行结果是( )publicstaticvoid main(String[] args) {StringBuffer sb = new StringBuffer();sb.append("qq").append("ww");show(sb, "ss");System.out.println(sb.length());}staticvoid show(StringBuffer sb, String str) {sb.append(str);}a) 4b) 2c) 6d)027.关于Integer类中的静态方法parseInt()方法说法正确的是( )a)将小数转换成整数b)将数字格式的字符串转成整数c)parseInt()方法永远不会抛出异常d)将单个字符转成整数28.可以获取绝对值的方法是( )a)Math.ceil()b)Math.floor()c)Math.pow()d)Math.abs()29.Math.random()说法正确的是( )a)返回一个不确定的整数b)返回0或是1c)返回一个随机的double类型数,该数大于等于0.0小于1.0d)返回一个随机的int类型数,该数大于等于0.0小于1.030.Math.ceil(-12.5)运行结果是( )a)-13b)-11c)-12d)-12.031.Date类中,哪个方法可以返回当前日期对象的毫秒值( )a)getSeconds()b)getTime()c)getDay()d)getDate()32.哪个方法可以将毫秒值转成日期对象( )a)Date类中的构造方法b)Date类中的setTime方法c)Date类中的getTime方法d)SimpleDateFormat类中的format方法33.DateFormat类中的parse()方法描述正确的是( )a)将毫秒值转成日期对象b)格式化日期对象c)将字符串转成日期对象d)将日期对象转成字符串34.正则表达式中[0-9]描述正确的是? ( )a)0至9数字出现一次b)0至9数组出现任意次数c)不能出现数字d)只能出现0或935.System.currentTimeMillis方法的作用是( )a)返回值是long类型b)获取日期对象c)获取当前时间的毫秒值d)返回的是一个字符串36.对于Date描述错误的是( )a)它是接口b)它是抽象类c)不需要使用多态可以直接创建Date类对象d)Date中重写了equals()方法37.Date类中getTime()方法描述正确的是( )a)返回值类型longb)获取日期对象c)获取的是一个毫秒值d)以上都不对38.对于Calendar描述正确的是( )a)是个抽象类b)是个接口c)它里面包含了日历字段d)以上都不对39.Calendar当中对add()方法描述正确的是( )a)向数组中添加数据b)向集合中添加数据c)为给定的日历字段添加或减去指定的时间量d)以上都不对40.Calendar当中对set()方法描述正确的是( )a)设置毫秒值b)设置日期对象c)设置日历字段的值d)以上都不对。
黑马Java基础入学测试题_
考试题目 :本试卷是 JAVA 基础班入学考试试卷,主要考察 JAVA 基础前五 天大家在入学之前掌握的一个整体情况,本试卷共有 40 道题,其中 有 30 道是单选,有 10 道题是多选题,希望大家认真对待1.Sun 公司对 Java 语言的宣传口号为“一次编程,到处执行” ,体现了 Java 的什么特性 B A:编程的简单性B:与平台无关性C:Java 的面向对象特性D:Java 程序的鲁棒性2. Java 平台有三个版本,分别是 javaSE 、 JavaME 、 javaEE ,下列说法不正确的是 BA. javaSE 是指 Java 语言的标准版B. javaME 是指 Java 语言的标准版C. javaEE 是指企业级的 Java 开发语言,是为企业提供服务的D. javaME 是为机顶盒、移动电话和 PDA 之类嵌入式消费电子设备提供的 Java 语言平台, 包括虚拟机和一系列标准化的 Java API.3. 想要运行 Java 程序,必须得先通过A. javaw 工具编译 javac 工具运行B. java 工具编译 javac 工具运行C. javac 工具编译 java 工具运行4. Java 语言中的 int 及 char 数据类型的长度分别为 C A:16 位和 8 位 B:8 位和 16 位C:32 位和 16 位D:32 位和 8 位5. 请问 byte 数据的取值范围是 ?C A:0-128B: 负 127-128_____ Java 源文件,然后再通过 _____ java 程序 C D. java 工具编译 java 工具编译C:负128-127D:以上都不对6.java 语言的源程序经编译后所生成的程序类型为 D A:.exe 型的可执行程序B:.obj 型二进制的程序C:.lib 型二进制的库程序D:.class 型类代码的程序7.某java 程序的类定义如下: B class MyClass{}则java 源文件编译后生成的类文件名称为:A:myclass.classB:MyClass.classC:MYCLASS.classD:MyClass.java8.下列那种标识符在java 程序中是错误的 D A:MyClass_Base12B:_MyClass$Base12C:$MyClass_12D:76MyClass$129.下列那种标识符不能作为java 程序中的变量名 B A:INTB:booleanC:characterD:Java_Float10.请问,以下哪些语句不是合法的赋值语句?DA:boolean b = true;B:int a = (int)1.23;C:double x = 1.1;D:char c = '10';11.下面()段java 语句在编译时不会出现异常和错误。
测试题目
黑马程序员训练营基础测试
1、编写一个方法(名字自定,但要符合Java编码规范),方法内打印一字符串,并在main()方法内调用它。
2、编写程序计算1+2+3+....+100的和.
3、创建一个类Sample,在main方法中定义一个ArrayList的集合类,并向集合中添加任意多个同一种类型的元素,利用Iterator接口,遍历集合中的所有元素。
4、环境变量path和classpath的作用是什么?
5、定义一个学生类, 需要有姓名, 年龄, 考试成绩三个成员属性. 属性(成员变量)需要私有并提供get, set方法, 可以通过构造函数进行初始化.
6、JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗?
7、写一个类证明return是在finally执行后才返回的,且在finally 无法改变返回值。
8、编写程序获取已知文件的扩展名. 注意: abc.txt的扩展名是txt, abc.java.txt的扩展名也是txt.
9、编写HTML注册表单, 需要字段: 用户名, 密码, 确认密码, 性别(单选), 城市(下拉列表), 兴趣爱好(多选), 个人简介(文本域).
10、定义一个学生类, 需要有姓名, 年龄, 考试成绩三个成员属性,创建5个对象, 属性可为任意值. 编程对这5个对象按成绩排序,并将结果输出。
(提示,用TreeSet和Comparator实现)。
java集合黑马程序员题目
java集合黑马程序员题目摘要:1.Java 集合概述2.Java 集合的分类3.黑马程序员题目中涉及到的Java 集合知识点4.如何准备Java 集合相关的考试题目正文:一、Java 集合概述Java 集合是Java 编程语言中用于存储和操作数据的一种数据结构,它提供了多种内置的集合类,使得开发者可以方便地对数据进行存储、查询、修改和删除等操作。
在Java 编程中,集合类的使用非常广泛,因此对于程序员来说,熟练掌握Java 集合的相关知识是非常重要的。
二、Java 集合的分类Java 集合主要可以分为以下几类:1.List:列表集合,包括ArrayList、LinkedList 等,可以存储重复的元素。
2.Set:集合,包括HashSet、TreeSet 等,存储不重复的元素,并按照某种规则进行排序。
3.Queue:队列,包括ArrayDeque、PriorityQueue 等,可以按照先进先出(FIFO)或优先级等规则进行元素的存储和访问。
4.Map:映射,包括HashMap、TreeMap 等,可以将键值对进行存储,并根据键进行快速查找和访问。
三、黑马程序员题目中涉及到的Java 集合知识点在黑马程序员的考试题目中,Java 集合相关的知识点通常包括以下几个方面:1.各种集合类的特点和使用场景2.集合类的基本操作,如添加元素、删除元素、查找元素、遍历集合等3.集合类的迭代器和迭代方法4.集合类的大小和性能分析5.集合类与其他数据结构的转换关系,如List 与Array、Set 与List 等四、如何准备Java 集合相关的考试题目为了在黑马程序员的考试中取得好成绩,可以采取以下方法准备Java 集合相关的考试题目:1.系统学习Java 集合的基本概念、特点和使用方法,了解各种集合类的优缺点和使用场景。
2.编写实例代码,熟练掌握各种集合类的操作方法,如添加元素、删除元素、查找元素等。
3.通过做题和参加模拟考试,不断总结和巩固Java 集合的知识点,提高解题能力和应试技巧。
黑马程序员前端升级考试试题
黑马程序员前端升级考试试题
1.Java的三大体系分别是()()和()。
2.Java程序的运行环境简称为()。
3.编译Java程序需要使用()命令。
4.()环境变量用来存储Java的编译和运行工具所在的路径,而()环境变量则用来保存Java虚拟机要运行的,文件路径。
5.通过Java虚拟机可以在不同的操作系统上运行Java程序,从而实现跨平台特性。
()
6.JRE中包含了Java基础类库、JVM和开发工具。
()
7.Java中的包是专门用来存放类的,通常功能相同的类存放在相同的包中。
()
8.java包含Java中大量工具类、集合类等。
()
9.Java语言和C语言一样,是面向过程的语言。
()。
黑马班java测试题(2012_11_30)
选择:1.以下代码对的执行后的输出结果为:( )int x= -3;int y= -10;System.out.println(y%x);A、-1B、 2C、1D、32. 接口中说明了一组公共的抽象方法,其中是否包含公共的静态方法?()A.可以B.不可以C.不能肯定D. 因静态方法不能被改写,故不能出现在接口中3. System.out.println(1+2+"abc"+3+4); 的打印结果:()A.3abc34 B . 12abc34 C. 3abc7 D. 3abc344.int i =0; i = i++; System.out.println(i); 打印的值是:A. 1B. 0C. 25. class Demo{int show(int a,int b){return 0;}}下面那些函数可以存在于Demo的子类中。
()A.public int show(int a,int b){return 0;}B.private int show(int a,int b){return 0;}C.private int show(int a,long b){return 0;}D.public short show(int a,int b){return 0;}E.static int show(int a,int b){return 0;}代码阅读:1. 写出下面代码的运行结果,并解释原因。
class FatherClass {{System.out.println("FatherClass Construct Code...");}public FatherClass() {System.out.println("FatherClass Create...");}}public class ChildrenClass extends FatherClass {static {System.out.println("ChildrenClass Static Code...");}public ChildrenClass() {System.out.println("ChildrenClass Create...");}public static void main(String[] args) {new ChildrenClass();}}2. 写出下面代码的运行结果,并解释原因public class Base {int i = 99;Base() {amethod();}public void amethod() {System.out.println("Base.amethod()");}}public class Derived extends Base {int i = -1;public static void main(String[] args) {Base b = new Derived();System.out.println(b.i);b.amethod();}public void amethod() {System.out.println("Derived.amethod()");}}简答题:1.short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?2.“==”与equals方法的区别。
黑马java24号笔试题目
昨天笔试题:所有程序代码仅供参考,不是标准答案
第一套题:
1、获取指定目录及子目录下所有txt文件的个数,并将这些txt文件复制到D
盘下任意目录。
CopyFiles.java
2、获取5个10以内的随机数,定义一个Integer类型的List集合,将这些数存
入将这些数按照大小顺序打印
Test2.java
3、定义一个买票程序,用实现Runnable接口的方式,定义成员变量tickets 值
为100,创建4个线程同时买票,每个线程输出语句格式:当前窗口:Thread-2,剩余票数为:22,其中Thread-2中的2是第二个线程。
Test3.java
第二套题:
1、编写程序将制定目录下的所有.java文件拷贝到另一个目录中,并将扩展名改
为.txt
2、在控制台输入3个学生(姓名、学号)姓名可以重复但是学号是唯一的,将
输入的这3个学生存放到集合里然后在控制台打印出来并且修改其中任意一个学号对应的学生姓名。
Test2.java
3、写一个线程类MyThread,该线程实现了Runnable接口,写一个main方法,
用for循环创建5个线程对象,需求如下:
①利用线程类的构造函数输出:“创建线程4”。
(备注:当创建一个线程的时候,标记为1,再次创建一个线程的时候,标记为2,所以输出的“创建线程4”就是创建的第四个线程)
②在run方法中输出:”线程X : 计数Y“,当执行次数到达6次的时候,退出。
(备注:其中”线程X“ 为第X个线程,”计数Y“为该线程的run方法执行了多少次)
MyThread.java
src.rar。
【黑马程序员】Java试题、50道Java面试题集(2019最新版)
【黑马程序员】Java试题、50道Java面试题集(2019最新版)以下的内容是对原有的和最近Java面试题集及答案进行了全面修订之后给出的负责任的题目和答案,相对来说比较经典,相信对准备入职的Java程序员一定有所裨益。
一、Java基础部分1、面向对象的特征有哪些方面?答:面向对象的特征主要有以下几个方面:1)抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面。
抽象只关注对象有哪些属性和行为,并不关注这些行为的细节是什么。
2)继承:继承是从已有类得到继承信息创建新类的过程。
提供继承信息的类被称为父类(超类、基类);得到继承信息的类被称为子类(派生类)。
继承让变化中的软件系统有了一定的延续性,同时继承也是封装程序中可变因素的重要手段(如果不能理解请阅读阎宏博士的《Java与模式》或《设计模式精解》中关于桥梁模式的部分)。
3)封装:通常认为封装是把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口。
面向对象的本质就是将现实世界描绘成一系列完全自治、封闭的对象。
我们在类中编写的方法就是对实现细节的一种封装;我们编写一个类就是对数据和数据操作的封装。
可以说,封装就是隐藏一切可隐藏的东西,只向外界提供最简单的编程接口(可以想想普通洗衣机和全自动洗衣机的差别,明显全自动洗衣机封装更好因此操作起来更简单;我们现在使用的智能手机也是封装得足够好的,因为几个按键就搞定了所有的事情)。
4)多态性:多态性是指允许不同子类型的对象对同一消息作出不同的响应。
简单的说就是用同样的对象引用调用同样的方法但是做了不同的事情。
多态性分为编译时的多态性和运行时的多态性。
如果将对象的方法视为对象向外界提供的服务,那么运行时的多态性可以解释为:当A系统访问B系统提供的服务时,B 系统有多种提供服务的方式,但一切对A系统来说都是透明的(就像电动剃须刀是A系统,它的供电系统是B系统,B系统可以使用电池供电或者用交流电,甚至还有可能是太阳能,A系统只会通过B类对象调用供电的方法,但并不知道供电系统的底层实现是什么,究竟通过何种方式获得了动力)。
黑马测试题及答案
黑马测试题及答案一、单项选择题(每题2分,共10题)1. 以下哪个选项是计算机编程语言?A. 英语B. 法语C. 汉语D. Python答案:D2. 互联网的全称是什么?A. 国际互联网B. 万维网C. 局域网D. 广域网答案:A3. 以下哪个选项不是计算机硬件?A. CPUB. 内存C. 硬盘D. 操作系统答案:D4. 计算机病毒的主要传播途径是什么?A. 电子邮件B. 网络下载C. 移动存储设备D. 以上都是5. 以下哪个选项是数据库管理系统?A. ExcelB. WordC. PowerPointD. Photoshop答案:A6. 以下哪个选项是计算机操作系统?A. WindowsB. LinuxC. AndroidD. 以上都是答案:D7. 以下哪个选项是计算机编程语言?A. JavaB. C++C. RubyD. 以上都是答案:D8. 以下哪个选项是计算机存储单位?A. 字节B. 千字节C. 兆字节D. 以上都是答案:D9. 以下哪个选项是计算机网络协议?B. FTPC. TCP/IPD. 以上都是答案:D10. 以下哪个选项是计算机图形处理单元?A. GPUB. CPUC. RAMD. ROM答案:A二、多项选择题(每题3分,共5题)1. 以下哪些选项是计算机硬件?A. 显示器B. 键盘C. 鼠标D. 操作系统答案:A, B, C2. 以下哪些选项是计算机软件?A. 操作系统B. 文字处理软件C. 图像编辑软件D. 游戏答案:A, B, C, D3. 以下哪些选项是计算机存储设备?A. 固态硬盘B. 机械硬盘D. 优盘答案:A, B, C, D4. 以下哪些选项是计算机编程语言?A. PHPB. JavaScriptC. SwiftD. Kotlin答案:A, B, C, D5. 以下哪些选项是计算机网络协议?A. SMTPB. POP3C. IMAPD. SNMP答案:A, B, C, D三、判断题(每题1分,共5题)1. 计算机病毒只能通过电子邮件传播。
黑马Java-IO知识测试--A卷.docx
IO部分测试题考试宣言 :同学们 , 考试考多少分不是我们的目的 ! 排在班级多少的名次也不是我们的初衷 !我们考试的目的是要通过考试中的题目, 检查大家在这段时间的学习中 , 是否已经把需要掌握的知识掌握住了, 如果哪道题目你不会做,又或者做错了 , 那么不用怕 , 考完试后 , 导师讲解的时候你要注意听 ! 那时候学会了 , 记住了 , 也一样不影响你高薪就业 !本套题共 40 道不定项选择题,其中单选 30 道,多选 10 道。
单选 2 分/ 题,多选 4 分/ 题。
多选题不全对半分,全对满分。
1.下列叙述中,正确的是 ( C)A.Reader是一个读取文本文件的接口B.Reader是读取二进制数据文件的抽象类C.Reader是一个读取文本文件的抽象类D.Reader是读取二进制数据文件的一般类2.下面关于 IO 流的说法正确的是 ( ABC )A.IO 流可以分为字节流和字符流B.和是专门用于读取和写入文本文件的C.顶层类有InputStream和OutputStreamD.顶层类有Reader和Writer,他们都是接口3.类描述正确的是 ( B )A.字节输入流B.字符输入流C.打印流D.序列化流4.下列关键字能和 try 一起使用的有 ( CD)A.finalB.finalizeC.finallyD.catch5.具有 readLine()方法的是( D )A.B.InputStreamReaderC.D.BufferedReader6.关于 newLine() 方法描述的是( C )A.newLine()方法写入行B.newLine()方法会根据不同操作系自使用相的行符C.newLine()方法是的方法D. newLine()方法是BufferedWriter的方法7.下列哪个接口,可以启用序列化功能( C )A. Runnable接口 CB. Comparable接口C. Serializable接口D. Comparator接口8.以下关于 java 异常法不正确的是( D )。
黑马JavaIO知识测试附答案
黑马JavaIO知识测试附答案精品文档IO 部分测试题考试宣言:同学们, 考试考多少分不是我们的目的! 排在班级多少的名次也不是我们的初衷!我们考试的目的是要通过考试中的题目,检查大家在这段时间的学习中,是否已经把需要掌握的知识掌握住了,如果哪道题目你不会做,又或者做错了, 那么不用怕, 考完试后, 导师讲解的时候你要注意听! 那时候学会了, 记住了, 也一样不影响你高薪就业!本套题共40道不定项选择题,其中单选30道,多选10道。
单选2分/题,多选4分/题。
多选题不全对半分,全对满分。
( )下列叙述中,正确的是1.A. Reader是一个读取文本文件的接口B. Reader是读取二进制数据文件的抽象类C. Reader是一个读取文本文件的抽象类D. Reader是读取二进制数据文件的一般类2.下面关于IO流的说法正确的是( )A. IO流可以分为字节流和字符流B. FileReader和FileWriter是专门用于读取和写入文本文件的C. 顶层类有InputStream和OutputStreamD. 顶层类有Reader和Writer,他们都是接口//抽象类3.FileReader类描述正确的是( )A. 字节输入流B. 字符输入流//没什么说的,记住吧C. 打印流D. 序列化流4.下列关键字能和try一起使用的有( )A. final精品文档.精品文档B. finalizeC. finallyD. catch5.具有readLine()方法的类是( )A. FileWriterB. InputStreamReaderC. FileReaderD. BufferedReader // readLine()方法是缓冲流BufferedReader 的特有方法6.关于newLine()方法描述错误的是( )A. newLine()方法写入换行B. newLine()方法会根据不同操作系统自动选择使用相应的换行符C. newLine()方法是FileWiter类的方法D. newLine()方法是BufferedWriter类的方法// 这个也是特有方法.7.实现下列哪个接口,可以启用序列化功能( )A. Runnable接口B. Comparable接口C. Serializable接口// 这个记住吧D. Comparator接口8.以下关于java异常说法不正确的是()。
(完整版)黑马就业班java测试题
传智播客java就业班入学测试题共50道题,每道题2分,总分100分,80分为合格。
注意,题目有多选,也有单选。
请认真作答。
1.在JAVA中,下列哪些说法是正确的(ac )A.java源文件的扩展名为.javaB.写好的java源程序可以直接运行C.编写的源程序必须先编译后才能运行D.程序员可以读懂扩展名为.class的文件2.下列标识符哪个是合法的(bd )A.classB.$abcC.1234D._name3.下面哪些赋值语句是正确的?(abd )A. long test = 012; //八进制0,二进制0b,十六禁止0xB. float f = -412;C. int other = (int) true; //不可以转换D. double d = 0x12345678;E. byte b = 128; //损失精度4.在Java中,下列语句不能通过编译的有( ac)A. String s= “join”+ 3;B. int a= “join”+3;C. int a= ‘a’+5;D. float f=5+5.5;5.设 a = 3,则表达式 (--a )<<a的结果是( b)A. 16B. 8C. 24D. 126.下列代码运行的结果是( c)public static void main(String[] args) {int x = 4;int y = 5;if(x++>4 & ++y>5) {x++;}System.out.println("x=" + x + ",y=" + y);}A. x=4,y=5B. x=4,y=6C. x=5,y=6D. x=6,y=67.尝试运行下面的代码会发生什么?( b)public class Test {public static void main(String[] args) { boolean m = true;if (m = false) {System.out.println("true");} else {System.out.println("false");}}}A. 输出字符串”true”B. 输出字符串”false”C. 编译时错误D. 运行时错误8.编译并运行以下代码将发生什么?( d)public static void main(String args[]){char digit = 'a';for (int i = 0; i < 10; i++){switch (digit){case 'x' :{int j = 0;System.out.println(j);}default :{int j = 100;System.out.println(j);}}}int i = j;System.out.println(i);}A. 输出11次100B. 输出10次100,然后抛出运行期异常C. 编译错误,因为变量i不能在main() 方法中被声明2次D. 编译错误,因为变量j不能在main() 方法中被声明2次E. 以上都不对9.class Demo b{public static int fun(int c){return c+=2;}public static void main(String[] args){int temp = fun(2);System.out.println(temp);}}A. 2B. 4C. 6D. 810.下面哪些函数是public void aMethod(){...}的重载函数?(bd )A. void aMethod( ){...}B. public int aMethod(int a, float b){...}C. public void aMethod (){...}D. public float aMethod (int m){…}11.在java中,关于数组描述正确的是(bcd )A.数组中的索引下标从1开始B.存储在数组当中的数据都属于同一数据类型C.通过数组名.length()能获得数组的长度D.数组的最大索引下标是数组的长度减112.下面程序的输出结果是什么(d )int[] arr = new int[10];System.out.println(arr[0]);A.编译不通过B.运行时出错C.输出nullD.输出013.下面哪个语句正确地声明一个整型的二维数组( cd)A. int a[][] = new int[][]; //没确定一维数组长度B. int b[10][10] = new int[][];C. int c[][] = new int[10][10];D. int []d[] = new int[10][10];14.以下代码输出是( d)class Demo {public static void main(String[] args) { int i = 0;int sum = 0;while (i <= 10) {i++;if (i % 2 != 0)continue;sum += i;}System.out.println(sum);}}A. 55B. 45C. 35D. 3015.和下面代码能完成相同的选项是(b)class Demo {public static void main(String[] args) { int i = 1;int sum = 0;while (i <= 100) {if (i % 2 == 0) {sum = sum + i;}i++;}System.out.println(sum);}}A. for (int x =1; x<=100;x++){ sum=sum+x;}B. for (int x =0; x<=100;x+=2){ sum=sum+x;}C. for (int x =1; x<=100;x+=2){ sum=sum+x;}D.上述全对16.下列有关类、对象和实例的叙述,正确的是哪一项?(d)A.类就是对象,对象就是类,实例是对象的另一个名称,三者没有差别B.对象是类的抽象,类是对象的具体化,实例是对象的另一个名称C.类是对象的抽象,对象是类的具体化,实例是类的另一个名称D.类是对象的抽象,对象是类的具体化,实例是对象的另一个名称17.下面关于java中包的说法正确的是(acd )A. 在java中可以使用import语句导入包B. 在java中可以使用package语句导入包C. 位于同一个包中的类,不需要导包就可以直接访问D. 不同的包中可以出现类名相同的类18.下列有关抽象类的叙述正确的是哪项?(c)A.抽象类中一定含有抽象方法B.抽象类既能被实例化也能被继承C.抽象类的声明必须包含abstract关键字D.抽象类中不能有构造方法19.下列有关接口的叙述错误的是哪项?(d)A.接口中只能包含抽象方法和常量B.一个类可以实现多个接口C.类实现接口时必须实现其中的方法D.接口不能被继承20.运行以下代码片段,输出结果是?( d )class X {Y b = new Y();X() {System.out.print("X");}}class Y {Y() {System.out.print("Y");}}public class Z extends X {Y b = new Y();X() {System.out.print("X");}Y y = new Y();Z() {System.out.print("Z");}public static void main(String[] args) {new Z();}}A. ZB. YZC. XYZD. YXYZ21.下列关于类的继承的描述,正确的有( bd )A. 一个类可以同时继承多个父类B. 一个类可以具有多个子类C. 子类会自动拥有父类所有的方法//非私有的D. 一个类继承另一个类需要使用 extends 关键字22.下列选项中关于java中this关键字的说法错误的有( bd )A. this关键字是一个对象的引用B. this关键字可以用于引用当前类以外其他类型的对象C. this可用于构造函数中,调用类本身重载的构造函数,但是必须写在首行D. this可用于静态方法中23.下列关于构造函数的说法正确的是( ac )A. 方法名必须与类名相同B. 使用new关键字创建对象时,java虚拟机会自动调用构造函数C. 我们在定义一个类时,必须要声明至少一个构造函数D. 构造函数中不能使用return语句可以有24.编译并运行以下代码将发生什么?( d )class MyClass {int x;MyClass(int i) {x = i;}public static void main(String args[]) {MyClass m1 = new MyClass(100);MyClass m2 = new MyClass(100);if (m1.equals(m2)) {System.out.println("Both are equal");} else {System.out.println("Both are not equal");}} //地址值}A. 代码编译时报出错误提示信息“equals() 方法未定义”B. 编译通过,抛出运行期异常.C. 输出Both are equal.D. 输出Both are not equal25.运行以下的main()方法,结果是?( a )1 public static void main(String[] args)2 {3 String myString;4 int x = 100;56 if (x < 100) myString = "x is less than 100";7 if (x > 100) myString = "x is greater than 100";8 System.out.println(myString.length());9 }A.编译时报出错误提示信息“变量myString没有被初始化”B.编译通过C.编译未能通过。
黑马程序员基础测试题答案
黑马程序员基础测试题答案一、选择题1. 以下哪一项不是Java基本数据类型?答案:D. String解析:Java基本数据类型共有8种,分别为byte、short、int、long、float、double、char、boolean。
String是Java 中的一个类,不属于基本数据类型。
2. 在Java中,下列哪个操作符用于取模?答案:C. %解析:在Java中,取模操作符是%。
例如,5 % 2的结果为1。
3. 下列哪个方法可以实现字符串的截取?答案:B. substring(int start, int end)解析:substring(int start, int end)方法是String类中用于截取字符串的方法,其中start表示开始截取的位置,end表示结束截取的位置。
二、填空题1. Java中,定义一个整型变量需要使用______关键字。
答案:int2. 在Java中,数组的默认初始化值为______。
答案:0(对于数值类型),false(对于布尔类型),null (对于引用类型)3. 下列哪个方法可以实现字符串的拼接?答案:concat(String str)三、判断题1. 在Java中,所有的对象都继承自Object类。
答案:正确解析:在Java中,所有的类都直接或间接继承自Object类,Object类是Java类库中的根类。
2. Java中的方法可以重载,即可以有多个同名方法,但参数列表必须不同。
答案:正确解析:Java中的方法重载是指同一个类中可以有多个同名方法,但参数列表必须不同,包括参数个数和参数类型。
3. 在Java中,数组是一种引用类型。
答案:正确解析:在Java中,数组是一种引用类型,它可以存储多个相同类型的元素。
数组的声明、创建和初始化如下:```javaint[] arr = new int[10]; // 声明并创建一个整型数组,长度为10arr[0] = 1; // 初始化数组第一个元素```四、编程题1. 编写一个Java程序,实现以下功能:输入一个字符串,输出字符串中字母和数字的个数。
黑马程序员基础测试题答案
黑马程序员基础测试题答案一、编程语言(Java)1. 题目:以下哪个选项是Java中定义接口的关键字?A. classB. interfaceC. extendsD. implements答案:B解析:interface是Java中定义接口的关键字,class是定义类的关键字,extends是继承关键字,implements是实现接口的关键字。
2. 题目:以下哪个选项表示Java中的字符串常量池?A. String a = new String("Hello");B. String b = "Hello";C. String c = new String("Hello").intern();D. String d = "Hello" + "World";答案:B解析:在Java中,字符串常量池用于存储字符串字面量,选项B中的字符串"Hello"直接存储在字符串常量池中。
二、数据结构与算法1. 题目:以下哪种排序算法的平均时间复杂度最高?A. 冒泡排序B. 快速排序C. 插入排序D. 堆排序答案:A解析:冒泡排序的平均时间复杂度为O(n^2),而快速排序、插入排序和堆排序的平均时间复杂度均为O(nlogn)。
2. 题目:以下哪个选项表示二叉树的遍历顺序?A. 前序遍历B. 中序遍历C. 后序遍历D. 层次遍历答案:A、B、C解析:二叉树的遍历顺序包括前序遍历、中序遍历和后序遍历,而层次遍历是一种按照树的层次结构遍历二叉树的方法。
三、操作系统1. 题目:以下哪个选项是进程和线程的主要区别?A. 进程是系统进行资源分配的基本单位,线程是进程的执行单元B. 进程和线程都可以拥有独立的内存空间C. 进程和线程的执行速度相同D. 进程和线程都可以被调度答案:A解析:进程是系统进行资源分配的基本单位,线程是进程的执行单元。
【黑马程序员】Java试题、50道Java面试题集(2019最新版)41-50
【黑马程序员】Java试题、50道Java面试题集(2019最新版)41-50以下的内容是对原有的和最近Java面试题集及答案进行了全面修订之后给出的负责任的题目和答案,相对来说比较经典,相信对准备入职的Java程序员一定有所裨益。
41、日期和时间:1)如何取得年月日、小时分钟秒?2)如何取得从1970年1月1日0时0分0秒到现在的毫秒数?3)如何取得某月的最后一天?4)如何格式化日期?答:操作方法如下所示:1)创建java.util.Calendar 实例,调用其get()方法传入不同的参数即可获得参数所对应的值2)以下方法均可获得该毫秒数:Calendar.getInstance().getTimeInMillis();System.currentTimeMillis();//何问起3)示例代码如下:Calendar time = Calendar.getInstance();time.getActualMaximum(Calendar.DAY_OF_MONTH);//何问起4)利用java.text.DataFormat 的子类(如SimpleDateFormat类)中的format(Date)方法可将日期格式化。
42、打印昨天的当前时刻。
答:public class YesterdayCurrent {public static void main(String[] args){Calendar cal = Calendar.getInstance();cal.add(Calendar.DATE, -1);System.out.println(cal.getTime());}} //何问起黑马程序员视频库网址:(海量热门编程视频、资料免费学习)学习路线图、学习大纲、各阶段知识点、资料网盘免费领取+QQ 3285264708 / 354966419543、比较一下Java 和JavaSciprt。
黑马安卓基础班报名就业班的自我评测题
黑马安卓基础班报名就业班的自我评测题黑马程序员基础评测:Java开发入门以下题目为单选题或多选题,请认真作答。
请在您认为正确的答案前勾选“√”1下列哪些不属于java语言的关键字(D ) ----- 单选A、classB、staticC、voidD、HelloWorld2配置classpath的目的( ) ----- 单选A、为了在任意盘符下执行javac命令B、为了在任意盘符下可以找到.class字节码文件C、可以在找到任意位置下的.java文件D、可以找到任意盘符下的.exe文件3下列关于命名规则错误的是( ) ----- 单选A、类:如果是一个单词首字母要大写,多个单词的情况下每一个单词的首字母都要大写B、方法:一个单词都小写,多个单词从第二个单词开始每个单词的首字母都大写C、常量:所有单词都大写,多个单词的情况下用下划线连接D、变量:所有单词都要大写4下列对于软件开发解释正确的选项是( ) ----- 单选A、借助开发工具与计算机语言制作软件B、利用系统工具和英文制作软件C、软件制作的过程D、按照特定的顺序开发软件5下列关于java关键字说法正确的是( ) ----- 单选A、被java语言赋予了特殊含义的一些单词B、只要在Editplus里高亮显示的单词都是关键字C、关键字和一般的单词没有什么区别D、代码里的所有单词都是关键字6对于jdk安装目录下文件解释错误的是( ) ----- 单选A、bin目录下都是存放一些可执行的程序B、db文件夹是一个小型的数据库C、src目录下存放的java基础类的源文件D、lib目录下存放的都是一些头文件7不属于java语言的特点的选项( ) ----- 单选A、跨平台B、面向对象C、开源D、低性能8java程序通过javac编译后会生成对应的文件是什么( ) ----- 单选A、.classB、.javaC、.exeD、.md9下面程序运行的结果是( ) ----- 单选class HelloWorld {public static void main(String [] args){System.out.print(“Hello”);System.out.print(“World”);}}A、HelloWorldB、HelloWorldC、执行javac编译出错D、执行java运行出错10关于jdk描述错误的是( ) ----- 多选A、jdk是java运行环境B、jdk里包含了jreC、jdk是java开发工具,并且包含了jreD、jdk是java虚拟机交卷黑马程序员基础评测:Java编程基础以下题目为单选题或多选题,请认真作答。
【黑马基础班考试题】1.Java基础知识测试_答案
考试宣言:同学们, 考试考多少分不是我们的目的! 排在班级多少的名次也不是我们的初衷!我的考试的目的是要通过考试中的题目,检查大家在这段时间的学习中,是否已经把需要掌握的知识掌握住了,如果哪道题目你不会做,又或者做错了, 那么不用怕, 考完试后, 导师讲解的时候你要注意听! 那时候学会了, 记住了, 也一样不影响你高薪就业!本套题共40道不定项选择题,其中单选30道,多选10道。
单选2分/题,多选4分/题。
多选题不全对半分,全对满分。
1.下面说法正确的是()A. JVM就是Java虚拟机,包含java核心类库// JRE: JVM+Java library。
B. JRE就是java运行环境,包含java程序编译运行的工具环境// JDK:JRE+ToolsC. JDK就是java开发环境,javac是其中的一个工具D. 功能范围:JDK > JVM > JRE2.下面的说法正确的是( )A. Java 语言是面向对象的、解释执行的网络编程语言。
B. Java 语言具有可移植性,是与平台无关的编程语言。
C. Java 语言可对内存垃圾自动收集。
D. Java 语言编写的程序虽然是“一次编译,到处运行”,但必须要java的运行环境。
3.给定java代码,如下:public byte count(byte b1, byte b2){return ____;}要使这段代码能够编译成功,横线处可以填入A. (byte)(b1-b2) //返回值类型为byte,要求选项结果为byteB. b1-b2C. (byte)b1+b2D. (byte)b1/b24.关于类的命名,正确说法是()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=falseD. 正常运行,输出flag=8.下面哪个关键字可以定义一个类()A. interfaceB. class //查看下面解释C. extendsD. implements在Oracle官网java英文原版教程,链接地址:https:///javase/tutorial/java/IandI/createinterface.html上有如下解释:In the Java programming language, an interface is a reference type,similar to a class, that can contain only constants,method signatures, default methods, static methods, and nested types. Method bodies exist only for default methods and static methods. Interfaces cannot be instantiated—they can only be implemented by classes or extended by other interfaces. Extension is discussed later in this lesson.9.byte类型的取值范围是()A. -256至255B. -255至255C. -128至127 //*/?#%¥@*&……D. -127至12810.下面关于java中方法,描述错误的是( )A.必须定义在类或者接口里面B.定义一个方法之前要明确该方法需要的参数和返回值类型C.方法可以提高代码复用性,提高程序运行的效率//可以提高编写代码的效率D.方法只有调用才会被执行11.下面程序执行的结果是?( )class Test{public static void main(String[] args){System.out.println(““+’a’+1); // +在这里是连接符,任何数据和字符串连接后,都是字符串}}A. 98B. a1C. 971D. 19712.for循环格式如下:for(表达式1;表达式2;表达式3){//code}下面描述错误的是()A. 表达式1处的代码会被执行多次//只能一次B. 表达式1处可以定义变量C. 表达式3用于决定循环是否应该结束//表达式2D. 表达式2的值可以是任意类型,也可以是boolean类型//只能是boolean13.以下选项可以正确创建一个长度为3的二维数组的是 ( )A.new int[2][3]B.new int[3][]C.new int[][3]D.以上答案都不对14.设以下是应用程序中定义的方法printBinary,若在其main方法中有方法调用语句printBinary(2),则输出的结果是 ( )。
【黑马程序员】Java试题、50道Java面试题集(2019最新版)21-30
【黑马程序员】Java试题、50道Java面试题集(2019最新版)21-30以下的内容是对原有的和最近Java面试题集及答案进行了全面修订之后给出的负责任的题目和答案,相对来说比较经典,相信对准备入职的Java程序员一定有所裨益。
21、描述一下JVM 加载class文件的原理机制?答:JVM 中类的装载是由类加载器(ClassLoader)和它的子类来实现的,Java 中的类加载器是一个重要的Java 运行时系统组件,它负责在运行时查找和装入类文件中的类。
补充:1.由于Java的跨平台性,经过编译的Java源程序并不是一个可执行程序,而是一个或多个类文件。
当Java程序需要使用某个类时,JVM会确保这个类已经被加载、连接(验证、准备和解析)和初始化。
类的加载是指把类的.class文件中的数据读入到内存中,通常是创建一个字节数组读入.class文件,然后产生与所加载类对应的Class对象。
加载完成后,Class对象还不完整,所以此时的类还不可用。
当类被加载后就进入连接阶段,这一阶段包括验证、准备(为静态变量分配内存并设置默认的初始值)和解析(将符号引用替换为直接引用)三个步骤。
最后JVM对类进行初始化,包括:1如果类存在直接的父类并且这个类还没有被初始化,那么就先初始化父类;2如果类中存在初始化语句,就依次执行这些初始化语句。
2.类的加载是由类加载器完成的,类加载器包括:根加载器(BootStrap)、扩展加载器(Extension)、系统加载器(System)和用户自定义类加载器(ng.ClassLoader的子类)。
从JDK 1.2开始,类加载过程采取了父亲委托机制(PDM)。
PDM更好的保证了Java平台的安全性,在该机制中,JVM 自带的Bootstrap是根加载器,其他的加载器都有且仅有一个父类加载器。
类的加载首先请求父类加载器加载,父类加载器无能为力时才由其子类加载器自行加载。
JVM不会向Java程序提供对Bootstrap的引用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
if (m1.equals(m2)) {
System.out.println("Both are equal");
} else {
System.out.println("Both are not equal");
}
}
//地址值
}
A. 代码编译时报出错误提示信息“equals() 方法未定义”
B. 编译通过,抛出运行期异常.
//损失精度
4. 在Java中,下列语句不能通过编译的有( ac) A. String s= “join”+ 3; B. int a= “join”+3; C. int a= ‘a’+5; D. float f=5+5.5;
5. 设 a = 3,则表达式 (--a )<<a的结果是( b) A. 16 B. 8 C. 24 D. 12
} System.out.println(sum); } } A. 55 B. 45 C. 35 D. 30
15. 和下面代码能完成相同的选项是(b) class Demo {
public static void main(String[] args) { int i = 1;
int sum = 0; while (i <= 100) {
22. 下列选项中关于java中this关键字的说法错误的有( bd ) A. this关键字是一个对象的引用 B. this关键字可以用于引用当前类以外其他类型的对象 C. this可用于构造函数中,调用类本身重载的构造函数,但是必须写 在首行 D. this可用于静态方法中
23. 下列关于构造函数的说法正确的是( ac ) A. 方法名必须与类名相同 B. 使用new关键字创建对象时,java虚拟机会自动调用构造函数 C. 我们在定义一个类时,必须要声明至少一个构造函数 D. 构造函数中不能使用return语句 可以有
24. 编译并运行以下代码将发生什么?( d )
class MyClass {
int x;
MyClass(int i) {
x = i;
}
public static void main(String args[]) {
MyClass m1 = new MyClass(100);
MyClass m2 = new MyClass(100);
19. 下列有关接口的叙述错误的是哪项?(d) A.接口中只能包含抽象方法和常量 B.一个类可以实现多个接口
C.类实现接口时必须实现其中的方法 D.接口不能被继承
20. 运行以下代码片段,输出结果是?( d ) class X {
Y b = new Y(); X() {
System.out.print("X"); } }
16. 下列有关类、对象和实例的叙述,正确的是哪一项?(d) A.类就是对象,对象就是类,实例是对象的另一个名称,三者没有差 别 B.对象是类的抽象,类是对象的具体化,实例是对象的另一个名称 C.类是对象的抽象,对象是类的具体化,实例是类的另一个名称 D.类是对象的抽象,对象是类的具体化,实例是对象的另一个名称
C. 输出Both are equal. D. 输出Both are not equal
25. 运行以下的main()方法,结果是?( a )
1 public static void main(String[] String;
4
int x = 100;
5
6
if (x < 100) myString = "x is less than
17. 下面关于java中包的说法正确的是(acd ) A. 在java中可以使用import语句导入包 B. 在java中可以使用package语句导入包 C. 位于同一个包中的类,不需要导包就可以直接访问 D. 不同的包中可以出现类名相同的类
18. 下列有关抽象类的叙述正确的是哪项?(c) A.抽象类中一定含有抽象方法 B.抽象类既能被实例化也能被继承 C.抽象类的声明必须包含abstract关键字 D.抽象类中不能有构造方法
7. 尝试运行下面的代码会发生什么?( b)
public class Test { public static void main(String[] args) { boolean m = true; if (m = false) { System.out.println("true"); } else { System.out.println("false"); } }
switch (digit) {
case 'x' : {
int j = 0; System.out.println(j); } default : {
int j = 100; System.out.println(j); } } } int i = j; System.out.println(i); } A. 输出11次100
B. 输出10次100,然后抛出运行期异常 C. 编译错误,因为变量i不能在main() 方法中被声明2次 D. 编译错误,因为变量j不能在main() 方法中被声明2次 E. 以上都不对
9. class Demo b {
public static int fun(int c) {
return c+=2; } public static void main(String[] args) {
6. 下列代码运行的结果是( c) public static void main(String[] args) {
int x = 4; int y = 5; if(x++>4 & ++y>5) {
x++; } System.out.println("x=" + x + ",y=" + y); } A. x=4,y=5 B. x=4,y=6 C. x=5,y=6 D. x=6,y=6
传智播客java就业班入学测试题
共50道题,每道题2分,总分100分,80分为合格。 注意,题目有多选,也有单选。请认真作答。
对应试者的忠告: 传智播客从办学一来,一直在IT培训领域保持着良好的口碑,之所
以能做到这么好的口碑,主要得益于过硬的教学质量以及学员的高就业 率。
本测试题的目的在于帮助学员检测自己的java基础,因为公司要保 证教学质量,光有名师授课是远远不够的,还需要学员们都具备一个基 本的java基础,试想一下,如果学员入学前我们不进行测试,那么必 然会导致学生的技术水平参差不齐,再好的老师也无法把这样的班教 好。
if (i % 2 == 0) { sum = sum + i;
} i++; } System.out.println(sum); } } A. for (int x =1; x<=100;x++){ sum=sum+x;} B. for (int x =0; x<=100;x+=2){ sum=sum+x;} C. for (int x =1; x<=100;x+=2){ sum=sum+x;} D.上述全对
public static void main(String[] args) { new Z();
} } A. Z B. YZ C. XYZ D. YXYZ
21. 下列关于类的继承的描述,正确的有( bd ) A. 一个类可以同时继承多个父类 B. 一个类可以具有多个子类 C. 子类会自动拥有父类所有的方法 //非私有的 D. 一个类继承另一个类需要使用 extends 关键字
class Y { Y() { System.out.print("Y"); }
}
public class Z extends X { Y b = new Y(); X() { System.out.print("X"); }
Y y = new Y(); Z() {
System.out.print("Z"); }
化,代码可以编译通过,运行时可以输出字符串myString的长度
D. 以上都不对
26. 有如下代码,请问哪些是正确的?(acd) class ClassA{} class ClassB extends ClassA{} class ClassC extends ClassA{} 以及 ClassA p0 = new ClassA(); ClassB p1 = new ClassB(); ClassC p2 = new ClassC(); ClassA p3 = new ClassB(); ClassA p4 = new ClassC(); A.p0 = p1; B.p1 = p2; C.p1 = (ClassB)p3; D.p2 = (ClassC)p4;
1. 在JAVA中,下列哪些说法是正确的(ac ) A.java源文件的扩展名为.java B.写好的java源程序可以直接运行 C.编写的源程序必须先编译后才能运行 D.程序员可以读懂扩展名为.class的文件
2. 下列标识符哪个是合法的(bd ) A.class B.$abc C.1234
D._name
3. 下面哪些赋值语句是正确的?(abd )
A. long test = 012;
//八进制0,二进制0b,十六禁止
0x
B. float f = -412;
C. int other = (int) true;
//不可以转换
D. double d = 0x12345678;