网站服务器速度对seo有什么影响,做网站一般长宽多少钱,网站制作教程百度云,wordpress 双侧边栏1. 重载与重写重载#xff1a;发生在同一个类中#xff0c;方法名必须相同#xff0c;参数类型不同、个数不同、顺序不同#xff0c;方法返回值和访问修饰符可不同。重写#xff1a;子类对父类允许访问的方法重新编写#xff0c;方法名参数列表必须相同#xff0c;返回值…1. 重载与重写重载发生在同一个类中方法名必须相同参数类型不同、个数不同、顺序不同方法返回值和访问修饰符可不同。重写子类对父类允许访问的方法重新编写方法名参数列表必须相同返回值范围小于等于父类抛出的异常范围小于等于父类修饰符范围大于等于父类若父类方法为private子类不能重写。注构造器不能被重写重写意味着发生了继承子类重写父类的方法然而构造器的方法名必须与类名相同显而易见的是子类和父类的类名一定不相同所以构造器不可被重写。2. final修饰的类为最终类不能被继承。如String 类类中所有成员方法被隐式指定为final方法修饰的方法可以被继承和重载但不能被重写修饰的变量如果是基本类型则是个常量不能被修改若是引用类型初始化后不能引用其他对象但被引用对象本身是可以修改的。final A y new A();y.a 1;3. OOP特点这是一种“万物皆对象”的编程思想。在现实生活中的任何物体都可以归为一类事物而每一个个体都是一类事物的实例。三大特性封装、继承、多态封装将一个对象的属性私有化同时提供一些可以被外界访问问的属性的方法继承使用已存在的类的定义作为基础建立新类新类可增加新的数据和功能可以用父类的功能但不能选择性的继承父类。多态同一个行为有多种表现形式程序中定义的引用变量所指向的具体类型在编译时不确定而是在运行期间该引用变量到底指向哪个类的实例变量。4. “面向过程”和“面向对象”的区别面向过程就是分析出解决问题所需要的步骤然后用函数把这些步骤一步一步实现面向对象是把问题分解成各个对象去描叙某个对象在整个过程中的行为。举例说明五子棋面向过程1、开始游戏2、黑子先走3、绘制画面4、判断输赢5、轮到白子6、绘制画面7、判断输赢8、返回步骤 29、输出最后结果。每个步骤用不同的方法来实现。面向对象整个五子棋可以分为 1、黑白双方这两方的行为是一模一样的2、棋盘系统负责绘制画面3、规则系统负责判定诸如犯规、输赢等。第一类对 象(玩家对象)负责接受用户输入并告知第二类对象(棋盘对象)棋子布局的变化之后在屏幕上面显示出这种变化同时利用 第三类对象(规则系统)来对棋局进行判定。5. 抽象和接口均不可被实例化a) 接口中所有方法隐含都是抽象的。而抽象类则可以同时包含抽象和非抽象的方法。b) 类可以实现很多个接口但是只能继承一个抽象类c) Java接口中的成员变量默认都是final static 。d) Java接口中的方法默认是public的。所有方法在接口中不能有实现(JDK8之后可默认实现)e) JDK8之后接口可定义默认方法JDK9之后接口可定义私有方法。6. 动态绑定和静态绑定绑定指的是一个方法的调用与方法所在的类(方法主体)关联起来。静态绑定在编译过程中就已经知道这个方法到底是哪个类中的方法java当中的方法只有finalstaticprivate和构造方法是前期绑定。动态绑定在运行时根据具体对象的类型进行绑定只适用于方法若要访问子类中与父类相同的属性值可在子类中添加一个get方法。7. 深拷贝与浅拷贝浅拷贝对基本数据类型进行值传递对引用数据类型进行引用传递般的拷贝。深拷贝对基本数据类型进行值传递对引用数据类型创建一个新的对象并复制其内容。8. JDK、JRE、JVM的区别与联系JDK (Java Development Kit)Java 开发工具包。jdk 是整个 Java 开发的核心拥有 JRE 所拥有的一切还有编译器(javac)和工具(如 javadoc 和 jdb)。能够创建和编译程序。JRE (Java Runtime Environment)Java 运行时环境。它主要包含两个部分jvm 和 Java 的一些基本类库。用来运行已编译 Java 程序所需内容的集合。JVM 只认识 xxx.class 类型的文件能够将 class 文件中的字节码指令进行识别并调用操作系统的 API 完成动作是 Java 能够跨平台的核心。9.Java 为什么能跨平台实现一次编写多处运行java文件编译成二进制字节码的class文件jvm解释执行class文件。不同的系统上安装有不同的Java虚拟机(JVM)由JVM来把字节码再“翻译”成所对应系统能够执行的代码。因此不需要考虑硬件平台是什么。java是运行在jvm上的所以它的代码就能不经修改就能在不同平台的jvm上运行。9 . 与 equalshashCode()与equals()的相关规定如果两个对象相等则hashcode一定也是相同的两个对象相等,对两个equals方法返回true两个对象有相同的hashcode值它们也不一定是相等的综上equals方法被覆盖过则hashCode方法也必须被覆盖hashCode()的默认行为是对堆上的对象产生独特值。如果没有重写hashCode()则该class的两个对象无论如何都不会相等(即使这两个对象指向相同的数据)。与equals的区别是判断两个变量或实例是不是指向同一个内存空间 equals是判断两个变量或实例所指向的内存空间的值是不是相同是指对内存地址进行比较 equals()是对字符串的内容进行比较10. Java中的装箱和拆箱Integer 等包装类不能被继承装箱自动将基本数据类型转换为包装器类型是通过调用包装器的valueOf方法实现的拆箱自动将包装器类型转换为基本数据类型是通过调用包装器的 xxxValue方法实现的。(xxx代表对应的基本数据类型)。例如Integer i new Integer(xxx) 和 Integer i xxx;这两种方式的区别。i)第一种方式不会触发自动装箱的过程而第二种方式会触发ii)第二种方式等同于Integer.valueOf(123) 会使用缓存池中的对象多次调用会取得同一个对象的引用。11. JAVA只有值传递按值调用表示方法接收的是调用者提供的值。public static void main(String[] args) {int num1 10;int num2 20;swap(num1, num2);System.out.println(num1 num1);System.out.println(num2 num2);}结果a 20、b 10num1 10、num2 2012. 静态内部类与普通内部类的区别是否含有静态属性普通内部类只能通过外部类的对象来访问所以不能定义各种静态成员。访问外部成员静态内部类只能直接访问外部类的静态成员, 若要访问非静态属性必须通过外部类的对象访问非静态内部类可直接访问外部类的所有成员。外部类访问内部类假设类A有静态内部类B和非静态内部类C创建B和C的区别为A.B b newA.B(); A.C c newA().newC();13. C与javajava程编写一次代码到处运行都是生成字节码在JVM里面运行得到结果可移植性强。java没有指针编写效率高java可自动回收C通常适合那些需要“硬件级”操作的软件。二者之间的最大区别在于C更接近机器语言因此其软件运行速度更快且能够直接与计算机内存、磁盘、CPU或者其它设备进行协作。