秋招复习
年薪30万
这个作者很懒,什么都没留下…
展开
-
Char和Varchar的区别
1、定长和变长char 长度固定,varchar长度可变。char如果插入的长度小于定义长度时,则用空格填充;varchar小于定义长度时,还是按实际长度存储,插入多长就存多长。因为其长度固定,char的存取速度还是要比varchar要快得多,方便程序的存储与查找;但是char也为此付出的是空间的代价,因为其长度固定,所以会占据多余的空间,可谓是以空间换取时间效率。varchar则刚好相反,以时间换空间。2、存储的容量不同char ,最多能存放的字符个数 255,和编码无关。varchar.原创 2021-07-25 13:50:37 · 462 阅读 · 0 评论 -
ArrayList和LinkedList区别(面试标准答案)
查询:如果是指定下标的查询,arraylist的速度是快于linkedList的;因为链表的话他需要遍历我们这个链表查询指定的元素。但我们linkedList查询第一个和最后一个元素的速度还是比较快的,因为在linkedlist的内部有2个属性first 和last,一直记录着我们这个链表第一个和最后一个元素的位置在哪里。添加:arrylist把元素添加到尾部,但可能会涉及扩容,所以数组添加的时候不一定是最快的。还有就是添加一个元素到指定的位置,会涉及数组元素位置的移动。添加的时候整体的性能还...原创 2021-07-25 10:05:54 · 410 阅读 · 3 评论 -
hashmap和concurrenthashmap源码分析(1.7/1.8)
JDK 1.8 HashMap 的 hash 方法源码: static final int hash(Object key) { int h; // key.hashCode():返回散列值也就是hashcode // ^ :按位异或 // >>>:无符号右移,忽略符号位,空位都以0补齐 return (key == null) ? 0 : (h = key.hashCode()) ^ (h >>> 16)原创 2021-07-25 10:02:28 · 290 阅读 · 3 评论 -
校招面试之单例模式
Singleton:在java中即指单例设计模式。单:唯一;例:实例。一、要点:一是某个类只能有一个实例 (构造器私有化) 二是它必须自行创建这个实例(含有一个该类的静态变量来保存这个唯一的实例) 三是它必须自行向整个系统提供这个实例(对外提供获取实例对象的方法:(1)直接暴露(2)用静态变量的get方法获取)二、几种常见形式:饿汉式:直接创建对象,不存在线程安全问题。1.直接实例化饿汉式(简洁直观)://饿汉式://在类初始化的时候直接创建实例对象,不管你是否需要这个对象/原创 2021-02-15 18:21:43 · 160 阅读 · 2 评论 -
异常体系
ConcurrentModificationException (并发修改异常)原创 2020-11-26 17:08:27 · 106 阅读 · 0 评论 -
面向对象部分
一.三大特征封装 继承 多态:程序中允许出现重名现象,多态体现:重载+重写。重载与重写的区别:1)重写:发生在父子类中,方法名相同,参数列表相同,返回值相同,权限修饰符不能小于被重写方法的修饰符。遵循“运行期”绑定,根据引用指向对象的类型调用方法。运行时确定如何调用称为动态绑定(晚绑定)多态体现(动态绑定)2)重载:发生在一个类中,方法名相同,参数列表不同(参数个数,参数类型),方法体一般也不同,与返回值无关,与权限修饰符无关。遵循“编译期”绑定,根据引用的类型调用方法。编原创 2020-11-26 16:37:40 · 106 阅读 · 0 评论 -
String的特性
一.finalfinal修饰变量:变量的地址不能被改变(不能被重新赋值)。final修饰方法:该方法不能被重写。final修饰类:该类不能被继承。二.String为什么被设计为不可变的String的源码:public final class Stringimplements java.io.Serializable, Comparable<String>, CharSequence {/** The value is used for character .原创 2020-11-23 15:55:33 · 200 阅读 · 1 评论 -
JAVA中重载与重写的理解
1.重写(Override)字面意思上来看,就是在子类中把父类的方法重写一遍,子类继承了父类的原有的方法,但子类有时候不想原封不动的继承父类的方法,所以在方法名,参数列表和返回值类型相同的条件下对方法体进行修改即重写。注意子类函数的访问修饰权限不能少于父类的。public class Father { public static void main(String[] args) { Son s = new Son(); s.eat();.原创 2020-11-22 11:26:43 · 131 阅读 · 0 评论 -
线程与多线程
一.线程与进程1.并发与并行并发:指两个或多个事件在同一时间段内发生的。(交替执行)并行:指两个或多个事件在同一时刻发生的。(同时执行)2.线程与进程进程:指正在运行中的应用程序,每个进程都有一个独立的额内存空间,进程是程序的一次执行过程,是系统运行程序的基本单位。每当用户启动一个进程时,操作系统为该进程分配一个独立的内存空间,让进程在这个独立内存空间运行。线程:线程是进程中的一个执行单元,负责当前进程中程序的执行,一个进程中至少有一个线程。3.主线程:jvm执行main方.原创 2020-11-18 18:26:31 · 102 阅读 · 0 评论 -
java中值传递和引用传递区别
一:基本数据类型和引用数据类型1.基本类型的变量保存原始值,即变量就是数据本身。常见的基本数据类型:byte,short,char,int,long,float,double,boolean.2.引用数据类型的变量保存引用值,引用值就是对象所在内存空间的“首地址”,通过对这个引用值来操作对象。常见的引用类型:类类型,接口类型,数组。二.值传递和引用传递1.值传递是指在调用函数时将实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改,将不会影响到实际参数。publi.原创 2020-11-17 17:15:09 · 460 阅读 · 2 评论 -
JAVA中装箱和拆箱的理解
装箱:是通过调用包装器类的valueOf方法实现的。例:int 装箱的时候会自动调用Integer的valueOf(int)方法拆箱:是通过调用包装器类的xxx.value方法实现的,xxx代表对应的基本数据类型。例:Integer拆箱的时候会自动调用Integer的intValue方法。注意:Integer integer100=null;int int100=integer100;解析:能通过编译但运行时会抛出空指针异常。integer100为Intege...原创 2020-11-17 16:46:29 · 240 阅读 · 0 评论 -
Object方法
java中Object(java.long)主要的方法如下:1.clone 返回的对象为浅拷贝clone()方法是一个被声明为native 的方法,不是java的原生方法,具体的实现由c/c++实现。目的就是创建并返回此对象的一个副本。形象点说:这有一副漂亮的画,你也想要个一模一样的,就可以调用此方法像变魔术一样变出来一模一样的画。但从此刻起,之前的那副画如果进行了新的改动,与你克隆出来的画没有任何关系了。你克隆出来的对象变不变完全取决于你对克隆出来的画有没有进行过什么操作。...原创 2020-11-15 11:47:22 · 248 阅读 · 0 评论 -
java八大基本数据类型
Java的八大数据类型:字符类型:char (2个字节,16位,存储Unicode码) 对应的封装器类:Character布尔类型:boolean(1个字节,只有true和false两个取值) 对应的封装器类:Boolean数值类型:byte:(1个字节,8位,存放的数据范围-128-127) 对应的封装器类:Byteshort:(2个字节,16位) ...原创 2020-11-14 22:43:05 · 103 阅读 · 0 评论