抽象方法和普通方法的区别????
1.抽象方法必须要通过继承才能被实现,然后才能被对象调用;普通方法在定义的同时就已经实现了。
2.抽象方法只需声明,而不需实现某些功能
3.抽象方法必须要被重写 2016/10/11
设计模式:对问题行之有效的解决方法,是一种思想(问题不是运行问题编译问题或者逻辑问题,而是对代码进行优化,使代码运行效率更高
节约内存,提高扩展性)
单例模式:单例模式:解决的是保证一个类在内存中的对象的唯一性 比如:多个程序使用同一个配置信息的对象,这个时候需要保证该对象的唯一性
作用:保证一个类在内存中的对象的唯一性
分类:懒汉模式、饿汉模式 如何保证对象的唯一性:
// 1.不允许其他程序通过new的方式创建对象(私有构造函数)
// 2.在本类中创建本类的对象(实例)(通过new的方式 提供一个本类的实例)
// 3.对外提供一个方法让其他程序可以获取该对象 (定义一个公开的方法,返回值类型是本类)
抽象类:抽象方法的由来:多个对象中都具备相同的功能,但是具体的功能实现不同,那么在抽取过程中,只抽取功能的定义,没有抽取功能的主体(只定义了方法头,没有声明方法体)
那么该方法称为抽象方法,被abstract修饰,含有抽象方法的类叫做抽象类。
抽象类的使用:抽象类一定要被继承使用,被继承后,子类必须重写父类中抽象的方法,如果不能重写全部的抽象方法,
// 那么子类变成抽象类,被abstract修饰,需要被继续继承,直到有一个类重写了全部的抽象方法.
// 抽象类不能创建对象使用,重写了抽象类所有的抽象方法的类可以创建对象使用.
抽象类中的一些注意点:
1.抽象类中有没有构造方法
有,用于给子类对象进行初始化
2.抽象关键字不可以和哪些关键字一起使用
static:因为被static修饰的方法只能被继承,不能重写
final:因为被final修饰的类不能被继承,故也不能被重写
private :因为private修饰的方法不能被继承(子类只能继承父类非私有的属性和行为)
3.抽象类可以没有抽象方法

java的一些总结的更多相关文章

  1. Spark案例分析

    一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...

  2. 故障重现(内存篇2),JAVA内存不足导致频繁回收和swap引起的性能问题

    背景起因: 记起以前的另一次也是关于内存的调优分享下   有个系统平时运行非常稳定运行(没经历过大并发考验),然而在一次活动后,人数并发一上来后,系统开始卡. 我按经验开始调优,在每个关键步骤的加入如 ...

  3. Elasticsearch之java的基本操作一

    摘要   接触ElasticSearch已经有一段了.在这期间,遇到很多问题,但在最后自己的不断探索下解决了这些问题.看到网上或多或少的都有一些介绍ElasticSearch相关知识的文档,但个人觉得 ...

  4. 论:开发者信仰之“天下IT是一家“(Java .NET篇)

    比尔盖茨公认的IT界领军人物,打造了辉煌一时的PC时代. 2008年,史蒂夫鲍尔默接替了盖茨的工作,成为微软公司的总裁. 2013年他与微软做了最后的道别. 2013年以后,我才真正看到了微软的变化. ...

  5. 故障重现, JAVA进程内存不够时突然挂掉模拟

    背景,服务器上的一个JAVA服务进程突然挂掉,查看产生了崩溃日志,如下: # Set larger code cache with -XX:ReservedCodeCacheSize= # This ...

  6. 死磕内存篇 --- JAVA进程和linux内存间的大小关系

    运行个JAVA 用sleep去hold住 package org.hjb.test; public class TestOnly { public static void main(String[] ...

  7. 【小程序分享篇 一 】开发了个JAVA小程序, 用于清除内存卡或者U盘里的垃圾文件非常有用

    有一种场景, 手机内存卡空间被用光了,但又不知道哪个文件占用了太大,一个个文件夹去找又太麻烦,所以我开发了个小程序把手机所有文件(包括路径下所有层次子文件夹下的文件)进行一个排序,这样你就可以找出哪个 ...

  8. Java多线程基础学习(二)

    9. 线程安全/共享变量——同步 当多个线程用到同一个变量时,在修改值时存在同时修改的可能性,而此时该变量只能被赋值一次.这就会导致出现“线程安全”问题,这个被多个线程共用的变量称之为“共享变量”. ...

  9. Java多线程基础学习(一)

    1. 创建线程    1.1 通过构造函数:public Thread(Runnable target, String name){}  或:public Thread(Runnable target ...

  10. c#与java的区别

    经常有人问这种问题,用了些时间java之后,发现这俩玩意除了一小部分壳子长的还有能稍微凑合上,基本上没什么相似之处,可以说也就是马甲层面上的相似吧,还是比较短的马甲... 一般C#多用于业务系统的开发 ...

随机推荐

  1. django QueryDict 类型

    如果没有值,返回默认值的写法 允许有多个同名的值,但是需要用getlist 访问. 如果用常规的访问只能访问到最后一个值.

  2. oracle系统视图V$

    --数据字典表select * from v$fixed_table;select * from v$fixed_view_definition;select * from dictionary; - ...

  3. 【C++学习笔记】static 关键字

    (阅读<C++ primer plus>可知 C++的static关键字跟Java还是很类似的) 为什么需要static关键字:在文件A中定义的非局部变量language,在文件B中可以通 ...

  4. Docker的应用场景

    1.实现docker在浏览器中被访问. 框架和工具:docker+NOVNC 2.持续集成,自动化测试,发布 Github(或者码云) + Jenkins  + docker 3.弹性扩容 marat ...

  5. 关于struts2防止表单重复提交

    struts2防表单重复提交有两种方式. 其一是action的重定向,跳转时设置type为从一个action跳转到另一个action或者另一个页面, 使用户提交后,所停留的位置,不是当前处理数据的Ac ...

  6. Linux进程的虚拟内存

    简介 用户进程的虚拟地址空间是Linux的一个重要的抽象:它为每个运行进程提供了同样的系统视图,这使得多个进程可以同时运行,而不会干扰到其他进程内存中的内容. 每个应用程序都有自己的线性地址空间,与所 ...

  7. 原生js之addEventListener,removeEventListener

    使用addEventListener添加事件 <!DOCTYPE html> <html lang="en"> <head> <meta ...

  8. LoadRunner对sockets报文进行压力测试(脚本设计)

    1. LR新建一个windows sockets项目 2. action中写入测试代码 如: #include "lrs.h" Action() { char *recvbuf; ...

  9. SSM004/工作内容

    一.java执行sql脚本 参考博客:java调用SQL脚本执行的方案 1.Service层代码:目的随spring容器启动即执行 //Service层代码 @Component public cla ...

  10. Python中使用Ascii码

    ord() #字母转ASCii码 chr() #ASCii码转字母