java趣问
1.
有一个类为
public class a{
private int i =1;
public a(){}
}
问:当实例化这个类的时候,i的初始化和类a的构造函数,哪个先执行?
2.
问:当前端传来的用户名和密码,后端要做验证的时候,后端从数据库里去取出来的密码,存在string和存在char[],里哪个安全性更高?
1.
答:初始化先执行,在jvm里,先执行的是init()函数
2.
答:char[]更安全,因为存在string里的话,密码最快的消失方法也是jvm调用gc算法将其从堆中移除,如果是存在char[]中,因为char是基本类型,可以用完立马修改,防止密码泄漏。