选择题
1
正数:原反补三码相同
负数:原码转反码(符号不变其他取反),反码转补码(符号不变,最低位取反)
byte a = (byte)139;
System.out.println(a);
answer:-117
首先一个基本原理就是, 计算机以补码存储数据
一个字节8位,在java中 int 4字节,byte 1 字节
int时,139 = … 0100 1011,强转成byte,需要舍弃int前面的3个字节,所以变成 1000 1011,这显然是一个负数
补码:1000 1011 负数,转成反码 = 1000 1010 (符号不变,最低位-1)
反码:1000 1010 负数,转成原码 = 1000 1010 (符号不变,其他取反)
(1000 1011) 负数转成反码(符号不变,最低位-1)—>1000 1010 ,
反码符号不便取反,1111 0101 = -117
2
mysql中不同编码格式的时候,汉字和字母会占几个字节
UTF-8 一个汉字占3个字节,字母占1个字节
GBK 一个汉字占2个字节,字母占2个字节
3
用二进制来编码字符串“xyzwxyxx”,需要能够根据编码解码回原来的字符串,则我们最少需要多长的二进制字符串
利用哈夫曼编码,字符出现的频率越大,则使用越短的二进制进行编码,构建最优二叉树。
4
Linux系统中,可以用来查找可执行文件的是: whereis、locate、which
whereis 命令:
命令格式: whereis 文件名
参数:
-b 只查询二进制文件
-m 只查询帮助文件
-s 只查询源代码文件
使用:
whereis master # 查询master文件
原理:
本质就是去搜索一个数据库,/usr/lib/locatedb,这个数据库含有本地所有文件的信息,有Linux管理, 且每天更新一次,所以可能查不到最新变动的文件信息,手动更新(命令: updatedb)
locate命令 ---->其实就是 find -name,但是find -name不查询数据库
命令格式: locate [OPTION]… PATTERN
功能: 查找字符串,查找的文件名中含有的字符串
参数:
-d 目录
-i 忽略大小写
使用:
locate /etc/sh #搜索etc目录下,所有以sh开头的文件
locate -i ~/m #搜索用户主目录下,所有以m开头的文件,并忽略大小写
which命令
命令格式: which 可执行文件名称
功能: `which指定会在PATH变量指定的路径中`,搜索某个系统命令的位置,并返回第一个搜索的结果
参数:
-n 指定文件名长度,指定的长度必须大于等于所有文件中最长的文件名
使用:
which ls
which pwd
type命令
命令格式
功能: type命令用来判断另一个命令是否是内置命令
参数
-t 判断另一个命令是否是ablias 、keyword、function、file
使用
type ls
type -t ls # 查看ls命令是否是 alias
find命令
命令格式:find path -option 【-print | grep】 使用:
find /etc/ -name passwd # 查询/etc/下名称带有passwd的文件
find /etc/ -name *.conf # 通配
5
设有一组初始记录关键字序列为(34,76,45,18,26,54,92),则由这组记录关键字生成的二叉排序树的深度为: 4
6
volatile只能保证有序性、可见性、不能保证原子性,也就不能保证线程安全。