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是老大。园长老大~