• java基础面试题总结


    一、基础知识


    1.JDK与JRE

    答:JDK java开发工具包,JRE java运行时环境.

    2.标识符的合法性

    答:由字母、数字、_和$组成,长度不限。其中字母可以是大写或小写的英文字母,数

    字为0到9。标识符第一个字符不能是数字。标识符区分大小写,标识符不能包含空格。

    3.Java有几种基本数据类型?

    答:byte short int long char boolean float double

    4.什么是隐式类型转换?什么是显示类型转换?

    答:当将占位数少的类型赋值给占位数多的类型时,Java自动使用隐式类型转换。当把在级别高的变量的值赋给级别底变量时,必须使用显示类型转换运算。

    5.&&和&区别,||和|的区别

    答:&&和||是短路的与和或,当左边条件成立时,不在判断右边的条件。而&和|是将两边条件均运算完毕后再判断结果。

    6.break和continue的区别

    答:break结束最近的一个循环。continue结束此次循环,进入下次循环。

    7.什么是类的成员变量,局部变量,实例成员变量,类成员变量

    答:

      a) 变量定义部分所定义的变量被称为类的成员变量。

      b) 在方法体中定义的变量和方法的参数被称为局部变量。

      c) 成员变量又分为实例成员变量和类成员变量(static修饰)。

    8.什么是类方法,什么是实例方法

    答:类方法用static修饰。无static修饰的方法为实例方法。

    9.什么是方法重载?

    答:方法重载是指一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不

    同,即或者是参数的个数不同,或者是参数的类型不同。

    10.什么是构造方法?

    答:构造方法是一种特殊方法,它的名字必须与它所在的类的名字完全相同,并且不返

    回任何数据类型。

    11.系统什么情况下会为类提供构造方法,提供什么样的构造方法?

    答:如果类中没有构造方法,系统会提供一个默认的构造方法,默认的构造方法是无参

    的。

    12.为什么可以直接用类名来访问类成员变量和类方法?

    答:当类被加载到虚拟机的时候,类成员变量就被分配内存,类方法被分配入口地

    址,所以不用创建对象,可以直接通过类名调用。

    13.类变量有什么特点?

    答:一个类的所有对象共享一个类变量。

    14.类方法有什么特点?

    答:类方法只能调用类变量和类方法。

    15.java的访问权限

    答:public 公有的,任何类都可以访问。

      protected 受保护的,同一个包的类可以访问,不同包的子类可以访问

      default 同一个包的可以访问

      private 私有的,在同一个类中可以访问。

    16.子类能继承父类的哪些变量和方法?

    答:如果子类和父类在同一包中,那么子类可以继承父类中的不是private的成员变量作为自己的成员变量,并且也继承了父类中不是private的方法作为自己的方法。

    如果子类和父类不在同一个包中,那么,子类继承了父类的protected,public 成员变量做为子类的成员变量,并且继承了父类的protected,public 方法为子类的方法。

    17.子类重写父类的方法,可否降低访问权限?

    答:不可以的,子类访问权限必须大于等于父类。

    18.final关键字可以用来修饰什么?分别起什么作用?

    答:a) final可以修饰类,这样的类不能被继承。

      b) final可以修饰方法,这样的方法不能被重写。

      c) final可以修饰变量,这样的变量的值不能被修改,是常量。

    20.super关键字的作用?

    答:a) 使用super调用父类的构造方法。

      b) 使用super操作被隐藏的成员变量和方法。

    21.什么是向上转型?

    答:假设,A 类是B 类的父类,当我们用子类创建一个对象,并把这个对象的引用放

    到父类的对象中时,我们称这个父类对象是子类对象的上转型对象。

    22.向上转型对象可以操作什么?不可以操作什么?

    答:a) 上转对象不能操作子类新增的成员变量,失掉了这部分属性,不能使用子类新增的方法,失掉了一些功能 。

      b) 上转型对象可以操作子类继承或重写的成员变量,也可以使用子类继承的或重写的方法。

    23.什么是抽象类?什么是抽象方法?有什么特点?

    答:a) 用关键字abstract修饰类称为抽象类,abstract类不能用new运算创建对象,必须产生其子类,由子类创建对象。

      b) 用关键字abstract修饰方法称为抽象方法,abstract方法,只允许声明,而不允许实现。

    24.一个类声明实现一个接口,那么这个类需要做什么工作?

    答:实现接口里的所有方法,并且这些方法的访问权限必须的public。

    25.简述什么是数组?

    答:数组是相同类型的数据按顺序组成的一种复合数据类型。通过数组名加数组下标,来使用数组中的数据。下标从 0 开始排序。

    26.创建数组是否要指定数组长度,如何求数组长度?

    答:必须指定数组长度,数组调用length方法来获取数组长度。

    27.char数组和byte数组如何转化成字符串?如何求字符串长度?

    答:String类本身的构造方法,String (char a[]),String (byte a[]),””.length()

    28.trim()有什么用?

    答:去掉字符串前后空格。

    29.字符串如何转化为int型,double型?

    答:a) Integer.parseInt(“1”);

      b) Double.parseDouble(“25.45”);

    30.简述StringTokenizer作用?

    答:按照指定的分隔符,将字符串解析成若干语言符号。

    31.如何判断一个字符是不是数字,是不是大写?

    答:Character.isDigit(‘a’)   Character.isUpperCase(‘U’)

    32.已知一个java.util.Date对象,如何格式化成如下格式 YYYY-MM-dd hh:mm:ss

    答:SimpleDateFormat formate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

      formate.format(new Date()));

    33.随机数生成

    答:Math.random()

    34.java异常处理机制

    答:调用的方法出现异常时,调用者可以捕获异常使之得到处理,也可以回避异常。

    35.try、catch、throw、throws、finally关键字用途

    答:a) try:保护代码,如果try中某行代码出现异常,则try中代码不再继续执行。

      b) catch:捕获异常,当try中出现异常,则catch负责捕获异常,并处理。

      c) throw:抛出异常。

      d) throws:声明异常。

      e) finally:无论try中是否出现异常,finally一定执行。

    36.LinkedList和ArrayList区别?

    答:LinkedList底层通过链式存储结构实现。ArrayList底层通过数组实现。

    37.I/O流

    答:指数据输入输出的流,I/O流提供一条通道程序,可以使用这条通道把源中的字节序列送给目的地。

    38.实现多线程的两种方法?

    答:a) 继承Java.lang.Thread,重写它的run()方法。

      b) 实现Runnable接口,重写Runable接口中的run()方法。

    39.简述一个线程的生命周期?

    答:新建---运行---中断---死亡

    40.如何让一个准备就绪的线程运行?

    答:调用线程的start方法让一个处于准备就绪的状态的线程运行。

    41.如何使线程同步?

    答:加锁,lock或者synchronized

    42.什么是gc?为什么有gc

    答:gc是垃圾收集器,垃圾收集器会对内存自动进行管理。

    43.构造方法能否被重写?为什么?

    答:不可以,构造方法不可以被继承。

    44.是否可以继承String类,为什么?

    答:不可以,因为String类是由final修饰的

    45.java采用什么字符集?该字符集有多少字符

    答:Java 使用 unicode 字符集,所以常量共有 65535 个

    46.什么是编译执行的语言?什么是解释执行的语言?

    答:a) 编译方式:Compilation:针对当前的机器处理器芯片,将源程序全部翻译成机器指令,称做目标程序,再将目标程序交给计算机执行.

      b) 解释方式:Interpretation:这种方式不产生整个的目标程序,而是根据当前的机器处理器芯片,边翻译边执行,翻译一句执行一句.

    47.简述一个java程序的执行过程?

    答:a) 首先编写java源文件(扩展名为.java的文本文档)。

      b) 用javac命令把源文件编译成字节码文件(.class文件)

      c) 用java命令执行字节码文件。

    48.java三大特性

    答:封装,继承,多态

    49.构造方法有什么作用?

    答:在创建对象的时候,java虚拟机会调用类的构造方法来创建对象。一般对象的初始化工作可以放在构造方法里。

    50.成员变量的作用范围?局部变量的作用范围?

    答:a) 成员变量在整个类内都有效

      b) 局部变量只在定义它的类内有效。

     

     

     

     

     

  • 相关阅读:
    HTTP学习三:HTTPS
    JavaScript判断变量的类型
    用JS创建10个<a>标签,点击的时候弹出来对应的序号
    【工具】根据后端提供的swagger生成前端的axios请求配置文件/api
    JavaScript正则表达式-零宽断言
    JavaScript中数组去重、对象去重的方法
    收集的无版权图片网站(欢迎补充)
    css 清除浮动
    JavaScript+CSS+HTML 编写手风琴效果
    Mac定制终端:iTerm2 + zsh + powerline
  • 原文地址:https://www.cnblogs.com/zd-startdream/p/8570172.html
Copyright © 2020-2023  润新知