面试常问的N种区别

本文介绍了ANSI编码和Unicode编码的区别,ANSI编码在Windows中常见,对ASCII和非ASCII字符使用不同字节数表示,而Unicode则统一使用双字节表示所有字符。此外,还探讨了自旋锁和互斥锁在多线程中的应用,互斥锁会让线程进入休眠状态等待,而自旋锁则会让线程持续检查锁的状态,适合短时代码段。
摘要由CSDN通过智能技术生成

持续更新。。。。。。

1.ANSI编码和Unicode编码的区别

参考:http://www.360doc.com/content/10/0712/17/11192_38530531.shtml

ANSI:ANSI编码常见的就是windows的txt文件(默认的编码格式),ANSI算是压缩编码(与Unicode相比),遇到ASCII采用单字节表示,遇到中文等,用双字节表示,比如:输入“宋体ABC(回车)”(windows换行也会保存,linux/unix不会),编码格式是这样的。

读取是一次读一个字节,判断第一位是不是1,是1就把两个字节拼成一个汉字。如果是0就说明是ASCII,直接去找。比如“宋”【11001011】【11001110】,“A”【01000001】 ,可以很容易看出。

 Unicode:XML,java程序语言,最新的操作系统都是用的Unicode编码。它不管汉字还是ASCII都是用双字节表示,还有FF FE头部两个字节。编码格式:

 windows(Mac OS先低后高)读取是从高8位开始读,比如“宋”先读5B再度8B(后面为高位),如果读高8位是00说明是ASCII。

2.自旋锁和互斥锁的区别 

互斥锁

  • 如果发现其他线程正在执行锁定的代码,线程会进入休眠(就绪状态),等其他线程时间片打开锁后,线程会被唤醒执行。

自旋锁

  • 如果发现有其他线程正在执行锁定的代码,线程会进入死循环(忙等)的方式(相当于阻塞了还在内存中),一直等待锁定的代码执行完成 自旋锁更适合执行不耗时的代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

心脏dance

如果解决了您的疑惑,谢谢打赏呦

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值