jdk
eclipse 依赖于jdk 根据环境变量
配置环境变量
JDK:java development kit
JRE: java runtime environment
JVM:java virtual machine 运行java程序
JDK > JRE > JVM
IDE: 集成开发环境
//编程格式很重要 艺术品 欣赏
//缩进 颜值很重要 修改 找错 缩进 其实代表了逻辑关系
public class Hello{
public static void main(String[] args){
System.out.println(“Hello world!”);
}
}
java的8种基础数据类型
布尔类型 boolean 1字节 8二进制位 True False
数值类型
整数
byte 1 -128 127 [-27,27 -1]
short 2 [-215,215 -1]
int 4 [-231,231 -1]
long 8 [-263,263 -1]
浮点 不能精确地表示一个小数
float 4 (1符号8指数23小数位) +-3.4E^38 小数点精确6-7位
double 8 (1符号11指数52小数位) +-1.79E^308 小数点精确15-16位
字符类型
char 2 非负整数[0,2^16 -1]
隐式类型转换
表示范围窄的数据可以隐式转换成表示范围宽的数据
byte->short->int->long->float->double
char->int
在进行算术运算时,如果是混合数据类型会隐式转换成宽度最宽的数据类型进行计算
强制类型转换
1. 数据溢出
2. 精度缺失
进制:
二进制 八进制 十进制 十六进制
电路:导通 不导通
存储介质: 凹凸
计算机中有0和1
计算机中存储数据是以补码的形式存储
原码: 最高位是符号位 其它数值位 0正 1负
正数的原码 反码 补码 都是一样
反码: 等于其原码 符号位不变量 其它位按位取反
补码: 等于其反码 +1 符号位不变
3+(-4)
0000 0011 0000 0011 0000 0011
1000 0100 1111 1011 1111 1100
1000 0111 = -7 1111 1110 1111 1111 负 1111 1110 1000 0001 = -1
3+(-3)
0000 0011 0000 0011
1111 1100 1111 1101
1111 1111 0000 0000 = 0
3-5
0000 0011 0000 0011
0000 0101 0000 0101
1111 1110 -1 1111 1101 1000 0010 = -2
byte b = -1; //计算机底层中是什么样子 全是1 1111 1111 0xff
byte b = -128;//在计算机底层中 1000 0000 0x80
变量:
声明:数据类型 变量名;
变量名规则:
初始化:变量如果不初始化不能取值
变量的操作
取值操作 赋值操作
运算符(操作符)
1.算术运算符
+ - * / %
+: 加法运算 可能越界
正数
拼接字符串 把字符串和其它数据连在一起组成一个新的字符串
任何数据和字符串相加都是拼接成一个新的字符串
数值相加得到的结果是数值
数值和字符串相加 等到的是字符串
字符串只能相加(+) 不能相减
int a = 10,b = 20;
System.out.println(“Hello”+a+b);Hello1020
System.out.println(a+b+“Hello”);30Hello
-: 减法运算 可能越界
负数 注意 补码
*: 乘法
/: 两个整数相除 得到的结果只会是整数
除数不能为0
在混合类型进行算术运算时会自动隐式转换成类型最宽的类型
byte、short、char在进行算术运算时隐式转换成int
%: 取余数
关于余数的正负问题
java里面浮点类型也可以取余数
自增自减运算符
++ --
前后之分
前++ -- :先进行自增或者自减运算 然后用自增减之后的结果再进行运算
后++ -- : 先取变量的值进行运算 然后变量再进行自增减运算
为了避免歧义,不要在同一个表达式中对同一个变量进行多次自增减运算
2.关系运算符
> >= < <= != ==
关系运算符的结果是boolean类型
表达式: 左操作数 关系运算符 右操作符
判断是否相等是两个等于 ==
一个等号 是赋值 两个等号才是判断 相等
java里面关系表达式不可以连用
a<b<c 是错误的
a<b b<c 两个表达式
3.逻辑运算符
&& || !
操作布尔值
&& 而且 并且的关系
|| 或者
! 取反
短路特性:
当&&连接的表达式左边的结果已经是false,右边的结果已经影响不了整个表达式的结果,右边表达式的将不再进行运算
当||连接的表达式左边的结果已经是true,右边的结果已经影响不了整个表达式的结果,右边的表达式将不再进行运算
4.位运算符
& | ^ ~ >> >>> <<
二进制位的0和1
按位与:二进制都为1时为1,否则为0
1&0=0
0&1=0
1&1=1
0&0=0
按位或: 二进制有一个为1时则为1,否则为0
1|0=1
0|1=1
1|1=1
0|0=0
按位异或: 二进制位不同则为1,相同则为0
1^0=1
0^1=1
1^1=0
0^0=0
按位取反:二进制位为0取反为1,如果为1取反则为0
~1=0
~0=1
对于任意一个十进制的整数x有以下定理:
~x = -(x+1);
int x = 0xc7;
int y = 0xa9;
x&y
x|y
x^y
~x
~y
x = 1234567;
~x = -(x+1)
按位进行运算
二进制位的0和1
1&0=0
0&1=0
1&1=1
0&0=0
x代表一个二进制位
1&x = x
0&x = 0
1|x = 1
0|x = x
0^x = x
1^x = ~x
1^0 = 1
1^1 = 0
5.赋值运算符
=
+= -= *= /= &= |= ^=
6.三目运算符
?:
7.其它
, [] () .