- 博客(9)
- 收藏
- 关注
原创 Android Studio JSONObject取值问题
JSONObject.getString("key"):当对象中没有key对应的value时,会抛出No value for "key"的异常;如有循环,会打断循环。JSONObject.optString("key"):当对象中没有key对应的value时,不会抛出异常。
2022-04-10 11:07:25
2586
1
原创 Redis 缓存雪崩、缓存穿透、缓存击穿区别
缓存雪崩:同一时间大量key失效,导致大量请求直接到数据库,导致数据库挂掉。解决措施:设置缓存的时候随机初始化失效时间,避免集体失效。缓存穿透:缓存和数据库都没有的数据,导致大量请求穿透缓存到数据库,导致数据库挂掉。解决措施:接口层设置校验、使用布隆过滤器(拦截集合中本来就不存在的数据)缓存击穿:同一时间某一个热点key失效,导致大量请求直接到数据库,导致数据库挂掉。解决措施:采用分布式锁个人理解有限,如有错或遗漏请指正!!!...
2022-02-21 21:14:22
808
原创 面试题 进程与线程的关系、区别
进程:是程序的一次执行过程,是系统运行程序的基本单位。线程:线程是一个比进程更小的执行单位。每个线程有自己的程序计数器、虚拟机栈和本地方法栈,同类的多个线程共享进程的堆和方法区资源。(参考Java内存区域图)关系:一个进程有多个线程,同类的多个线程共享进程的堆和方法区资源。区别:1、线程是一个比进程更小的执行单位,基本上各进程是独立的,各线程则不一定,同一个进程中的各线程可能相互影响。2、线程执行开销比较小,不利于资源的管理和保护;进程执行开销比较大,有利于资源的管理和保护。...
2022-02-10 19:40:59
437
原创 面试题 MyISAM和InnoDB区别
1、InnoDB支持表级锁和行级锁,默认行级锁;MyISAM只支持表级锁2、InnoDB支持事务;MyISAM不支持3、InnoDB支持外键;MyISAM不支持4、InnoDB支持数据库异常崩溃后安全恢复;MyISAM不支持(使用 InnoDB 的数据库在异常崩溃后,数据库重新启动的时候会保证数据库恢复到崩溃前的状态。这个恢复的过程依赖于redo log[重做日志] )5、InnoDB支持MVCC;MyISAM不支持*6、InnoDB在5.6版本之后支持全文索引*7、InnoDB索
2022-02-06 20:00:19
1255
原创 面试题 ArrayList和LinkedList区别
相同点:ArrayList与LinkedList都是不同步的(Vector同步),都是线程不安全的。不同点:1、(底层数据结构不同)ArrayList底层数据结构是Object数组,LinkedList底层数据结构是双向链表。2、(主要控件开销不同)ArrayList主要为List列表的结尾预留一定的容量空间;LinkedList主要内存花费在存储指针和节点上。3、(插入和删除是否受元素位置影响)ArrayList采用数组存储,插入和删除元素时间复杂度受元素位置影响;LinkedList采用
2022-02-03 15:45:30
1188
原创 面试题 重写与重载的区别?
重写:(就是子类对父类方法的改造,外部样子不变,内部逻辑可以改变)发生在父类和子类之间;方法名、参数列表、返回值类型必须相同;子类访问修饰符权限要大于等于父类;子类抛出异常范围小于等于父类抛出的异常范围(不能出现新的强制性异常);子类方法返回值类型要小于等于父类方法的返回值类型。(两同两小一大)注意:1、如果父类的方法被private、final、static修饰,则不能被重写,但static修饰的方法可再次被声明;构造方法不能被重写。2、如果方法返回值类型是void和基本数
2022-02-02 19:19:28
1601
原创 面试题 抽象类与接口的区别
抽象类概念:如果一个类没有足够的信息来描述一个具体的对象,需要其它类来支持,这样的类称为抽象类。接口概念:是一种比抽象类还抽象的“类”相同点:1、都不能直接实例化,必须通过子类或实现类来实例化2、子类或实现类必须要重写父类所有抽象方法,否则要声明为抽象类不同点:1、(继承)接口支持多继承,抽象类支持单继承2、(关键字)接口用interface关键字修饰,抽象类用abstract class关键字修饰3、(成员变量)接口中只能是public static final修饰的公共的
2022-02-01 11:29:47
512
原创 Java关键字final、static、this、super总结
一、final关键字:final关键字特点:1、final修饰的类不能被继承2、final修饰的方法不能被重写3、如果final修饰的变量是基本数据类型,那么一旦被初始化后就不能更改;如果final修饰的是引用数据类型,那么一旦初始化后就不能指向其他对象。4、final不能修饰构造方法(构造器不是通过继承得到的,所以没有必要)使用final修饰的方法的原因:1、方法锁定,不能被继承类重写或修改2、高效(Java早期版本,会将final修饰的方法转为内嵌调用,但是如果方法过于庞
2022-01-31 16:43:27
836
原创 面试题 什么是面向对象?封装、继承、多态概念?什么是多态?多态三要素?
面向对象一般与面向过程对比:面向对象侧重于事情有多少的参与者(对象)和这些参与者需要做什么?面向过程侧重于事情的每一步骤及顺序。封装:将一个对象的内部实现细节隐藏起来,不被外部类访问;但是可以通过提供给外部类访问方法来访问。封装过程:属性私有化,提供get/set方法继承:不同类型的对象,使他们有一些共同的属性。场景:存在于父类与子类之间多态:一个对象有多种状态。多态三要素:两个类要有继承关系;子类重写父类的方法;父类的引用指向子类的对象。...
2022-01-30 16:31:51
1073
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人