随笔分类 - 03-八股文(部分) / 01-面试八股文之Java基础
八股文背诵
摘要:TCP、UDP的区别和应用场景 区别 基于连接 VS 无连接 TCP是面向连接的协议,而UDP是无连接的协议。这意味着当一个客户端和一个服务器通过TCP发送数据钱,必须先建立连接,建立连接的过程也被称为TCP三次握手 可靠性TCP 提供交付保证,这意味着一个使用TCP协议发送的消息是保证交付给客户端
阅读全文
摘要:七层架构主要包括 ①、物理层 主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。它的主要作用是传输比特流(就是由 1、0 转化为电流强弱来进行传输,到达目的地后在转化为1、0,也就是我们常说的模数转换与数模转换)。这一层的数据叫做比特 ②、数据链路层 主要将从物理层接
阅读全文
摘要:实现二分查找 二分查找的实现也很简单,如下所示 import java.util.Arrays; import java.util.Random; import java.util.Scanner; public class BinarySearch { /* 二分查找原理: 顾名思义,就是在一个数
阅读全文
摘要:1、ArrayList和LinkedList的区别 1.1、作用 ArrayList和LinkedList都是实现了List接口的容器类,用于存储一系列的对象引用。它们可以对元素的增删改查进行操作 对于ArrayList,它在集合的末尾删除或添加元素所用的时间是一致的,但是在列表中间的部分添加或删除
阅读全文
摘要:实现二分查找 二分查找的实现也很简单,如下所示 import java.util.Arrays; import java.util.Random; import java.util.Scanner; public class BinarySearch { /* 二分查找原理: 顾名思义,就是在一个数
阅读全文
摘要:ArrayList和LinkedList的区别 作用 ArrayList和LinkedList都是实现了List接口的容器类,用于存储一系列的对象引用。它们可以对元素的增删改查进行操作 对于ArrayList,它在集合的末尾删除或添加元素所用的时间是一致的,但是在列表中间的部分添加或删除时所用的时间
阅读全文
摘要:Java中常用的线程池类 ①、newCachedThreadPool 创建一个可进行缓存重复利用的线程池 ②、newFixedThreadPool 创建一个可重用固定线程数的线程池,以共享的无界队列方式来运行这些线程,线程池中的线程处于一定的量,可以很好的控制线程的并发量 ③、newSingleTh
阅读全文
摘要:Java线程中wait和sleep的区别 ①、来自不同的类 wait()来自Object类 sleep()来自Thread类 ②、锁的释放时机不同 wait()方法在等待的过程中会释放锁 sleep()方法在等待的过程中不会释放锁 ③、使用的范围 wait()方法必须在同步代码块中使用 sleep(
阅读全文
摘要:Java中线程相关的基本方法 线程相关的基本方法有:wait、notify、notifyAll、sleep、join、yield等 ①、线程等待(wait) 调用该方法的线程会进入**WAITING状态**,只有等待另外线程的通知或者被中断才会返回,需要注意的是调用wait()方法后,会释放对象的锁
阅读全文
摘要:Java中线程的状态类型 线程的状态类型 源码作者的原注释关于线程内部类State描述了线程的六个状态 A thread state. A thread can be in one of the following states: ①、NEW 尚未启动的线程处于此状态 源码中的注释 A thread
阅读全文
摘要:如何启动一个新线程 很简单,创建一个线程对象,然后调用其start方法即可,start方法会让Jvm调用我们重写的run 或者call方法 调用start和run方法的区别 线程对象调用run方法不开启线程,仅仅是对象调用方法 线程对象调用start方法开启线程,并让jvm调用run方法,在开启的线
阅读全文
摘要:Runnable和Callable的区别 Runnable接口的run方法无返回值;Callable接口call方法有返回值,支持泛型 Runnable接口的run方法只能抛出运行时异常,且无法捕获处理;Callable接口Call方法允许抛出异常,可以获取异常信息
阅读全文
摘要:创建线程的几种方式 ①、继承Thread类,并重写run方法创建线程,实现简单但不可以继承其他类 ②、实现Runnable接口,并重写run方法。避免了单继承局限性,编程更加灵活,实现解耦 ③、实现Callable接口,并重写call方法创建线程。可以获取线程执行结果的返回值,并且可以抛出异常 ④、
阅读全文
摘要:List和Map、Set的区别 List和Set是存储单列数据的集合;Map是存储键值对这样的双列数据的集合 List中存储的数据是有序的,并且值可重复 Map中存储的数据是无序的,它的键不允许重复,但是值允许重复 Set中存储的数据是无序的,并且不允许重复,HashSet是靠hashCode和eq
阅读全文
摘要:冒泡排序的实现 冒泡排序比较简单,如下所示 import java.util.Arrays; import java.util.Random; import java.util.Scanner; public class BubbleSort { public static void main(St
阅读全文
摘要:单例模式的概念 在程序运行时,同一个类只有一个实例 单例模式的类型 饿汉式 public class Singleton { private static Singleton instance = new Singleton(); private Singleton(){} public stati
阅读全文
摘要:接口和抽象类的区别 抽象类要被子类继承,接口要被类实现 接口里定义的变量只能是公共的静态的常量,抽象类中的变量是普通变量 接口可继承接口,并可多继承接口,但是类只能单继承
阅读全文
摘要:String、StringBuffer、StringBuilder三者之间的区别 1、String String是一个final类,其不能被集成 内部维护了一个常量字符数组 private final char value[];,所以String类一旦实例化,它的值就不可以再改变 2、StringB
阅读全文
摘要:Java中==和equals的区别 1、== 基本类型比较 比较的就是值是否相同 引用类型比较 比较的就是地址值是否相同 2、equals 重写前 比较的是地址值 重写后 按照重写方法的逻辑进行比较
阅读全文
摘要:重载和重写的区别 1、重载 发生在同一个类中,方法名相同,参数列表不一致,构成重载;且与返回值无关 public int add(int a, int b){return a + b}方法的参数列表就是(int, int) 2、重写 发生在父子类中,方法名和参数列表必须相同,==返回值范围小于等于父
阅读全文