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

java面试题基础篇 温故而知新 没事地铁上多看看

设计原则: 面向对象编程设计原则包括封装、继承和多态性。封装确保数据和方法内部隐藏,外部无法直接访问;继承允许子类从父继承属性和方法;多态性允许不同类对象对同一消息作出不同响应。...这是因为子类重写了父方法 equals与==区别 Javaequals()和==都是用于比较两个对象是否相等方法,但它们之间有一些细微差别。...当你创建一个StringBuffer对象时,Java会分配一块动态增长内存空间来存储这个字符串。这意味着你可以程序运行过程随时修改字符串内容。...换句话说,浅拷贝会创建一个新对象,但是新对象引用类型属性仍然指向原始对象。这意味着原始对象修改引用类型属性时,新对象引用类型属性也会受到影响。...这意味着原始对象修改引用类型属性时,新对象引用类型属性不会受到影响。

67671

一步步分析-C语言如何面向对象编程

这是道哥第009篇原创 一、前言 嵌入式开发,C/C++语言是使用最普及C++11版本之前,它们语法是比较相似的,只不过C++提供了面向对象编程方式。...这个问题只要理解了C语言内存模型,也不是问题,只要在子类结构体第一个成员变量位置放置一个父结构体变量,那么子类对象就继承了父属性。...,存储着可以处理Dog对象函数;栈中有一块空间,存储着d对象。...测试一下 int main() { // 创建一个子类Dog对象 Dog d; Dog_Ctor(&d, 1, 3, 4); // 把子类对象赋值给父指针...对象d从父继承而来虚表指针vptr,所指向虚表是dog_vtbl。

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

Java学习笔记之十六】浅谈Java继承与多态

1、  什么是继承,继承特点? 子类继承父特征和行为,使得子类具有父各种属性和方法。或子类从父继承方法,使得子类具有父相同行为。 特点:继承关系,父更通用、子类更具体。...父具有更一般特征和行为,而子类除了具有父特征和行为,还具有一些自己特殊特征和行为。 继承关系。父子类需要满足is-a关系。子类是父。...继承实现了面向对象原则:write once,only once(编写一次、且编写一次 3、  如何实现继承? Java言中,用extends(扩展)关键字来表示一个继承了另一个。...只定义一些通用属性和方法。 子类自动继承父属性和方法,子类可以定义特定属性和方法。或子类重新定义父属性、重写父方法可以获得与父不同功能。 4、  什么是方法重写?...因为创建对象时候,需要先创建对象,再创建子类对象。 注意:创建对象时,先创建对象创建子类对象。如果没有显示调用父构造方法,将自动调用父无参构造方法。

78770

Java 面试整理

被其修饰属性以及方法不仅可以跨访问,而且允许跨包(package)访问。 private: Java言中对访问权限限制最窄修饰符,一般称之为“私有的”。...被其修饰属性以及方法只能被本身方法及子类访问,即使子类不同也可以访问。 default:即不加任何访问修饰符,通常称为”默认访问模式”。该模式下,只允许同一个包中进行访问。...23、自己代码,如果创建一个 java.lang.String 对象,这个对象是否可以被加载器加载?...27、有没有可能 2 个不相等对象有相同 hashcode。 28、Java HashSet 内部是如何工作。...List: List元素以线性方式存储,可以存放重复对象,List主要有以下两个实现ArrayList : 长度可变数组,可以对元素进行随机访问,向ArrayList插入与删除元素速度慢

37410

JavaScala 泛型快速入门教程

Java,泛型一般有三种使用方式:泛型,泛型方法和泛型接口。一般使用尖括号来接收泛型参数。...只要在名后面加上就可以让这个支持泛型,内部一些属性和方法都可以使用泛型类型T。当然我们给这个也可以添加多个泛型参数,比如, 等。...设置泛型会作用到整个上。...我们可以一个里使用多个泛型,每个泛型一般使用大写字母表示。Java为此提供了一些大写字母使用规范: T 代表一般任何。 E 代表元素(Element)或异常(Exception)。...Scala泛型 对Java泛型有了基本了解后,我们接着来了解一下Scala泛型。相比而言,Scala类型系统更复杂,本文只介绍一些简单语法,帮助读者能够读懂一些源码。

71510

第五章:面向对象编程

JVM对象创建后会有对应内存地址,将内存地址赋值给一个变量,这个变量被称为引用。 JavaGC主要针对是JVM堆内存。 空指针异常是如何发生?...向上转型和向下转型 多态向上转型 : 编译看左边 ,运行看右边 其中多态向上转型中使用对象去调用方法时只能调用子类从父那里继承方法或者时重写方法 ,而不能调用子类自己特有的方法。...比如: // 在这个程序 ,所创建对象可以去调用从父那里继承下来方法,而不能调用scratch()方法。...Java言中只要new对象,Object无参数构造方法一定会执行。...当多个中有共同属性和方法时,为了达到代码复用,建议为这几个提取出来一个父该父编写公共代码。如果有一些方法无法该类实现,可以延迟到子类实现。这样就应该使用抽象

8511

java MS之泛型

Java言中泛型则不一样,它只程序源码存在,在编译后字节码文件,就已经被替换为原来原始类型(Raw Type,也称为裸类型)了,并且相应地方插入了强制转型代码,因此对于运行期Java...2.2、重要:用反射来看泛型机制(甚至可以破坏) ? 程序定义了一个ArrayList泛型类型实例化为Integer对象,如果直接调用add方法,那么只能存储整形数据。...可以看到,父子类方法参数类型不同,所以如果是普通继承关系,这完全不是重写,而是重载;但是如果在泛型呢? ?...因为泛型泛型参数实例化是定义对象时候指定,而静态变量和静态方法不需要使用对象来调用。对象都没有创建如何确定这个泛型参数是何种类型,所以当然是错误。 ?...因为这是一个泛型方法,泛型方法中使用T是自己方法定义T,而不是泛型T。调用这个方法时会声明T类型。 版权声明:本文为博主原创文章,未经博主允许不得转载。

77220

精选Java基础面试120题

java言中能够我们自己起名都叫标识符 1.3 标识符有哪些特点?...请简述Java如何使用泛型编写带有参数?...位置不同 成员变量:中方法外 局部变量:方法定义或者方法声明上 在内存位置不同 成员变量:堆内存 局部变量:栈内存 生命周期不同 成员变量:随着对象创建而存在,随着对象消失而消失...5个对象 a b c ab abc 因为字符串特点是一旦被创建就不能被改变,所有使用常量进行相加时候,都是创建字符串对象,最后把字符串"abc"这个常量值赋值给引用变量s 4.2 如何实现...继承特点: java言中继承只支持单继承,不支持多继承.但是可以多层继承。

74820

Java基础题

//创建Class对象方式一:(对象.getClass()),获取字节码文件 Class class1 = p1.getClass(); //创建Class对象方式二:(.class:需要输入一个明确...被其修饰属性以及方法不仅可以跨访问,而且允许跨包(package)访问。 private: Java言中对访问权限限制最窄修饰符,一般称之为“私有的”。...被其修饰属性以及方法只能被本身方法及子类访问,即使子类不同也可以访问。 default:即不加任何访问修饰符,通常称为“默认访问模式“。该模式下,只允许同一个包中进行访问。...23、自己代码,如果创建一个java.lang.String,这个是否可以被加载器加载?为什么。 ?...泛型核心意义在于:进行定义时候可以使用一个标记,此标记就表示属性或者方法以及参数类型,标记在使用时候,才会去动态设置类型。 26、JavaHashSet内部是如何工作

98310

干货 | 学编程一定要掌握186个关键单词及作用!

很多初学Java小伙伴们 经常会出现一些名称单词 却不知道其作用是什么 老九收集了186个Java入门常用词汇, 为小伙伴们排忧解难 1抽象(abstract class): 抽象不能创建对象,...64getter方法: 一个实例方法,用来读取某个属性值。 通常,属性代表一些实例变量值。按惯例,getter方法被命名为 getXyz(),其中 xyz 是属性名字。...124重写(覆盖)(overriding): 子类中进行重定义。 子类,对从父继承方法重新定义,新定义方法就是对原方法进行重写。...64getter方法: 一个实例方法,用来读取某个属性值。 通常,属性代表一些实例变量值。按惯例,getter方法被命名为 getXyz(),其中 xyz 是属性名字。...124重写(覆盖)(overriding): 子类中进行重定义。 子类,对从父继承方法重新定义,新定义方法就是对原方法进行重写。

1.1K90

Q&A:Java

Java是面向对象嘛,集合里面只能存储对象 重载和重写区别 重载:发生在同一个,方法名相同参数列表不同(参数类型不同、个数不同、顺序不同),与方法返回值和访问修饰符无关。...面向对象三大特性 封装就是隐藏对象属性和实现细节,仅对外公开接口,控制程序属性读和修改访问级别。...继承就是子类继承父特征和行为,使得子类对象具有父实例域和方法,或子类从父继承方法,使得子类具有父相同行为。 多态是同一个行为具有多个不同表现形式或形态能力。...Java言中,多态就是指程序定义引用变量所指向具体类型和通过该引用变量发出方法调用在编程时并不确定,而是程序运行期间才确定, Java实现多态三个必要条件:继承、重写、向上转型。...抽象和接口对比 Java言中,abstract class和interface是支持抽象定义两种机制。 抽象:用来捕捉子类通用特性,用于代码复用。

59220

深度解析Java5个“黑魔法”

五花八门初始化方式:初始化块 Java,与大多数面向对象编程语言一样,可以使用构造方法实例化对象,当然,也有一些例外,例如,Java对象反序列化就不需要通过构造方法实例化对象(我们先不去考虑这些例外...Java,除了可以构造方法初始化对象外,还可以通过代码块来初始化对象。...例如,上面的代码创建了两个Car对象,但静态块只会执行一次,而且是最先执行,普通代码块和Car构造方法,每次创建Car实例时都会依次执行。...首先,我们创建一个扩展ArrayList匿名内部类。由于ArrayList没有抽象方法,因此我们可以为匿名实现创建一个空实体。...总结 本文中,我们研究了Java五个隐藏秘密: (1)可扩展注释; (2)实例初始化可用于实例化时配置对象; (3)用于初始化双花括号; (4)可执行注释; (5)枚举可以实现接口; 尽管其中一些功能有其适当用途

61610

Java 设计模式最佳实践:一、从面向对象到函数式编程

继承 继承是将一个对象基于另一个对象能力。有一个父或基,它为实体提供顶级行为。满足作为父一部分条件每个子类实体或子类都可以从父继承,并根据需要添加其他行为。...编译器可以根据调用参数数量来决定调用哪个area方法。这是多态编译时类型。 有一群技术人员认为只有运行时多态才是真正多态。运行时多态,有时也称为子类型多态,子类继承超并覆盖其方法时起作用。...通常,面向对象编程语言中,依赖关系用于描述一个是否方法签名包含第二个参数,或者它是否通过将第二个实例传递给其他而不使用它们(不调用其方法)来创建第二个实例: [外链图片转存失败,...基于面向对象言中子类型多态,派生对象可以用其父类型替换。例如,如果我们有一个Car对象,它可以代码中用作Vehicle。...我们已经了解到两种不同范式,如命令式编程和函数式编程,可以同一种语言中共存;我们还了解了 Java 如何从纯命令式面向对象编程发展到集成函数式编程元素。

60630

详解Java面向对象编程

Java,继承是一个获取父类属性和行为一个途径。它本质上是之间创建了一个父子关系。Java,继承主要用于代码复用性以及可维护性。...Java,通过关键字 “extends”来继承一个。“extends”关键字表明我们通过一个已有的派生出一个新Java术语,被继承叫做父,继承叫做子类。...Java这是通过方法重载实现方法重载,方法可以通过参数数量、顺序和类型来区分不同方法。...调用方法变量类型变量,实际执行方法实例类型是运行时确定,因为父类型变量不仅可以存储自身类型引用,还可以存储子类类型引用。...例如,工厂设计模式封装了创建对象代码,并且为以后引入新类型而不影响客户端代码提供了灵活性。 4.5 单一职责原则 这是面向对象设计坚定法则之一。它强调一个有且仅应该有一个职责。

38220

私有成员是否会被继承

首先,Java官方文档明确表示私有成员【即私有属性(field)和私有方法(method)】不会被继承。...,父私有成员子类内存是出现了 再举个例子: public class AppTest{ @Test public void toTest2() throws Exception...回顾下继承性: 子类继承父时会在子类构造器会在执行之前,使用super方法调用父构造器; 同理,调用父构造器时,父构造器又会在执行之前调用子类构造器……以次造成连锁反应,直到调用到...对此,我理解是: 子类对象实例化时,调用到了父构造器,而父构造器执行时自然也就把其成员给初始化了,初始化到哪里了呢?...自然是内存,这也是为什么子类内存可以看到父私有成员; 但是由于封装性原理,私有成员只能在自己中使用,所以子类是无法自己中使用父私有成员,既然无法使用,那我说他没有继承,也没什么问题吧

1K31

Java学习历程之----进阶篇(四)

在上面的程序,一共产生了两个 Dog 对象 Dog run( ) 方法,程序创建了一个 Dog 对象,并使用名为 d 引用变量来指向该 Dog 对象。... DogTest main() 方法,程序再次创建了一个 Dog 对象,并使用名为 dog 引用变量来指向该 Dog 对象。...三、存储修饰符 三、存储方式修饰符 Static即可用来修饰数据成员,又可以修饰成员方法,表明说明对象是静态定义公有静态变量相当于全局变量。...子类从父继承内容包括属性和方法。 4.1、 继承含义 1)子类除了拥有父属性和方法,还可以增加自己属性和方法。 2)子类对象可以响应父方法表示信息。...4.2、与继承有关关键字 Java言中,与继承有关关键字主要有: 1)final:用final修饰不能再派生子类,它已达到层次最底层。

21110

Java 编程技巧之数据结构

提供了线程专有对象,可以整个线程生命周期中随时取用,极大地方便了一些逻辑实现。...JDK5 提供了一种新类型—— Java 枚举类型,关键字 enum 可以将一组具名有限集合创建为一种新类型,而这些具名值可以作为常量使用,这是一种非常有用功能。...Java言中,没有联合体(union)和结构体(struct)概念,只有(class)概念。众所众知,结构体(struct)可以用(class)来实现。... C/C++ 语言中,联合体并不包括联合体当前数据类型。但在上面实现 Java 联合体,已经包含了联合体对应数据类型。...其还有一种特殊形式,可以指定其不仅要是指定类型子类,而且还要实现某些接口。例如: List 表明这是 A 某个具体子类 List ,保存对象必须是A或A子类

1.8K10

Java集合(Collection、Iterator、Map、Collections)介绍与使用

Java集合框架是Java编程语言中一个重要部分,它提供了一套预定义和接口,供程序员使用数据结构来存储和操作一组对象。...我们之前讲解了数组,数组大小长度是固定,后期无法动态扩展,所以项目开发我们基本会用集合来存储数据,Java 集合就像一种容器,可以动态地把多个对象引用放入容器。...关于Collection关系结构图如下:图片1.List接口创建结构:List list = new 子类();这是Collection接口子接口,代表一个有序、可重复集合。...迭代器模式包括三个角色:迭代器(Iterator)、聚合对象(Aggregate)和客户端(Client)。Java,迭代器模式是通过Iterator接口和Collection接口实现。...Map接口提供了一些方法来处理键值对,如根据键获取值,根据键添加或更新值等1.Map结构图片Map接口是Java集合框架一部分,它提供了许多方法来操作键值对,一般我们使用Map子类HashMap

32530

Java 面试知识点解析(一)——基础知识篇

(封装扩展阅读:oc面向对象三大特性之一 ) 继承是面向对象实现软件复用重要手段,当子类继承父后,子类是一种特殊,能直接或间接获得父成员。...多态好处:当把不同子类对象都当作父类型来看,可以屏蔽不同子类对象之间实现差异,从而写出通用代码达到通用编程,以适应需求不断变化。...解析:这是考察一些基本概念 答:Java 运行时环境(JRE-Java Runtime Environment),它包括 Java 虚拟机、Java 核心库和支持文件,但并不包含开发工具(JDK-Java...答:覆盖(Override)是指子类对父方法一种重写,只能比父抛出更少异常,访问权限不能比父小,被覆盖方法不能是 private ,否则只是子类重新定义了一个新方法。...抽象只能单继承,接口可以继承多个父接口; Java 8 接口中会有 default 方法,即方法可以被实现。 [1240] 面试官:抽象和接口如何选择?

1K50

Java 面试知识点解析(一)——基础知识篇

(封装扩展阅读:oc面向对象三大特性之一 ) 继承是面向对象实现软件复用重要手段,当子类继承父后,子类是一种特殊,能直接或间接获得父成员。...多态好处:当把不同子类对象都当作父类型来看,可以屏蔽不同子类对象之间实现差异,从而写出通用代码达到通用编程,以适应需求不断变化。...解析:这是考察一些基本概念 答:Java 运行时环境(JRE-Java Runtime Environment),它包括 Java 虚拟机、Java 核心库和支持文件,但并不包含开发工具(JDK-Java...答:覆盖(Override)是指子类对父方法一种重写,只能比父抛出更少异常,访问权限不能比父小,被覆盖方法不能是 private ,否则只是子类重新定义了一个新方法。...抽象只能单继承,接口可以继承多个父接口; Java 8 接口中会有 default 方法,即方法可以被实现。 面试官:抽象和接口如何选择?

62350
领券