JavaSE 常见面试

线程

 

1 实现线程的三种方式

  1. 继承 Thread 类:重写 run 方法
  2. 实现 Runnable 接口:重写 run 方法
  3. 实现 Callable 接口:重写 call 方法

2 monitor 监视器如何实现线程同步

  1. 在虚拟机中,为了实现监听器互斥功能,每个对象引用与监视器、锁相关联
  2. 被 synchronized 修饰的代码块、方法会被放入了监视器的监视区域,确保线程必须获取锁且一次只有一个线程执行该代码(synchronized 使用隐式监听器,lock 锁使用显示监听器)

 

IO

 

1 IO 流分类

  1. 功能区分:输入、输出流
  2. 类型区分:字符、字节流(字节流以八位字节传输,字符流以十六位字符传输)

 

集合

1 hashmap、hashtable区别

  1. 存值:hashmap的key和value都可以为null,hashtable 不允许为 null
  2. 安全性:hashmap 非线程安全,hashtable 线程安全(hashtable 是保留类,不建议使用,多线程环境使用 concurrenthashmap)

 

安全

 

1.java 常见算法

  • Hash算法:加密之后不能解密,没有秘钥,一般用于数据验证
    • Base64:
    • MD5:
    • HMAC、SHA:
  • 对称加密:加密和解密使用相同的密钥
    • DES、3DES、AES
  • 非对成加密:加密和解密使用不同的密钥(公钥加密-私钥解密、私钥加密-公钥解密)
    • RSA、ECC、DSA

 

认证

 

1 cookie 和 session

  1. 存放位置不同:cookie 存放在浏览器端,session 存放在服务器端
  2. 存储大小不同:cookie 限制在 3k 一下,session 没有限制
  3. 生命周期:cookie 是累积的,到点销毁,session 是间隔的,只要没销毁时访问了则重写计算时间
  4. 数据类型不同:cookie 存储的是字符串类型的键值对,session存储的是 object 类型的键值对
  5. 创建位置:两者都是在第一个访问服务器端时创建
  6. session 的 sessionid 通过 cookie 保存 可以实现 http 请求有状态形式、记住我等功能
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值