• Java基础


      1.javac.exe对源文件.java进行编辑生成字节码文件.class。 java.exe再执行.class
      2.scanner sc= new scanner(system.in);int a =sc.next();
      3.1byte=8个二进制位;八进制每三位表示一位;十六进制每四位表示一位。
    1k=1024b
    1M=1024k
    1G=1024M
    1T=1024G
      4.负数的二进制=正数的二进制取反加一
    一个字节表示十进制范围-128 127(-2(n-1) 2(n-1)-1)
      5.byte 1个字节 boolean 1个字节
    short2个字节 char 2个字节
    int 4个字节 float 4
    long 8个字节 double 8
    整数默认int类型,小数默认double类型
    级别高低:short,byte,char---int---long---float--double
    低级别向高级别自动转换
    高级别向低级别转换可能会损失精度,要强制转换
      6.转义字符、连接符、运算符(复合赋值运算符,内部会做强制转换)
    有符号右位移>>>,负数高位补1,正数补零。
    无符号右移>>,高位补零。
    左移运算没有有符号和无符号左移动,在左移时,移除高位的同时在低位补0。
    左移等于乘以2的移位次密,右移……
      7.||、&&与|、&的区别
    条件运算符?m>n?32:33
      8.在同一个class中,函数名相同,参数不同(个数、类型),构成重载。和返回值无关、和参数名称无关。
      9.java程序在运行时,JVM会把内存分为5块区域:栈、堆、方法区、本地方法区、寄存器。
    栈:基本数据类型。先进后出,局部变量(在函数、语句中定义的变量)进栈,局部变量的作用域一旦结束立即释放内存。
    堆:引用数据类型。并不会立即释放内存而是等垃圾回收机制。数组是引用类型,数组在栈中,通过地址引用堆中的数组。

      10.二维数组是将二维的地址放在一维里,定义时,可以先制定一维数组的长度,然后再动态的制定二维的长度:int[][]a=new  int[2][];a[0]=new int[2];a[1]=newint[3];
      11.万事万物皆对象。
      12.匿名对象,只能使用一次。
      13.构造函数:在定义一个类时,系统会自动在类中加入一个默认的函数(和类名相同,不能有返回值):类名(){},用于创建对象。使用带参数的构造函数对对象初始化。
      14.封装:对方法使用private,不让外界使用或修改。对于要使用私有参数可以用调用set和get方法。
      15.成员变量和局部变量重名时,成员变量无效。可以使用 this来表明是成员变量如:this.name= name
      16.堆、栈、方法区(包括静态区)。
    使用关键字static修饰的成员变量随类加载在方法区的静态区中开辟内存,优先于非静态成员开辟内存(所以无法从静态上下文中引用非静态变量),同样静态方法也只能调用静态变量。
    可以减少堆内存使用,该类的其他方法可以共享,可以通过类名直接使用。
    静态成员变量(类变量:可以通过类名直接访问)存储的是所有对象共享的数据,非静态成员变量(实例成员变量:必须 创建实例才能访问)存储的是每个对象特有的数据。

      17.工具类都是static,可以直接用类名.方法调用,也可以实例化再调用(禁止实例化调用的方法:将类的构造函数定义成private )。

      18.文档注释/**   @!author @version @param @return.......  */

      19.静态代码块:随着类的加载而执行,只执行一次,优先于mian函数的执行。用于类的初始化。

    构造代码块:对象一创建就执行,优先于构造函数的执行,用于所有对象共性的初始化。

      20.单例设计模式:解决的是一个类只能有一个对象。(1.构造函数私有化。2.再类内部创建一个自身类型的对象。3.使用一个public的函数把该对象返回。)应用工厂零 件加工。

      21.this:是一个引用,总是指向当前使用的对象

    super:不是引用,当父类中出现同名成员现象时,用于区分子父类成员的。子类没有权限访问父类private成员,必须使用public方法返回。

    重写(覆盖 ),权限要大于等于父类,静态只能覆盖静态。 

    当父类方法的返回值是应用类型时,子类返回类型不一定要和父类返回类型一致,也可以是父类返回类型的子类。

    在创建子类对象时,先调用父类的构造方法,再调用子类的构造方法(原因是系统自动在子类的构造函数的第一行加入了一条语句:super(),super()是默认调用父类中无参的构造函数)。要想调用父类有参构造函数,应该用super(int x, string s)。

    当父类中不存在无参的构造函数时,必须在子类构造函数的第一行手动加入super语句,调用父类的某个构造方法。

      22.final修饰的类不能有子类,修饰的方法不能被重写。public static final double PI=3.14;(只需要一份所以static)

    23.抽象类:在提取父类的过程中,某一个共性方法子类有各自不同的实现方法,那么该方法需要修饰为abstract。包含抽象方法的类必须是抽象类。抽象类不能创建对象。

    继承了父类中的抽象方法,就含有抽象类,如果不重写该抽象方法,那么该类也是抽象类,

    抽象类一定是父类。抽象类有构造方法。抽象类不应定有抽象方法(当不希望被创建对象时,可以定义为抽象类)。

    不能和final(不能被重写)、static(可以通过类名调用)、private(不能被重写)同时使用。

      24.接口:全局变量均为 public static final。方法均为抽象方法 public abstract。

    可以实现多个接口,因为接口中的方法都是抽象的,都没有实现,在创建子类对象并调用该重写的抽象方法时,很明确就是调用重写之后的方法,不会出现调用的不确定性。

    在继承的同时还可以实现接口。接口可以继承接口。

    25.

     好处:提高了程序的扩展性,前期定义的功能可以被后期出现的事物使用。

    在多态时,利用向下转型来使用子类特有的功能。首先利用instanceof来判断是哪个子类。

      26.多态中成员的特点:

    成员变量:编译时期可以访问哪些变量看父类,运行结果看父类。

    成员函数:编译时期可以访问哪些变量看父类,运行结果看子类(子类重写类父类的方法,没有重写还看父类)。

    静态成员函数:编译时期可以访问哪些变量看父类,运行结果看父类。

    接口也可以多态。

    27.object是老大。园长老大~

  • 相关阅读:
    如何用nginx将vue部署到本地
    数组中引用类型的去重
    关于element 上传文件el-upload
    ----vue3.0 如何拿到 有ref属性的元素;
    关于 el-form rules校验
    x-www-form-urlencoded 传参
    哈哈 v-model 传递参数给子组件
    记 el-tabs el-tab-pane 中嵌套 router-view出现的问题
    nginx跨域
    css3---flex三剑客
  • 原文地址:https://www.cnblogs.com/wk1992/p/13021476.html
Copyright © 2020-2023  润新知