• JAVA面试题——初级


    1、关于常用包

    java.long 基础包:String Math Integer…

    java.util 工具包:Collection Map Date

    java.sql 数据库相关:Conection

    java.io 输入输出:OutputStream File

    2、JDK、JRE、JVMA的区别

    JDK:是java开发的工具箱,包含jre,还包含将java文件编译为class文件的javac工具类(编译器),除此之外还包括java原生的API;包含J2SE(标准版)、J2EE(企业版)、J2ME(用于移动设备)

    JRE:是java运行环境,所有的java程序都要在JRE下才能运行;包括JVM

    JVM:虚拟机,java运行依赖虚拟机,因为虚拟机所以才能跨平台

    3、&与&&区别

    &&具有短路的功能,即第一个表达式为false,则不再计算第二个表达式;&不管第一个正确与否都会计算第二个

    4、char型变量能不能储存一个汉字

    char型变量是用来存储Unicode编码的字符的,unicode编码的字符集中包含汉字所以,char行变量中可以存储汉字。但是char不能存储unicode中包含的汉字。补充:char 型的变量占两个字节

    5、switch默认接受的数据类型

    byte 、shot、int、char String

    6、java基本数据类型

    byte shot int long float double char boolean

    7、String类型是基本数据类型?

    java.lang.String 是final类型类、因此不能被继承,不能被修改。

    8、int与Integer有什么区别(自动装拆)

    int是原始类型。Integer为引用类型。

    9、String与StringBuffer的区别

    String 的值不可改变。StringBuffer的值可以进行修改

    10、java面向对象的三大特征

    封装、继承、多态

    11、静态变量、成员变量、局部变量

    静态变量

    成员变量

    局部变量

    所属

    属于类

    属于对象

    属于方法

    位置

    类中方法外

    类中方法外

    方法内

    内存

    静态区

    堆空间

    栈空间

    周期

    随类加载

    随对象加载

    随方法加载

    初始值/调用

    默认初始值,通过类名调用

    默认初始值,通过对象调用

    无初始值、通过方法使用

    12、静态代码块、构造代码块、构造方法的执行顺序

    ① static { System.out.println(“静态代码块”) }

    ②  { System.out.println(“构造代码块”); }

    ③  public Student() { System.out.println(“构造方法”); }

    执行顺序① ② ③

    执行多次出现结果①执行一次 ② ③重复执行

    13、Collection 、Collections、List、Set的区别

    List与Set都继承于Collection,Collection是集合的顶级接口。而Collections是集合工具类。list为有序集合接口,ArrayList、LinkedList、Vector为其实现类;Set是无序不重复集合接口,HashSet、LinkedHashSet、TreeSet为其实现类

    14、ArrayList、LinkedList、Vector的区别

    ArrayList Vector:底层为数组、查询快、增删慢 。ArrayList 效率高、线程不安全;Vector效率低、线程安全

    LinkedList:底层为链表结构、查询慢、增删快

    15、HashMap、HashTable

    HashMap的效率高、线程不安全、允许键或值为空

    HashTable线程安全、效率低、不允许键或值为空

    16、数组与集合的区别

    数组可以存储基本数据类型,也可以存储对象,长度固定

    集合只能存储对象,长度可变

    17、常见数据结构

    栈、队列、数组、链表、树

    18、Map接口与Collection接口的区别

    Map是双列的、Collection是单列的

    Map的键值唯一、Collection的子接口set是唯一的

    Map的数据结构只针对键有效。Collection针对元素有效

    19、Integer与int值的问题

    integer直接赋值,如果数在-128到127之间,==结果则为true、否则为false

    两个new Integer 不会相等

    int 和 integer(无论是new出的、还是直接赋值的),只要值相同、则为true

    20、运行时异常与编译时异常的区别

    运行时异常:RuntimeException类及其子类 编译过程中没有错误,运行时会报错

    编译时异常:编译过程中出错。必须解决才能运行

    21、异常的处理方式

    try catch 在方法内直接解决

    throws 将异常抛给上一级解决,可以抛出多个异常,可能会抛出

    ps:throw 抛出一个异常对象,一定会抛出

    22、final、finally、finalize的区别

    final 修饰变量为常量,修饰方法不能被重写,修饰类不能被继承

    finally try-catch-finally语句代码,一定执行

    finalize 垃圾回收器方法

    23、osi七层模型

    第一层:物理层 ,

    第二层:数据链路层 ,

    第三层:网络层 ,

    第四层:传输层,

    第五层:会话层,

    第六层:表示层,

    第七次:应用层。

    24、封装概念

    隐藏对象的属性与实现细节,仅提供公共的访问的方式

    25、继承概念

    将类中重复的属性和方法抽取到一个类中,其他类无序定义这些属性,只需要继承这个类即可

    26、多态概念

    允许不同类的对象对同一消息作出响应。

    27、Overload与Override的区别

    重写与重载都是java多态的体现。重写是父类与子类之间的多态性的一种表现形式,重载是一个类中多态性的表现形式。重写时,参数、返回值、方法名都必须相同;而重载时参数不同、返回值可以不同,方法名相同。

    28、error与exception有什么区别

    error表示恢复不是不可能,但很难的问题,比如内存溢出

    exception则表示程序设计问题,通过修改程序就能解决

    29、抽象类与interface的区别

    抽象类中可以有抽象方法,也可以没有,而interface中必须都为抽象方法。

    抽象类只能被单继承,而interface可以多实现。

    抽象类中extend实现抽象类,implement实现接口。

    抽象类有构造方法,接口没有。

    抽类中可以有main方法,接口中没有。

    30、数组length属性 String length方法

    31、描述一下JVM加载class文件的原理机制
     JVM中类的装载是由ClassLoader和它的子类来实现的,Java ClassLoader 是一个重要的Java运行时系统组件。它负责在运行时查找和装入类文件的类。

    56、多线程有几种实现方法,都是什么同步有几种实现方法,都是什么
    多线程有两种实现方法,分别是继承Thread类与实现Runnable接口 。
    同步的实现方面有两种,分别是synchronized,wait与notify。

  • 相关阅读:
    Ubuntu 安装golang
    java毕业设计中国民航酒店分销系统Mybatis+系统+数据库+调试部署
    css3实现一个3d楼梯动画
    3403(3519Dv500)算子精度比对工具标杆数据生成环境搭建指导(Caffe)
    客户端开发常用框架
    xcode配置swift使用自定义主题颜色或者使用RGB或者HEX颜色
    Kotlin 中的 inline 和nonline 和crossinline
    类与对象--末篇(c++)
    笔记二十五、React中setState是同步还是异步的?
    SpringBoot 整合 MyBatis-Plus
  • 原文地址:https://blog.csdn.net/m0_67391120/article/details/126741183