Java概念-02

  1. If语句是依靠boolean表达式进行的判断,而switch依靠的是内容进行的判断;
  2. 循环的使用:

如果已经明确的知道循环次数,建议使用for循环;如果不知道循环次数,但知道循环结束条件,建议使用witch循环;

  3. 方法的重载:

发生在一个类之中,指的是:方法名称相同,参数类型及个数不同,与返回值无关的方法定义,在调用的时候,会根据传入的参数自动执行对应的方法;

  4. 递归:

    方法自己去调用自己的一种代码形式;

    a)          递归虽然看起来代码结构简单,但是执行过多会造成java.lang.StackOverflowError,即栈溢出和程序执行过慢。所以在开发之中递归调用过多时,最好用for或while来代替;

    b)         根本原因是,对于每一个线程,都有一个java栈,当有一个方法被调用的时候,会产生一些与这个方法有关的信息,比如:方法名称、参数、中间变量等,这些都叫栈帧,当一个方法执行完毕,栈帧才会从栈顶pop掉。如果你无节制调用递归的话,会一直向栈里push栈帧,而java栈是有一定的长度和深度的,当栈满了,无法在进行push的时候,机会出现栈溢出(java.lang.StackOverflowError),解决的方法,就是不要用递归,用for或while,而且平时也不建议用递归,效率太低;

  5. 对java.lang.StackOverflowError的分析:

    a)          原因:运行一个程序,JVM会开辟一块内容空间去存储程序进行时的一些信息,当程序运行时需要存储的信息超过了分配的空间,就会出现溢出,比如:死循环,递归;

    b)         解决:首先优化程序代码,检查有无死循环,递归等,如果存在递归,建议用for或while开替代;

  6. 面向对象的三大特征:

    a)          封装:

      将对象的属性和实现细节隐藏起来,仅对外提供公共的方法方式;例如:简单java类,封装属性,对外只提供setter和getter方法,工厂,代理等;封装是通过访问权限来进行控制的:private、default、protected、public;

    b)         继承:

    1.   继承是发生在两个类之间,是通过exends实现的,被继承的类叫父类,继承的类叫子类。
    2.   在java里面只支持单继承,指一个类只能继承一个父类,被final定义的类不允许被继承。
    3.   在java里面如果一个类没有使用extends关键字,那么这个类默认继承Object。
    4.   子类可以继承父类:

        当子类和父类在同一包中时,可以继承默认权限修饰的属性和方法;

        当子类和父类在不同包中时,可以继承public/protected修饰的属性和方法;

      5.  子类不可以继承父类:

        无法继承父类构造方法,无法继承private修饰的属性和方法;

    c)          多态:一个对象的不同表现形式

      多态的三个核心条件:

    1.   继承的存在(继承是多态实现的核心,没有继承就没有多态);
    2.   子类重写父类的方法(多态下调用不同子类重写的方法);
    3.   父类引用变量指向子类对象(子类和父类的类型转换):

        |- 将一个父类的引用指向一个子类对象,称为向上转型,自动类型转换,此时父类调用的是子类覆写或继承的方法,无法调用子类特有的方法;

        |- 如果父类要想调用子类特有的方法,就得将一个指向子类对象的父类引用赋给一个子类的引用,称为向下转型,此时补习强制进行转换;

  7. 构造方法:为对象进行初始化操作

    a)          方法名称与类名称相同,无返回值,在对象创建的时候调用一次;构造方法允许被重载,当没有进行重载时,默认提供有一个无参构造;

  8. this关键字:

    a)          this.属性:调用本类成员属性;

    b)         this.方法:调用本类成员方法;

    c)          this():调用本类的无参构造,要求放在首行,并且不要递归调用;

  9. 简单java类开发原则:

    a)          类名称要求有意义,可以明确的描述某一类的实体;

    b)         类中的所有属性都要求使用private封装,封装后的属性提供有setter和getter方法;

    c)          类中可以提供有若干个构造方法,但必须提供有无参构造;

posted @ 2019-05-20 21:50  SweetBaby。  阅读(98)  评论(0)    收藏  举报