面试题总结3

1.如何判断两个类是否相同?想具体了解请点击

  • 判断两个类的全限定名是否相同
  • 判断两个类的类加载器是否相同

2.哪些集合是线程安全的?

hashtable   vector  stack  enumeration


3.如何解决hash冲突?想具体了解请点击

  • 链地址法
    • 基本思想:把所有具有地址冲突的关键字链在同一个单链表中。
  • 开放地址法
    • 线性探测法
    • 线性补偿探测法
    • 随机探测

4.java中常见的异常?

  • java.lang.NullPointerException(空指针)
    • 调用了未经初始化的对象或者不存在的对象,这个错误经常存在。如在创建图片、调用数组的操作中,图片未经初始化,或者图片创建时的路径错误等,或者把数组的初始化和数组元素的初始化混淆。(数组的初始化是对数组分配需要的空间,而初始化后的数组其中元素并没有实例化)。
  • java.lang.ClassNotFoundException(指定的类不存在)
    • 类的名称和路径不一致。
  • java.lang.ArithmeticException(数学运算异常)
    • 如程序中出现了除以零这样的运算就会出现这样的异常。
  • java.lang.ArrayIndexOutofBoundsException(数组下标越界)
    • 一般情况下,显示(即直接用常数当下标)调用不太容易出错,但是隐式(即用变量表示下标)调用就经常出错。
  • java.lang.IllegalArgumentException(方法参数的错误)
    • 音量调节参数如果写成负数或者g.setColor(int red,int green,int blue)这三个值,如果超过255就会出现这个异常。
  • java.lang.IllegalAccessException(没有访问权限)
    • 当应用程序要调用一个类,但当前方法即没有对该类的访问权限便会出现这个异常。
  • java.lang.IncompatibleClassChangeError(不兼容的类变化错误)
    • 当正在执行的方法所依赖的类定义发生了不兼容的改变时,抛出该异常。一般在修改了应用中的某些类的声明定义而没有对整个应用重新编译直接运行的情况下,容易发生该异常。
  • java.lang.InstantiationError(实例化错误) 
    • 当一个应用试图通过Java的new操作符构造一个抽象类或者接口时会抛出该异常。
  • java.lang.LinkageError(链接错误)
    • 该错误及其所有子类指示某个类依赖于另外一些类,在该类编译后,该依赖的类改变了其定义而没有重新编译的类,进而引发的错误。
  • java.lang.StackOverflowError(堆栈溢出错误)
    • 当一个应用递归调用的层次太深而导致堆栈溢出时抛出该错误。

5.sql注入攻击

  • 概念:sql注入攻击,即攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令。一般情况下,用户输入的内容直接用来构造(或影响)动态SQL命令,或作为存储的输入参数,这类表单容易受到sql注入式攻击。
  • 如何预防:
    • 在构造动态的SQL语句时,一定要使用类安全的参数加码机制。
    • 在部署你的应用之前,始终做安全评审。
    • 不要把敏感性数据在数据库以明文存放。
    • 确认你编写了自动化的单元测试,来特别校验你的数据库访问层和应用程序不受SQL注入攻击。
    • 锁定数据库的安全,只给访问数据库的web应用功能所需的最低权限。
    • 专业的SQL注入工具及防毒软件
  • 常见的sql注入工具:
    • sqlMap
    • BSQL Hacker
    • The Mole
    • Pangolin

6.XSS(跨站脚本攻击)

  • 概念:XSS属于被动式且用于客户端的攻击方式。其原理是攻击者向有XSS漏洞的网站输入恶意的JavaScript代码,当其他用户浏览该网站时,这段代码就会自动执行,从而达到攻击的目的。如,盗取用户的cookie、破坏页面结构、重定向到其他网站。
  • 分类:
    • 一类是来自内部的攻击,主要是指的是利用程序自身的漏洞,构造跨站语句。
    • 一类是来自外部的攻击,主要是指是自己构造XSS跨站漏洞网页或者寻找非目标机以外的有跨站漏洞的网页。
  • 如何预防:
    • 完善过滤体系
    • HTML encode :对标签进行转换
7.CSRF(跨站请求伪造)

  • 概念:与XSS相反,XSS是利用的是用户对指定网站的信任,CSRF利用的是网站对用户网页浏览器的信任。攻击者通过用户的浏览器来注入额外的网络请求,来破坏一个网站会话的完整性。
  • 如何预防:
    • 使用post,不使用get修改信息。
    • 使用验证码,所有表单提交都需要使用验证码。
    • 在表单中预先植入一些加密信息,验证请求是此表单发送。
8.对象可以作为Map集合中的key吗?如果可以,如何确定其唯一性?

  • 可以。使用hashcode()方法确定唯一性。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值