计算机语言的数字进制转换:
10进制---2进制 : 连除2倒取余
2进制---10进制 : 按权求和,将除完的2乘回来
10进制---8进制 : 连除8倒取余
10进制---16进制 : 连除16倒取余
正数的二进制数 也是它的 原码、补码和反码,对于正数 三码合一
byte型最高位是符号位
byte型正数的原码最高位改为"1"是它的负数的原码,对原码各个位除符号位外取反则得到它的反码
负数的反码 +1 ,得到它的补码
不管是正数还是负数,在底层都是以补码的形式来存的
进制转换详解网址: https://jingyan.baidu.com/article/495ba84109665338b30ede98.html
Java中类Integer做到帮助进制转换
Java基本数据类型:
byte | 短整型 | 整型 | 长整型 | 单精度浮点型 | 双精度浮点型 | 字符型 | 布尔型 |
byte | short | int | long | float | double | char | boolean |
1字节 | 2字节 | 4字节 | 8字节 | 4字节 | 8字节 | 2字节 | 1字节 |
注: char在C语言 C++占一个字节,在java占2个字节,原因:Java编译器默认使用Unicode编码,因此2字节(16位)可以表示所有字符
1字节 = 8bit
小类型转换成大类型可以通过系统隐式转换
大类型转换成小类型需要通过强制转换"()",会导致精度的损失
long id = 123;
int i = (int) id;
字符型可以和整型相互转换---字符转换为在ASCII表中对应的值
当char/byte/short之间做运算时,默认的结果为int类型
String类 并不是基础数据类型
字符串或者字符串和数字中 "+"相当于连接符:
算术运算符 : + - * / %(取模运算) ++(自增) --(自减)
除 "/" int型是取整
取模"%" 结果的符号 取决于被模数(%前面的数)
++i 先自增再参与运算
i++ 先参与运算再自增
逻辑运算符 : 用来判断是否成立,返回布尔值
&&(与)
(条件1)&&(条件2) 一假则假
||(或)
(条件1)||(条件2) 一真则真
!(非)
非真既假
注意: 逻辑与和逻辑或的短路现象(如果第一个操作数已经决定了结果,那么永远不会对第二个操作符求值)
若判断两个字符串(对象类)是否相等 用equals()方法
分支结构---if的三种书写形式 :
分支结构---switch语句 :
if与switch的应用方法 :
如果判断的时候 是个范围 使用if 相对简单一点
如果判断的时候是几个确定的情况 使用switch 相对简单
三目运算 :
(判断条件) ? 值1 : 值2;
判断条件成立 返回值1 反之 返回值2
循环语句---while :
while(判断语句){
循环体;
}
while的应用:累加思想
开发知识点补充:
while(true) {...new ()...} 死循环重复产生对象实体的情况会导致jvm内存溢出(堆溢出)
内存溢出情况:(转载)
https://www.cnblogs.com/csnjava/p/16489707.html