首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

java面试知识要点汇总(基础和集合)

接口和抽象类都可以包含抽象方法,实现接口或继承抽象类的普通子类都必须实现这些抽象方法。...区别: 接口里只能包含抽象方法,静态方法和默认方法,不能为普通方法提供方法实现,抽象类则完全可以包含普通方法。...接口不能包含构造器,抽象类可以包含构造器,抽象类里的构造器并不是用于创建对象,而是让其子类调用这些构造器来完成属于抽象类的初始化操作。 接口里不能包含初始化块,但抽象类里完全可以包含初始化块。...一个类最多只能有一个直接父类,包括抽象类,但一个类可以直接实现多个接口,通过实现多个接口可以弥补Java单继承不足。...### HashSet 和 HashMap 区别 HashMap HashMap实现了Map接口 HashMap储存键值对 使用put()方法将元素放入map中 HashMap中使用键对象来计算hashcode

93930

Java基础常见面试题

2 接口和抽象类都可以包含抽象方法,实现接口或继承抽象类的普通子类都必须实现这些抽象方法。...3 接口不能包含构造器,抽象类可以包含构造器,抽象类里的构造器并不是用于创建对象,而是让其子类调用这些构造器来完成属于抽象类的初始化操作。...4 接口里不能包含初始化块,但抽象类里完全可以包含初始化块。 5 一个类最多只能有一个直接父类,包括抽象类,但一个类可以直接实现多个接口,通过实现多个接口可以弥补Java单继承不足。...首先需要定义一个基类,该类的子类通过不同的方法实现了基类中的方法。然后需要定义一个工厂类,工厂类可以根据条件生成不同的子类实例。...对成员变量的进行获取和更改,一般用get(),set() ,public 方法。实现了Java面向对象的封装思想。 缺省 访问权限与protected相似,但修饰类成员时不同包中的子类不能访问。

54941
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Java 面试整理

    与StringBuffer一样都继承和实现了同样的接口和类,方法除了没使用synch修饰以外基本一致,不同之处在于最后toString的时候,会直接返回一个新对象。...1、抽象类和接口都不能直接实例化,如果要实例化,抽象类变量必须指向实现所有抽象方法的子类对象,接口变量必须指向实现所有接口方法的类对象。 2、抽象类要被子类继承,接口要被类实现。...3、接口只能做方法申明,抽象类中可以做方法申明,也可以做方法实现 4、接口里定义的变量只能是公共的静态的常量,抽象类中的变量是普通变量。...5、抽象类里的抽象方法必须全部被子类所实现,如果子类不能全部实现父类抽象方法,那么该子类只能是抽象类。同样,一个实现接口的时候,如不能全部实现接口方法,那么该类也只能为抽象类。...TreeSet :TreeSet实现了SortedSet接口,能够对集合中的对象进行排序。 Map: Map是一种把键对象和值对象映射的集合,它的每一个元素都包含一个键对象和值对象。

    40210

    java菜鸟教程+视频笔记

    4、局部变量没有默认值,所以局部变量被声明后,必须经过初始化,才可以使用。...9、静态变量(类变量)除了被声明为常量外很少使用。常量是指声明为public/private,final和static类型的变量。常量初始化后不可改变。 10、静态变量储存在静态存储区。...抽象类中不一定包含抽象方法,但是有抽象方法的类必定是抽象类。 3. 抽象类中的抽象方法只是声明,不包含方法体,就是不给出方法的具体实现也就是方法的具体功能。 4....构造方法,类方法(用static修饰的方法)不能声明为抽象方法。 5. 抽象类的子类必须给出抽象类中的抽象方法的具体实现,除非该子类也是抽象类。...在多级继承的情况下,将从继承树的最上层的父类开始,依次执行各个类的构造方法,这可以保证子类对象从所有直接或间接父类中继承的实例变量都被正确地初始化。

    1.1K10

    万丈高楼平地起,爆肝21000字Java基础知识总结,收藏起来总有用得着的时候

    2:抽象方法只定义方法声明,并不定义方法实现。 3:抽象类不可以被创建对象(实例化)。 4:只有通过子类继承抽象类并覆盖了抽象类中的所有抽象方法后,该子类才可以实例化。否则,该子类还是一个抽象类。...接口的子类必须实现了接口中所有的抽象方法后,该子类才可以实例化。否则,该子类还是一个抽象类。 4:类与类之间存在着继承关系,类与接口中间存在的是实现关系。     ...抽象类与接口: 抽象类:一般用于描述一个体系单元,将一组共性内容进行抽取,特点:可以在类中定义抽象内容让子类实现,可以定义非抽象内容让子类直接使用。它里面定义的都是一些体系中的基本内容。...接口需要被实现,而且可以多实现。 2:抽象类中可以定义非抽象方法,子类可以直接继承使用。 接口中都是抽象方法,需要子类去实现。 3:抽象类使用的是 is a 关系。 接口使用的 like a 关系。...**同步函数使用的锁是this,静态同步函数的锁是该类的字节码文件对象**。 **在一个类中只有一个同步的话,可以使用同步函数。如果有多同步,必须使用同步代码块,来确定不同的锁。

    48111

    Java基础知识总结

    2:抽象方法只定义方法声明,并不定义方法实现。 3:抽象类不可以被创建对象(实例化)。 4:只有通过子类继承抽象类并覆盖了抽象类中的所有抽象方法后,该子类才可以实例化。否则,该子类还是一个抽象类。...接口的子类必须实现了接口中所有的抽象方法后,该子类才可以实例化。否则,该子类还是一个抽象类。 4:类与类之间存在着继承关系,类与接口中间存在的是实现关系。...抽象类与接口: 抽象类:一般用于描述一个体系单元,将一组共性内容进行抽取,特点:可以在类中定义抽象内容让子类实现,可以定义非抽象内容让子类直接使用。它里面定义的都是一些体系中的基本内容。...接口需要被实现,而且可以多实现。 2:抽象类中可以定义非抽象方法,子类可以直接继承使用。 接口中都是抽象方法,需要子类去实现。 3:抽象类使用的是 is a 关系。 接口使用的 like a 关系。...同步函数使用的锁是this,静态同步函数的锁是该类的字节码文件对象。 在一个类中只有一个同步的话,可以使用同步函数。如果有多同步,必须使用同步代码块,来确定不同的锁。所以同步代码块相对灵活一些。

    1.3K31

    Dart学习笔记

    抽象类中可以定义没有方法体的抽象方法 抽象类不能被实例化 abstract class Study { void study(); } 继承与实现 抽象类与类都可以被作为接口进行实现,当一个类被用来实现...,其成员仅结构起作用,而方法实现都无关系(因为实现类不能复用代码,必须重新实现该成员结构) 一个类 / 抽象类可以实现多个抽象类,但是只能继承一个类 / 抽象类 Dart中通过extends关键字进行继承...,Dart允许通过mixin实现伪多继承 继承构造 子类构造函数默认继承父类构造函数(隐式调用) 通过在子类构造函数形参列表后使用:可以修改要使用的父类构造函数,比如 class A {...而实现一个 类 / 抽象类 ,代码不会复用,需要在实现类中编写满足被实现 类/抽象类 所有成员的成员结构进行实现,比如 // 父类1 class SupperClass1{...进行mixin继承 mixin继承解决多继承同名同类型成员冲突的规则是,如果当前类中,包含该同名同类型成员,则使用当前类成员,否则使用离with关键字最优、实现了该同名同类型成员的类中的成员,比如 class

    1.1K30

    最新Java面试题 每一题都是经典

    List、 Set和Map的区别 1、List中的元素,有序、可重复、可为空; 2、Set中的元素,无序、不重复、只有一个空元素; 3、Map中的元素,无序、键不重,值可重、可一个空键、多个空值;  break...什么是多态 多态是父类或接口定义的引用变量指向子类或具体实现类的实例对象。 前提:实现或继承关系;覆写父类方法。 好处:提高了程序的扩展性。...接口和抽象类的区别 抽象类: 抽象类可以定义构造方法 可以有抽象方法和具体方法 抽象类的中的成员可以用public private 缺省和protected修饰 抽象类中可以定义普通成员变量 一个类只能继承一个抽象类...接口: 接口不能定义构造方法 方法全部是抽象方法 接口中的成员都是public修饰的 接口中定义的变量都是常量 一个类可以实现多个接口 什么是方法重写 子类根据自己的需求重新定义父类继承过来的方法叫做方法重写...重载是在同一个类,重写是在父子类中 重载的参数列表不同,重写参数列表相同 重载和返回值无关, 重写的返回值相同或者是父类方法返回值的子类 重载可以使用任意访问修饰符,重写访问修饰符大于等于父类方法修饰符

    89010

    精选Java基础面试120题

    形式参数是基本类型要的是一个基本类型的变量或者具体的常量值 类名时要的是一个该类的对象 抽象类名时要的是一个继承自该类的一个子类对象 接口时要的是一个实现了该接口的子类对象 2.16 返回值类型是基本类型返回的是什么...返回值是基本数据类型的时候返回的是一个具体的值 类名时 本质上返回的是一个该类对应的子类对象 抽象类名时 返回的应该是一个继承自该类的子类对象 接口名的时 返回的是一个实现了该接口的子类对象 2.17...局部变量:随着方法的调用而存在,随着方法的调用完毕而消失 初始化值不同 成员变量:有默认初始化值 局部变量:没有默认初始化值,必须定义,赋值,然后才能使用。...抽象类的定义使用了关键字abstract声明的类叫做“抽象类”。如果一个类里包含了一个或多个抽象方法,类就必须指定成abstract(抽象)。...抽象类虽然不能进行实例化,但是抽象类中是存在构造方法,该构造方法的作用是用于子类访问父类数据时的初始化. 5.11 接口中成员变量的特点,以及成员方法的特点?

    78720

    Java高级工程师常见面试题(一)-Java基础「建议收藏」

    集合支持并发请求,且可以写成 Map map = {name:”xxx”,age:18}; JAVA8: java8的新特新逐一列出,并将使用简单的代码示例来指导你如何使用默认接口方法,lambda表达式...ReferenceQueue类表示引用队列,它可以和这三种引用类联合使用,以便跟踪Java虚拟机回收所引用的对象的活动。 17. 抽象类和接口的区别 抽象类是用来捕捉子类的通用特性的 。...它根本不存在方法的实现 实现 子类使用extends关键字来继承抽象类。如果子类不是抽象类的话,它需要提供抽象类中所有声明的方法的实现。 子类使用关键字implements来实现接口。...它需要提供接口中所有声明的方法的实现 构造器 抽象类可以有构造器 接口不能有构造器 与正常Java类的区别 除了你不能实例化抽象类之外,它和普通Java类没有任何区别 接口是完全不同的类型 访问修饰符...由于Java不支持多继承,子类不能够继承多个类,但可以实现多个接口。因此你就可以使用接口来解决它。 如果基本功能在不断改变,那么就需要使用抽象类。

    67320

    java中高级面试题总结(全面)_java高级面试题大汇总

    JAVA为数据结构中的映射定义了一个接口java.util.Map,而HashMap Hashtable和TreeMap就是它的实现类。...接口:继承只是个开始,要使用多态,我们还需要接口。Interface 是一种100%纯抽象的类。 抽象类:有些类根本就不应该被初始化!抽象类不能初始化!但是可以用抽象类型作为一个引用类型。...然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。...接口中的所有方法都是抽象的,没有一个有 程序体。接口只可以定义static final成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。...当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。 然后,它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。

    1.1K20

    java综合面试练习题

    一个类可以有几个直接父类?一个父类可有多少个子类?子类能获取直接父类的父类中的结构吗?子类能否获取父类中private权限的属性或方法?...一个类只能有一个父类 一个父类可以被任意数量的子类继承 并不能直接获取,如果父类的一些成员被private修饰,那么子类是无法访问的 默认default权限修饰的情况,子类必须和父类同一包下才可访问 如果要异包访问...都不能实例化,可以被继承 - 抽象类有构造器,但是接口没有 - 抽象类只能单继承,接口可以多接口继承 19.遍历一个List有哪些不同的方式?...2、迭代器遍历:iterator是面向对象的一个设计模式,目前是屏蔽不同数据集和的特点,统一遍历集合的接口。java在Collections中支持了iterator模式。...list和map是两种不同的数据结构,list是列表,map是键值对。

    58150

    JavaSE 基础学习之三 —— Java 的继承与接口

    抽象类 对于普通的类,其本身就是一个完善的功能类,可以直接产生实例化对象,并且在普通类中可以包含构造方法、普通方法、static 方法、常量和变量等内容。...抽象类,就是指在普通类的结构里面增加抽象方法的组成部分。 那么什么叫抽象方法呢?抽象方法,是指没有方法体的方法,即一个方法只有声明,没有实现。同时抽象方法还必须用 abstract 关键字来声明。...抽象类的使用原则如下: 抽象方法必须为 public 或者 protected(因为如果为 private,则不能被子类继承,子类便无法实现该方法),缺省情况下,默认为public; 抽象类不能直接实例化...,需要依靠子类采用向上转型的方式处理; 抽象类必须有子类,使用 extends 继承,一个子类只能继承一个抽象类; 对于不是抽象类的子类,必须覆写抽象类之中的全部抽象方法(如果子类没有实现父类的抽象方法...,则必须将子类也定义为 abstract 类); 对于抽象类,还有一些需要注意的地方: 抽象类继承子类,其中有明确的方法覆写要求,而普通类可以有选择性的来决定是否需要覆写; 抽象类实际上就比普通类多了一些抽象方法而已

    48140

    3小时Java入门

    Map中的key是唯一的,作为key的对象必须实现equals和hashCode方法。使用TreeMap时,放入的Key必须实现Comparable接口。 Map通常用来高效地进行查找。...多态具有一个非常强大的功能,就是允许添加更多类型的子类实现功能扩展,却不需要修改基于父类的代码。 这就实现了面向对象编程非常著名的开闭原则:对扩展开放,对修改封闭。 ? ? ?...抽象类的作用在于定义签名规范,具体的业务实现留给子类去做。 ?...二十三,接口 在抽象类中,抽象方法本质上是定义接口规范:即规定高层类的接口,从而保证所有子类都有相同的接口实现,这样,多态就能发挥出威力。...Java中泛型的实现是使用的擦拭法,编译器编译包含泛型的类时将泛型换成Object类型, 编译器编译泛型实例化的代码时根据泛型的具体类型进行安全转型,而JVM虚拟机对泛型一无所知。

    2.7K30

    java面试题-javaSE基础

    多态性:多态性是指允许不同子类型的对象对同一消息做出不同的响应。简单来收就是用同样的方法做出不同的事情。...重载发生在一个类中,同名的方法如果有不同的参数列表,则视为被重载;重写发生在子类和父类之间,重写的子类要求和父类的方法返回值的类型一致。重载对返回值没有特殊要求。...抽象类: 抽象类可以定义构造器 可以有抽象方法和具体方法 接口的成员全都是public的 抽象类中可以定义成员变量 有抽象的方法的类必须声明为抽象类,而抽象类中未必要有抽象方法 抽象类中可以包含静态方法...靠的是父类或接口定义的引用变量可以指向子类具体实现类的实例对象,而程序调用的方法运行期间才能动态绑定,就是引用变量所指向的具体实例对象的方法,也就是内存里正在运行的那个对象的方法,而不是引用变量的类型中定义的方法...区别 : List 集合中对象按照索引位置排序,可以有重复对象,允许按照对象在集合中的索引位置检索对象,例如通过list.get(i)方法来获取集合中的元素; Map 中的每一个元素包含一个键和一个值

    15610

    Java面试题合集

    List:有顺序的collection,并且可以包含重复元素。 Map:可以把键(key)映射到值(value)的对象,键不能重复。 6.MVC的各个部分都有那些技术来实现?如何实现?...不能创建abstract 类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。...Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。 接口(interface)是抽象类的变体。...由于有抽象类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换,instanceof 运算符可以用来决定某对象的类是否实现了接口。...一般Singleton模式通常有几种种形式: 第一种形式: 定义一个类,它的构造函数为private的,它有一个static的private的该类变量,在类初始化时实例话,通过一个public的getInstance

    786100

    Java基础第二阶段知识点,招初级java的面试官都在问这些

    java.io 输入输出:OutputStream File 2、JDK、JRE、JVMA的区别 JDK:是java开发的工具箱,包含jre,还包含将java文件编译为class文件的javac工具类...:虚拟机,java运行依赖虚拟机,因为虚拟机所以才能跨平台 3、&与&&区别 &&具有短路的功能,即第一个表达式为false,则不再计算第二个表达式;&不管第一个正确与否都会计算第二个 4、char型变量能不能储存一个汉字...24、封装概念 隐藏对象的属性与实现细节,仅提供公共的访问的方式 25、继承概念 将类中重复的属性和方法抽取到一个类中,其他类无序定义这些属性,只需要继承这个类即可 26、多态概念 允许不同类的对象对同一消息作出响应...27、Overload与Override的区别 重写与重载都是java多态的体现。重写是父类与子类之间的多态性的一种表现形式,重载是一个类中多态性的表现形式。...JVM中类的装载是由ClassLoader和它的子类来实现的,Java ClassLoader 是一个重要的Java运行时系统组件。它负责在运行时查找和装入类文件的类。

    48010

    Java基础第二阶段知识点,招初级java的面试官都在问这些

    java.io 输入输出:OutputStream File 2、JDK、JRE、JVMA的区别 JDK:是java开发的工具箱,包含jre,还包含将java文件编译为class文件的javac工具类...:虚拟机,java运行依赖虚拟机,因为虚拟机所以才能跨平台 3、&与&&区别 &&具有短路的功能,即第一个表达式为false,则不再计算第二个表达式;&不管第一个正确与否都会计算第二个 4、char型变量能不能储存一个汉字...24、封装概念 隐藏对象的属性与实现细节,仅提供公共的访问的方式 25、继承概念 将类中重复的属性和方法抽取到一个类中,其他类无序定义这些属性,只需要继承这个类即可 26、多态概念 允许不同类的对象对同一消息作出响应...27、Overload与Override的区别 重写与重载都是java多态的体现。重写是父类与子类之间的多态性的一种表现形式,重载是一个类中多态性的表现形式。...JVM中类的装载是由ClassLoader和它的子类来实现的,Java ClassLoader 是一个重要的Java运行时系统组件。它负责在运行时查找和装入类文件的类。

    45940

    Java基础八股文(背诵版)

    ,在同一包内可见 private: 在同一类内可见,不能修饰类 protected : 对同一包内的类和所有子类可见,不能修饰类 public: 对所有类可见 构造方法、成员变量初始化以及静态成员变量三者的初始化顺序...编译时多态主要指方法的重载,即通过参数列表的不同来区分不同的方法。 运行时多态主要指继承父类和实现接口时,可使用父类引用指向子类对象。...重载方法可以改变返回值的类型,覆盖方法不能改变返回值的类型。 接口和抽象类的相同点和不同点? 相同点: 都不能被实例化。 接口的实现类或抽象类的子类需实现接口或抽象类中相应的方法才能被实例化。...不同点: 接口只能有方法定义,不能有方法的实现,而抽象类可以有方法的定义与实现。 实现接口的关键字为 implements,继承抽象类的关键字为 extends。...一个类可以实现多个接口,只能继承一个抽象类。 当子类和父类之间存在逻辑上的层次结构,推荐使用抽象类,有利于功能的累积。当功能不需要,希望支持差别较大的两个或更多对象间的特定交互行为,推荐使用接口。

    45K2738

    java_面试_01_一个月的面试总结(java)

    final、static、native、等特殊关键字的使用 Java按值传递的过程 重构和重载 抽象类和接口 内部类的使用:匿名内部类、静态内部类等 Java多线程并发、生产者消费者的实现 Java连接数据库的过程...Java NIO的缓冲导向方法略有不同。数据读取到一个它稍后处理的缓冲区,需要时可在缓冲区中前后移动。这就增加了处理过程中的灵活性。但是,还需要检查是否该缓冲区中包含所有您需要处理的数据。...(3)抽象类可以包含属性,方法,构造方法,初始化块,内部类,枚举类,和普通类一样,普通方法一定要实现,变量可以初始化、不初始化但不能初始化后在抽象类中重新赋值或操作该变量(只能在子类中改变该变量)。...扩展:抽象类和接口的区别: (1)接口是公开的,里面不能有私有的方法或变量,是用于让别人使用的,而抽象类是可以有私有方法或私有变量的。...抽象类中的变量默认是friendly 型,其值可以在子类中重新定义,也可以在子类中重新赋值。 二、参考资料 1.一个月的面试总结(java)

    63030
    领券