zoukankan      html  css  js  c++  java
  • CoreJava基础面试题

    1、局部变量的概念及特点

    局部变量是声明在方法内的变量

    特点1.必须先赋值才能使用2.作用范围从声明开始到它所在的代码块结束3.在重合的作用范围之内不允许局部变量名字相同

    2、方法重载和方法覆盖的区别?

    方法的重载要求方法名必须相同,形参列表必须不同,其他不作要求

    方法的覆盖是方法名参数列表返回值类型必须相同,访问修饰符相同或者更宽,子类不能抛出更大的异常,子类可以选择不抛或者RuntimeException类型的异常不受限制

    3、多态的核心代码

    多态即父类引用指向子类对象,也可以使接口指向实现类对象

    4、*什么是类加载

    JVM在第一次使用一个类的时候,会通过CLASSPATH找到对应的类的.class文件将他的类名属性方法构造方法等读取到内存中,类加载只会进行一次

    5、**类加载的时机

    1.第一次创建对象的时候会出发类加载2.第一次访问类的静态成员时会触发类加载3.子类加载时会触发父类加载先进行4.class.forName(“类的全限命名

    6、*Final修饰符可以修饰什么

    Final可以修饰类 方法 成员变量 局部变量等 修饰类不可以被继承 修饰方法可以被继承不可以被覆盖 修饰属性 常量不可改变

    7、抽象类和接口的区别

    抽象类 有构造方法 方法可以是抽象的 不可以直接new对象只能被继承 子类对象如果不想成为抽象类必须实现父类中所有的抽象方法 ,单继承

    接口:没有构造方法,接口中的方法一定是公开抽象的,接口中的属性一定是公开静态常量,可以多继承,也可以多实现,接口可以继承多个接口,一个实现类也可以实现多个接口,接口的实现类必须实现接口中所有的方法

    8、接口的特点

    接口特点:接口:没有构造方法,接口中的方法一定是公开抽象的,接口中的属性一定是公开静态常量,可以多继承,也可以多实现,接口可以继承多个接口,一个实现类也可以实现多个接口,接口的实现类必须实现接口中所有的方法

    9、内部类的分类

    成员内部类 局部内部类 静态内部类 匿名内部类

    10、Equals()方法的步骤

    自反性 非空性 一致性 强转 属性逐一对比(基本类型用== String类型用equals)

    11、包装类的作用

    区分null和0,即区分有效数据和无效数据

    12、String a=”Hello”String s=new String(“Hello”)的区别

    第一个是先在串池中查看有无字符串Hello如果有的话引用直接指向串池中的Hello,如果没有先则先在串池中创建一个Hello然后引用指向它

    第二个是先在串池中查看有无Hello如果没有,先在串池中创建一个Hello然后去堆中创建一个Hello引用指向堆空间的Hello;如果串池中有Hello则直接去堆空间中创建Hello引用指向堆空间中的Hello

    13、StringBuilder和StringBuffer的区别

    StringBuffer  JDK1.0 线程安全,效率低

    StringBuilder JDK1.5 线程不安全,效率高

    14、String类中的常用方法

     charAt(int i )获取i下标所对应的字符

    contains(String s)判断字符中是否包含子串s

    endsWith(String s)判断字符串是否已子串s结尾

    startsWith(String s)判断字符串是否以子串s开头

    indexOf(String s)返回子串s第一次在字符串中出现的下标

    lastIndexOd(String s)返回子串s最后一次在字符串中出现的下标

    isEmpty()判断字符串是否为空

    String(char[] ss)利用字符数组构造String

    length()返回字符串长度

    split(String s)利用s分割字符串并且返回字符串数组

    toCharArray() 将字符串转化为字符数组

    15、List接口下学过什么实现类,各个实现类的区别

    ArrayList jdk1.2实现类有序有下标,元素可重复 线程不安全 底层数组实现

    LinkedList jdk1.2 线程不安全 底层链表实现

    Vactor jdk1.0 线程安全 底层数组实现

    16、ArrayList和Vector的区别

    ArrayList jdk1.2 线程不安全底层数组实现

    Vector jdk1.0 线程安全 底层数组实现

    17、List和Set接口各自的特点

    List元素可重复 有序有下标

    Set元素不可重复 无序无下标

    18、HashSet的特点是什么

    无序需无下标元素不可重复,底层哈希表实现

    19、*HashSet如何保证数据唯一

    1. 覆盖equals方法保证相同对象内容返回的是true
    2. 重写equals方法保证内容的对象返回值都相同
    3. 为了哈希表实现最优性能尽量保证不同对象返回不同的整数

    20、Map的特点是什么

    Map特点存储的是键值对,键不可以重复,值可以重复

    21、***HashMap如何添加一个元素

    集合名.put(k,v);

    22、HashMap和Hashtable的区别

    HashMap jdk1.2 允许null作为键或值 线程不安全 效率高

    HashTable jdk1.0不允许null作为键或值 线程安全 效率低

    23、HashMap的增删改查方法名各自是什么

    put remove put containsKey containsValue

    24、ArrayList的增删改查方法都是什么

    add  remove clear set size get

    25、ArrayList的遍历方式(四种)

    26、HashMap的遍历方式(四种)

    27、异常的分类

    错误和Exception Exception分为RuntimeException和非RuntimeException

    28、IO的分类

    按照方向分 输入输出

    按照单位分 字节字符

    按照功能分 过滤节点

    29、方法覆盖对异常的要求

    子类方法不能抛出比父类更大的异常,子类可以不抛或者抛出RuntimeException

    30、线程的创建方式

    两种方式1.继承Thread重写run方法4实现Runnable接口并且实现run方法

    31、数据不安全的原因及解决方式

    多线程访问和修改导致数据异常出错,解决方式就是加锁

    32、*Synchronized的用法

    Synchronized修饰方法 Synchronized修饰代码块

    33、什么是类对象、

    类加载的产物

    34、说出三个常见的异常处理结果

    以粮为纲全面发展
  • 相关阅读:
    演示一个简单的Redis队列
    Quartz.net 基于配置的调度程序实践
    阿里云OSS分片上传DEMO
    java基础 -- 关键字static的用法
    java基础 -- 关键字final的用法
    Linux中安装软件和各种常用命令
    python获取网页信息的三种方法
    jquery中获取ajax请求返回数据的方法
    Jquery为动态添加的元素添加事件
    js中时间戳转换成xxxx-xx-xx xx:xx:xx类型日期格式的做法
  • 原文地址:https://www.cnblogs.com/alexliuf/p/13436136.html
Copyright © 2011-2022 走看看