做网站如何选择数据源,网站开发报价模板,杨和网站建设,宁波seo优化定制1、JVM、JRE、JDK之间的关系 个人理解#xff1a;JVM可以帮助屏蔽底层的操作系统#xff0c;使程序一次编译到处都可以运行#xff0c;JVM可以运行class文件。JRE是java文件运行的环境#xff0c;但不能新建程序#xff0c;JRE包含JVM。JDK功能最齐全#xff0c;包含了编…1、JVM、JRE、JDK之间的关系 个人理解JVM可以帮助屏蔽底层的操作系统使程序一次编译到处都可以运行JVM可以运行class文件。JRE是java文件运行的环境但不能新建程序JRE包含JVM。JDK功能最齐全包含了编译器和各种工具JDK包含JRE。 2、public、protected、default、private的区别 default默认什么都不写在同一个包内可见不使用任何的修饰符 public可以修饰类在一个java源文件中只能有一个public并且一旦类被public修饰那么java的源文件名要和这个类名一致。 protected受保护的受到该类所在包所保护被protected保护的成员会被位于同一package中的所有类访问到。同时被protected所修饰的成员也能被该类的所有子类继承下来。 private私有的只能在当前类中被访问作用域最小。
修饰符当前类同一包内子孙类同一包子孙类 不同包其他包publicYYYYYprotectedYYYY/NNdefaultYYYNNprivateYNNNN
3、final、finally、finalize的区别
final是一个修饰符可以修饰变量、方法、类 修饰变量时变量的值不能再改变。eg: final static int i 100; 修饰方法时方法不能重写但不影响继承。eg: public final void test(); 修饰类时这个类不能被继承。(不能用final和abtract来修饰同一个类同样final不能修饰接口) egfinal class Parent
finally是一个关键字通常在try-catch块中用于处理异常无论try中是否发生异常finally块一定会被执行。(通常进行资源释放的工作)
try{}catch{}finally{}
finalize指finalize()方法时Object类的方法是在对象被垃圾回收器回收之前调用的可以通过重写这个finalize()方法给对象自己最后一个复活的机会但不能保证finalize()方法立即执行什么时候调用具体有虚拟机决定。一个对象的finalize()方法只会被调用一次通常情况下不需要程序猿实现fianalize()方法
4、static关键字的作用
只有new对象之后数据存储空间才会被分配⽅法才能供外界调⽤。 但是当没有创建对象的时候也想要调⽤⽅法或者就是想为特定分配存储空间的时候就需要⽤ static。所以有了static成员变量或者⽅法就可以在没有所属类的时候被访问了。
5、面向对象、面向过程 个人理解面向过程将任务拆分成一个一个步骤分别完成 ⾯向过程的性能⽐较⾼因为没有实例化等操作开销⽐较⼩。 ⾯向对象因为有了封装继承多态的特性可以设计出低耦合的系统使得系统更灵活、容易维护。 1). 封装是指封装成抽象的类并且对于可信的类或者对象是可以操作的对于不可信的进⾏隐藏。 2). 继承是指可以使⽤现有类的所有功能⽽且还可以在现有功能的基础上做拓展。 3). 多态是基于继承的他是指⽗类中定义的属性和⽅法被⼦类继承之后可以具有不同的数据类型或者表现出不同的⾏为使得同⼀个属性在⽗类及其⼦类中具有不同的含义。 重载就是多态的⼀个例⼦是编译时的多态。其实我们所说的多态是运⾏时多态也就是说编 译的时候不确定调⽤哪个具体⽅法⼀直延迟到运⾏时才可以确定所以多态⼜叫延迟⽅法。
Java实现多态有3个必要条件继承、重写和向上转型。只有满足这3个人条件开发人员才能够在同一个继承结构中使用统一的逻辑实现代码处理不同的对象从而执行不同的行为。 继承在多态中必须存在有继承关系的子类和父类 重写子类对父类中某些方法进行重新定义在调用这些方法时就会调用子类的方法。 向上转型在多态中需要将子类的引用赋给父类对象只有这样该引用才既能可以调用父类的方法又能调用子类的方法。
重载和重写 重载是编译时多态重写是运行时多态 重载是在一个类里面方法名字相同而参数不同。返回类型可以相同也可以不同。每个重载的方法或者构造函数都必须有一个独一无二的参数类型列表 重写发生在子类与父类之间重写方法返回值和形参都不能改变与方法返回值和访问修饰符无关即重载方法