在好例子网,分享、交流、成长!
您当前所在位置:首页Others 开发实例一般编程问题 → Java 最常见 200+ 面试题全解析:面试必备.pdf

Java 最常见 200+ 面试题全解析:面试必备.pdf

一般编程问题

下载此实例
  • 开发语言:Others
  • 实例大小:4.08M
  • 下载次数:2
  • 浏览次数:72
  • 发布时间:2021-01-16
  • 实例类别:一般编程问题
  • 发 布 人:好学IT男
  • 文件格式:.pdf
  • 所需积分:2
 

实例介绍

【实例简介】
java面试大全2000,经典,包含了挺多的。希望你喜欢。
2019/5/27 Jaa最常见200+面试题仝解析:面试必备 共包含道试题,本文的宗旨是为读者朋友们整理一份详实而又权威的面试清单,下 面一起题吧 Java基础 1.JDK和JRE有什么区别? ·」DK: Java Development Kit的简称,Java开发工具包,提供了Java的开发环境和 运行环境。 ·JRE: Java runtime environment的简称,Java运行环境,为Java的运行提供了 所需环境。 具体来说JDK其实包含了JRE,同时还包含了编译Java源码的编译器 Javac,还包含了很 多Java程序调试和分析的工具。简单来说:如果你需要运行Java程序,只需安装JRE就 可以了,如果你需要编写Java程序,需要安装JDK。 2.==和 equals的区别是什么? ==解读 对于基本类型和引用类型==的作用效果是不同的,如下乐示 基本类型:比较的是值是否相同; 引用类型:比较的是引用是否相同; 代码示例: String x =string string string String z=new String(string); System. out. println(x==y);//true System. out. printin(x==z);// false System. out. println(xequals(y);// true System. out. println(. equals(z));// true 代码解读:因为ⅹ和y指向的是同一个引用,所以==也是true,而 new String0方法则 重写开辟了内存空间,所以==结果为 false,而 equals比较的一直是值,所以结果都为 true。 equals解读 https://gitbook.cn/books/5c62197c73f4717175f7477/index.htmI 3/69 2019/5/27 Jaa最常见200+面试题仝解析:面试必备 equals质上就是==,只不过 String和 nteger等重写了 equals方法,把它变成了值 比较。和的代码就明白了。 首先来看默认情况下 equals比较一个有相同值的对象,代码如下: class Cat public Cat(String name)[ this name name private string name i public String getName)t return name; public void setName(String name)i this name name Cat c1= new Cat("王磊"); Catc2= new Cat("王磊") System. out. println (cl equals(c2);// false 输出结果出乎我们的意料,竟然是 false?这是怎么回事,看了 equals源码就知道了,源 码如下: public boolean equals(object obj)I return(this ==obj); 原来 equals本质上就是==。 那问题来了,两个相同值的 String对象,为什么返回的是true?代码如下: strings1= new String("老王"); String s2= new String("老王"); System. out. printLn(sl equals(s2));//true 同样的,当我们进入 String的 equals方法,找到了答案,代码如下: https://gitbook.cn/books/5c62197c73f4717175f7477/index.htmI 4/69 2019/5/27 Jaa最常见200+面试题仝解析:面试必备 pub ic, boolean equals(Object anObject)t this = anobject)t return true, if (anobject instanceof String)i String anotherstring =(String)anobject int n value length; if (n==another String value length)I char y 1]= value char v2[]= anotherString. value; int 1=0 while (n-=0)t if(v1[i!=V2[订) return false return true; return false 原来是 String重写了 Object的 equals方法,把引用比较改成了值比较 总结:==对于基本类型来说是值比较,对于引用类型来说是比较的是引用;而 equals默 认情况下是引用比较,只是很多类重新了 equals方法,比如 String、 nteger等把它变成 了值比较,所以一般情况下 equals比较的是值是否相等。 3两个对象的 hash Code0相同,则 equals0也一定为true,对吗? 不对,两个对象的 hash Code0相同, equals0不一定true。 代码示例: String str1="通话"; string str2="重地"; System. out. printin(String. format("strl: %dI str2: 90d", str1. hashCode System. out. printLn (strl. equals(str2) 执行的结果: https://gitbook.cn/books/5c62197c73f4717175f7477/index.htmI 5/69 2019/5/27 Jaa最常见200+面试题仝解析:面试必备 179395|str2:1179395 a use 代码解读:很显然“通话″和“重地”的 hash Code0相同,然而equa0则为 false,因 为在散列表中, hash Code0相等即两个键值对的哈希值相等,然而哈希值相等,并不一定 能得出键值对相等。 4. final在Java中有什么作用? fina|修饰的类叫最终类,该类不能被继承。 fina|修饰的方法不能被重写。 fina修饰的变量叫常量,常量必须初始化,初始化之后值就不能被修改。 5.Java中的Math. round(-1.5)等于多少? 等于-1,因为在数轴上取值时,中间值(0.5)向右取整,所以正0.5是往上取整,负0.5 是直接舍弃。 6. String属于基础的数据类型吗? String不属于基础类型,基础类型有8种;byte、 boolean、char、shot、int、 float long、 double,而 String属于对象。 7.Java中操作字符串都有哪些类?它们之间有什么区别? 操作字符串的类有: String、 String Buffer、 String Builder. String和 String Buffer、 Stringbuilder的区别在于 String声明的是不可变的对象,每次 操作都会生成新的 String对象,然后将指针指向新的 String对象,而 String Buffer. String Builder可以在原有对象的基础上进行操作,所以在经常改变字符串内容的情况下最 好不要使用 String StringBuffer和 String Builder最大的区别在于, String Buffer是线程安全的,而 String Builder是非线程安全的,但 String Builder的性能却高于 String Buffer,所以在单 线程环境下推荐使用 StringBuilder,多线程环境下推荐使用 String Buffer 8. String str="i"与 String str= new String("i")-样吗? https://gitbook.cn/books/5c62197c73f4717175f7477/index.htmI 6/69 2019/5/27 Jaa最常见200+面试题仝解析:面试必备 不一样为内存的分配方式不一样。 String st=""的方式,Java虚拟机会将其分配到常 量池中命 String str= new String(i")则会被分到堆内存中。 9.如何将字符串反转? 使用 StringBuilder或者 string Buffer的 reverse0方法。 示例代码 // String Buffer reverse String Buffer string Buffer = new StringBuffer(; stringBuffer. append("abcdefg) System. out. println(stringBuffer. reverse o);// gfedcba // stringBuilder reverse Stringbui lder string bui lder new stringbui lder string Builder. append ("abcdefg); System. out. printLn(stringBuilder. reverse();//gfedcba 10. String类的常用方法都有那些? indexof(0:返回指定字符的索引。 charAt0:返回指定索引处的字符。 replace0:字符串替换。 ·trim0:去除字符串两端空白。 spit0:分割字符串,返回一个分割后的字符串数组 getBytes0:返回字符串的byte类型数组。 length0:返回字符串长度。 tolower Case0:将字符串转成小骂字母。 toUpperCase0:将字符串转成大写字符。 · substring:截取字符串。 equals0:字符串比较。 11.抽象类必须要有抽象方法吗? 不需要,抽象类不一定非要有抽象方法。 示例代码: https://gitbook.cn/books/5c62197c73f4717175f7477/index.htmI 7/69 2019/5/27 Jaa最常见200+面试题仝解析:面试必备 abs ract class Cat i ic static void sayHi( i ystem.out· prIntln(n1~¨)5 上面代码,抽象类并没有抽象方法但完全可以正常运行。 12.普通类和抽象类有哪些区别? ·普通类不能包含抽象方法,抽象类可以包含抽象方法。 ·抽象类不能直接实例化,普通类可以直接实例化。 13.抽象类能使用fina修饰吗? 不能,定义抽象类就是让其他类继承的,如果定义为 final该类就不能被继承,这样彼此就 会产生矛盾,所以fina不能修饰抽象类,如下图所示,编辑器也会提示错误信息: final abstract class Cat llegal combination of modifiers: 'abstract' and final' ,La.LHL4u⊥4L、⊥E 14.接口和抽象类有什么区别? ·实现:抽象类的子类使用 extends来继承;接口必须使用 implements来实现接 ·构造函数:抽象类可以有构造函数;接口不能有。 ·实现数量:类可以实现很多个接口;但是只能继承一个抽象类。 ·访问修饰符∶接口中的方法默认使用 public修饰;抽象类中的方法可以是任意访问 修饰符。 15.Java中|o流分为几种? 按功能来分:输入流( Input)、输出流( output)。 按类型来分:字节流和字符流。 https://gitbook.cn/books/5c62197c73f4717175f7477/index.htmI 8/69 2019/5/27 Jaa最常见200+面试题仝解析:面试必备 字节流积宀符流旳区别是:字节流按8位传输以字节为单位输入输岀数据,字符流按16 位传输学为单位输入输出数据。 16.BO、N|O、AO有什么区别? B|O: block|o同步阻塞式O,就是我们平常使用的传统|O,它的特点是模式简单 使用方便,并发处理能力低。 ·N|O:Non|O同步非阻塞|O,是传统|O的升级,客户端和服务器端通过 Channel(通道)通讯,实现了多路复用。 ·AO: Asynchronous IO是NO的升级,也叫NO2,实现了异步非堵塞O,异 步|O的操作基于事件和回调机制。 17. Files的常用方法都有哪些? Files. exists0:检测文件路径是否存在 Files. createfile0:创建文件。 Files. create Directory):创建文件夹。 · Files. delete0:删除个文件或目录。 Files.copy (0:复制文件。 Fies.move0:移动文件。 files.size0:查看文件个数。 · Files.read0:读取文件。 · Files. write0:写入文件。 容器 18.Java容器都有哪些? Java容器分为 Collection和Map两大类,其下又有很多子类,如下所示 Collection o ArrayList o Linkedlist o Vector o Stack https://gitbook.cn/books/5c62197c73f4717175f7477/index.htmI 9/69 2019/5/27 Jaa最常见200+面试题仝解析:面试必备 ( lashSet Linkedhash set Treeset Map HashMap o LinkedHash Map TreeMap ConcurrentHash Map e Hashtable 19. Collection和 Collections有什么区别? · Collection是一个集合接口,它提供了对集合对象进行基本操作的通用接口方法,所 有集合都是它的子类,比如Lst、Set等。 · Collections是一个包装类,包含了很多静态方法,不能被实例化,就像一个工具 类,比如提供的排序方法: Collections.sort(ist)。 20.List、Set、Map之间的区别是什么? List、set、Map的区别主要体现在两个方面:元素是否有序、是否允许元素重复。 三者之间的区别,如下表 元素有序 允许元素重复 List 是 是 Abstr actSet 否 Set HashSet 否 TreeSet 是(用二叉树排序) Map Abstr artMap Key值必须惟一, value可重复 否 HashMap TreeM ap 是(用二叉树排序) 21. HashMap和 Hashtable有什么区别? 存储: HashMap运行key和vaue为nul而 Hashtable不允许。 线程安全: Hashtable是线程安全的,而 Hash Map是非线程安全的 https://gitbook.cn/books/5c62197c73f4717175f7477/index.htmI 10/69 【实例截图】
【核心代码】

标签:

实例下载地址

Java 最常见 200+ 面试题全解析:面试必备.pdf

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警