debug工具/断点调试
debug小技巧
1.重新debug
2.强制结束debug
3.批量取消断点
4.在断点间跳跃(直接运行一段代码,然后继续debug)
数据类型
基本数据类型
注释:
使用long整型类型时,需要在数字末尾加上L
使用float类型时需要加上F
内存单位:字节,一个字节有8bit
and65535的二进制表示是1111 1111 1111 1111
引用数据类型
字符串:String
Scanner(在核心类库中寻找)
操作步骤
1.导包 import java.util.Scanner
2.创建对象 Scanner sc = new Scanner(System.in);
3.sc.nextInt(); 记得定义整型变量来接收这个数据哦
tips:
自己写的类名如果也叫Scanner的话,IDE会优先使用我们自己写的Scanner,这样得不偿失
运算符
注意点:
1.整数与整数的运算结果是整数,后边全部舍去
2.取模运算符的应用:用于奇偶数的判断
字符串
“+”号的特殊情况:当“+”号的左右两边随便出现一个字符串时,“+”之后的结果就是字符串
贪吃蛇模式:
sout回车 1+99+“年黑马” 的结果为 100年黑马
sout回车 “年龄为”+23+1 的结果为 年龄为231
自增自减运算符
类型转换
隐式转换
赋值中的隐式转换
小的可以强制转换给大的(此处的小和大表示的是取值范围)
int a = 10;
double b = a;
float比long大的原因:1.二进制表示(一部分是整数部分,一部分是小数部分)2.float是用e来表示
运算中的隐式转换
小的会先把自己变成大的,然后再运算
易错:byte和byte的运算结果是int,即 byte short char 在进行运算时都会先提升为int,再进行运算
强制转换
说白了就是大的给小的不能直接给,所以需要强制,但不建议这么用,可能会造成精度丢失,例如:
double b = 12.3;
int a = (int) b;
print(a);//a的结果为12
Java中存在常量优化机制
可用反编译进行验证
byte b1 = 3;
byte b2 = 4;
byte b = b1 + b2; //报错!!,因为b1 + b2的运算结果为int
byte a = 3 + 4; //不会报错,在javac(编译的时候,由于常量优化机制,会直接被编译成 a = 7)
二进制
例子:
int a = 130;
byte b = (byte) a;
sout(b); //b的结果是-126
默认十进制
八进制:中若出现"09",则报错
十六进制:数组的内存地址就是十六进制
进制转换
二转十
二进制数的三种状态
原码
原码"取反+1"操作后得到补码
包括赋值运算
反码
补码
一个字节是由8位二进制数来表示了,上图中第九位的"1"被挤出去了,所以结果是0.
补码"取反+1"操作后得到原码