zoukankan      html  css  js  c++  java
  • Java复习随笔

    1.StringTokenizer str = new StringTokenizer("字符串");   str.countTokns();   //可得出字符串非连续的个数(可用于单词数的计算)

     String不可直接用下标法访问字符,用str.charAt(下标)

     str.substring(起始下标末尾下标,该方法表示截取起始(包括)到末尾(不包括)下标间的相应字符;

     (1 + 2 + "3")的值为 33 ; (”1“ + 2 + 3)的值为123,正常从左往右运行

    2.java不写类的构造方法时会默认构造无参方法,构造了有参构造方法后要把无参的构造方法也写出来

    3.引用类型的数据字段的缺省值为“null

     修饰符的缺省值是“default”,表示同一包中的类可访问

     protected:同一包的类和子类可访问

     public:所有都可访问

     private:同一个类中可访问

    4.接口:

     *  接口的成员变量隐含的声明为public static final,成员方法被隐含的声明为public abstract

     *  接口中只能有抽象方法,抽象类中必须有抽象方法,但也可以有非抽象方法,抽象方法只含方法名,不含方法体;

     *  抽象类不可被实例化,即不能被new;

     *  接口只能由接口继承,非接口的类只能实现接口,并且没有实现接口内所有方法的类必须声明为抽象类

     *  类的实例中,只有大的类能实例小(等)的类,虽然小的类可以通过强制转换指向大类(无代码错误提示),但是在运行时会抛出异常;

     *  Integer,Double,String类实现了Comparable接口,Object是老大啥都不实现

    5.三目运算符x?y:z的输出结果跟y,z的类型有关,会转化为y,z中的大类型,如 (2<1?)1.0:1 的输出结果为1.0

     String虽然是引用类型,但是它储存在常量池,所有在传递时是值传递,并且要用StringBuffer才能改变其值;

     null是一个String对象,祖先类都是Object,即是其的一个实例

    6.java的三大特性:封装,继承,多态,多态体现在覆盖

     方法覆盖:方法名及其参数,返回值都与父类相同

     方法重载:方法名相同,传入参数不同。

    6.static定义的变量属于整个类,不能用于局部变量方法体内的静态变量,也就是常量,只能用final修饰。

     static定义的方法(静态方法)只能用于不用实例即可调用,非晶态方法只能通过实例化对象调用

     GUI控件的事件处理中,事件源与监听器之间的关系是多对多

    7.编译错误是指语法上的错误,运行错误指语法上无误,但是运行代码后会报异常; 

    8.switch()语句中表达式的类型可以是charbyteshortint  

    9.字符串与int,double 的转换

     Integer.valueOf(str);  Integer.parseInt(str);

           (Double类似)

     String.valueOf(int);  Integer.toString();

           (Double类似)

    10.throw是用于手动抛出异常对象,throws用于回避异常对象,Error,Exception,Throwable可用于throw语句。

     内部类可以引用外部类的成员变量,但当要引用外部类成员方法中的变量时,需要保证变量为终端变量(即用final修饰)【不能引用另一方法中定义的内部类中的非终端变量】

    11. 发生方法覆盖的条件:
     *     第一: 发生在具有继承关系的两个类之间
     *     第二: 必须具有相同的方法名,相同的返回值类型,相同的参数列表(如果是参数列表不同,系统就会认为这两个是不同的方法进行重载)
     *        (返回值代表了函数的功能,复写不能更改函数的功能)
     *     第三: 重写的方法不能比被重写的方法拥有更低的访问权限
     *     第四: 重写的方法不能比被重写的方法抛出更广泛的异常
     *     第五: 私有的方法不能被覆盖
     *        不调用的时候就没有报错
     *        调用的时候才会报错,说明,这个方法是运行时错误
     *     第六: 构造方法无法被覆盖,因为构造方法无法被继承
     *     第七: 静态的方法不存在被覆盖
     *        因为,静态方法进来以后,不会再有新的内存操作,所以,就没有覆盖这一说
     *     第八: 覆盖值得是成员方法,和成员变量无关
     *        成员变量,是指这个类代表的所有个体的共有属性,只是属性值不一样

    12.final和static的区别:

      static不能修饰类,只能修饰类成员变量和方法,同时其修饰的值可以被继承,不能被覆盖,可以被重载。

      final修饰的方法可以被继承,不能被覆盖,可以被重载;final类不能被继承。

      共同点:都不能被重写(覆盖),但能被重载。

    13.四个修饰符的访问权限:

       -----------------------------------------------
                            类内部     package内           子类          其他
      public            允许        允许                 允许          允许
      protected      允许         允许                 允许         不允许
      default          允许         允许                 不允许      不允许
      private          允许         不允许             不允许      不允许 (不允许用于类的修饰)
      ----------------------------------------------

     

  • 相关阅读:
    为什么写技术博客对新人如此重要?
    Javascript经典正则表达式
    关于读书的那些事,其实我一直...没有行动
    dede织梦CMS文件夹目录结构
    jQ初体验,^_^
    vi/vim 基本使用方法
    (X)HTML Strict 下的嵌套规则
    KISS保持简单:纪念丹尼斯·里奇
    关于jQuery性能优化
    编码规范CSSHTML 摘自kissyui
  • 原文地址:https://www.cnblogs.com/zengbojia/p/7091933.html
Copyright © 2011-2022 走看看