&和&&的区别?

相同点

&和&&都可作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,其结果 才为true,否则,只要有⼀⽅为false,则结果为false。(ps:当要⽤到逻辑与的时候&是毫⽆意义,&本身就不是⼲这个的)

不同点

if(loginUser!=null&&string.IsnullOrEmpty(loginUser.UserName))

&&具有短路的功能,即如果第⼀个表达式为false,则不再计算第⼆个表达式,对于上⾯的表达式,当loginUser为null时,后⾯的表达式不会执⾏,所以不会出现NullPointerException如果将&&改为&,则会    抛出NullPointerException异常。(ps:所以说当要⽤到逻辑与的时候&是毫⽆意义的)

& 是⽤作位运算的。

总结

&是位运算,返回结果是int类  &&是逻辑运算,返回结果是bool类型

== 与equals区别?

==  就是比较两个地址是否相等,即是否指向同一个对象。

equals 函数则是比较两个对象在堆中的数据是否一样,即两个引用类型是否是对同一个对象的引用

https://blog.csdn.net/shenwansangz/article/details/95664660

i++与++i的区别?

i++是先赋值,然后再自增;++i是先自增,后赋值。

as和is的区别?

as在转换的同时判断兼容性,如果无法进行转换,返回位null(没有产生新的对象),as转换是否成功判断的依据是是否位null
is只是做类型兼容性判断,并不执行真正的类型转换,返回true或false,对象为null也会返回false。
as比is效率更高,as只需要做一次类型兼容检查

是否可以继承String类?

String类是final类故不可以继承。

sealed修饰的类有什么特点?

密封,不能继承。Thread 线程类就是一个密封类