Java基础
James-詹姆斯
JAMES BLOG
展开
-
面试题 进程与线程的关系、区别
进程:是程序的一次执行过程,是系统运行程序的基本单位。线程:线程是一个比进程更小的执行单位。每个线程有自己的程序计数器、虚拟机栈和本地方法栈,同类的多个线程共享进程的堆和方法区资源。(参考Java内存区域图)关系:一个进程有多个线程,同类的多个线程共享进程的堆和方法区资源。区别:1、线程是一个比进程更小的执行单位,基本上各进程是独立的,各线程则不一定,同一个进程中的各线程可能相互影响。2、线程执行开销比较小,不利于资源的管理和保护;进程执行开销比较大,有利于资源的管理和保护。...原创 2022-02-10 19:40:59 · 395 阅读 · 0 评论 -
面试题 ArrayList和LinkedList区别
相同点:ArrayList与LinkedList都是不同步的(Vector同步),都是线程不安全的。不同点:1、(底层数据结构不同)ArrayList底层数据结构是Object数组,LinkedList底层数据结构是双向链表。2、(主要控件开销不同)ArrayList主要为List列表的结尾预留一定的容量空间;LinkedList主要内存花费在存储指针和节点上。3、(插入和删除是否受元素位置影响)ArrayList采用数组存储,插入和删除元素时间复杂度受元素位置影响;LinkedList采用原创 2022-02-03 15:45:30 · 1155 阅读 · 0 评论 -
面试题 重写与重载的区别?
重写:(就是子类对父类方法的改造,外部样子不变,内部逻辑可以改变)发生在父类和子类之间;方法名、参数列表、返回值类型必须相同;子类访问修饰符权限要大于等于父类;子类抛出异常范围小于等于父类抛出的异常范围(不能出现新的强制性异常);子类方法返回值类型要小于等于父类方法的返回值类型。(两同两小一大)注意:1、如果父类的方法被private、final、static修饰,则不能被重写,但static修饰的方法可再次被声明;构造方法不能被重写。2、如果方法返回值类型是void和基本数原创 2022-02-02 19:19:28 · 1562 阅读 · 0 评论 -
面试题 抽象类与接口的区别
抽象类概念:如果一个类没有足够的信息来描述一个具体的对象,需要其它类来支持,这样的类称为抽象类。接口概念:是一种比抽象类还抽象的“类”相同点:1、都不能直接实例化,必须通过子类或实现类来实例化2、子类或实现类必须要重写父类所有抽象方法,否则要声明为抽象类不同点:1、(继承)接口支持多继承,抽象类支持单继承2、(关键字)接口用interface关键字修饰,抽象类用abstract class关键字修饰3、(成员变量)接口中只能是public static final修饰的公共的原创 2022-02-01 11:29:47 · 482 阅读 · 0 评论 -
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 · 781 阅读 · 0 评论 -
面试题 什么是面向对象?封装、继承、多态概念?什么是多态?多态三要素?
面向对象一般与面向过程对比:面向对象侧重于事情有多少的参与者(对象)和这些参与者需要做什么?面向过程侧重于事情的每一步骤及顺序。封装:将一个对象的内部实现细节隐藏起来,不被外部类访问;但是可以通过提供给外部类访问方法来访问。封装过程:属性私有化,提供get/set方法继承:不同类型的对象,使他们有一些共同的属性。场景:存在于父类与子类之间多态:一个对象有多种状态。多态三要素:两个类要有继承关系;子类重写父类的方法;父类的引用指向子类的对象。...原创 2022-01-30 16:31:51 · 1027 阅读 · 0 评论