• java知识点---第二部分


    • 面向对象的特点:
      • 封装性:将对象的属性与行为看成一个整体;信息隐蔽:可以将对象的属性与行为保护起来,不让外界知道或者进行修改
      • 继承性:可以继承一些已知的类,极大的减少了代码量
      • 多态性:方法的重载,对象多态。
      • 类与对象:汽车的设计图纸是类,具体生产出的某台汽车是对象。
      • 类中的属性必须都进行封装,封装的属性必须通过setter和getter进行访问。
      • 用private声明的属性或方法只能在其类的内部被调用,而不能在类的外部被调用
      • 构造方法
        • 构造方法的作用就是为类中的属性初始化
        • 构造方法的名称必须与类名称一致
        • 构造方法的声明处不能有任何返回值类型的声明,不能使用return返回值
        • 只要是类就必定存在构造方法,如果一个类中没有声明构造方法,那么在编译时,会自动生成一个无参的构造方法。如果一个类中已经明确的声明了一个构造方法,那么就不会再自动生成无参的构造方法,一个类中应该保证至少有一个构造方法。
    • 对象
      • 要使用对象就必须要对对象进行实例化
      • 对象的内容存放在堆内存中,栈内存中保存的是内存存放的地址。只有对象通过new关键字实例化之后才会在堆内存开辟空间进行保存
      • 对象属性的默认值:字符串的默认值为null,整数的默认值为0
      • 一个栈内存空间只能指向一个堆内存空间,如果想要指向其他的堆内存空间,那么需要先断开已有的指向才可以重新分配新的空间。断开指向的空间便成了垃圾空间,在java中有垃圾回收机制GC会不定期的释放空间。
    • String类
      • 一个字符串就是一个String类的匿名对象,该对象已经开辟了堆内存空间。
      • string类的实例化建议使用直接赋值的方法,如果采用new关键字的方式进行实例化,不管该对象是否已经存在,而是直接开辟新的空间,这样会造成垃圾。
      • 使用直接赋值的实例化方法:String str=“hdsodn”;这种方式产生的对象在一个对象池里,如果发现要实例化的对象已经存在,便不再重新定义。这种入池的操作是一种共享的模式。
      • 字符串的内容一旦声明则不可改变。
    • this关键字
      • 调用本类中的方法
      • 表示类中的属性
      • 可以使用this调用本类的构造方法,必须放在构造方法的首行
      • this表示当前对象
    • static关键字
      • 被static关键字定义的属性,可以被所有对象共享,可以直接使用类名称定义,该属性称之为全局属性(静态属性)
      • 类中的方法被static关键字定义后,该方法可以直接由类进行调用
      • 非static声明的方法可以去调用static声明的属性或方法,但是static声明的方法是不能调用非static类型声明的属性和方法。原因是static定义的方法在对象未被实例化时就可以被类名调用,而非static定义的方法必须要对象实例化后才可以被调用。
    • java中的常用内存区域
      • 栈内存空间:保存所有的对象名称(保存了引用的堆内存空间的地址)
      • 堆内存空间:保存每一个对象的具体属性内容
      • 全局数据区:保存static类型的属性
      • 全局代码区:保存所有的方法定义
    • final关键字
      • 使用final声明的类不能有子类
      • 使用final声明的方法不能被子类所覆写
      • 使用final声明的变量既为常量,该常量不可以修改,全部的字母都大写
    • 抽象类
      • 抽象类就像是一个“模板”,他的目的是设计者依据他的格式来修改并创建新的类,但是抽象类并不能直接创建对象,只能是通过抽象类派生出新的类,再由新的派生类创建对象。
      • 一个子类只能继承一个抽象类
      • 包含一个抽象方法的类必须是抽象类
      • 抽象类和抽象方法都要使用abstract关键字声明
      • 抽象方法只需要声明不需要实现
      • 抽象类必须要被子类继承,子类(如果不是抽象类)必须要覆写抽象类中的所有的抽象方法。
    • 接口(interface)
      • 接口是由全局变量和公共的抽象方法组成。接口中的抽象方法必须定义为public访问权限,即使省略不写,也是public访问权限,而不是default权限
      • 一个子类可以同时实现多个接口(implements),该子类必须要同时覆写全部接口的抽象方法
    • 对象的多态性(没太理解)
      • 对象的向上转型 父类 父类对象 = 子类实例
      • 对象的向下转型 子类 子类对象 = (子类)父类实例
      • 在发生向下转型之前必须要先向上转型,否则会发生对象转换异常。
    • instanceof关键字:
      • 判断一个对象是哪个类的实例
      • 对象 instanceof 类
    • Object类
      • 所有的类都有一个公共的父类Object。所有的对象都可以向Object进行转换,一切的引用数据类型都可以使用Object进行接收。
      • Object类常用的方法:
        • toString():取得对象内容
        • equals():对象进行比较
        • hashCode():取得hash码
      • 包装类
        • 将基本数据包装成类,这样基本数据类型可以成为一个对象
        • 对象型包装类(Object的直接子类):Boolean(boolean)、Character(char)
        • 数值型包装类(Number的直接子类):Interger(int)、Short(short)、Long(long)、Float(float)、Double(double)、Byte(byte)
        • 装箱与拆箱(JDK1.5之后提供了自动装箱与拆箱的操作)
          • 装箱:将基本数据类型变成包装类:int x=30;Integer i =new Integer(x);
          • 拆箱:将包装类变为基本数据类型:int temp=i.intValue();
        • 将基本数据类型转换为字符串
          • 在String类型中有valueOf()方法,可以将基本数据类型转换为String类型
          • 也可以使用“+”这种方式,但是这种方式会产生垃圾,不建议使用
      • 访问控制权限
        • private:私有访问权限,可以用在属性的定义与方法的声明上,一旦使用了private关键字声明,则只能在本类中进行访问
        • default:默认的访问权限,可以被本包中的其他类所访问,但是不能被其他包的类所访问
        • protected:受保护的访问权限,只能被本包或者不同包的子类所访问
        • public:公共访问权限:可以在所有类中被访问,不管是否在同一个包中。
  • 相关阅读:
    SpringMVC拦截器的使用
    SQL必知必会 -------- 聚集函数、分组排序
    第9章 scrapy-redis分布式爬虫
    【转】eval()函数用法
    SQL必知必会 -------- 通配符、计算字段、函数
    第8章 scrapy进阶开发(2)
    SQL必知必会 -------- order by、where等
    SQL必知必会 -------- SELECT、注释
    第8章 scrapy进阶开发(1)
    office2016破解激活安装
  • 原文地址:https://www.cnblogs.com/Etude/p/9279810.html
Copyright © 2020-2023  润新知