抽象类

java面试题 -- 基础

醉酒当歌 提交于 2020-02-19 15:12:30
1.抽象和封装的不同点 抽象和封装是互补的概念。一方面,抽象关注对象的行为。另一方面,封装关注对象行为的细节。一般是通过隐藏对象内部状态信息做到封装,因此,封装可以看成是用来提供抽象的一种策略。 2.重载和重写的区别 重载: 发生在同一个类中,方法名必须相同,参数类型不同、个数不同、顺序不同,方法返回值和访问修饰符可以不同,发生在编译时。 重写: 发生在父子类中,方法名、参数列表必须相同,返回值范围小于等于父类,抛出的异常范围小于等于父类,访问修饰符范围大于等于父类;如果父类方法访问修饰符为private则子类就不能重写该方法。 3.字符型常量和字符串常量的区别 字符常量是单引号引起的一个字符 字符串常量是双引号引起的若干个字符字符常量相当于一个整形值(ASCII值),可以参加表达式运算 字符串常量代表一个地址值(该字符串在内存中存放位置)字符常量只占一个字节 字符串常量占若干个字节(至少一个字符结束标志)4.成员变量与局部变量的区别有那些? 从语法形式上,看成员变量是属于类的,而局部变量是在方法中定义的变量或是方法的参数;成员变量可以被public,private,static等修饰符所修饰,而局部变量不能被访问控制修饰符及static所修饰;但是,成员变量和局部变量都能被final所修饰;从变量在内存中的存储方式来看,成员变量是对象的一部分,而对象存在于堆内存

Java接口与多态

一笑奈何 提交于 2020-02-19 01:56:40
接口 可以理解为一种特殊的类,里面全部是由全局常量(static final)和公共的抽象方法所组成 接口的定义格式 接口的数据成员,只允许被public, static, final修饰。 接口的方法成员,只允许被public, abstract修饰。 Interface 接口名称{   private static final int var1=1; //error   public static final int var2 = 2;   public abstract void fun1();   private abstract int fun2(); //error. } 接口中的数据成员都为static final类型,必须进行初始化,且接口的数据成员的值不能被修改,允许省略static, final关键字。 接口中的方法必须是“抽象方法”,不能有方法体,允许省略public及abstract关键字 public interface A{   int num; //error. 没初始化   String name = “test”;   public void getName( ) {……} //error.不允许定义方法体 } 接口的实现 接口不能用new运算符直接产生对象,必须利用其特性设计新的类,再用新类来创建对象 与抽象类一样,接口要使用也必须通过子类

Java面试题笔记

筅森魡賤 提交于 2020-02-18 15:15:54
Java基础 1. JDK和JRE有什么区别 JDK: Java Development Kit 的简称,Java开发工具包,提供Java的开发环境和运行环境. JRE: Java Runtime Environment 的简称,Java运行环境,为Java运行提供所需的环境. 其实JDK包含了JRE,同时包含了Java源码的编译器javac,还包含了很多Java程序调试和分析的工具; 简单来说如果需要运行Java程序,安装JRE即可,若需要编写Java程序,需要安装JDK JIT:即时编译器 JVM:Java虚拟机 JDK=JRE+java开发工具集 JRE=JVM+Java核心类库 JVM中包含JIT 2.==和equals的区别是什么? == 基本类型 : 比较值是否相等 引用类型 : 比较引用是否相等 equals 本质上是==,只不过String和Interger等重写了equals方法,把他变成了值比较. 3.两个对象的hashCode()相等,则equals()也一定为true吗? 不对,"通话"与"重地"的hashCoude()相等,但他们的equals()则为false; hashcoude()相等即两个键值对的哈希值相等,然而,哈希值相等,并不能得出键值对相等; 4.final在Java中的作用 final修饰的类叫最终类,该类不能被继承.

Java —— 基础

孤人 提交于 2020-02-18 14:46:21
题目来源:微信公众号 — java经验总结 文章目录 1. JDK 和 JRE 有什么区别? 2. `==` 和 `equals` 的区别是什么? 3. 两个对象的 hashCode()相同,则 equals()也一定为 true,对吗? 4. final 在 java 中有什么作用? 5. java 中的 Math.round(-1.5) 等于多少? 6. String 属于基础的数据类型吗? 7. java 中操作字符串都有哪些类?它们之间有什么区别? 8. String str="i"与 String str=new String("i")一样吗? 9. 如何将字符串反转? 10. String 类的常用方法都有那些? 11. 抽象类必须要有抽象方法吗? 12. 普通类和抽象类有哪些区别? 13. 抽象类能使用 final 修饰吗? 14. 接口和抽象类有什么区别? 15. java 中 IO 流分为几种? 16. Files的常用方法都有哪些? 1. JDK 和 JRE 有什么区别? JDK:Java Development Kit 的简称,java 开发工具包, java 开发环境 + 运行环境。 JRE:Java Runtime Environment 的简称,java 运行环境 。 具体来说 JDK 其实包含了 JRE,同时还包含了编译 java 源码的编译器

抽象类和接口的区别

心不动则不痛 提交于 2020-02-17 11:51:58
继承与实现: 1.抽象类可以被子类继承,接口既可以被继承也可以被实现。 方法: 2.抽象类可以做方法声明也可以做方法实现,接口只能做方法声明 变量: 3.抽象类内定义的变量是普通变量,接口定义的变量只能是公共的静态的变量。  4.如果一个类里面有抽象方法,那么这个类只能是抽象类  5.抽象方法要被实现,所以抽象方法不能是静态的,也不能是私有的  6.抽象方法只能声明,不能实现 补充: 接口:接口内的定义的成员变量都是静态的常量,都是必须是被public static final修饰的,就算你定义的时候没有加修饰符,系统也会帮你加上去。        接口内的方法都是抽象方法,就算你定义的时候没有加上abstract,系统也会帮你加上。而且,接口内的方法不能用private或protectd修饰,只能用public或者默认,默认的话最后会   被自动转成public。    修饰接口的修饰符可以是public、friendly,但是一定是abstract的。    继承指定接口的类,必须重写并实现该接口所有的方法,否则该类就是抽象类。      抽象类:含有一个或多个抽象方法的类就是抽象类,但是抽象类不一定需要含有抽象方法,例如你定义一个类为abstract,但是这个类里边不含有抽象方法也是可以的,只是意义不大。     抽象类和普通类的区别大致有3点:     1.抽象类不能实例化

抽象类和接口的区别

£可爱£侵袭症+ 提交于 2020-02-17 11:45:41
抽象类和接口的对比 参数 抽象类 接口 默认的方法实现 它可以有默认的方法实现 接口完全是抽象的。它根本不存在方法的实现 实现 子类使用 extends 关键字来继承抽象类。如果子类不是抽象类的话,它需要提供抽象类中所有声明的方法的实现。 子类使用关键字 implements 来实现接口。它需要提供接口中所有声明的方法的实现 构造器 抽象类可以有构造器 接口不能有构造器 与正常Java类的区别 除了你不能实例化抽象类之外,它和普通Java类没有任何区别 接口是完全不同的类型 访问修饰符 抽象方法可以有 public 、 protected 和 default 这些修饰符 接口方法默认修饰符是 public 。你不可以使用其它修饰符。 main方法 抽象方法可以有main方法并且我们可以运行它 接口没有main方法,因此我们不能运行它。 多继承 抽象方法可以继承一个类和实现多个接口 接口只可以继承一个或多个其它接口 速度 它比接口速度要快 接口是稍微有点慢的,因为它需要时间去寻找在类中实现的方法。 添加新方法 如果你往抽象类中添加新的方法,你可以给它提供默认的实现。因此你不需要改变你现在的代码。 如果你往接口中添加方法,那么你必须改变实现该接口的类。 什么时候使用抽象类和接口 如果你拥有一些方法并且想让它们中的一些有默认实现,那么使用抽象类吧。 如果你想实现多重继承

抽象类和接口区别

╄→гoц情女王★ 提交于 2020-02-17 11:19:44
1,接口的方法 没有方法体 (JDK1.8之前),JDK1.8之后也会有默认的方法体,而抽象类可以有非抽象的方法,有方法体(非抽象方法) public void getUserName(); default boolean isEmpty(){ return false; } 2,接口的方法的访问修饰符都是 public ,抽象类的抽象方法可以有public、protected和default这些修饰符 3,抽象类中可以有普通成员变量,接口中没有普通成员变量 4,一个类可以实现多个接口,但只能实现一个抽象类。 5,抽象类可以有构造方法,只是抽象类的构造方法不能直接调用 因为抽象类不能实现实例,但是一旦一个普通类继承了抽象类 便也可以在构造函数中调用其抽象类的构造函数 接口没有构造方法 来源: https://www.cnblogs.com/pickKnow/p/11059165.html

Java 208 道面试题:第一模块答案

╄→尐↘猪︶ㄣ 提交于 2020-02-17 01:55:50
目前市面上的面试题存在两大问题:第一,题目太旧好久没有更新了,还都停留在 2010 年之前的状态;第二,近几年 JDK 更新和发布都很快,Java 的用法也变了不少,加上 Java 技术栈也加入了很多新的框架,比如 Spring Boot、Spring Cloud 等,但类似的面试题却极少。 相比与这些问题,我的这 208 道面试题具备以下优点: 披沙拣金提炼出每个 Java 模块中最经典的面试题; 答案准确,每个题目都是我仔细校对过的; 接近最真实的企业面试,题目实用有效果; 难懂的题目,我加入了代码解析和原理分析。 综合以上特点,可见对于 《Java 最常见的 200+ 面试题》 这篇文章,我花了很大的功夫,目的只有一个提供一份目前市面上最好、最全的 Java 面试题集合。 本篇是这 208 道题中,第一部分“Java 基础”模块的题和答案。 1.JDK 和 JRE 有什么区别? JDK:Java Development Kit 的简称,java 开发工具包,提供了 java 的开发环境和运行环境。 JRE:Java Runtime Environment 的简称,java 运行环境,为 java 的运行提供了所需环境。 具体来说 JDK 其实包含了 JRE,同时还包含了编译 java 源码的编译器 javac,还包含了很多 java 程序调试和分析的工具。简单来说

abstract关键字

廉价感情. 提交于 2020-02-17 01:51:14
abstract关键字 :英文单词的意思,抽象的 (1)修饰类 -->称为抽象类 特征:就是不能创建对象(不能实例化) public abstract class Animal { } (2)修饰方法 :使用abstract修饰的方法称为抽象方法 特 点: a)没有方法体,只能以分号结尾 b)必须定义在抽象类里 c)必须被子类实现,如果子类不实现,那么子类也得是抽象类 抽象类里可以包含0个或多个抽象方法,抽象方法必须定义在抽象类中 来源: CSDN 作者: Penerx 链接: https://blog.csdn.net/penerx/article/details/104349505

Java 学习 #5

主宰稳场 提交于 2020-02-16 23:38:30
1、抽象类 抽象类的概念: 包括抽象方法的类,用abstract修饰 抽象方法的概念: 只有方法声明,没有方法体的方法,用abstract修饰 抽象方法的由来: 当需要定义一个方法,却不明确方法的具体实现时,可以将方法定义为abstract,具体实现延迟到子类 package cn . itcast . demo7 ; public class Test { public static void main ( String [ ] args ) { //测试狗类 Dog d = new Dog ( ) ; d . eat ( ) ; //测试老鼠类 Mouse m = new Mouse ( ) ; m . eat ( ) ; System . out . println ( "------------" ) ; //通过多态测试 Animal an = new Dog ( ) ; an . eat ( ) ; Animal a = new Mouse ( ) ; a . eat ( ) ; } } package cn . itcast . demo7 ; //父类(抽象类) public abstract class Animal { //抽象方法 (特点:要求子类必须重写) public abstract void eat ( ) ; } package cn .