IDE
IDE : 开发工具的统称
记事本,Notepad++,IDEA,Eclipse,vscode,Hbuilder....
IDEA
Eclipse : Eclipse 是 10年前 比较流行的开发工具
MyEclipse : 开发JavaEE程序的软件
IDEA : 现在市面上最流行的一款Java开发工具
IDEA的基本设置
第一次登录IDEA的时候.选择免费试用30天;
IDEA的项目结构
IDEA新建项目和模块
alt+/快捷键设置
IDEA的常用快捷键
快捷代码:
psvm/main : main方法
sout : 输出语句
.var : 自动接收
.fori : 正序循环
.forr : 倒序循环
快捷键:
ctrl + c : 复制
ctrl + v : 粘贴
ctrl + x : 剪切
ctrl + a : 全选
ctrl + d : 复制一行代码
ctrl + z : 回撤
alt + / : 提示键
tab : 退格
shift + tab : 前进
ctrl(alt) + shift + 上下箭头 : 移动代码
ctrl + / : 单行注释
ctrl + shift + / : 多行注释
自动提升和强制转换(重点)
自动提升和强制转换 : 基本数据类型的类型转换特性
前提: 基本数据类型之间有大小关系
double > float > long > int > short,byte,char
自动提升 : "自动" 大类型的变量可以接收小类型的数据值/变量
double d = 100;
强制转换 : 小类型的变量强制接收大类型的值/变量
强转格式 : 小类型 变量名 = (小类型) 大类型变量/值;
注意: 数据是什么类型就拿什么类型的变量接收,不要动不动强转!! 因为会引起精度损失
进制
进制 : 进位的制度
二进制 : 0 1 -> 10(2)
八进制 : 0 1 2 3 4 5 6 7 -> 10(8)
十进制 : 0 1 2 3 4 5 6 7 8 9 -> 10(10)
十六进制 : 0 1 2 3 4 5 6 7 8 9 A B C D E F -> 10(16)
进制转换 : 用计算器
二进制运算:
原码 : 数直接转换成二进制得到的二进制码 -> 展示
反码 : 把原码取反 -> 0变1 1变0
补码 : 在反码的基础上 + 1 -> 运算
注意: 1. 正数的原反补都一样 2. 二进制码中的第一位是符号位(0正数,1负数)
强制转换的本质(重点)
运算符
算术运算符
赋值运算符
关系运算符
逻辑运算符
三元运算符
算术运算符(重点)
算术运算符 : + , - , * , / , % , ++/--
注意事项:
1. % : 取余 -> 求2个数相除的余数 2 / 3 余数--> 2
//当被除数小于除数的时候,取余的结果等于被除数本身
2. / : 除法 整数做除法结果也是整数,要想有浮点数结果必须有浮点数参与运算
3. 两种不同类型的数据做运算结果是大类型的
字符类型做算术运算(重点)
字符(char)做运算的时候,会先在ASCII码表中找到对应的数字,再拿数字做运算!
'a' 97 'A' 65 '0' 48
中文没有规律,符号没有规律
ASCII : 美国信息标准交换码表
byte,short,char 的变量在做运算的时候会自动提升至int再运算;
字符串类型数据做加法运算(重点)
字符串 : 双引号引起来的内容就是字符串 (字符串是最特殊的引用数据类型)
字符串类型数据做加法 本质就是做 连接/拼接
注意事项:
1. 字符串做加法就是在做字符串的连接
soutv : 带名称的打印输出
2. 字符串做加法的结果一定是字符串类型
3. 字符和字符串做加法运算,字符不需要找ASCII码而是直接连接在字符串上
++/–(重点)
++/-- : 自增/自减运算符
++/--运算法则:
1. 变量的值+1/-1
2. 把变化后的值赋值给原来的变量
注意:
1. ++/-- 只能和变量一起用,不可以和常量一起用
2. ++/-- 可以放在变量的前后
单独使用 : 没有任何变化,变量做+1/-1操作
参与运算 :
++/--在变量前 : 先自增/自减 再参与运算
++/--在变量后 : 先参与运算 再自增/自减
++/-- 单独运算的时候是绝大多数情况,极少情况下参与运算!!
3. 输出也是一种运算!!
4. 不准这样使用++/--
d = ++d;
d = d++;
赋值运算符(重点)
= : 赋值运算符
int num = 100; -> 把100赋值给int类型的变量num;
拓展的赋值运算符:
+=,-=,*=,/=,%=
拓展的赋值运算符隐含了强制类型转换!
展开式 :
short s = 30;
s += 50; --> s = (short)(s + 50);
关系运算符(重点)
关系运算符 : >,>=,<,<=,==,!=
注意:
1. == : 判断2个值的类型和值是否相等
2. 关系运算符连接起来的式子叫 关系表达式 -> a > 10
3. 关系表达式的结果一定是boolean类型 : true/false
4. 不要把 == 写成了 =
逻辑运算符(重点)
逻辑运算符 : 用来连接关系表达式的,逻辑表达式的结果也一定是boolean类型
& : 逻辑与 -> 并且 "苛刻的丈母娘"
运算法则 :有false则为false
10 < a < 20; : a > 10 & a < 20;
| : 逻辑或 -> 或者 "和蔼美丽的丈母娘"
运算法则 :有true则为true
a > 20 或者 a < 10 : a > 10 | a > 20;
^ : 逻辑异或 "中国的领结婚证关系"
运算法则 : 相同则为false,不同则为true
! : 逻辑非
运算法则 : 取反 true则false,false则true
//带有短路效果的逻辑运算符
&& : 逻辑双与
运算法则 :有false则为false
短路效果 : 左边的表达式结果为false 右边的表达式 不执行!!
|| : 逻辑双或
运算法则 :有true则为true
短路效果 : 左边的表达式为true 右边的表达式 不执行!!
结论 : 只要用到逻辑与和逻辑或 请用逻辑双与逻辑双或!
二进制的逻辑运算(重点)
二进制中: 1代表true,0代表false
System.out.println(7 & 5);//5
00000000 00000000 00000000 00000111 -> 7
& : 有false则为false
00000000 00000000 00000000 00000101 -> 5
---------------------------------------
00000000 00000000 00000000 00000101 -> 5
System.out.println(7 | 5);//7
00000000 00000000 00000000 00000111 -> 7
| : 有true则为true
00000000 00000000 00000000 00000101 -> 5
---------------------------------------
00000000 00000000 00000000 00000111 -> 7
System.out.println(7 ^ 5);//2
00000000 00000000 00000000 00000111 -> 7
^ : 相同则为false 不同则为true
00000000 00000000 00000000 00000101 -> 5
---------------------------------------
00000000 00000000 00000000 00000010 -> 2
//二进制的位移运算
左位移 << : 左位移几位就是乘以二的几次方
System.out.println(8 << 1);//16
|00000000 00000000 00000000 00001000|
0|0000000 00000000 00000000 000010000| //少了就补
右位移 >> : 右位移几位就是除以二的几次方
System.out.println(8 >> 1);//4
|00000000 00000000 00000000 00001000|
|000000000 00000000 00000000 0000100|0