zoukankan      html  css  js  c++  java
  • 笔记2

    02/13
    一.Java语言
    1、①特点
           跨平台、面向对象、安全性
        ②开发环境搭建
          a.开发工具
            eclipse、myeclipse
          b.JDKjava包、JRE运行时环境、JVM虚拟机
       ③Java文件
          *.java源文件
          *.class可执行文件/字节码文件
       ④新建Java类
          java都是以class的形式存在
           public class 类名{
               访问修饰符 数据类型 属性名;
                 ------
               访问修饰符 返回值类型 方法名(参数列表){
                    方法体
               return 和返回值类型相兼容的数据;
              }
          }
        ⑤变量
          a.变量必须要有明确的类型,java的数据类型有八种:
               char->
            byte->short->int->long->float->double
              boolean
          b.引用数据类型
             类、数组、接口
          c.成员变量和局部变量
        ⑥方法
          对象行为,方法中一般封装某一个特定的功能
          方法分为两类:
           a.没有返回值的方法,访问修饰符为void(不能省略),方法中方法体里面可以没有return
           b.有返回值的方法,要定义合适的返回值类型,方法体
              中需要有return返回相对应的值。
              形参和实参
       ⑦对象使用
          初始化对象:类名 对象名=new 类名();
          访问对象属性 对象名.属性名 可以赋值也可以获取属性值

          访问对象方法 对象名.方法名 可以调用对象的方法,如果
          方法有返回值,需要定义一个变量来接收
       ⑧String 字符串
          String是一个类,String的实例是对象,如:String name="jack";

    表:



    02/14

    软件出现的目的

    用计算机的语言描述现实世界

    发现类 发现类的属性及方法

    用计算机解决现实世界的问题
    描述
    面向对象的思想 → 面向对象的世界

    面向对象设计和开发程序的好处
    交流更加流畅
    提高设计和开发效率


    面向对象 02/15

    构造方法是用来描述对象创建的过程,构造方法在对象创建的过程中被调用

    构造方法:

    无返回值类型 与类名相同
    ↑ ↑
    访问修饰符 构造方法符(){
          //初始化代码 ↓
    } 可以指定参数

    如果类中没有写构造方法,系统会默认提供一个无参的构造方法,如果类中出现了构造
    方法,系统不会提供默认的无参构造方法。

    1.通过new关键字在内存中申请空间
    2.给dog对象的属性进行赋值
    3.调用dog对象的方法

    02/16
    方法重载(同类)
    1.方法名相同
    2.参数项不同
    3.与返回值、访问修饰符无关


    this的用法02/17

    this关键字的用法
    调用属性
    this.health=100;
    this.name="大黄";

    调用方法
    this.print();

    调用构造方法
    this(); →如果调用必须是构造方法中的第一条语句
    this("小黑",100,100,"黑");


    封装 02/20
    封装的概念:
    将类的某些信息隐藏在内部,不允许外部程序直接访问,而是通过该类提供的方法
    来实现对隐藏信息的操作和访问

    封装的好处
    隐藏类的实现细节
    方便加入控制语句
    方便修改实现
    只能通过制定方法访问数据

    封装步骤
    修改属性的可见性 → 设为Private

    创建共有的getter/sether方法 → 用于属性的读写

    在getter/sether 方法中加入属性控制语句 → 对数学值得合法性进行判断

    02/21
    * 封装
    * 1.将属性私有化,访问修饰符设为private,属性只能在本类中使用
    * 2.在类中给属性提供相对的get/set的方法,给外部的程序访问属性
    * 3.在属性的相对应的方法中,提供业务逻辑的判断
    * 4.在封装的时候,如果属性设置业务逻辑的判断,在相对应的构造方
    * 法中需要调用相对应的set方法

    static关键字 02/22

    static的修饰的资源属于类级别的资源,静态的资源,对于类的所有实例
    对象共享资源。
    static关键字可以用来修饰属性、方法、代码块、内部类。
    static修饰的资源,在类加载期间执行。//类加载---加载文件时

    1.static修饰的属性
    static关键字修饰的属性,属于对类所有实例对象共享的变量。
    访问静态的属性:类名.属性名//类级别可以直接点访问

    2.static修饰的方法
    static关键字修饰的方法,属于静态方法,可以直接类名.方法名()进行调用,
    一般是吧静态方法作为工具方法。
    静方法中不能调用对象的资源(对象属性、对象方法)

    3.static修饰的代码块
    在类加载的时候执行,应为类只加载一次,所以static的代码块也只运行一次,
    一般是使用static代码块来加载一些静态的资源,比如说配置原件。

    static修饰符与非static修饰的区别

    static、非private修饰 非static、private修饰

    属性 类属性、类变量 实例属性、实例变量

    方法 类方法 实例方法

    类名.属性 对象.属性
    调用方式 类名.方法名 对象.方法()
    对象.属性
    对象.方法()

    归属 类 单个对象


    继承 02/23
    1.继承的前提条件
    子类和父类之间必须满足‘子类 is a 父类’的逻辑关系,才能有继承
    2.继承的优点
    a.提高了代码之间的重用性(继承后子类共用父类代码)
    b.提高了代码后期的可维护性(后期代码中需要添加或删除某些代码时只需要修改父
    类代码即可)
    3.继承步骤
    a.将多个类中的共有属性和方法提取出来,建立一个父类
    b.在子类后面使用extends关键字完成继承 子类 extends 父类
    c.在子类中可以调用父类的代码
    注:在java中属于单继承,在extends关键字后面只能有一个父类

    02/24

    子类访问父类成员 使用super关键字
    访问父类构造方法
    super();
    super(name,health,love); 在子类构造方法中调用切必须是第一句

    访问父类属性
    super(name);

    访问父类方法
    super.print();

    子类 不能被继承的 父类 资源

    private成员
    子类与父类不在同包,使用默认访问权限的成员
    构造方法

    访问修饰符protected
    可以修饰属性和方法
    本类、同包、子类可以访问

    访问修饰符调用范围
    private: 本类
    默认: 本类 同包
    pritected:本类 同包 子类
    public: 本类 同包 子类 其他

    02/27
    多重继承关系的初始化顺序

    父类属性→
                父类构造方法→
                                 子类属性→
                                            子类构造方法

    一、对象初始化过程:
    1.在创建类之前,检查类是否已加载(检查硬盘上的.class文件是否加载到内存中)
    如果没有加载就先加载父类的文件,在加载本类的文件。

    Java使用的加载的策略:懒惰式加载(按需加载),用到的时候加载,只加载一次

    2.分配对象的空间。递归分配所有父类和子类的属性空间。
    属性会自动初始化为‘0’值

    3.给属性赋值。

    4.调用父类的构造方法。(默认调用父类的无参构造方法)

    5.调用本类的构造方法。

    方法名重写的规则(子类)@Overide//检测是否为重写
    1.方法名相同
    2.参数列表相同
    3.返回值类型相同或者其子类;
    4.访问权限不能严于父类

    02/28
    Super关键字来访问父类的成员
    super只能出现在子类的方法和构造方法中
    super调用构造方法时,只能是第一句
    super不能访问父类的private成员

    一、abstract关键字
    abstract关键字表示的是抽象的意思,可以用来修饰类和方法。修饰类我们称之为
    抽象类,修饰方法我们称之为抽象方法

    1.abstract修饰类,抽象类
    public abstract class 类名{}
    抽象类用来表示一些抽象的概念。
    抽象类的特点:
    a.抽象类不能被实例化
    b.抽象类可以有属性、方法、构造方法,是用来给子类继承的
    c.抽象类中的方法不一定全部都是抽象方法。

    2.abstract修饰方法,抽象方法
    访问修饰符 abstract 返回值类型 方法名(参数列表);
    抽象方法不需要自己实现,由子类来实现
    抽象方法的特点:
    a.抽象方法没有方法体
    b.抽象方法必须出现在抽象类中
    c.一个类继承抽象类之后必须要实现里面的所有抽象方法//普通类中

    3.抽象类可以继承抽象类


    final 03/01
    一、final关键字;最终的
    1.final关键字可以用来修饰类、属性、方法
    2.final关键字修饰的类不能再被继承。如:String
    String类是final修饰的类,不能被继承。
    3.final关键字修饰的方法,不能再被子类重写。
    4.final关键字修饰的变量,初始化以后值不能再发生改变。
    在java中使用static和final关键字共同修饰的变量称之为常量,常量名全大写
    如:public static final int AGE=20;
    final修饰引用类型的变量,引用地址不能发生改变,但是只限定的是第一层,
    引用类型的属性值是可以发生改变的。

    多态 03/02
    生活中的多态
    不同类型的打印机打印效果不同
    同一种事物,由于条件不同,产生的结果也不同

    程序中的多态
    同一个引用类型,是用不同实例执行不同操作//父类引用,子类对象

    使用多态实现思路
    编写父类
    编写子类,子类重写父类方法→实现多态的两个要素
         运行时,使用父类的类型 ↗ ,子类的对象
    向上转型
    Pet pet=new Dog(); →自动类型转换

    实现多态的两种形式
    使用父类作为方法形象实现多态
    使用父类作为方法返回值实现多态

    03/06
    父类到子类的转换
    向下转换(强制类型转换)
    Pet pet=new Dog("名字","种类");
    Dog dog=(Dog)pet;
    Penguin png=(Penguin)pet;→报错,必须转换为父类指向的真实子类类型

    instanceof运算符
    语法:对象 instanceof 类或接口
    instanceof通常和强制类型转换结合使用


    小结 03/07
    Java面向对象编程思想
    面向对象三个特征:封装、继承、多态
    封装:
    语法:属性私有化(private)、提供相对饮的get/set的方法镜像访问(public)
    、在set/get的方法中对属性的数据做相对应的业务多级的判断
    思想:封装外面的程序不能直接访问本类的属性,需要通本类提供的方法简介访问
    本类的属性,从而提高代码的安全性。

    涉及到的其他的知识点:
    构造方法:用来描述对象创建过程,可以通过构造方法快速创建对象。
    this关键字:代表本类对象,调用本类的属性方法、构造方法。
    方法重载:方法名相同,参数列表不相同
    --------------------------------------------------------------------------
    继承:
    语法:子类 extends 父类
    思想:多个类所描述的有共同的特征或行为,就可以将这些类中共同的部分抽取出
    来建立他们的父类。
    继承的好处子类共用父类的代码,提高了代码的重用性;代码后期扩展和维护,只
    需要添加对应的子类即可。

    涉及到的其他的知识点:
    super关键字:代表父类的对象,调用父类的属性、方法、构造方法
    abstract关键字:抽象,修饰类、修饰方法。
    static关键字:静态,修饰属性、方法、代码块、内部类
    final关键字:最终,修饰属性、方法、类
    方法重写:方法名相同,参数列表相同,返回值类型相同修饰符大于或等于父类的
    访问修饰符。
    --------------------------------------------------------------------------
    多态:
    语法:父类 对象名=new 子类();
    思想:父类型的引用可指向内存中的子类对象的内存空间,就可以方便设计方法
    的参数和返回值类型的时候可以设计成父类对象,这样的方法在实现时比较简洁
    ,在后期进行扩展时,方法比较容易。
    在代码中,多态的使用更多的是父类引用指向子类对象,会自动类型转换(向上转
    型),有时候也需要调用子类中自己的东西,这时候就需要还原子类,强制类型转
    换(向下转型),向下转换的时候先使用instanceof运算符做类型的判断。

    interface 接口
    接口的特性
    接口不可以被实例化 常作为类型使用
    实现类必须实现接口的所有方法
    实现类可以实现多个接口 Java中的多继承
    接口中的变量都是静态常量

    03/08
    接口是一种能力
    体现在接口的方法上

    面向接口编程

    程序 丨关心实现类有和能力,而不关心实现细节
    设计时 丨面向接口的约定而不考虑接口的具体实现

    如何理解接口是一种能力
    接口有比抽象类更好的特性:
    1.可以被多继承
    2.设计和实现完全分离
    3.更自然的使用多态
    4.更容易搭建程序框架
    5.更容易更换实现
    ....

    接口是一种约定
    有些接口只有名称
    体现在接口名称和注释上
    方法的实现方式要通过注释来约定


    面向接口编程
    陈谷设计时面向接口的约定而不考虑具体实现

    内部类 03/09
    根据位置的不同,Java中的内部类分为四种:
    静态内部类 、成员内部类、局部内部类、匿名内部类

    任何内部类都变异成独立的class文件
    最大的作用:封装
    匿名类可以封装内部概念


    静态内部类:
    使用static修饰,声明在类体中
    静态内部类中可以访问外部类的静态成员

    成员内部类:
    声明在类体中,不使用static,具有类的成员特征,也就是必须有类的实例才能创建
    内部实例
    内部类实例可以访问共享外部类的成员变量

    局部内部类:

    把类声明在方法中,就是局部内部类,作用域类似于局部变量

    匿名内部类:
    匿名类可以卸载任何地方,就像一般语句一样
    语法更像是创建对象:
    Too t=new Too(){
    };
    匿名类是对原类的一个集成,同事创建了实例,{}就是集成以后的类体
    类体中可使用所有类的语法
    匿名类不能写构造器
    匿名类可以从抽象类或者接口继承,必须提供抽象方法的实现


    异常 03/21
    知识点
    1、Java异常机制
    a.当代码运行到可能出现异常的代码是,有程序员或jvm抛出异常对象,异常对象会记
    录的相关信息
    b.异常对象抛出后,就会去寻找异常处理的相关的代码(catch),如果找到了,异常到
    此结束
    c.如果未找到,异常对象会继续上抛,寻找异常处理的代码
    d.如果到main还未找到异常处理的代码,就会由main将异常抛给虚拟机
    e.异常抛出的每一层代码都会被中断

    System.exit(1); //中断程序,退出Java虚拟机

    try ①↘发生异常
    产生异常对象

    chatch ②←进入catch块 异常类型匹配
    return
    ↓ ③执行finally块
    ④执行return 退出方法↑finally


    2、try,catch,finally使用规则
    try{//必须出现,且只能出现一次

    }catch(Exception e){//可以出现0-N次,如果没有catch,就必须有finally

    }finally{//可以出现0-1次

    }


    多重catch块
    引发多种类型的异常
    排列catch语句的顺序:先子类后父类
    发生异常时按顺序逐个匹配
    执行第一个与异常类型匹配的catch语句


    声明异常 03/22
    throws声明某个方法可能抛出的各种异常

    知识点
    1、Java中的异常分为两类
    运行时异常:在代码编译的时候不会进行检测,在代码运行的过程中产生异常。RuntimeException及其子类都属于运行时异常。
    检查异常/检测异常:在代码编译的时候必须显示处理,才能通过编译器的编译。
    如:SQLException、ClassNotFoundException
    throws可以让检查异常通过编译器的编译,但是没有真正解决异常。
    throw手动抛出异常,并可以定义异常的信息。 throws可以声明多个异常,多个异常之间用逗号隔开。

    2、自定义异常
    ①写一个异常类继承exception
    ②手动实现exception的所有构造方法


    日志 02/23
    日志(log)
    主要用来记录系统运行中一些重要操作信息
    便于监视系统运行情况,帮助用户提前发现和避开可能出现的问题,或者出现问题后根据日志找到原因

    日志分类
    SQL日志、异常日志、业务日志

    log4j是一个非常优秀的开源日志记录工具
    控制日志的输出级别
    控制日志信息输送的目的地是控制台、文件等
    控制每一条日志的输出格式

    使用log4j记录日志步骤
    在项目中加入log4j的JAR文件
    创建log4j.properties文件
    配置日志信息
    使用log4j记录日志信息

    03/24
    Object
    在Java类继承结构中java.lang.Object类位于顶端
    如果定义一个Java类时没有使用extends关键字声明其父类,则其父类为
    java.lang.Object
    Object定义了“对象”的基本行为,被子类默认继承

    toString方法
    Object类中定义有toString方法,用于返回对象的字符表示(一个可以表示该对象属性内容的字符串)。
    所有的Java类都继承了toString方法,Object类toString方法返回的字符串形式为:“类名@hashCode值”
    Java类可以根据需要重写toString方法以返回更有意义的信息。

    equals方法
    Object的equals方法用于对象的“相等”逻辑。
    equals方法的定义如下:
    public boolean equals(Object obj)
    equals方法的逻辑为:如果认为调用该方法的对象(this)与参数对象相等返回true,否者返回false

    Object的equals方法的定义如下:
    public boolean equals(Object obj){
    return(this==obj)
    }
    按照Object类equals方法的逻辑,只有在this和obj是同一个对象是才返回true;Java类可以根据需要重写继承自Object的equals方法


    hashCode方法
    默认的hashCode()值是当前堆对象地址转换的一个整数,这个整数不是内存地址!
    一般使用对象的OID值作为hashCode的值
    OID是对象的唯一编号,在项目中一般采用数据库生成OID,也就是数据库中的“主键”

    包装类 03/27
    包装类 对应基本数据类型
    java.lang.Integer int
    java.lang.Character char
    java.lang. .... .....


    JDK5增加了自动'拆箱'和'装箱'的功能。
    integer i=100;

    03/28
    无参的构造方法,构造的Date对象封装当前的日期及时间
    Date date=new Date();

    Date类重写了toString方法,输出的字符串形如:
    Tue Mar 28 14:39:11 CST 2017

    gettime方法用于获取对应的毫秒数,即1970年1月1日距现在时间的毫秒差

    setTime方法用于通过毫秒数设置时间。

    java.text.SimpleDateFormat类用于实现Date对象和字符串表示的日期信息间的转换。

    add方法可以对秒一个日期(时间)分量增加/减少数值
    getActualMaximun可以返回某个时间分量最大值。


    集合框架 03/29
    Collection接口存储一组不唯一、无序的对象
    List接口存储一组不唯一、有序(插入顺序)的对象
    set接口存储一组唯一、无序的对象
    Map接口存储一组键值对象,提供Key到value的映射

    list接口的实现类
    ArrayList实现了长度可变的数组,在内存中分配连续的空间。遍历元素和随机访问元素的效率比较高
    LinkedList采用链表存储方式,插入、删除元素时效率比较高

    Map接口 03/30
    Map接口专门处理键值映射数据存储,可以根据键实现对值得操作
    常用的实现类是HashMap

    泛型集合 03/31
    JDK5.0使用泛型改写了集合框架中的所有接口和类

    迭代器
    通过迭代器iterator实现遍历
    获取iterator:collection接口的iterate()方法
    iterator的方法
    boolean hasNext();判断是否存在另一个可访问的元素
    Object next();返回要访问的下一个元素

    增加for型循环
    for(元素类型t 元素变量x:数组或集合对象){
    引用了x的java语句
    }


    Comparable 接口04/01
    针对对象数组或者集合中的元素进行排序时,首先需要确认对象元素的比较逻辑
    JDK中定义了comparable接口,用于表示对象间的大小关系,Java类可以通过实现comparable接口编写对象的大小逻辑

    public interafce comparable<T>{
    public int compare To (T o);
    }
    comparable接口重定义有compareTo方法,其逻辑是:
    返回正数表示this大于参数对象
    负数表示this小于参数对象
    0this等于参数对象

    JDBC 04/05
    JDBC是Java数据库连接技术的简称,提供连接各种常用数据库的能力

    JDBC API
    提供者:sun公司
    内容:供程序员调用的接口与类,集成在java.sql和javax.sql包中,如:
    drivermanager类
    connection接口
    statement接口
    resultset接口
    DriverManager
    提供者:sun公司
    作用:管理各种不同的JDBC驱动

    JDBC 驱动
    提供者:数据库厂商
    作用:负责连接各种不同的数据库


    JDBC API 主要功能:与数据库建立连接,执行SQL语句、处理结果
    ①DriverManager:依数据库的不同,管理JDBC驱动
    ②Connection:扶着连接数据库并担任传送数据的任务
    ③Stantement:由Connection产生、负责执行SQL语句
    ④ResultSet:负责保持Statement执行后所有产生的查询结果

    04/10

    使用preparedstatement接口(预编译的SQL语句)
    继承自statement接口
    比statement对象使用起来更加灵活,更有效率

    提高了代码的可读性和可维护性
    提高了安全性
    提高了sal语句执行的性能

    04/11
    持久化:是将程序中的数据在瞬时状态和持久状态间转换的机制
    持久化的实现方式:
    数据库
    普通文件
    XML文件

    什么是DAO
    Data Access Object(数据存取对象)
    位于业务逻辑和持久化数据之间
    实现对持久化数据的访问

    DAO模式的组成
    DAO模式的组成部分
    DAO接口
    DAO实现类
    实体类
    数据库连接和关闭工具类
    Dao模式理解
    起到转换器的作用,把实体类转换为数据库中的记录

    分层 04/12
    分层的特点
    每一层都有自己的职责
    上一层不用关心下一次的实现细节,上一层通过下一层提供的对外接口来使用其功能
    上一层调用下一层的功能,下一层不能调用上一层功能

    分层开发的好处
    各层专注于自己功能的实现,便于调高质量
    便于分工协作,提高开发效率
    便于代码复用
    便于程序扩展


    I/O 04/18
    JAVA API:java.io.File类

    File类
    创建文件对象
    物理文件或目录
    操作文件或目录的属性

    04/21

    1.常见的编码
    GBK、GB2312、UTF-8

    04/25
    DatalinputStream类
    FileInputStream的子类
    与FileInputStream类结合使用读取二进制文件
    DateOutoutStream类
    FileOutputStream类
    FileOutputStream的子类
    与FileOutputStream类结合使用写二进制文件

  • 相关阅读:
    在IE和Firfox获取keycode
    using global variable in android extends application
    using Broadcast Receivers to listen outgoing call in android note
    help me!virtual keyboard issue
    using iscroll.js and iscroll jquery plugin in android webview to scroll div and ajax load data.
    javascript:jquery.history.js使用方法
    【CSS核心概念】弹性盒子布局
    【Canvas学习笔记】基础篇(二)
    【JS核心概念】数据类型以及判断方法
    【问题记录】ElementUI上传组件使用beforeupload钩子校验失败时的问题处理
  • 原文地址:https://www.cnblogs.com/PBT95/p/6852829.html
Copyright © 2011-2022 走看看