Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >java中接口到底是干什么的,怎么用,深入剖析。

java中接口到底是干什么的,怎么用,深入剖析。

作者头像
马克java社区
修改于 2021-03-31 02:16:57
修改于 2021-03-31 02:16:57
5420
举报
文章被收录于专栏:java大数据java大数据

6.总结性深一层次综合剖析接口概念【新手可忽略不影响继续学习】

通过以上的学习, 我们知道,所有定义在接口中的常量都默认为public、static和final。所有定义在接口中的方法默认为public和abstract。马克-to-win:当时Sun公司为什么要把java的接口设计发明成这样?

更多请见:https://blog.csdn.net/qq_44639795/article/details/101455696

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
java中为什么接口中的属性都默认为static和final?
1)为什么接口中的属性都默认为static和final?Sun公司当初为什么要把java的接口设计发明成这样?【新手可忽略不影响继续学习】
马克java社区
2021/03/31
6310
java中为什么接口中的属性都默认为static和final?
java中为什么接口中的属性和方法都默认为public?
4)为什么接口中的属性和方法都默认为public?Sun公司当初为什么要把java的接口设计发明成这样? 【新手可忽略不影响继续学习】
马克java社区
2021/03/31
8870
java中为什么接口中的属性和方法都默认为public?
java中接口和抽象类有什么区别,举例!
答:马克-to-win:抽象类里可以有实现的方法,接口里不能有,所以相对来讲各方面实现都简单(尤其动态方法调度)。另外:类可以实现多个接口。反过来说,也正是抽象类一个致命伤:类只能继承一个超类(抽象类或其他类)。
马克java社区
2021/03/31
4990
java中接口和抽象类有什么区别,举例!
java中throws子句是怎么用的?工作原理是什么?
马克-to-win:当你的方法里抛出了checked异常,如你不catch,代表你当时不处理(不想处理或没条件处理),但你必须得通过"throws那个异常"告诉系统说,这儿有个问题,我现在不处理,将来一定别人要处理,否则执行到它,马克-to-win:系统会"不优雅"的崩溃。举个例子,工兵张三发现了地雷,假如他处理,完事就完事儿了。但是他发现了地雷,自己却没带齐工具,没法处理,他必须做个标记,说这儿有一个地雷,别的工兵将来一定要处理,否则将来有人踩上去会爆炸。马克-to-win:注意:throws只是标记,并没处理,执行到那,系统还是会崩溃!
马克java社区
2021/04/07
7150
java中throws子句是怎么用的?工作原理是什么?
java中接口interface和private私有内部类怎样一块配合着用?
3.接口interface和private内部类协同工作【新手可忽略不影响继续学习】
马克java社区
2021/04/01
5240
java中接口interface和private私有内部类怎样一块配合着用?
java中到底什么是抽象?
抽象Abstract:【新手可忽略不影响继续学习】    很多java 的书中都谈到了抽象abstract的概念,到底什么是抽象?马克-to-win:抽取关键相关特性(属性和方法)构成对象,用程序的方法逻辑和数据结构 属性模拟现实的世界对象。比如上节的例子,现实世界的计算机里的window很复杂,那么多像素,那么多颜色,那我们如何萃取出和我们相关的属性和方法完 成我们的客户的需求呢?这个过程就叫抽象。上例中我们只抽象出了title属性和close方法就可以满足用户需求。
马克java社区
2021/03/12
4640
java中到底什么是抽象?
接口胜任作为和外部系统打交道的合同抽象类就不行?
3)为什么接口能胜任作为和外部系统打交道的合同而抽象类就不行?(见下面我的山和车,肥皂的例子)【新手可忽略不影响继续学习】
马克java社区
2021/03/31
3220
接口胜任作为和外部系统打交道的合同抽象类就不行?
java中接口interface可以持有多个类的共享常量
接口另一主要功能,马克-to-win: 可以使用接口来引入多个类的共享常量。所有的这些变量名都将作为常量看待。所有定义在接口中的常量都默认为public、static和final。原因见后面。
马克java社区
2021/03/30
1.5K0
java中接口interface可以持有多个类的共享常量
java中instanceof是怎么用的, 干什么使的,举例
instanceof是java中固有的关键字, 就像main, public一样,用法:aa instanceof AA 就是问aa是不是AA的一个实例, 是的话,就返回真。马 克 - t o   - w i n:当用instance of测试时,马克-to-win:子类的指针是一个instance of父类, 返回值为真,见以下的例子。
马克java社区
2021/03/29
4140
java中instanceof是怎么用的, 干什么使的,举例
java中如何创建自定义异常Create Custom Exception
马克-to-win:我们可以创建自己的异常:checked或unchecked异常都可以, 规则如前面我们所介绍,反正如果是checked异常,则必须或者throws,或者catch。到底哪个好,各路架构师大神的意见是50对50。见我本章后面的附录。sun公司开始说,checked异常可以使你的系统异常语义表达很清楚。但很多人经过一段时间的实践后,马上表示了异议。checked异常是java独有的,但连Thinking in java的作者都表示,checked异常作为一种java特有的实验行为,不是很成功。我个人的意见是:为了达到解耦的目的,最好继承unchecked异常。否则你各种业务方法都得throws。将来业务方法一旦改变,还得考虑处理这些throws。(新手可忽略)比如你的业务方法a里如果新加了一句throw受检异常,而且你还没有catch,则调用你这个a方法的客户程序将必须或者catch或者throws,反正必须做出相应调整。如果当初你的a方法里只是抛出一个非受检异常,客户程序就不用做任何调整了。
马克java社区
2021/04/07
7720
java中如何创建自定义异常Create Custom Exception
java中hashCode和equals什么关系,hashCode到底怎么用的
马 克-to-win:hashCode方法主要是Sun编写的一些数据结构比如Hashtable的hash算法中用到。因为hash很快,所以你往 Hashtable里放东西的时候,他先比一下,里面有没有现有的东西的hashCode和你一样,如果都不一样,证明是新的,就不再运行equals方 法了,直接放进Hashtable里了,很快。如果放的时候,Hashtable里面现有的某东西的hashCode和他一样,他再运行一下 equals,如不一样,则证明是新的,可以放入。equals也一样,证明确实是一样的,不让放入Hashtable。另外,Object的hashCode方法(Sun公司编的)是返回对象的内部地址。equals原始方法判断两个Object是否a==b,内存地址是否等(以下摘自sun的文档:As much as is reasonably practical, the hashCode method defined by class Object does return distinct integers for distinct objects. (This is typically implemented by converting the internal address of the object into an integer, but this implementation technique is not required by the JavaTM programming language.)
马克java社区
2021/03/29
3510
java中hashCode和equals什么关系,hashCode到底怎么用的
java中抽象类和抽象方法到底有什么用呢
抽象类和抽象方法有什么用呢?马克-to-win:当初sun公司为什么要设计抽象类和抽象方法呢?当你在做车的系统设计时,当你设计车这个通用类时,假如你确认别人实例化车这个通用类没有意义时(不知道是bik
马克java社区
2021/03/26
4760
java中抽象类和抽象方法到底有什么用呢
java中异常这种技术框架是怎么工作的?
异常这种技术框架是怎么工作的?马克-to-win:注意是运行程序时,而不是编译时,当一个非正常情况出现,比如除0,就叫异常情况。马克-to- win:为了能优雅的处理异常情况(在出现异常情况后,程序不崩溃,还能继续优雅的运行), Sun公司设计了异常技术框架,马克-to-win:你把可能出现问题的语句放在try块儿中,真出了问题的话,系统会把问题的信息存放在一个异常类的对 象中传入到catch块中,在catch块儿中,你可以专门根据错误信息作处理。这样业务代码放在try块儿中,错误处理代码放在catch中,好处是易 读,条理清楚。马克-to-win:没有try catch这种异常技术前,业务代码和排错代码是搅和在一起的!
马克java社区
2021/04/06
5780
java中异常这种技术框架是怎么工作的?
java中请给一个Abstract类实现接口的实例!
马克-to-win:如果实现某接口的类是abstract类,则它可以不实现该接口所有的方法。但其非abstract的子类中必须拥有所有抽象方法的实在的方法体;(当然它abstract爹的也算作是它的)
马克java社区
2021/03/30
1.1K0
java中请给一个Abstract类实现接口的实例!
java中什么叫覆盖Override?请给实例
马克-to-win:方法的覆盖(Override)是指子类重写从父类继承来的一个同名方法(参数、返回值也同)。
马克java社区
2021/03/25
5090
java中什么叫覆盖Override?请给实例
抽象方法不能为private,final或者static,为什么
4)抽象方法不能为private,final或者static, native, synchrozied为什么?【新手可忽略不影响继续学习】马克-to-win:抽象方法的最实质的意义在于被未来的子类覆盖实现掉。它自己是个空方法。private的实质意义在于本类其他方法调用它。你自己是个空方法,别人调用你有什么用?所以abstract和private在一起毫无意义。final规定子类不能再覆盖它。abstract是专等着要别人来覆盖,二者矛盾。所以不能放在一起使用。有关static,我们上一章讲过: 马克-to-win:static方法是静态方法,可以直接被类名所调用。而abstract方法是无方法体的方法,直接调用毫无意义,所以矛盾了。顺便说一下,抽象方法也不能为native和synchronized,native说明此方法正在用其他语言(c)编写,此方法是c写的。你java这里却声明说方法是空的,这不符合逻辑。synchronized说明这个方法和另外一个实在做事的方法不能同时执行。而现在你自己却是一个空方法,这也毫无意义。
马克java社区
2021/03/26
4830
抽象方法不能为private,final或者static,为什么
java中抛出throw关键字是怎么用的? 举例?
马克-to-win:我们先说5/0的原理,当程序运行到5/0的时候,java系统JVM会在后台new出一个除0异常实例,之后把这个实例传入catch块儿供开发者使用。马克-to-win:而这里throw new Exception();是开发者自己主动new出一个异常实例,之后把这个实例传入catch块儿供开发者自己使用。马克-to-win:对于catch来讲,不管谁抛的,处理起来都一样。
马克java社区
2021/04/07
7670
java中抛出throw关键字是怎么用的? 举例?
如何实现多个接口Implementing Multiple Interface
接口的优势:马克-to-win:类可以实现多个接口。与之相反,类只能继承一个超类(抽象类或其他类)。 A class can implement multiple interface, but a class can have only one superclass. this is also the difference between abstract class and interface.
马克java社区
2021/03/30
4020
如何实现多个接口Implementing Multiple Interface
java中Object类的finalize的用法
马克-to-win:java当中有个垃圾回收机制,具体说,就是当一些对象被创建使用之后若不再使用的话{比如(i)对象被置成null.(ii)局部对象(无需置成null)当程序运行到右大括号.(iii)匿名对象刚用完},就会变成垃圾占用空间,JAVA的自动垃圾回收(gc)线程会在适当的时候自动运行,回收内存。马克-to-win: 再具体一点,对象被创建之后,垃圾回收(gc)系统就开始跟踪这个对象的使用情况。垃圾回收系统采用有向图的方式:开始时对象一定是可达的,刚把它置为null时,它也就变成了不可达的了,这时就是所谓的垃圾。垃圾回收系统就会回收这些内存空间。马克-to-win:回收之前,先调用该对象的finalize方法。让其做一些最后的收尾工作。见下例,当p1 = null;时,Java的垃圾回收线程会在适当时间点回收p1对象占据的内存空间。马克-to-win:回 收之前,首先调用p1的finalize()。但是sun公司不保证finalize方法会被及时地自动执行。所以我们加了一句,System.gc ();建议系统回收一下垃圾。gc代表garbage collection(垃圾回收),finalize方法就被执行了。
马克java社区
2021/03/29
4360
java中Object类的finalize的用法
java的内存泄露是如何发生的,如何避免和发现?
马克-to-win:上一节讲了,(i)对象被置成null.(ii)局部对象(无需置成null)当程序运行到右大括号.(iii)匿名对象刚用完,垃圾回收线程就早早晚晚都能把它过去占的内存给回收了。这么说,java中难道就没有c++的内存泄露的问题了吗?(内存泄露的定义就是: 咱自己程序不用的内存,系统本应回收但由于各种原因却没有回收成功)马克-to-win:答案: 错,java中有内存泄露。下面我们就通过一个例子来说明。下面的例子中,Mark_to_win m作为实例是占有内存空间的。即使后来m = null;把它置为null,垃圾回收线程也回收不了它占有的空间。因为等我们后面集合框架学习了Vector以后,你就会知道:Vector v是一个类似数组的东西。马克-to-win: 任何通过v.add(m);加到Vector里的东西,Vector都会保留一个对它的引用。正因为有这个引用,垃圾回收系统当中的有向图会认为,这个对象还是可达的,所以不会回收它的内存空间。因为size_Make_to_win非常大,(是maxMemory的0.8倍),所以系统最后就崩溃了。马克-to-win: 用专业术语讲,就是开始时是内存泄漏,泄露多了就造成内存溢出了,所以就曝出OutOfMemoryError的错误了。
马克java社区
2021/03/29
7940
java的内存泄露是如何发生的,如何避免和发现?
推荐阅读
相关推荐
java中为什么接口中的属性都默认为static和final?
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档