- 浏览: 41372 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (76)
- Dojo 组件 (1)
- 数据库 (7)
- Maven (3)
- 负载均衡 (4)
- Java (12)
- 多线程 (4)
- Spring (3)
- Java缓存 (3)
- 高并发 (3)
- 热部署 (2)
- 大数据 (3)
- 分布式 (1)
- Linux (4)
- 云计算 (1)
- Eclipse (2)
- Tomcat (2)
- Shell (1)
- Python (1)
- 测试 (3)
- 算法与数据结构 (1)
- 设计模式 (1)
- JQuery (1)
- Nginx (1)
- 开发工具 (7)
- JMS (2)
- CI 持续集成 (2)
- Java UI (0)
- UI (1)
- Jenkins (1)
- Ibatis (1)
- Hadoop (1)
- Zookeeper (1)
- Redis (1)
1. 抽象类和接口;
这是多态的一种体现,接口是函数方法名的集合,抽象类中可有方法体,子类继承抽象类必须实现抽象的方法,抽象类不可以被实例化。
接口中定义的方法,实现这个接口的类必须实现所有方法。抽象类中定义一个抽象方法,继承抽象类必须实现父类中的抽象方法。抽象类中定义的非抽象方法,可以被继承抽象类的子类得到。Java语言的单继承性决定了,一个类可以实现多个接口,但只能继承一个抽象类。抽象类中父类和之类间是继承关系,存在“is a”,父类和子类本质上应该是相同的。对接口这不是这样,接口和实现者间是实现了接口的契约而已,是“like a”。
面向对象程序设计的重点在于抽象,而Java中接口和抽象类就是设计的关键。接口和抽象类代表的就是抽象类型,就是需要提出的抽象层的具体表现。面向对象的编程,要提高程序的复用率,增加程序的可维护性、可扩展性,就必须面向接口编程,面向抽象的编程。
接口和抽象类结合,可实现适配器模式。Java接口在最上面,然后紧跟着抽象类,抽象类实现了接口。而其他属于这个抽象类的具体类可以实现Java接口或继承抽象类。Java语言API中采用了这种模式,并且遵循一定的命名规范:Abstract+接口名
接口
public interface InfaceTesting {
public void checkInterface();
public String getStringValue();
public void checkNull();
}
public class ImplementInterface implements InfaceTesting {
@Override
public void checkInterface() {
// TODO Auto-generated method stub
}
@Override
public String getStringValue() {
// TODO Auto-generated method stub
return null;
}
@Override
public void checkNull() {
// TODO Auto-generated method stub
}
}
抽象类
public abstract class AbstractClass {
public String resturnStringValue() {
return "testing string";
}
public void getString() {
}
public abstract void getAbstractString();
}
public class ImplementAbstract extends AbstractClass {
@Override
public void getAbstractString() {
// TODO Auto-generated method stub
}
}
接口加抽象类
public interface InfaceTesting {
public void checkInterface();
public String getStringValue();
public void checkNull();
}
public abstract class InterfaceAbstractClass implements InfaceTesting {
public String getValue() {
return null;
}
public abstract void checkValue();
}
public class TestAbstractInterface extends InterfaceAbstractClass {
@Override
public void checkInterface() {
// TODO Auto-generated method stub
}
@Override
public String getStringValue() {
// TODO Auto-generated method stub
return null;
}
@Override
public void checkNull() {
// TODO Auto-generated method stub
}
@Override
public void checkValue() {
// TODO Auto-generated method stub
}
}
一个类继承抽象类,抽象类实现了抽象接口,这主要用于设计了一个接口,但实现这个接口的子类并不需要实现接口中的全部方法。例如JMS的JmsTemplate。
public class JmsTemplate extends JmsDestinationAccessor implements JmsOperations {}
JmsDestinationAccessor是一个抽象类,JmsOperations是一个抽象接口,JmsTemplate继承了JmsDestinationAccessor,而JmsDestinationAccessor又实现了JmsOperations这个抽象接口。
public abstract interface AbstractInfaceTest {
public abstract String getReturnValue();
public abstract void setReturnValue();
}
public abstract class TestAbstractClass {
public void getValues() {
System.out.println("AAA");
}
public abstract String getAbstractValues();
}
public class TestAbstractInfacterClass extends TestAbstractClass implements AbstractInfaceTest {
@Override
public String getAbstractValues() {
// TODO Auto-generated method stub
// come from TestAbstractClass
return null;
}
@Override
public String getReturnValue() {
// TODO Auto-generated method stub
// come from AbstractInfaceTest
return null;
}
@Override
public void setReturnValue() {
// TODO Auto-generated method stub
// come from AbstractInfaceTest
}
}
http://www.jianshu.com/p/2b5a9bdcd25f
http://blog.csdn.net/trojanpizza/article/details/6556604
http://www.importnew.com/12399.html
2.覆写和重载
覆写是在一个类中,方法名相同,参数个数,顺序,类型不同。重载是子类对父类方法的重新定义,覆盖于被覆盖函数只有函数体内容不相同。
http://www.runoob.com/java/java-override-overload.html
http://fatkun.com/2010/07/java-overload-and-overrid.html
3.构造函数:
构造函数调用,如果子类继承父类,构造函数从父类开始执行。如果调用super构造函数,必须放在第一条语句。
public class Base {
public Base() {
System.out.println("Base");
}
}
public class Checket extends Base {
Checket() {
super();
System.out.println("Checket");
}
public static void main(String[] args) {
Checket checket = new Checket();
}
}
输出:
Base
Checket
4.面向对象的设计要遵循:
理解抽象类:如果一个类中没有足够的信息来描绘一个对象就是抽象类。面向对象设计最核心的一个原则就是开放关闭原则OCP(Open-Closed-Principle),而抽象类是其中关键。OCP要求对扩展开放,对修改关闭。开闭原则说白了就是,应该在不修改现有代码的基础上,引入新功能。开闭原则是面向对象设计中“可复用设计”的基础,是面向对象设计中最重要的原则之一。实现开闭原则的关键是抽象化,并且从抽象化导出具体实现。开闭原则是面向对象设计的主要目标。
从语法定义层面看抽象类和接口的设计:接口是一种特殊像形式的抽象类。
从编程角度看抽象类和接口的设计:一个只能继承一个抽象类,却可以实现多个接口。
从设计理念层面理解:创建一个类时,最重要一点就是要考虑这个类发生变化会不会影响其他类。
5.强引用,软引用、弱引用和虚引用
http://www.kuqin.com/shuoit/20141019/342724.html
http://zhangjunhd.blog.51cto.com/113473/53092/
6.static
http://zhh9106.iteye.com/blog/2151495
http://ych0108.iteye.com/blog/2107180
7.JVM
http://renchx.com/jvm-data-area-lifecycle/
http://boy00fly.iteye.com/blog/1095263
8.
这是多态的一种体现,接口是函数方法名的集合,抽象类中可有方法体,子类继承抽象类必须实现抽象的方法,抽象类不可以被实例化。
接口中定义的方法,实现这个接口的类必须实现所有方法。抽象类中定义一个抽象方法,继承抽象类必须实现父类中的抽象方法。抽象类中定义的非抽象方法,可以被继承抽象类的子类得到。Java语言的单继承性决定了,一个类可以实现多个接口,但只能继承一个抽象类。抽象类中父类和之类间是继承关系,存在“is a”,父类和子类本质上应该是相同的。对接口这不是这样,接口和实现者间是实现了接口的契约而已,是“like a”。
面向对象程序设计的重点在于抽象,而Java中接口和抽象类就是设计的关键。接口和抽象类代表的就是抽象类型,就是需要提出的抽象层的具体表现。面向对象的编程,要提高程序的复用率,增加程序的可维护性、可扩展性,就必须面向接口编程,面向抽象的编程。
接口和抽象类结合,可实现适配器模式。Java接口在最上面,然后紧跟着抽象类,抽象类实现了接口。而其他属于这个抽象类的具体类可以实现Java接口或继承抽象类。Java语言API中采用了这种模式,并且遵循一定的命名规范:Abstract+接口名
接口
public interface InfaceTesting {
public void checkInterface();
public String getStringValue();
public void checkNull();
}
public class ImplementInterface implements InfaceTesting {
@Override
public void checkInterface() {
// TODO Auto-generated method stub
}
@Override
public String getStringValue() {
// TODO Auto-generated method stub
return null;
}
@Override
public void checkNull() {
// TODO Auto-generated method stub
}
}
抽象类
public abstract class AbstractClass {
public String resturnStringValue() {
return "testing string";
}
public void getString() {
}
public abstract void getAbstractString();
}
public class ImplementAbstract extends AbstractClass {
@Override
public void getAbstractString() {
// TODO Auto-generated method stub
}
}
接口加抽象类
public interface InfaceTesting {
public void checkInterface();
public String getStringValue();
public void checkNull();
}
public abstract class InterfaceAbstractClass implements InfaceTesting {
public String getValue() {
return null;
}
public abstract void checkValue();
}
public class TestAbstractInterface extends InterfaceAbstractClass {
@Override
public void checkInterface() {
// TODO Auto-generated method stub
}
@Override
public String getStringValue() {
// TODO Auto-generated method stub
return null;
}
@Override
public void checkNull() {
// TODO Auto-generated method stub
}
@Override
public void checkValue() {
// TODO Auto-generated method stub
}
}
一个类继承抽象类,抽象类实现了抽象接口,这主要用于设计了一个接口,但实现这个接口的子类并不需要实现接口中的全部方法。例如JMS的JmsTemplate。
public class JmsTemplate extends JmsDestinationAccessor implements JmsOperations {}
JmsDestinationAccessor是一个抽象类,JmsOperations是一个抽象接口,JmsTemplate继承了JmsDestinationAccessor,而JmsDestinationAccessor又实现了JmsOperations这个抽象接口。
public abstract interface AbstractInfaceTest {
public abstract String getReturnValue();
public abstract void setReturnValue();
}
public abstract class TestAbstractClass {
public void getValues() {
System.out.println("AAA");
}
public abstract String getAbstractValues();
}
public class TestAbstractInfacterClass extends TestAbstractClass implements AbstractInfaceTest {
@Override
public String getAbstractValues() {
// TODO Auto-generated method stub
// come from TestAbstractClass
return null;
}
@Override
public String getReturnValue() {
// TODO Auto-generated method stub
// come from AbstractInfaceTest
return null;
}
@Override
public void setReturnValue() {
// TODO Auto-generated method stub
// come from AbstractInfaceTest
}
}
http://www.jianshu.com/p/2b5a9bdcd25f
http://blog.csdn.net/trojanpizza/article/details/6556604
http://www.importnew.com/12399.html
2.覆写和重载
覆写是在一个类中,方法名相同,参数个数,顺序,类型不同。重载是子类对父类方法的重新定义,覆盖于被覆盖函数只有函数体内容不相同。
http://www.runoob.com/java/java-override-overload.html
http://fatkun.com/2010/07/java-overload-and-overrid.html
3.构造函数:
构造函数调用,如果子类继承父类,构造函数从父类开始执行。如果调用super构造函数,必须放在第一条语句。
public class Base {
public Base() {
System.out.println("Base");
}
}
public class Checket extends Base {
Checket() {
super();
System.out.println("Checket");
}
public static void main(String[] args) {
Checket checket = new Checket();
}
}
输出:
Base
Checket
4.面向对象的设计要遵循:
理解抽象类:如果一个类中没有足够的信息来描绘一个对象就是抽象类。面向对象设计最核心的一个原则就是开放关闭原则OCP(Open-Closed-Principle),而抽象类是其中关键。OCP要求对扩展开放,对修改关闭。开闭原则说白了就是,应该在不修改现有代码的基础上,引入新功能。开闭原则是面向对象设计中“可复用设计”的基础,是面向对象设计中最重要的原则之一。实现开闭原则的关键是抽象化,并且从抽象化导出具体实现。开闭原则是面向对象设计的主要目标。
从语法定义层面看抽象类和接口的设计:接口是一种特殊像形式的抽象类。
从编程角度看抽象类和接口的设计:一个只能继承一个抽象类,却可以实现多个接口。
从设计理念层面理解:创建一个类时,最重要一点就是要考虑这个类发生变化会不会影响其他类。
5.强引用,软引用、弱引用和虚引用
http://www.kuqin.com/shuoit/20141019/342724.html
http://zhangjunhd.blog.51cto.com/113473/53092/
6.static
http://zhh9106.iteye.com/blog/2151495
http://ych0108.iteye.com/blog/2107180
7.JVM
http://renchx.com/jvm-data-area-lifecycle/
http://boy00fly.iteye.com/blog/1095263
8.
发表评论
-
Java8
2016-01-19 15:49 4621. http://ifeve.com/java-8-feat ... -
ThreadPool
2016-01-13 15:29 364http://cuisuqiang.iteye.com/blo ... -
java执行程序过程
2015-11-25 18:10 438程序执行过程: 1. Load ... -
java单例模式Singleton的设计
2015-11-25 17:19 478常用版本 public class Singleton { ... -
Jave Exception
2015-11-13 15:53 398一、 异常 Example of checked Excep ... -
读取图像文件
2015-04-10 17:19 4111. 将字节数组转换成图像文件 byte[] byteArr ... -
java反射
2013-11-07 16:41 434java反射 反射机制就是可以把一个类,类的成员(函数,属性 ... -
Java泛型
2013-10-31 11:34 582泛型 泛型是Java SE 1.5 ... -
java serializable 序列化
2013-10-28 13:33 563对象的串行化(Serialization) 一、串行化 ... -
GWT 例子
2013-09-22 15:45 452布局 http://www.csharpwin.com/do ... -
Java动态加载类ClassLoad和Class.forName
2013-03-07 11:38 1451Java 中的类加载器大致 ...
相关推荐
这套课程既可以作为从零基础开始学习的JAVA基础到高级学习教程,对于有JAVA基础的同学来说可以略过前面的JAVA基础章节,直接学习后续的JAVA高级部分课程。更可以灵活的作为章节技术,进行针对性的JAVA学习。还是要...
Java 基础知识大全 本资源摘要信息是 Java 基础知识大全的总结,涵盖了 Java 语言的基本概念、特点、历史发展等方面的知识点。以下是本资源摘要信息的详细内容: 一、 Java 语言的特点 * 面向对象:Java 语言是...
本文将对《Java 基础入门》课后习题答案进行总结,涵盖了 Java 基础知识点,包括 Java 开发入门、Java 基础类、变量类型、运算符、控制流语句、方法重载等。 一、Java 开发入门 * Java EE、Java SE、Java ME 是 ...
《Java基础入门(第3版)》是一本针对Java初学者的教材,其课后答案文档提供了对书中习题的解答,旨在帮助读者巩固所学知识。Java是一种面向对象的编程语言,具备跨平台性,由Java虚拟机(JVM)负责解释执行。Java...
市面上目前流传的java基础视频教程都是讲一些最基础的java语法和相关API的应用,然而用人单位对初级程序员的要求越来越高,那些讲解java基础语法的视频教程已经无法满足大众的学习要求。本套视频教程录制完中国第一...
《Java基础教程(第3版)_ppt.rar》是一个包含多个PPT文件的压缩包,主要用于教学目的,提供了关于Java编程语言的基础知识。这个资源涵盖了Java的核心概念,从基本的类和对象到高级特性如多线程和数据库操作。以下是...
《Java基础案例教程(第2版)》是一本旨在教授初学者Java编程基础知识的教材,其教学设计旨在通过实例引导学生深入理解Java语言的核心概念。本教程覆盖了从环境搭建到程序设计的各个环节,旨在帮助学生建立起坚实的...
资源名称:Java基础加强系列视频课程资源目录:【】黑马程序员Java基础加强(01-10)【】黑马程序员Java基础加强(11-20)【】黑马程序员Java基础加强(21-30)【】黑马程序员Java基础加强(31-40)【】黑马程序员...
《Java 基础入门》课后习题答案 第 第 1 章 Java 开发入门 一、填空题 1、 Java EE、Java SE、Java ME 2、 JRE 3、 javac 4、 bin 5、 path、classpath 二、选择题 1、ABCD 2、C 3、D 4、B 5、B 三、简答题 1、 面向...
Java基础实例大全适合于初学者 这里是所有Java技术点的集合 每个技术点都有对应的例子。 经典制作不容错过。。。 特别是对Java书籍很迷惑,想看看实际例子的朋友,这里就有你所需要的. Java基础实例大全适合于初学...
【Java基础知识点】 1. **Java的起源与特性** - Java是由SUN Microsystems公司(后被Oracle收购)开发的一种面向对象的编程语言。 - Java有三个主要版本:Java Standard Edition (JavaSE),用于桌面应用;Java ...
"黑马程序员java基础试题、笔记"这个压缩包资源为Java初学者和希望加入"黑马程序员"培训课程的学员提供了丰富的学习材料。这些资源包括面试问题合集、整理的资料、Android面试题、学员入学面试总结、面试技巧、必须...
Java 基础入门,适合初学入门java的同学
Java基础练习题由本人整理并上传,非常适合于初学者加强巩固自己的知识,编程学好的唯一途径就是多练习。
java基础知识的培训ppt,对于java初学者来说可以有一些作用。
java基础的案例分析和实例教学,适合新手及回顾查阅,对于夯实基础有好处
java基础知识,帮助初学者更快更好地掌握java。ppt内容具体易懂,希望对刚接触java的初学者有所帮助。
写的很详细,适合初学者,里面的讲解很丰富,很有学习价值,最好是配套一本详细的JAVA基础一起看,会有更好的效果