Java接口的简单理解和总结】的更多相关文章

1.抽象层次:普通类 -> 抽象类 -> 接口 普通类:就是我们常用的类: 抽象类:专门用来被子类继承的,主要是为了符合现实世界的规律 如: Animal类:(每个现实的对象都有类与它相对于,但反之不然,有些代码类在现实中就不存在,因为动物只是一类物体的总称,没有叫做动物的个体) 所以,抽象类与它的子类们,可以理解为一个家族,并且它们都有很多相同的属性 接口:可以实现不相关类的相同行为,而不需要考虑这些类的层次关系.(特殊的抽象类,层级高于普通抽象类) 2.继承与实现(凡是继承用的是exten…
在J2EE项目中,开发的都是分层来做的: 1.service层:用于暴露给网络调用 2.Impl层:统一规范接口 3.bean层:实体对象,也就是表 4.DAO(Data Access Object) 层:数据操作,实现对bean的增删改查 5.action或者controler层:业务实现 上面包括的项目开发的主要层级关系的M(模型层)C(控制层)V(视图层)中的M和C两层,即第五和第三层,对于V层一般是原始的servlet或Struts或SpringMVC实现的. 纯属个人简单理解,如有不对…
集合(容器) Java的集合类分别是Collection接口和Map接口派生而来. Collection接口 对于实现Collection接口的子类,都会实现Collection接口中抽象方法,所以他们子类都包含一部分相同的方法(从Collection中继承过来的). 下面是Collection接口中的方法列表: 简单的泛型 这里只是简单提一下泛型,不做深入讲解. 泛型可以理解为:指定容器存放的元素的类型,比如Collection<T>,则容器中的元素就应该是T类型. List List是有序…
作为实际java开发经验还不到一年的我,第一次写博客,诚惶诚恐,怕把自己的谬误公之于众,误人子弟,不过转念一想,若是能有同行加以指点评判,将他们的真知灼见描述出来,那这篇文章就算抛转引玉了. 最近在阅读<Java编程思想>有关接口的最后一小节中,作者提出了工厂设计模式,用来解决---生成实现某个接口的对象.说实话,对设计模式近乎一无所知的我,看到这里会想,这也太简单了,脑子里不假思索的会写出这样一个例子: //气 interface Air{ void show(); } //悟空 class…
一. 抽象类和接口的特点  包含抽象方法的类称为抽象类,但并不意味着抽象类中只能有抽象方法,它和普通类一样,同样可以拥有成员变量和普通的成员方法.注意,抽象类和普通类的主要有三点区别: 1)抽象方法必须为public或者protected(因为如果为private,则不能被子类继承,子类便无法实现该方法),缺省情况下默认为public. 2)抽象类不能用来创建对象: 3)如果一个类继承于一个抽象类,则子类必须实现父类的抽象方法.如果子类没有实现父类的抽象方法,则必须将子类也定义为为abstrac…
想要实现线程可以继承Thread也可以实现接口runnable,在类中重写 run()方法在主函数调用start方法就可以开辟线程. 对于java对象都有一个wait()和notify().notifyAll()方法这是线程对这个对象资源的使用顺序的调和,在调用这些方法钱必须先使用同步锁synchronized(对象)将方法用在锁的里面就可以了. 一般来说,调用start()方法后run内的内容结束该线程就自动结束了,但是如果里面有线程还在等待某对象则通过人物管理器的详细信息可以看到该进程一直存…
一.什么是双指针 双指针我所理解地是在遍历对象时,不是使用单个指针进行访问,而是使用两个相同方向或者相反方向的指针进行遍历,从而达到相应的目的. 在JAVA中并没有像C/C++指针地概念,所以这里所说的双指针是指索引,游标或可迭代对象等. 双指针在链表中也有很多用处,比如前面写到过的找出链表中的倒数第k个结点,就巧妙地利用到了双指针,此外,判断链表中是否有环也可以使用双指针,设两个快慢指针,让快指针一次移动两步,慢指针一次移动一步,若链表中有环,那么快指针与慢指针一定能够相遇,若两者没有相遇,说…
转自:https://www.cnblogs.com/wxgblogs/p/6849782.html spring中InitializingBean接口使用理解   InitializingBean接口为bean提供了初始化方法的方式,它只包括afterPropertiesSet方法,凡是继承该接口的类,在初始化bean的时候会执行该方法.测试程序如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 import org.springframework.beans.factory.…
首先要先理解什么是 stream ? stream代表的是任何有能力产出数据的数据源,或是任何有能力接收数据的接收源. 一.不同导向的 stream 1)以字节为单位从 stream 中读取或往 stream 中写入信息 InputStream: a)ByteArrayInputStream:把内存中的一个缓冲区作为InputStream使用 b)FileInputStream:把一个文件作为InputStream,实现对文件的读取操作 c)PipedInputStream:实现了pipe的概念…
IEnumerable接口中的方法是返回IEnumator的对象,集合继承了IEnumerator接口才能实现Foreach方法实现遍历.集合类都继承IEnumable和IEnumerator接口,或者说是这两个接口提供foreach遍历的功能. 综上所述,一个类是否支持foreach遍历,必须满足下面条件: 方案1:让这个类实现IEnumerable接口 方案2:这个类有一个public的GetEnumerator的实例方法,并且返回类型中有public 的bool MoveNext()实例方…
Java虚拟机JVM的作用: Java源文件(.java)通过编译器编译成.class文件,.class文件通过JVM中的解释器解释成特定机器上的机器代码,从而实现Java语言的跨平台. JVM的体系结构包含三个主要的子系统和一个内存区,分别是: 垃圾回收器:用于回收堆(heap)中无引用的对象. 类装载子系统:定位及导入二进制class文件,校验被导入类的正确性,为类变量分配初始化内存,以及帮助解析符号引用. 执行引擎:执行被转载类中的方法指令. 运行时数据区:又叫做虚拟机内存或Java内存.…
感觉越来越强烈, 我的心在跳~~~,我的宝剑在嘟~~ Flyer.java package cc.openhome; public interface Flyer{ public abstract void fly(); } Swimmer.java package cc.openhome; public interface Swimmer{ public abstract void swim(); } Fish.java package cc.openhome; public abstract…
1. 大家都知道, 普通的try, catch, finally格式: try{ //有可能会抛出异常的代码 }catch{ //抛出异常时处理的代码 }finally{ //无条件执行的代码,就不管是否抛出异常都会执行 } 2. 加入是这样呢,程序try catch部分中有return呢 try{ //有可能会抛出异常的代码 }catch{ //抛出异常时处理的代码 return://这里有return,finally还会执行吗 }finally{ //无条件执行的代码,就不管是否抛出异常都会…
Java集合框架可以简单的理解为一种放置对象的容器,和数学中的集合概念类似,Java中的集合可以存放一系列对象的引用,也可以看做是数组的提升,Java集合类是一种工具类,只有相同类型的对象引用才可以放到同一个集合中,否则是不能放进去的: 集合可以对元素进行简单快速的查找.插入.删除操作 某些集合可以有<key value>映射的关系 数组的长度是固定的,而集合的长度是跟随元素的个数动态变化的,灵活性和扩展性都比数组更加优越 数组只能存放基本类型的数据,而集合存放的是对象引用类型的 数组只能通过…
建造者模式 这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式,使用多个简单的对象一步一步构建成一个复杂的对象. 意图:将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示. 关键代码:建造者-->创建和提供实例,导演-->管理建造出来的实例的依赖关系. 优点:建造者独立.易扩展,便于控制细节风险. 缺点:产品必须有共同点,范围有限制,如果内部变化复杂,会有很多的建造类. 实例: 我们新建一个人的类. public class Human { //构造一个人的基本…
深入理解Java AIO(一)—— Java AIO的简单使用 深入理解AIO系列分为三个部分 第一部分也就是本节的Java AIO的简单使用 第二部分是AIO源码解析(只解析关键部分)(待更新) 第三部分是Linux中的AIO实现 Future和CompletionHandler Java 异步 IO 提供了两种使用方式,分别是返回 Future 实例和使用回调函数. Future 实例 future.isDone(); 判断操作是否已经完成,包括了正常完成.异常抛出.取消 future.ca…
一.什么是注解? 从 JDK5 开始,Java增加对元数据的支持,也就是注解.简单理解就是代码里的特殊标志,这些标志可以在编译,类加载,运行时被读取,并执行相应的处理,以便于其他工具补充信息或者进行部署. 二.为什么要使用注解? 注解可以被其他程序(比如:编译器等)读取,开发人员可以在不改变原有代码和逻辑的情况下在源代码中嵌入补充信息. 三.注解的相关概述 3.1 注解的格式 注解就是以 @XXX 形式在代码中存在的,我们还可以为注解添加一些参数值,例如  @SuppressWarnings(v…
接口和抽象类的相同之处就是 都会有抽象方法 抽象方法就是一个没有方法体 等待继承的子类完成的方法 然而接口比较严格 它的方法必须是抽象方法且是公开的 抽象类 可以有自己的属性 和 实体方法 首相用面向对象的思想来理解,类其实就是将生活中客观存在的对象,将对象的属性和特性封装起来 而接口与类不同,它不可以被实例化(这里指单独将接口实例化),因为它不可以当作一个对象 接口可以被理解为一种技能,功能.比如一扇门门可以有防盗及这个技能也可以同时拥有报警的功能 也就是说 一个类可以实现多个接口 然而每个子…
在没有好好地研习面向对象设计的设计模式之前,我对Java接口和Java抽象类的认识还是很模糊,很不可理解. 刚学Java语言时,就很难理解为什么要有接口这个概念,虽说是可以实现所谓的多继承,可一个只有方法名,没有方法体的东西,我实现它又有什么用呢?我从它那什么也得不到,除了一些方法名,我直接在具体类里加入这些方法不就行了吗? 为什么一定要有抽象类这个概念?为什么就不能把这个父类写成一个具体的类,子类再继承它不就可以了吗?何必弄一个抽象类出来,还要弄一些没有方法体的抽象方法,弄得又象接口又象类的,…
Java接口回调 在Java学习中有个比较重要的知识点,就是今天我们要讲的接口回调.接口回调的理解如果解释起来会比较抽象,我一般喜欢用一个或几个经典的例子来帮助加深理解. 举例:老板分派给员工做事,员工做完事情后需要给老板回复,老板对其做出反应. 上面是个比较经典的例子,下面用代码实现上述例子: (1)先定义一个接口 package JieKouHuiDiao; //定义一个接口 public interface JieKou { public void show(); } (2)定义一个Bos…
Linu支持环回接口( Loopback Interface),以允许运行在同一台主机上的客户程序和服务器程序通TCP/IP进行通信. A 类网络127就是为环回接口预留的 .根据惯例,大多数系统把IP地址127.0.0.1分配给这个接口,并命名为localhost.一个传给环回接口的IP数据报不能在任何网络上出现.实际上,访问127.x.x.x的所有IP都是访问环回接口(lo).另外,这种Loopback不依赖任何物理链路状态和链路层协议,永远不会down掉,只要有一块网卡是up状态并且路由可…
今天和同事好好的讨论了java接口的原理和作用,发现原来自己的对接口的理解仅仅是局限在概念的高度抽象上,觉得好像理解了但是不会变化应用其实和没有理解差不多.以前看一个帖子说学习一个东西不管什么时候都要带着“这个东西是什么?”.“这个东西有什么作用?”和“这个东西怎样用?”三个问题,这三个问题回答上来了说明你对这个事物的理解达到了一定的高度. 今天还有一个比较深的经验是要学习到知识就要多和人交流.就像以前某个管理人员说得“要疯狂的交流”. 现在对于今天学到的接口部分做一个详细地总结: 接口的概念其…
Java Springboot webSocket简单实现,调接口推送消息到客户端socket 后台一般作为webSocket服务器,前台作为client.真实场景可能是后台程序在运行时(满足一定条件时),去给client发数据. 再补充一个SpringBoot的client吧 1.依赖 <dependency> <groupId>org.java-websocket</groupId> <artifactId>Java-WebSocket</arti…
感谢原文作者:yejg1212 原文链接 https://www.cnblogs.com/yejg1212/p/3187362.html https://www.cnblogs.com/yejg1212/p/3188751.html https://www.cnblogs.com/yejg1212/p/3188791.html 超通俗易懂的注解入门文章:https://blog.csdn.net/shengzhu1/article/details/81271409 Bilibili:https:…
接口的最主要的作用是达到统一访问,就是在创建对象的时候用接口创建,[接口名] [对象名]=new [实现接口的类],这样你像用哪个类的对象就可以new哪个对象了,不需要改原来的代码,就和你的USB接口一样,插什么读什么,就是这个原理.这个就叫统一访问,因为你实现这个接口的类的方法名相同,但是实现内容不同我用接口来定义对象不就可以做到统一访问了吗?接口主要针对多个类实现它来说的,要是只有一个类当然可以不用接口了.你这样想,我做一个USB接口,有个read()抽象方法,然后mp3类实现,U盘类实现,…
很多新手一听到接口就蒙逼,不知道接口是什么!其实接口就是RPC,通过远程访问别的程序提供的方法,然后获得该方法执行的接口,而不需要在本地执行该方法.就是本地方法调用的升级版而已,我明天会上一篇如何通过socket实现rpc,以及服务的注册和动态上下线.这里先上一篇RPC的实现者一webservice,便于后面理解源码执行过程,框架就是在原理的基础上提供更加便捷的使用而已,协议就是基于TCP或UDP之上,服务者和调用者之间约定消息按照什么样的格式发送以及解析罢了.协议没什么高深莫测的. 原文和作者…
简单理解Struts2中拦截器与过滤器的区别及执行顺序 当接收到一个httprequest , a) 当外部的httpservletrequest到来时 b) 初始到了servlet容器 传递给一个标准的过滤器链 c) FilterDispatecher会去查找相应的ActionMapper,如果找到了相应的ActionMapper它将会将控制权限交给ActionProxy d) ActionProxy将会通过ConfigurationManager来查找配置struts.xml       …
我们首先来简单叙述一下什么是.NET,以及C#的一个简单理解和他们俩的一个区别. 1 .NET概述 .NET是Microsoft.NET的简称,是基于Windows平台的一种技术.它包含了能在.NET Framework平台运行的所有编程语言. 2 C#概述 他是专门为.NET平台设计的一种语言. 3 .NET与C#的区别 .NET是一种平台,这种平台可以编译多种语言例如:VB,J#,而C#只是一种语言. 4 IDE IDE全称(Itergrated Developer Environment)…
举两个例子以快速明白Java中的简单 工厂模式: 女娲抟土造人话说:“天地开辟,未有人民,女娲抟土为人.”女娲需要用土造出一个个的人,但在女娲造出人之前,人的概念只存在于女娲的思想里面.女娲造人,这就是简单工厂模式的应用. 首先,在这个造人的思想里面,有几个重要的角色:女娲本身.抽象的人的概念和女娲所造出的一个个具体的人. 1.)女娲是一个工厂类,也就是简单工厂模式的核心角色. 2.)具休的一个个的人,包括张三,李四等.这些人便是简单工厂模式里面的具体产品角色 3.)抽象的人是最早只存在于女娲的…
谈谈我对Java中CallBack的理解 http://www.cnblogs.com/codingmyworld/archive/2011/07/22/2113514.html CallBack是回调的意思,熟悉Windows编程的人对"回调函数"这四个字一定不会陌生,但是Java程序员对它可能就不太了解了."回调函数"或者"回调方法"是软件设计与开发中一个非常重要的概念,掌握"回调函数"的思想对程序员来说(不管用哪种语言)…