java基础面试问题总结

java基础面试问题总结,第1张

java基础面试问题总结
  1. java工作原理是怎么样的?
    1. jvm虚拟机编译源码为字节码,在通过解释器转换成机器码,最终执行命令运行
  2. java数据类型有哪些?
    1. byte、short、int、long、float、duble、char、string、boolean
  3. java循环结构有哪些?
    1. for
    2. while
    3. do.while
  4. 什么是面向对象?oop面向对象设计四个特征是什么?
    1. 面向对象是一种解决问题的方法或观点,是由一组彼此相互通信的实体对象组成
    2. 抽象、继承、多态、封装
  5. java访问级别从小到大顺序?
    1. private-default-protected-public
  6. java接口和抽象类有什么区别?
    1. 抽象类只能单继承;接口可以多实现
    2. 抽象类中可以有普通属性,也可以有常量;接口中的成员变量全部默认是常量,使用public static final修饰
    3. 抽象类可以有构函数;接口不能有构造函数
    4. 抽象类可以含初始化块;接口不能含初始化块
    5. 接口里面不能定义静态方法;抽象类里面可以定义静态方法
  7. java普通内部类和静态内部类区别?
    1. 普通内部类实例化后持有外部类引用,可以访问外部类成员变量;静态内部类实例化后不持有外部类引用,不可以访问外部类
    2. 外部类静态方法中无法创建普通内部类对象,可以创建静态内部类对象;
  8. java数组和集合有什么区别?怎么初始化定义的?
    1. 数组通过下标访问数据成员,集合通过下标访问
    2. 数组初始化需指定大小,集合有初始默认大小
    3. 数组访问速度比集合更加快
    4. String[] str = new String[10]
    5. List arrayList = new ArrayList();
  9. java中集合有哪些?线程安全又有哪些?
    1. ArrayList、linkedList、HashSet、TreeSet、HashMap、Hashtable、Vector
    2. 线程安全Hashtable、Vector集合,底层都是使用synchronized修饰
  10. jdbc连接数据库步骤是什么?
    1. 加载数据库驱动(到JVM)
    2. 建立数据库连接
    3. 创建数据库 *** 作对象
    4. 定义 *** 作的SQL语句
    5. 执行数据库 *** 作
    6. 获取并 *** 作结果集
    7. 关闭对象,回收数据库资源
  11. java中IO流有哪些?
    1. InputStream(字节输入流)
      1. FileInputStream、PipedInputStream、ByteArrayInputStream、BufferedInputstream、SequenceInputStream、DataInputStream、ObjectInputStream
    2. OutputStream(字节输出流)
      1. FileOutputStream、PipedOutputStream、ByteArrayOutputStream、BufferedOutputStream、DataOutputStream、ObjectOutputStream、PrintStream
    3. Reader(字符输入流)
      1. FileReader、PipedReader、CharArrayReader、BufferedReader、InputStreamReader
    4. Writer(字符输出流)
      1. FileWriter、PipedWriter、CharArrayWriter、BufferedWriter、InputStreamWriter、PrintWriter
  12. java线程和进程有什么区别?
    1. 进程是 *** 作系统最基本的运行单元
    2. 线程是属于进程中一个独立运行的子任务
  13. 为什么要用多线程?
    1. 提升系统运行效率,使用异步执行,cpu可以同时切换多个线程执行
  14. 线程实现的方式有哪几种?
    1. 实现Runnable接口
    2. 继承Thread类
  15. 线程状态有哪些?
    1. 初始(NEW)
    2. 就绪(ready)运行(RUNNABLE)
    3. 阻塞(BLOCKED)
    4. 等待(WAITING)
    5. 超时等待(TIMED_WAITING)
    6. 终止(TERMINATED)
  16. 线程优先级是用什么来表示的?Thread类中定义三个优先级常量是什么?怎么设置线程优先级?
    1. 使用数字1-10来表示
    2. 三个优先级常量
      1. norm_priority值为5,默认为norm_priority
      2. max_priority值为10
      3. min_priority值为1
    3. 通过setPriority方法修改线程当前优先级
  17. 线程同步机制是怎么样的?
    1. 线程同步是使用synchronized关键字来实现的,被申明为同步方法只能被线程顺序的执行,在方法执行结束前所有资源都是独享的,其他线程都处于阻塞状态
  18. 线程之间是怎么通信的?
  19. 线程是怎么产生死锁的?
    1. 当两个线程循环依赖于同一个对象时将发生死锁
  20. 怎么解决线程死锁问题?
    1. 在指定任务真正需要并发时,才采用多线程
    2. 在对象同步方法中调用其他同步方法需要小心
    3. 在临界区(公共资源或共享数据)中的时间应尽可能短

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5138461.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-17
下一篇 2022-11-17

发表评论

登录后才能评论

评论列表(0条)

保存