• Java笔记


    1.配置临时变量
    set命令。直接输入set,可以查看所有当前的环境变量;“set 变量名”获得指定变量名的环境变量;动态获取已有的环境变量 值“%环境变量
    名%”
    2.在类名前加了public,则类名要和.java文件名一样。
    比如:类名为public class demo{},怎对应的.java文件名要为demo.java。
    3.javac 文件名.java 将java源文件编译为.class的文件。.class文件的文件名是和类名一样的。
    4.虚拟机 先找的是自定义环境变量(区别于系统的path变量),然后再硬盘下。
    5.在配置自定义环境变量时,不要加分号。
    6.将一个数左移,如:3<<2=3*2^2;即a<<n=a*2^n
    7.将一个数右移,如:6>>1=6/2^1;即a>>n=a/2^n
    8.>>:右移最高位补0还是补1,和原本的最高位一致
    9.>>>:无论最高位是什么,右移后,都用0补 
    10.一个数的二进制的负数形式是将这个数取反(~)然后加1
    11.二进制转为十六进制是将二进制分每4位一组,转为十六进制
    12.for前面能加上标记,在break的时候,可以跳出指定for
    比如: a:for() { b:for(){break a;} }这边跳出的a(但是a都跳出了,,b肯定也跳出了)
    13.new 出来的对象 的内存是在堆中。例如:int[] a=new int[3]; 栈中一个变量a指向了堆中一块内存为3 的空间。
    栈的内存自动释放,堆的内存垃圾回收机制
    14.this构造函数必须放在别的构造函数的第一行。构造函数之间可以相互调用,但是不能循环调用,否则出现死循环。
    15.static成员能被类名和对象调用
    16.java程序说明书的制作,类必须是public公有的,私有的方法不会被编入说明书中
    在类的最前面:
    /**
    该类的说明
    @author 张三
    @version V1.1
    方法说明:
    /**
    该方法的说明
    @param 参数名1参数描述之类的
    @param 参数名2参数描述之类的
    @return 返回值描述
    */
    字段属性 一样。
    编辑完成之后,使用javadoc来生成说明文档。命令:javadoc -d 存放的目录 源文件名
    17.构造代码块,是在实例化一个对象的时候调用
    静态代码块,是在类加载的时候调用
    执行顺序:静态代码块->静态属性建立并初始化->有默认值得属性初始化->构造代码块->构造函数
    18.super指向父类对象
    19.重写,子类的访问权限必须不小于父类,且方法一模一样,返回值不一样的方法是不允许出现的
    20.子类要调用父类指定的构造函数,需要显示指定“super(参数...)”,且只能在第一行。
    21.final修饰类,则这个类不能被继承,如果是方法,则子类不能重写 改方法。
    22.被final修饰的变量,只能初始化一次。
    23.抽象方法必须定义在抽象类中,子类必须实现 父类的所有抽象方法。抽象类就是强制子类要实现方法。
    24.抽象类中也可以有实例方法。抽象类不能实例化。

    25.抽象类不能被实例化,但不代表它不可以有构造函数,抽象类可以有构造函数,备继承类扩充。抽象方法不能有函数体。

    26.接口中的属性只能是静态的static,但是可以不写,编译器会自动加上(final关键字也一样)。因为interface中的成员都有特定的修饰符。

    27.实现接口的关键字implements。接口之间不能有同名同参数不同返回类型的方法。

    28.判断对象是否是某种类型用instanceof关键字,类似于C#的is。 “对象A instanceof 类B”,对象A是否是类B的对象。如果某对象是继承而来的,比如继承于C类(或者C是接口),则对象A instanceof C则会为true。

    29.接口的一个运用场景,关于数据库连接,因为市场上有太多的数据库,且项目的数据访问方式有可能随时改变,导致数据库一变,代码就要做很大的变动,所以如果将数据库访问的操作(增删改查),封装成一个接口,规范了每一个子类必须实现增删改查操作,所以如果有新的数据库,则只需要再加一个子类实现接口,然后调用的方式就是用接口的对象去调用,由于多态的特性,接口的对象会去调用子类的方法。接口的运用场景,其实也就是同样的操作,有可能有不同的操作对象,为了避免修改操作的源码,可以使用接口。

     30.重写父类object的equals方法,重写意味着方法的签名完全一致,所以参数肯定也是一致的,父类object的equals参数是object,如果要自定义自己子类的判断是否相等的equals方法,比如某个属性是否相等,因为参数object肯定没有那个属性,所以要进行一个强转的操作,因为传进来的有可能是各种类型的对象,所以要进行一个类型判断,综上,代码如下:

    public boolean equals(Object obj)
    {
        if(!(obj instanceof 类名))  //类名指向要重写的类名
              return false;
         return this.属性==obj.属性  ;//属性指向要比较的属性
    }

    31.内部类。内部类的函数通过“外层类.this.成员”来访问外层类的成员,内部类可以用private来修饰,最外层类不能用private来修饰。如果内部类是非private,则在声明内部类对象的时候是通过,“外层类.内部类 变量=new 外层类().new 内部类()”。内部类如果为静态,则只能访问外部类的静态成员。内部静态类调用内部类的非静态方法通过“ new 外部类.内部类().非静态成员”。如果是静态成员则直接通过 “外部类.内部类.静态方法”。当静态类为非静态类,则静态类内部不能定义静态成员,也就是说如果内部类中有静态成员,则这个内部类必须是静态的。当外层类的静态方法访问内部类时,内部类也必须是静态的。

    32.内部类的使用情况,当这个类,要直接访问外部类的成员时,可以将类声明在一个类中。

    33.异常Exception e   ,    e.printStackTrack打印异常的堆栈跟踪信息

    34.如果在catch块中执行了return语句,且发生了异常,finally还是会继续执行,但是finally结束后的语句不会执行;如果catch块中没有return,且发生了异常,则finally执行后,finally块后的语句还会继续执行;在try中,也一样。

    在try,catch,finally中如果都有return,则返回的是finally中的值;什么时候会返回catch中的值呢,就是在try中出错,且finally中没有return的时候;什么时候会返回try中的值呢,就是在try中不出错,且finally中没有return的时候。

  • 相关阅读:
    React准备
    React组件
    从uri获取图片文件的File对象
    ES6
    Promise.all
    js的ctrl+s保存功能
    浏览器端读取和生成zip文件
    vscode配置及快捷键
    Array
    最全React技术栈技术资料汇总
  • 原文地址:https://www.cnblogs.com/LJP-JumpAndFly/p/4676699.html
Copyright © 2020-2023  润新知