ip地址定位主机
端口号定位应用程序
端口号和ip地址的组合 就是套接字 Socket
用户path和系统path的区别?
如果你现在用管理员账号登陆设置了一个jdk的 用户环境变量Path 那么cmd时候 java javac命令都是可用的
现在注销 然后用guest来宾用户cmd 这时候java命令就是不可用的 所以用户Path只是针对个人 对其他人是没用的
而系统PATH对这台计算机的所有使用者都是有用的
一个源文件只能有一个public类,而且类名与文件名一致?
答案:不是,如果类不是public修饰的,语法上不要求类名与文件名一致
但是如果这个类声明为public,那么必须要求类名与文件名一致
进制的转化
二进制 十进制 八进制 十六进制
4、进制
计算机中任何的计算和存储都是以二进制方式实现的
位(bit) — 是计算机中最小的存储单位
字节(byte) — 计算机中基本的存储单元
1byte = 8bits、1KB = 1024Byte、1MB = 1024KB、1GB = 1024MB、1T = 1024GB
对于整数,有四种表示方式:
-
二进制:0,1 ,满2进1.以0b或0B开头(字母B大小写均可)。
-
十进制:0-9 ,满10进1.
-
八进制:0-7 ,满8进1.八进制数被冠以0来表示。
-
十六进制:0-9及A-F,满16进1,十六进制数被冠以0X来表示(字母X大小写均可)
如: 0x3f20(十六进制) 0732 (八进制)
class TestJinZhi { public static void main(String[] args) { int binary = 0b101; System.out.println(binary); int octal = 071; System.out.println(octal); int hex = 0XA1; System.out.println(hex); } } |
1、二进制与十进制之间的转换
2、二进制 八进制 十六进制互转
二进制转八进制:三位一组,算出这三位对应的十进制值,然后挨个连接上即可
二进制转十六进制:四位一组,算出这四位对应的十进制值,然后挨个连接上即可
八进制转二进制:把每个位置上的数字当做10进制的数,转成三位的二进制,然后挨个拼接上
十六进制转二进制:把每个位置上的数字当做10进制的数,转成四位的二进制,然后挨个拼接上
3、十进制与八进制或十进制与十六进制之间的转换,建议通过二进制过渡一下
5、原码、反码、补码
所有数字在计算机底层都以二进制形式存在。一个数在计算机中的二进制表示形式, 叫做这个数的机器数。机器数是带符号的,在计算机用一个数的最高位存放符号, 正数为0, 负数为1。
计算机以补码的形式保存所有的整数。
正数的原码、反码、补码都相同
负数的补码是其反码加1。
1、原码
原码即用第一位表示符号, 其余位表示值. 比如如果是8位二进制:
2、反码
正数的反码是其本身
负数的反码是在其原码的基础上, 符号位不变,其余各个位取反.
3、补码
正数的补码就是其本身
负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1. (即在反码的基础上+1)
为什么要使用原码、反码、补码表示形式呢?
计算机辨别"符号位"显然会让计算机的基础电路设计变得十分复杂! 于是人们想出了将符号位也参与运算的方法. 我们知道, 根据运算法则减去一个正数等于加上一个负数, 即: 1-1 = 1 + (-1) = 0 , 所以机器可以只有加法而没有减法, 这样计算机运算的设计就更简单了.
特殊值:
-1-127的结果应该是-128, 在用补码运算的结果中, [1000 0000]补 就应该是-128.
但是此时-128,如果用补码到反码,再到原码去计算是不对的,所以-128是个特殊值,记住它