![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java面试练习题
文章平均质量分 80
java面试练习题
暴走的山交
已经步入社会的java程序员,希望前途一片光明,努力努力再努力!
展开
-
GET和POST两种基本请求方法的区别
GET和POST两种基本请求方法的区别GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二。最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数。你可能自己写过无数个GET和POST请求,或者已经看过很多权威网站总结出的他们的区别,你非常清楚知道什么时候该用什么。当你在面试中被问到这个问题,你的内心充满了自信和喜悦。你轻轻松松的给出了一个“标准答案”:GET在浏览器回退时是无害的,而POST会再次提交请求。转载 2021-01-23 17:32:24 · 193 阅读 · 0 评论 -
Java知识体系最强总结(2020版) 传送门
本人从事Java开发已多年,平时有记录问题解决方案和总结知识点的习惯,整理了一些有关Java的知识体系,这不是最终版,会不定期的更新。也算是记录自己在从事编程工作的成长足迹,通过博客可以促进博主与阅读者的共同进步,结交更多志同道合的朋友。特此分享给大家,本人见识有限,写的博客难免有错误或者疏忽的地方,还望各位大佬指点,在此表示感激不尽。 整理的Java知识体系主要包括基础知识,工具,并发编程,数据结构与算法,数据库,JVM,架构设计,应用框架,中间件,微服务架构,分布式架构,程序员的一些思考,团队与项目管转载 2021-01-06 22:46:19 · 592 阅读 · 0 评论 -
计算机网络面试题整理
谈一谈你对TCP/IP四层模型,OSI七层模型的理解? 为了增强通用性和兼容性,计算机网络都被设计成层次机构,每一层都遵守一定的规则。 因此有了OSI这样一个抽象的网络通信参考模型,按照这个标准使计算机网络系统可以互相连接。 物理层:通过网线、光缆等这种物理方式将电脑连接起来。传递的数据是比特流,0101010100。 数据链路层:首先,把比特流封装成数据帧的格式,对0、1进行分组。...原创 2021-01-06 22:33:39 · 277 阅读 · 1 评论 -
漫画 | 什么是 HashMap?
来源 | 程序员小灰(chengxuyuanxiaohui) 编辑 | 润发 ———————————— 众所周知,HashMap 是一个用于存储Key-Value键值对的集合,每一个键值对也叫做 En..转载 2021-01-06 22:29:18 · 180 阅读 · 0 评论 -
关于==和equals的区别和联系,面试这么回答就可以(转载)
长篇大论的话,我这里就不多写了,相信大家入门java 的时候就知道个大概了,这里想表述的是,如果面试官问你《关于==和equals的区别》,该怎么回答完美呢?可以这样说总结的来说:1)对于==,比较的是值是否相等如果作用于基本数据类型的变量,则直接比较其存储的 “值”是否相等;如果作用于引用类型的变量,则比较的是所指向的对象的地址2)对于equals方法,注意:equals方法不能作用于基本数据类型的变量,equals继承Object类,比较的是是否是同一个对象如果没有对equals方法进行重写转载 2021-01-02 19:51:06 · 207 阅读 · 0 评论 -
Java中==和equals的区别<深度理解> (转载)
最近开始回头复习Java基础内容,在遇到==这个关系运算符和equals运算符时,发现了很多有趣的现象。代码如下: //基本数据类型的比较 int num1 = 10; int num2 = 10; System.out.println(num1 == num2); //true //引用数据类型的比较 String s1 = "chance"; String s2 = "chance"; System.out.println(s1 =转载 2021-01-02 19:47:33 · 213 阅读 · 0 评论 -
面试问题: 三次握手和四次挥手的理解?
三次握手:tcp/ip协议 是传输层的面向连接的一个安全可靠的协议三次握手是为了确保建立一个安全可靠的连接第一次握手是客户端发起的,客户端向服务端发送一个报文,报文里,syn标志位置为1,表示建立一个新的连接.第二次握手,服务端收到客户端发送的报文,就知道了客户端要与自己建立一个连接,然后服务端就发送一个确认消息包,ACK标志位置为1,表明确认客户端发起的第一个连接请求.以上两次握手,对于客户端而言,已经知道了,我既可以向服务端发送消息,也可以接收到服务端的响应,但是对于服务端原创 2021-01-01 14:09:41 · 221 阅读 · 0 评论 -
TCP三次握手过程,为什么需要第三次握手?
关于TCP协议三次握手的问题,在面试中是最为常见的知识点之一,得到了很多面试官的青睐,如果这个知识点没有掌握好,面试官要是问得深入一点,求职者往往会不知所措。为什么建立连接需要三次握手?首先非常明确的是两次握手是最基本的。第一次握手,客户端发了个连接请求消息到服务端,服务端收到信息后知道自己与客户端是可以连接成功的,但此时客户端并不知道服务端是否已经接收到了它的请求,所以服务端接收到消息后的应答,客户端得到服务端的反馈后,才确定自己与服务端是可以连接上的,这就是第二次握手。客户端只有确定了自己能与服务转载 2020-11-11 14:14:56 · 1191 阅读 · 0 评论 -
SpringMVC执行流程图(自己重新总结的-容易理解与记忆)
⑴ 用户发送请求至前端控制器DispatcherServlet⑵ DispatcherServlet收到请求调用HandlerMapping处理器映射器。⑶ 处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。⑷ DispatcherServlet通过HandlerAdapter处理器适配器⑸ 执行处理器(Controller,也叫后端控制器)。⑹ Controller执行完成返回ModelAndView⑺ Ha.原创 2020-09-08 17:59:45 · 359 阅读 · 0 评论 -
34 怎么确保一个集合不能被修改?
34 怎么确保一个集合不能被修改?答:可以使用 Collections. unmodifiableCollection(Collection c) 方法来创建一个只读集合,这样改变集合的任何操作都会抛出 Java.lang.UnsupportedOperationException 异常。List<String> list = new ArrayList<>();list. add("x");Collection<String> clist = Collec原创 2020-07-24 15:43:26 · 743 阅读 · 0 评论 -
33 Iterator 和 ListIterator 有什么区别?
33 Iterator 和 ListIterator 有什么区别?答:ListIterator 继承 Iterator,且比 Iterator 有更多方法。add(E e) 将指定的元素插入列表,插入位置为迭代器当前位置之前set(E e) 迭代器返回的最后一个元素替换参数ehasPrevious() 迭代器当前位置,反向遍历集合是否含有元素previous() 迭代器当前位置,反向遍历集合,下一个元素previousIndex() 迭代器当前位置,反向遍历集合,返回下一个元素的下原创 2020-07-24 15:41:46 · 395 阅读 · 0 评论 -
32 Iterator 怎么使用?有什么特点?
32 Iterator 怎么使用?有什么特点?答:java.lang.Iterable 接口被 java.util.Collection 接口继承,java.util.Collection 接口的 iterator() 方法返回一个 Iterator 对象next() 方法获得集合中的下一个元素hasNext() 检查集合中是否还有元素remove() 方法将迭代器新返回的元素删除看到最后的帮忙点个赞???????? 谢谢,这个对我真的很重要!...原创 2020-07-24 15:39:36 · 661 阅读 · 0 评论 -
31 迭代器 Iterator 是什么?
31 迭代器 Iterator 是什么?答:Iterator 是可以遍历集合的对象,为各种容器提供了公共的操作接口,隔离对容器的遍历操作和底层实现(解耦)。缺点是增加新的集合类需要对应增加新的迭代器类,迭代器类与集合类也成对增加。拓展:迭代器是 Java 中常用的设计模式之一,用于顺序访问集合对象的元素,无需知道集合对象的底层实现。迭代器通常被称为“轻量级”对象,因为创建它的代价小。什么是迭代器(Iterator)?使用方法iterator()要求容器返回一个Iterat原创 2020-07-24 15:37:54 · 748 阅读 · 0 评论 -
030 哪些集合类是线程安全的?
030 哪些集合类是线程安全的?答:Vector:就比Arraylist多了个同步化机制(线程安全)。Hashtable:就比Hashmap多了个线程安全。Stack: 栈,也是线程安全的,继承于Vector。ConcurrentHashMap:是一种高效但是线程安全的集合看到最后的帮忙点个赞???????? 谢谢,这个对我真的很重要!...原创 2020-07-24 15:35:58 · 540 阅读 · 0 评论 -
019 Collection 和 Collections 有什么区别?
019 Collection 和 Collections 有什么区别?答:Collection是单列集合的顶级接口,其派生了两个子接口 Set 和 List。定义的是所有单列集合中共有的功能。Collections则是集合类的一个工具类/帮助类,其中提供了很多静态方法。用于对集合中元素进行排序、搜索以及线程安全等操作。总之:Collection是一个接口,而Collections是个类。看到最后的帮忙点个赞???????? 谢谢,这个对我真的很重要!...原创 2020-07-19 14:19:18 · 461 阅读 · 0 评论 -
018 java 容器都有哪些?
018 java 容器都有哪些?答:List、Set、Map看到最后的帮忙点个赞???????? 谢谢,这个对我真的很重要!原创 2020-07-18 14:15:59 · 261 阅读 · 0 评论 -
017 Files的常用方法都有哪些?
017 Files的常用方法都有哪些?答;Files. exists():检测文件路径是否存在。Files. createFile():创建文件。Files. createDirectory():创建文件夹。Files. delete():删除一个文件或目录。Files. copy():复制文件。Files. move():移动文件。Files. size():查看文件个数。Files. read():读取文件。Files. write():写入文件。更多files的方法看到最后的原创 2020-07-18 12:19:20 · 432 阅读 · 0 评论 -
016 BIO、NIO、AIO 有什么区别?
016 BIO、NIO、AIO 有什么区别?答:Java共支持3种网络编程模型/IO模式:BIO、NIO、AIO。Java BIO :同步并阻塞(传统阻塞型)服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销。Java NIO :同步非阻塞,服务器实现模式为一个线程处理多个请求(连接),即客户端发送的连接请求都会注册到多路复用器上,多路复用器轮询到连接有I/O请求就进行处理 。Java AIO(NIO.2) :异原创 2020-07-18 12:16:48 · 395 阅读 · 0 评论 -
015 IO流分为几种?
015 IO流分为几种?答:可以分4种。字节输入流(InputStream)字节输出流(OutputStream)字符输入流(Reader)字符输出流(Writer)看到最后的帮忙点个赞???????? 谢谢,这个对我真的很重要!原创 2020-07-18 12:13:53 · 227 阅读 · 0 评论 -
014 接口和抽象类有什么区别?
014 接口和抽象类有什么区别?答:1.抽象类要被子类继承,接口要被类实现。2.接口只能做方法声明,抽象类中可以作方法声明,也可以做方法实现。3.接口里定义的变量只能是公共的静态的常量,抽象类中的变量是普通变量。4.接口是设计的结果,抽象类是重构的结果。5.抽象类和接口都是用来抽象具体对象的,但是接口的抽象级别最高。6.抽象类可以有具体的方法和属性,接口只能有抽象方法和不可变常量。7.抽象类主要用来抽象类别,接口主要用来抽象功能。主要:抽象类的作用:降低接口实现类对接口实现过程的难度原创 2020-07-18 12:11:37 · 239 阅读 · 1 评论 -
013 抽象类能使用 final 修饰吗?
013 抽象类能使用 final 修饰吗?答:不能,抽象类是被用于继承的,而用final修饰的类,无法被继承。看到最后的帮忙点个赞???????? 谢谢,这个对我真的很重要!原创 2020-07-18 12:05:38 · 550 阅读 · 0 评论 -
029 在 Queue 中 poll()和 remove()有什么区别?
029 在 Queue 中 poll()和 remove()有什么区别?答:队列(queue)是一个典型的先进先出(FIFO)的容器。即从容器的一端放入事物,从另一端取出,并且事物放入容器的顺序与取出的顺序是相同的。相同点:都是返回第一个元素,并在队列中删除返回的对象。不同点:remove() ,如果队列为空的时候,则会抛出异常而poll()只会返回null看到最后的帮忙点个赞???????? 谢谢,这个对我真的很重要!...原创 2020-07-19 14:32:14 · 658 阅读 · 0 评论 -
028 Array 和 ArrayList 有何区别?
028 Array 和 ArrayList 有何区别?答:根本区别:Array 是数组;ArrayList 是集合存储内容比较: Array可以包含基本类型和对象类型,ArrayList只能包含对象类型。空间大小比较: array 是数组,arraylist 是集合,集合可以根据自身变化扩大,而数组创建后不可以变化。方法上的比较: ArrayList提供了更多的方法和特性,比如:addAll(),removeAll(),iterator()等等。Array类型的变量在声明的同时必须进行实例化(原创 2020-07-19 14:31:05 · 354 阅读 · 0 评论 -
027 ArrayList 和 Vector 的区别是什么?
027 ArrayList 和 Vector 的区别是什么?答:List接口一共有三个实现类,分别是ArrayList、Vector和LinkedList。List用于存放多个元素,能够维护元素的次序,并且允许元素的重复。主要区别:同步性:Vector是线程安全的,用synchronized实现线程安全,而ArrayList是线程不安全的。(实现同步需要很高的花费,所以访问Vector比访问ArrayList慢)数据容量增长:二者都有一个初始容量大小,采用线性连续存储空间,当存储的元素的个原创 2020-07-19 14:30:04 · 239 阅读 · 0 评论 -
026 如何实现数组和 List 之间的转换?
026 如何实现数组和 List 之间的转换?答:数组转 List ,使用 JDK 中 java.util.Arrays 工具类的 asList 方法import java.util.Arrays;import java.util.List;public class test26 { /** *一念之间123 */ public static void main(String[] args) { String[] strs = new St原创 2020-07-19 14:28:55 · 614 阅读 · 0 评论 -
025 ArrayList 和 LinkedList 的区别是什么?
025 ArrayList 和 LinkedList 的区别是什么?答:区别:数据结构:ArrayList 是动态数组的数据结构实现,而 LinkedList 是双向链表的数据结构实现。随机访问方式:LinkedList 是线性的数据存储方式,需要移动指针从前往后依次查找。所以 ArrayList 比 LinkedList 在随机访问的时候效率要高,增加和删除:ArrayList 增删操作要影响数组内的其他数据的下标。所以在非首尾的增加和删除操作,LinkedList 要比 A原创 2020-07-19 14:27:32 · 221 阅读 · 0 评论 -
024 说一下 HashSet 的实现原理?
024 说一下 HashSet 的实现原理?答:HashSet 的父类接口是Set集合HashSet 是以Hash表结构存储HashSet 多线程不安全HashMap 可以存null值,HashSet的底层是用HashMap实现的,将HashMap 值的那一列隐藏,就是HashSet (存在键的那一列)一般子类需要用到HashCode方法,并且进行重写。看到最后的帮忙点个赞???????? 谢谢,这个对我真的很重要!...原创 2020-07-19 14:26:25 · 1466 阅读 · 0 评论 -
023 说一下 HashMap 的实现原理?
023 说一下 HashMap 的实现原理?答:HashSet 是以Hash表结构存储可以存null键、null值HashMap 储存的是Jdk中提供的类型的键,可以保证唯一性;HashMap 储存的是自定义的键,无法保证唯一性(哈希冲突),见以下:一般子类需要用到HashCode方法,并且进行重写。例:String重写HashCode方法,只要是数据内容一样,返回的hashCode值就是一样(“abc”);如果数据不一样,但是hashCode值一样,则表示 hash 冲突(“通话”)。H原创 2020-07-19 14:25:27 · 845 阅读 · 0 评论 -
022 如何决定使用 HashMap 还是 TreeMap?
022 如何决定使用 HashMap 还是 TreeMap?答:区别TreeMapTreeMap<K,V>的Key值是要求实现java.lang.Comparable,所以迭代的时候TreeMap默认是按照Key值升序排序的;TreeMap的实现是基于红黑树结构。适用于按自然顺序或自定义顺序遍历键(key)。HashMapHashMap<K,V>的Key值实现散列hashCode(),分布是散列的、均匀的,不支持排序;数据结构主要是桶(数组),链表或红黑树。适用原创 2020-07-19 14:24:30 · 241 阅读 · 0 评论 -
021 HashMap 和 Hashtable 有什么区别?
021 HashMap 和 Hashtable 有什么区别?答:HashMap 和 Hashtable 都是用于存储键和值的对应关系,都是map的实现类,都是使用哈希表的方式存储。1.线程安全性不同Hashtable是线程安全的,它的每个方法中都加入了Synchronize方法。在多线程并发的环境下,可以直接使用Hashtable,不需要自己为它的方法实现同步HashMap不是线程安全的,在多线程并发的环境下,可能会产生死锁等问题。虽然HashMap不是线程安全的,但是它的效率会比Hashta原创 2020-07-19 14:23:29 · 1553 阅读 · 0 评论 -
020 List、Set、Map 之间的区别是什么?
020 List、Set、Map 之间的区别是什么?答:List:可以允许重复对象可以索引(可用普通的for循环遍历)是一个有序容器Set:数据不重复(使用equals()方法保证数据不重复)无序,存取的顺序不同无索引Map:Map 是双列集合的顶层接口Map 有两个对象:键(是唯一的)、值(是不唯一的)。键值对,是映射关系键(key):有规律,容易记,简单的数据值(value):无规律,难记,复杂的数据看到最后的帮忙点个赞???????? 谢谢,这个对我真的很重要!..原创 2020-07-19 14:22:25 · 248 阅读 · 1 评论 -
java面试题(csdn)
一、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.如何原创 2020-07-19 14:20:25 · 276 阅读 · 1 评论 -
012 普通类和抽象类有哪些区别?
012 普通类和抽象类有哪些区别?答:1.抽象类不能被实例化2.抽象类可以有抽象方法,抽象方法只需声明,无需实现3.含有抽象方法的类必须声明为抽象类4.如果没有实现抽象基类中所有的抽象方法,则子类成为一个抽象子类;如果实现抽象类中所有抽象方法,他就是非抽象子类;5.抽象方法不能被声明为静态static6.抽象方法不能用private修饰7.抽象方法不能用final修饰看到最后的帮忙点个赞???????? 谢谢,这个对我真的很重要!...原创 2020-07-18 12:03:52 · 487 阅读 · 0 评论 -
011 抽象类必须要有抽象方法吗?
011 抽象类必须要有抽象方法吗?答:不需要,抽象类不一定有抽象方法;但是包含一个抽象方法的类一定是抽象类。(有抽象方法就是抽象类,是抽象类可以没有抽象方法)看到最后的帮忙点个赞???????? 谢谢,这个对我真的很重要!...原创 2020-07-18 12:01:07 · 509 阅读 · 0 评论 -
10 String 类的常用方法都有那些?
10 String 类的常用方法都有那些?答:答:下面列举了20个常用方法。格式:返回类型 方法名 作用。1、和长度有关:int length() 得到一个字符串的字符个数2、和数组有关:byte[] getByte() ) 将一个字符串转换成字节数组char[] toCharArray() 将一个字符串转换成字符数组String split(String) 将一个字符串按照指定内容劈开3、和判断有关:boolean equals() 判断两个字符串的内容是否一样boolea原创 2020-07-18 11:56:40 · 2375 阅读 · 0 评论 -
09 JAVA如何将字符串反转?
09 JAVA如何将字符串反转?答:1.StringBuilder的reverse()方法,最简单```sqlpublic static String reverse4(String s) { return new StringBuffer(s).reverse().toString();}2.使用字符串数组,实现从尾部开始逐个逆序放入字符串sublic static String reverse3(String s) { char[] array = s.toCharArray原创 2020-07-18 11:48:49 · 3924 阅读 · 1 评论 -
08 String str=“i“与 String str=new String(“i”)一样吗?
08 String str="i"与 String str=new String(“i”)一样吗?答:不一样。因为内存的分配方式不一样。String str="i"的方式,Java 虚拟机会将其分配到常量池中;而 String str=new String(“i”)方式,则会被分到堆内存中。堆内存用来存放由new创建的对象和数组。 在堆中分配的内存,由Java虚拟机的自动垃圾回收器来管理。常量池指的是在编译期被确定,并被保存在已编译的.class文件中的一些数据。看到最后的帮忙点个原创 2020-07-18 11:43:27 · 610 阅读 · 0 评论 -
007 java 中操作字符串都有哪些类?它们之间有什么区别?
007 java 中操作字符串都有哪些类?它们之间有什么区别?答:String、StringBuffer、StringBuilder相同(StringBuffer、StringBuilder):都是字符串的缓冲区、可变的字符序列;具有相同的构造和方法。区别(String、StringBuffer、StringBuilder):内存String 是不可变的对象,每次操作都会生成新的 String 对象,然后将指针指向新的 String 对象,StringBuffer、StringBuilder原创 2020-07-18 11:38:14 · 236 阅读 · 0 评论 -
06 String 属于基础的数据类型吗?
06 String 属于基础的数据类型吗?答:答:不属于。Java 中 8 种基础的数据类型:byte、short、char、int、long、float、double、boolean但是 String 类型却是最常用到的引用类型。看到最后的帮忙点个赞???????? 谢谢,这个对我真的很重要!...原创 2020-07-18 11:34:29 · 319 阅读 · 0 评论 -
05 java 中的 Math.round(-1.5) 等于多少?
05 java 中的 Math.round(-1.5) 等于多少?答:注意:Math的round方法是四舍五入,如果参数是负数,则往大的数入,Math.round(-1.5)=-1,如果是Math.round(1.5)则结果为2看到最后的帮忙点个赞???????? 谢谢,这个对我真的很重要!...原创 2020-07-18 11:33:12 · 709 阅读 · 1 评论