美文网首页
2019年Java面试题(一) css和Java基础

2019年Java面试题(一) css和Java基础

作者: 码记 | 来源:发表于2019-04-27 11:29 被阅读0次

    一.  CSS

    1.   引入的方式有哪些?

    1)外联:<link>标签

    2)内联:<style>标签

    3)元素内嵌:元素的style属性

    2.  CSS选择符有哪些?

    标签选择符、类选择符、id选择符、组合选择符

    3. $(this)  this 关键字在 jQuery 中有何不同?

    前者是jQuery对象,使用jQuery方法和属性;后者是JavaScript对象,使用JavaScript方法和属性。

    4.  列举常用的几种jQuery选择器

    1)基本选择器:包括id选择器、class选择器和元素选择器。

    2)层次选择器:也叫做路径选择器,可以根据路径层次来选择相应的DOM元素。

    3)过滤选择器:在前面的基础上过滤相关条件,得到匹配的dom元素:如属性选择器、表单选择器等等

    二.  JAVA基础 

    1.  什么是java序列化,如何实现java序列化?(写一个实例)

    序列化:处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化是为了解决在对对象进行多谢操作时所引发的问题

    序列化的实现(简单的讲):

          实现接口Serializable

          实现接口Externalizable

    2. java==eqauls()的区别

    1)对于==,比较的是值是否相等

                如果作用于基本数据类型的变量,则直接比较其存储的“值”是否相等;

        如果作用于引用类型的变量,则比较的是所指向的对象的地址

    2)对于equals方法,注意:equals方法不能作用于基本数据类型的变量,equals继承Object类,比较的是是否是同一个对象

        如果没有对equals方法进行重写,则比较的是引用类型的变量所指向的对象的地址;

        诸如String、Date等类对equals方法进行了重写的话,比较的是所指向的对象的内容。

    3. hashCode()equals()是什么?

    hashCode()方法和equals()方法的作用其实一样,在Java里都是用来对比两个对象是否相等一致。

    4. equals()hashcode的区别

    1).    性能

    重写的equals()里一般比较的比较全面比较复杂,这样效率就比较低,而利用hashCode()进行对比,则只要生成一个hash值进行比较就可以了,效率很高。

    2).    可靠性

    ①  equals()相等的两个对象他们的hashCode()肯定相等,也就是用equals()对比是绝对可靠的。

    ②  hashCode()相等的两个对象他们的equals()不一定相等,也就是hashCode()不是绝对可靠的。

    5. java==equals()hashcode()区别

    1).==运算符是判断两个对象是不是同一个对象,即他们的地址是否相等

    2).object类中equals与==是等效的

    3).覆写equals更多的是追求两个对象在逻辑上的相等,你可以说是值相等,也可说是内容相等。(覆盖以后,覆盖equals时总要覆盖hashCode )

    4).hashCode用于返回对象的hash值,主要用于查找的快捷性,因为hashCode也是在Object对象中就有的,所以所有Java对象都有hashCode,在HashTable和HashMap这一类的散列结构中,都是通过hashCode来查找在散列表中的位置的。

    6. 动态代理的两种方式,以及区别

      答:jdk动态代理和cglib动态代理;

      JDK动态代理只能对实现了接口的类生成代理,而不能针对类;cglib是针对类实现代理,主要是对指定的类生成一个子类,覆盖其中的方法,因为是继承,所以该类或方法最好不要声明称final,final可以阻止继承和多态;

    7排序都有哪几种方法?请列举。用JAVA实现一个快速排序?

    排序的方法有:插入排序(直接插入排序、希尔排序)、交换排序(冒泡排序、快速排序)、选择排序(直接选择排序、堆排序)、归并排序、分配排序(箱排序、基数排序)

    8OverloadOverride的区别。Overloaded的方法是否可以改变返回值的类型?

    不同:

    Override:方法的重写:子类覆盖父类的方法,将子类传与父类的引用,调用的还是子类的方法

    Overload:方法的重载:一个类多个方法,名称相同,参数个数类型不同

    相同:

    两者都是Java多态性的不同表现

    Overload的方法时可以改变返回值的类型

    9.     &&&的区别?

    &是位运算符,表示按位与运算;&&是逻辑运算符,表示逻辑与(and)

    10.     final类有什么特点?

    1:这个关键字是一个修饰符,可以修饰类,方法,变量。

    2:被final修饰的类是一个最终类,不可以被继承。

    3:被final修饰的方法是一个最终方法,不可以被覆盖。

    4:被final修饰的变量是一个常量,只能赋值一次。

    11.     final finally finalize的区别?

    final用于声明属性、方法和类,分别表示属性不可变,方法不可被覆盖,类不可继承

    finally是异常处理语句结构的一部分,表示总是执行

    finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,如关闭文件等

     

    12.     Anonymous Inner Class(匿名内部类)是否可以extends(继承)其他类,是否可以implements(实现)interface(接口)

    可以继承其他累或完成其他接口,在swing编程中常用此方式

     

    13.     Static Nested Class Inner Class的不同?

    Static nested class是被声明为静态(static)的内部类,它可以不依赖于外部类实例被实例化。而通常的内部类需要在外部类实例化后才能实例化。

    14.     static局部变量与全局变量的区别,编译后映射文件是否包含此类变量的地址。

      static全局变量只初使化一次,防止在其他文件单元中被引用;

     static局部变量和普通局部变量有什么区别:static局部变量只被初始化一次,下一次依据上一次结果值;

     static函数与普通函数有什么区别:static函数在内存中只有一份,普通函数在每个被调用中维持一份拷贝;

    15.     String and StringBuffer的区别?

    他们都可以储存和操作字符串,即包含多个字符的字符数据。

    String类提供数值不可改变的字符串

    StringBuffer类提供字符串进行修改

     

    16.     StringStringBufferStringBuilder的相同点与区别--线程安全性体现

    1.      String是不可改变的字符串;StringBuffer和StringBuilder是可改变的字符串

    2.      StringBuilder是线程非安全,速度快,StringBuffer是线程安全

                单线程操作字符串缓冲区,操作大量数据使用StringBuilder。

                多线程操作字符串缓冲区,操作大量数据使用 StringBuffer。

    3.      String是final类,StringBuffer不是

    4.      String重写equals()和hashCode(),StringBuffer没有

    17.     面向对象的7大设计原则

    里氏原则,依赖倒置,迪米特法则,单一职责,接口隔离,开闭原则,缺少(聚合复用)

    18.     抽象类的特点:

    1:抽象方法只能定义在抽象类中,抽象类和抽象方法必须由abstract关键字修饰(可以描述类和方法,不可以描述变量)。

    2:抽象方法只定义方法声明,并不定义方法实现。

    3:抽象类不可以被创建对象(实例化)。

    4:只有通过子类继承抽象类并覆盖了抽象类中的所有抽象方法后,该子类才可以实例化。否则,该子类还是一个抽象类。

    5: 抽象类只能单继承。

    19.     抽象类和接口的区别?

    1:抽象类只能被继承,而且只能单继承。

    接口需要被实现,而且可以多实现。

    2:抽象类中可以定义非抽象方法,子类可以直接继承使用。

    接口中都有抽象方法,需要子类去实现。

    3:抽象类使用的是  is a 关系。

    接口使用的 like a 关系。

    4:抽象类的成员修饰符可以自定义。

    接口中的成员修饰符是固定的。全都是public的。

    20.     java中实现多态的机制是什么?

    答:方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。

    21.     构造器Constructor是否可被override?

    构造器Constructor不能被继承,因此不能重写Overriding,但可以被重载Overloading。

    相关文章

      网友评论

          本文标题:2019年Java面试题(一) css和Java基础

          本文链接:https://www.haomeiwen.com/subject/zjihnqtx.html