Java

作者: wesker8080 | 来源:发表于2018-03-03 14:21 被阅读0次

JAVA基础

  1. 面向对象的特征 基本原则
    1.1 继承、封装和多态
    1.2 单一职责原则 开放封闭原则 替换原则 依赖原则 接口分离原则
  2. final, finally, finalize 的区别
    2.1 final是修饰符(关键字;
    2.2 finally是catch异常处理后执行;
    2.3 finalize是方法名,将对象从内存中清除出去之前做必要的清理工作
  3. Exception、Error、运行时异常与一般异常有何异同
    3.1 Error是JVM无法预测,属于JVM层次的严重错误
    3.2 Exception是可捕捉,可处理的,如果不处理会往上抛直到程序退出
  4. 请写出5种常见到的runtime exception
    4.1 NullPointerException, 空指针异常
    4.2 NumberFormatException, 字符串转换为数字异常
    4.3 IOException, 输入输出异常
    4.4 SQLException, 操作数据库异常
    4.5 ClassNotFoundException 类没找到时,抛出该异常
  5. int 和 Integer 有什么区别,Integer的值缓存范围
    5.1 int 是基本类型,Integer是对象,封装数据类型,范围-128~127
  6. 包装类,装箱和拆箱
    6.1 包装类是指将基本数据类型封装,例如int的包装类是Integer
    6.2 将基本数据类型变成包装类称为装箱
    6.3 将包装类的类型变为基本数据类型称为拆箱
  7. String、StringBuilder、StringBuffer
    7.1 String 字符串常量
    7.2 StringBuffer 字符串变量(线程安全)
    7.3 StringBuilder 字符串变量(非线程安全)
  8. 重载和重写的区别
    8.1 重载方法名一致,参数可以不一致,可返回不同类型,可有不同的访问修饰符,是多态的表现
    8.2 重写是参数一致,返回类型一致,访问修饰符的限制一定要大于被重写方法的访问修饰符(public>protected>default>private)
  9. 抽象类和接口有什么区别
    9.1 接口是对动作的抽象,而抽象类是对根源的抽象。
    9.2 一个类只能继承一个抽象类,但是一个类可以同时实现多个接口
    9.3 都不能被直接实例化,抽象类要被子类继承,接口要被子类实现
  10. 反射的用途及实现
    10.1 反射可以动态获得一个类的所有属性、方法
    10.2 Class.newInstance()
  11. 自定义注解的场景及实现
    11.1 没用过
  12. HTTP请求的GET与POST方式的区别
    12.1 一般用GET取数据POST提交数据
    12.2 GET后退按钮/刷新无害,POST数据会被重新提交
    12.3 GET的数据在 URL 中对所有人都是可见的。POST的数据不会显示在 URL 中
  13. Session与Cookie区别
    13.1 session 在服务器端,cookie 在客户端,一个可见一个不可见
    13.2 session 默认被存在在服务器的一个文件里(不是内存)
    13.3 用户验证这种场合一般会用 session
  14. 常用的JDK包
    14.1 java.lang java.util java.io java.net
  15. MVC设计思想
    15.1 model view controller 把应用逻辑,处理过程和显示逻辑分成不同的组件实现,便于解耦和开发
  16. equals与==的区别
    16.1 ==比较原生类型
    16.2 equals()比较对象
    16.3 一个是操作符一个是方法
  17. hashCode和equals方法的区别与联系
    17.1 HashCode的存在主要是为了查找的快捷性,HashCode是用来在散列存储结构中确定对象的存储地址的
    17.2 如果两个对象equals相等,那么这两个对象的HashCode一定也相同
    17.3 如果对象的equals方法被重写,那么对象的HashCode方法也尽量重写
    17.4 如果两个对象的HashCode相同,不代表两个对象就相同,只能说明这两个对象在散列存储结构中,存放于同一个位置
  18. 什么是Java序列化和反序列化,如何实现Java序列化?或者请解释Serializable 接口的作用
    18.1 JAVA对象转换为字节序列的过程就称为对象的序列化
    18.2 将字节序列恢复成Java对象的过程称为对象的反序列化
    18.3 将需要被序列化的类实现Serializable接口,然后使用一个输出流(如:FileOutputStream)来构造一个ObjectOutputStream(对象流)对象,接着,使用ObjectOutputStream对象的writeObject(Object obj)方法就可以将参数为obj的对象写出(即保存其状态),要恢复的话则用输入流
  19. Object类中常见的方法,为什么wait notify会放在Object里边
    19.1 toString() equals() hashCode()
    19.2 锁对象可以是任意对象
  20. Java的平台无关性如何体现出来的
    20.1 最主要的是Java平台本身。Java平台扮演Java程序和所在的硬件与操作系统之间的缓冲角色。这样Java程序只需要与Java平台打交道,而不用管具体的操作系统
    20.2 Java class文件。Java程序最终会被编译成二进制class文件。class文件可以在任何平台创建,也可以被任何平台的Java虚拟机装载运行。它的格式有着严格的定义,是平台无关的。
  21. JDK和JRE的区别
    21.1 JDK是Java的开发工具,它不仅提供了Java程序运行所需的JRE,还提供了一系列的编译,运行等工具,如javac,java,javaw等。JRE只是Java程序的运行环境,它最核心的内容就是JVM(Java虚拟机)及核心类库。

JAVA常见集合

  1. List 和 Set 区别
    1.1 List是有序集合,元素可以重复
    1.2 Set是无序集合,元素不可重复
  2. Arraylist 与 LinkedList 区别
    2.1 ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。
    2.2 对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针
    2.3 对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据

设计模式

  1. Spring中用到了哪些设计模式
    1.1 工厂模式 在各种BeanFactory以及ApplicationContext创建中都用到了
    1.2 代理模式 在Aop实现中用到了JDK的动态代理
    1.3 单例模式 在创建bean的时候
  2. MyBatis中用到了哪些设计模式
    2.1 工厂模式 SqlSessionFactoryBean
    2.2 建造者模式 BaseBuilder
    2.3 模板方法 BaseExecutor
    2.4 动态代理 MapperProxy
  3. 你项目中有使用哪些设计模式
    3.1 根据实际描述
  4. 说说常用开源框架中设计模式使用分析
    4.1 参考1和2

数据结构

  1. 树(二叉查找树、平衡二叉树、红黑树、B树、B+树)
  2. 深度有限算法、广度优先算法
  3. 克鲁斯卡尔算法、普林母算法、迪克拉斯算法
  4. 什么是一致性Hash及其原理、Hash环问题
  5. 常见的排序算法和查找算法:快排、折半查找、堆排序等

网络/IO基础

  1. BIO、NIO、AIO的概念
  2. 什么是长连接和短连接
  3. Https的基本概念
  4. 三次握手和四次挥手、为什么挥手需要四次
  5. 从浏览器中输入URL到页面加载的发生了什么

数据库

  1. MySQL 索引使用的注意事项
    1.1 略
  2. DDL、DML、DCL分别指什么
    2.1 DML Data Manipulation Language 数据操纵语言CRUD
    2.2 DDL Data Definition Language 数据库定义语言如create table
    2.3 DCL Data Control Language 数据库控制语言如grant,deny,revoke等,只有管理员才有这样的权限
  3. explain命令
    3.1 略
  4. left join,right join,inner join
    4.1 left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录
    4.2 right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录
    4.3 inner join(等值连接) 只返回两个表中联结字段相等的行
  5. 数据库事务ACID(原子性、一致性、隔离性、持久性)
    5.1 原子性(事务必须是一个不可分割的整体)
    5.2 一致性(执行完数据库操作后,数据不会被破坏,例如转账中一方转出另一方转入)
    5.3 隔离性(事务操作不受干扰)
    5.4 持久性(数据要永久保存在磁盘里)
  6. 事物的隔离级别(读未提交、读以提交、可重复读、可序列化读)
  7. 脏读、幻读、不可重复读
  8. 数据库的几大范式
    8.1 第一范式(1NF)无重复的列。指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性
    8.2 第二范式(2NF)属性完全依赖于主键 [ 消除部分子函数依赖 ]。满足第二范式(2NF)必须先满足第一范式(1NF)
    8.3 第三范式(3NF)属性不依赖于其它非主属性 [ 消除传递依赖 ]。满足第三范式(3NF)必须先满足第二范式(2NF)。第三范式(3NF)要求一个数据库表中不包含已在其它表中已包含的非主关键字信息。
  9. 数据库常见的命令
数据库:
创建数据库 create database database_name
相应的删除数据库 drop database database_name
对数据库的备份,注意需要一个存储备份的设备device,或者说空间use master
EXEC sp_addumpdevice 'disk' , 'testBack', 'c:\mssql7backup\MyNwind_1.dat'
有了备份空间使如下语句进行备份
backup database pubs to testback
修改数据库的名字 sp_renamedb 'old_name','new_name'
分离数据库 sp_detach_db 'c:\mssql7backup\MyNwind_1.dat'
附加数据库 sp_attach_db 'c:\mssql7backup\MyNwind_1.dat'
压缩数据库 dbcc shrinkdatabase(database_name)
表:
创建新表
create table table_name
(
stu_id char(10) not null primary key,
name char(10) not null,
)
删除表 drop table table_name

Redis

  1. Redis 有哪些数据类型
    1.1 String Hash List Set zSet
  2. Redis 使用场景
    2.1 缓存 计数器 排行榜 最新列表
  3. Redis 持久化机制
    3.1 快照持久化通用的配置(Snapshotting)备份到其他服务器
    3.2 AOP持久化配置(append-only-file)写入文件
  4. Redis 为什么是单线程的?
    4.1 因为CPU不是Redis的瓶颈。Redis的瓶颈最有可能是机器内存或者网络带宽。
    4.2 单线程可以处理高并发请求吗?当然可以了,Redis都实现了。
  5. 使用Redis有哪些好处?
    5.1 速度快,因为数据存在内存中
    5.2 支持丰富数据类型,支持string,list,set,sorted set,hash
    5.3 支持事务,操作都是原子性,所谓的原子性就是对数据的更改要么全部执行,要么全部不执行
    5.4 丰富的特性:可用于缓存,消息,按key设置过期时间,过期后将会自动删除

消息队列

  1. 消息队列的使用场景和好处
    1.1 注册发邮件,发短信,
    1.2 解耦 提速 广播 削峰

开源框架和容器

  1. Servlet的生命周期
    1.1 Servlet 通过调用 init () 方法进行初始化
    1.2 Servlet 调用 service() 方法来处理客户端的请求
    1.3 Servlet 通过调用 destroy() 方法终止(结束)
    1.4 Servlet 是由 JVM 的垃圾回收器进行垃圾回收
  2. 转发与重定向的区别
    2.1 转发是服务器行为,重定向是客户端行为
  3. BeanFactory 和 ApplicationContext 有什么区别
    3.1 ApplicationContext 是 BeanFactory接口的子接口
    3.2 ApplicationContext是对BeanFactory的扩展,提供了更多的功能.国际化处理,事件传递,Bean自动装配,各种不同应用层的Context实现
  4. Spring IOC 如何实现
    4.1 IOC(控制反转)的实现建立在工厂模式、java反射机制和jdk的操作XML的DOM解析方式
  5. Spring中Bean的作用域,默认的是哪一个
    5.1 singleton 单例模式

相关文章

  • Java(JavaEE)学习线路图1

    Java教程 Java 教程Java 简介Java 开发环境配置Java 基础语法Java 对象和类Java 基本...

  • Java学习线路图

    Java教程 Java 教程Java 简介Java 开发环境配置Java 基础语法Java 对象和类Java 基本...

  • 大数据学习线路图

    Java教程 Java 教程Java 简介Java 开发环境配置Java 基础语法Java 对象和类Java 基本...

  • 大数据学习教程

    Java教程 Java 教程Java 简介Java 开发环境配置Java 基础语法Java 对象和类Java 基本...

  • 一篇文章,全面解读Android面试知识点

    Java Java基础 Java集合框架 Java集合——ArrayList Java集合——LinkedList...

  • java学习路线

    javaSE java基础语法 java文件操作 java网络操作 java多线程 java数据库操作 java ...

  • java编程分类

    一、java简介java开发环境配置java基础语法java对象与类java基本数据类型java变量类型java修...

  • Java-01初识Java

    Java的3大版本 Java有三大版本,Java SE, Java ME, Java EE Java SE(Jav...

  • JAVA循环语句(四)9.29

    Java条件 if Java条件if...else Java条件多重if Java条件语句 嵌套if Java条件...

  • Java 基础

    Java 基础01Java开发入门 Java 基础02Java编程基础 Java 基础03面向对象 Java 基础...

网友评论

      本文标题:Java

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