Java工程师笔试真题(含详细答案)|企业真实版_第1页
Java工程师笔试真题(含详细答案)|企业真实版_第2页
Java工程师笔试真题(含详细答案)|企业真实版_第3页
Java工程师笔试真题(含详细答案)|企业真实版_第4页
Java工程师笔试真题(含详细答案)|企业真实版_第5页
已阅读5页,还剩2页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Java工程师笔试真题(含详细答案)|企业真实版适用人群:Java初级开发、实习、校招、社招基础笔试题型选择:选择题、填空题、简答题、编程题,全部为互联网公司高频真题,无虚假偏题特点:答案通俗易懂、附带踩坑点解析、代码可直接运行一、单项选择题(共10题)1.以下关于Java基本数据类型说法正确的是()A.boolean类型可以赋值0和1B.char类型占2个字节,可存储中文汉字C.float类型初始化可以直接写3.14D.long类型后缀是L,小写l和大写L无区别答案:B解析:A:Java布尔类型只有true/false,不兼容数字;B:char占2字节,基于Unicode编码,支持中文;C:小数默认double,float必须写3.14f;D:小写l容易和数字1混淆,开发规范要求必须大写L。2.下列关于String、StringBuilder、StringBuffer说法错误的是()A.String是不可变字符序列B.StringBuffer线程安全,效率低C.StringBuilder线程不安全,效率高D.频繁字符串拼接优先使用String答案:D解析:String每次拼接都会生成新对象,频繁拼接会产生大量垃圾对象,性能极差,优先使用StringBuilder。3.以下代码的输出结果是()java

Stringstr1="abc";

Stringstr2=newString("abc");

System.out.println(str1==str2);A.trueB.falseC.编译报错D.空指针答案:B解析:==比较的是对象地址。str1指向常量池,str2是new出来的堆对象,地址不同。equals才比较字符串内容。4.ArrayList和LinkedList的区别,说法错误的是()A.ArrayList底层是数组,查询快、增删慢B.LinkedList底层是双向链表,增删快、查询慢C.ArrayList支持随机访问D.LinkedList占用内存更小答案:D解析:LinkedList每个节点需要存储前后节点指针,内存占用远大于ArrayList。5.Java中异常体系的顶层父类是()A.ExceptionB.RuntimeExceptionC.ErrorD.Throwable答案:D解析:Throwable是所有异常和错误的父类,分为Error(系统级错误)和Exception(代码异常)。6.以下关于final关键字说法正确的是()A.final修饰的类可以被继承B.final修饰的方法可以重写C.final修饰的变量只能赋值一次D.final变量默认是static的答案:C解析:final类不可继承、final方法不可重写、final变量一次性赋值不可修改。7.HashMap的底层数据结构在JDK1.8之后是()A.单纯数组B.数组+链表C.数组+链表+红黑树D.链表+红黑树答案:C解析:JDK1.8优化HashMap,链表长度大于8且数组长度大于64时,转为红黑树,提升查询效率。8.接口和抽象类的区别,描述正确的是()A.抽象类可以有构造方法,接口没有构造方法B.抽象类和接口都能被多继承C.抽象类中不能有普通方法D.接口中可以定义成员变量答案:A解析:Java类是单继承、接口多实现;抽象类可包含普通方法、构造方法;接口变量默认是publicstaticfinal常量。9.下列不属于线程生命周期状态的是()A.新建B.就绪C.阻塞D.销毁答案:D解析:Java线程五大状态:新建、就绪、运行、阻塞、终止,无销毁状态。10.重载和重写的区别,说法错误的是()A.重载发生在同一个类中B.重写发生在父子类中C.重载方法返回值必须一致D.重写方法参数列表必须一致答案:C解析:重载只要求方法名相同、参数列表不同,返回值可以不同;重写要求方法名、参数、返回值完全一致。二、填空题(共5题)1.Java中基本数据类型一共有______种,其中整数类型有byte、short、int、long。答案:8解析:byte、short、int、long、float、double、char、boolean2.泛型的作用是______、______。答案:编译期类型检查、避免强制类型转换、防止类型转换异常(任选两个)3.线程安全的List集合是______、______。答案:Vector、CopyOnWriteArrayList4.Java中创建对象的四种方式:new、______、______、反序列化。答案:反射、克隆(clone)5.try-catch-finally中,______代码块无论是否异常都会执行。答案:finally三、简答题(共4题,面试高频)1.==和equals的区别?参考答案:1.对于基本数据类型:==比较的是数值是否相等;没有equals方法。2.对于引用数据类型:==比较的是对象内存地址;equals默认比较地址,String、Integer等类重写后比较的是内容。3.日常开发中,字符串、包装类对比内容一律用equals。2.讲讲HashMap的工作原理(JDK1.8)参考答案:1.底层结构:数组+链表+红黑树。2.存储流程:通过key的hash值计算数组下标,判断位置是否为空,为空直接存入。3.发生哈希冲突时,挂载链表;链表长度≥8且数组长度≥64,链表转为红黑树。4.元素数量超过负载因子(0.75)阈值,触发数组扩容,重新哈希分配元素。5.红黑树长度≤6时,退化为链表,平衡性能和内存。3.线程sleep和wait的区别?参考答案:1.所属类不同:sleep是Thread类方法,wait是Object类方法。2.锁机制不同:sleep休眠时不释放锁;wait等待时释放锁。3.唤醒方式不同:sleep时间到自动唤醒;wait需要notify/notifyAll手动唤醒。4.使用场景:sleep用于单纯延时,wait用于线程间通信。4.什么是IO流?字节流和字符流的区别?参考答案:IO流是Java用于文件、网络数据传输的读写工具,分为输入流、输出流。1.字节流:操作字节,万能流,可读写图片、视频、文件等所有数据,基类InputStream、OutputStream。2.字符流:操作字符,仅用于读写文本文件,自带编码处理,基类Reader、Writer。3.字节流无缓冲区,字符流有缓冲区。四、编程题(2道基础真题,可直接运行)编程题1:字符串反转(基础必考题)需求:输入任意字符串,实现字符串反转,禁止使用自带reverse方法。参考答案代码:java

publicclassReverseStr{

publicstaticvoidmain(String[]args){

Stringstr="java笔试真题";

Stringresult=reverse(str);

System.out.println("反转结果:"+result);

}

//手动实现字符串反转

publicstaticStringreverse(Stringstr){

if(str==null||str.length()==0){

returnstr;

}

char[]chars=str.toCharArray();

intleft=0;

intright=chars.length-1;

//双指针交换

while(left<right){

chartemp=chars[left];

chars[left]=chars[right];

chars[right]=temp;

left++;

right--;

}

returnnewString(chars);

}

}输出结果:题真试笔avaj解题思路:转为字符数组,双指针首尾交换,时间复杂度O(n),效率最高。编程题2:数组去重(List集合去重)需求:给定存有重复元素的Integer集合,去除重复元素,保留原有顺序。参考答案代码:java

importjava.util.ArrayList;

importjava.util.LinkedHashSet;

importjava.util.List;

publicclassListDistinct{

publicstaticvoidmain(String[]args){

List<Integer>list=newArrayList<>();

list.add(1);

list.add(2);

list.add(2);

list.add(3);

list.add(1);

list.add(4);

//去重且保留顺序

LinkedHashSet<Integer>set=newLinkedHashSet<>(list);

List<Integer>newList=newArrayList<>(set);

System.out.println("去重后集合:"+newList);

}

}输出结果:去重后集合:[1,2,3,4]解析:HashSet去重不保证顺序,Linke

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论