Java 知识点

1.java程序编译,打包成jar,运行
  • javac FileLength.java 编译程序产生FileLength.class文件
  • jar -cvf test.jar FileLength.class 打包成test.jar文件
  • java -jar test.jar 运行test.jar文件 ;

2.Java 为何不支持多继承
B extends A, C extends A, D extends B and C. 如果B和C都overwrite了A中的print()方法,D调用print()的时候则无法决定

3.interface和abstract class
一个Java类可以实现多个接口,但是只能继承一个抽象类

  1. final关键字:一旦定下来就不能修改
    final 类: 不能被继承
    final 方法: 不能被子类overwrite
    final field: 必须在初始化,可以写在静态code block里也可以是constructor,之后不能修改。
    final参数:当函数参数为final类型时,你可以读取使用该参数,但是无法改变该参数的值。

使用final方法时,java compiler使用inline机制:内嵌,其实就是编译后的那段函数代码顺序地放到程序里面。不存在调用函数时候的那种压栈出栈的现场保护回收动作,时间主要就是节约在这里,但同时也注定是每一处用内嵌的地方,对应的代码就实际出现一次。
对短小代码有明显效果,而对长段代码的话,节约时间就不明显,程序却会长很多。

3.static关键字
(1)static field:静态变量在内存中只有一个拷贝.
(2)static method
(3)static block
初始化顺序:先初始化父类的静态代码—>初始化子类的静态代码–>
(创建实例时,如果不创建实例,则后面的不执行)初始化父类的非静态代码(变量定义等)—>初始化父类构造函数—>初始化子类非静态代码(变量定义等)—>初始化子类构造函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值