文章目录
定义标识符的规则:
由(Unicode)字母、数字、_、 $组成。不能由数字开头
不能是Java中的保留字(关键字)
大小写敏感,长度无限制
为什么Java成员变量声明时可以不用赋值,而局部变量声明时一定需要赋值
https://blog.csdn.net/AlbenXie/article/details/100161019?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522160708005119724816675405%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=160708005119724816675405&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_v2~rank_v29-1-100161019.first_rank_v2_pc_rank_v29&utm_term=java%E4%B8%AD%E4%B8%BA%E4%BB%80%E4%B9%88%E5%B1%80%E9%83%A8%E5%8F%98%E9%87%8F%E9%9C%80%E8%A6%81%E8%B5%8B%E5%80%BC%E6%89%8D%E8%83%BD%E4%BD%BF%E7%94%A8%EF%BC%8C%E8%80%8C%E7%B1%BB%E6%88%90%E5%91%98%E5%8F%98%E9%87%8F%E4%B8%8D%E9%9C%80%E8%A6%81%EF%BC%9F&spm=1018.2118.3001.4449
常量只能赋值一次(初始化)
类静态成员常量只能在定义时初始化
方法中的常量(局部常量)可以在定义时初始化,也可以先定义,后初始化
++a,–a
‘
========================================================
数据类型转换
字符型和字符串型不同
char和string不同
=========================================================
数组的初始化
???????????????????????????
二维数组的创建
进制转换
原码、补码、反码
所有数字在计算机底层都以二进制形式存在。一个数在计算机中的二进制表示形式, 叫做这个数的机器数。机器数是带符号的,在计算机用一个数的最高位存放符号, 正数为0, 负数为1。
Java整数常量默认是int类型,当用二进制定义整数时,其第32位是符号位;当是long类型时,二进制默认占64位,第64位是符号位。
因为机器数是带符号的,因此机器数与一个数的“二进制值”还是有区别的。
计算机以补码的形式保存所有的整数。
正数的原码、反码、补码都相同
负数的补码是其反码加1。
1、原码
原码即用第一位表示符号, 其余位表示值. 比如如果是8位二进制:
2、反码
正数的反码是其本身
负数的反码是在其原码的基础上, 符号位不变,其余各个位取反.
3、补码
正数的补码就是其本身
负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1. (即在反码的基础上+1)
为什么要使用原码、反码、补码表示形式呢?
计算机辨别"符号位"显然会让计算机的基础电路设计变得十分复杂! 于是人们想出了将符号位也参与运算的方法. 我们知道, 根据运算法则减去一个正数等于加上一个负数, 即: 1-1 = 1 + (-1) = 0 , 所以机器可以只有加法而没有减法, 这样计算机运算的设计就更简单了.
0000 0000:0
0000 0001 ~ 0111 1111 : 1~ 127
1000 0001 ~ 1111 1111 : -127 ~ -1
1000 0000:-128
(-127) - (1) = -128
(1000 0001 - (0000 0001)= (1000 0000)
特殊值:
-1-127的结果应该是-128, 在用补码运算的结果中, [1000 0000]补 就应该是-128.
但是此时-128,如果用补码到反码,再到原码去计算是不对的,所以-128是个特殊值,记住它
自增运算
1)
//自增特例
class Test02_Iadd{
public static void main(String[] args){
int i = 1;
/*(1)先算右边
①先取i的值,放到“操作数栈”中
②修改i变量的值,加1 i=2
(2)再算赋值
把刚才“操作数栈”中值赋值给i i=1
*/
i = i++;
System.out.println(i);
}
}
(2)
// 自增运算问题
class Test03_Iadd2{
public static void main(String[] args){
int i = 1;
/*
(1)先算右边
①i++
A:先取i的值“1”,放到“操作数栈”中
B:立刻自增 i=2
②++i
A:先自增 i = 3
B:再取出目前i的值“3”,放到“操作数栈”中
③i++
A:先取i的值“3”,放到“操作数栈”中
B:立刻自增 i=4
④先算乘法
先弹出最上面的两个进行乘法运算,结果是9,然后把9压回去“操作数栈”中
⑤再算加法
把“操作数栈”中 9 和 1进行加法 = 10
(2)把最后的结果赋值给j
*/
int j = i++ + ++i * i++;
System.out.println(i);
System.out.println(j);
}
}
(3)
//自增运算问题
class Test04_Iadd3{
public static void main(String[] args){
int j = 1;
/*
j += ++j * j++;相当于
j = j + (++j * j++);
(1)先算右边
①先取j=1的值
②++j
A:j自增 j=2
B:取j=2的值
③j++
A:先取j=2的值
B:自增j=3
④乘法
2*2 = 4
⑤加法
1 + 4
⑥赋值
j = 5
*/
j += ++j * j++;
System.out.println(j);
}
}
转义字符
特点:一般用在类或方法的上方,可以在帮助文档中显示
说明:\n表示形式:+符号
常见的转义字符:
\n 换行符
\t 制表符
’ 一个 ’ 如: System.out.println("性别:‘男’ ");
" 两个 " 如:System.out.println("姓名:“张三” ");
\r 在当前行的最前面进行显示。前面有数据则进行覆盖。 如:System.out.println(“你是一只小狗\r它是”); 输出结果:它是一只小狗