目录
🥪一、jdk, jre, jvm三者的关系与区别
🌮二、Java关键字
🍰三、注释
🍔四、变量与常量
🌭五、运算符
🥪一、jdk, jre, jvm三者的关系与区别
jdk,jre,jvm
jdk:JDK(Java Development Kit)称为Java开发包或Java开发工具, 是一个编写Java应用程序的程序开发环境。JDK是整个Java的核心,包括了Java运行环境(Java Runtime Environment),一些Java工具和Java的核心类库(Java API)
jre:Java运行环境(Java Runtime Environment)是支持Java程序运行的标准环境
jvm(java Virtual Machine) java虚拟机。
关系:jdk > jre > jvm
🌟简单来说三者的关系是:JDK>JRE>JVM。
🌟如果想要 运行 一个开发好的 Java 程序,计算机中只需要安装 JRE 即可。
🌟 JDK = JRE + 开发工具集(例如 Javac 编译工具等)
JRE = JVM + Java SE 标准类库
🌟 联系与区别
1.我们利用JDK写了自己的JAVA代码程序后,通过JDK中的编译程序(javac)将我们的文本java文件编译成JAVA字节码,在JRE上运行这些JAVA字节码,JVM解析这些字节码,映射到CPU指令集或OS的系统调用。
2.JDK和JRE区别:在bin文件夹下会发现,JDK有javac.exe而JRE里面没有,javac指令是用来将java文件编译成class文件的,这是开发者需要的,而用户(只需要运行的人)是不需要的。JDK还有jar.exe, javadoc.exe等等用于开发的可执行指令文件。这也证实了一个是开发环境,一个是运行环境。jdk是给开发人员使用的,jre和jvm是给普通用户使用。
3.JRE和JVM区别:JVM并不代表就可以执行class了,JVM执行.class还需要JRE下的lib类库的支持(rt.jar)
🌮二、Java关键字
关键字
关键字都是小写的
标识符
注意事项
a.只能有字母,数字,$, 下划线
b.不能以数字开头
原则
a.🌈包:(就是文件夹作用,区分同名文件)起名字的时候都小写
b.🌈类和接口:一个单词首字母大写,多个单词从第二个单词开始首字母大写
小写驼峰
大写驼峰
c.🌈常量:每个字母都大写,多个单词用下划线隔开
🍰三、注释
注释
🌈单行注释:以两个斜杠(//)开头,从//后面的内容直到该行的结尾都被视为注释。
例如:
// 这是一个单行注释 int x = 10; // 这是给变量x赋值的语句
🌈多行注释:以 /* 开头,以 */ 结尾,可以跨越多行。多行注释通常用于注释较长的文字、整个方法或类的说明。
例如:
/* 这是一个多行注释 它可以跨越多行 */ int y = 20; // 这是给变量y赋值的语句
🌈文档注释:以 /** 开头,以 */ 结尾,可以用于生成自动化的代码文档。文档注释通常用于对类、方法等进行详细的文档说明。
例如:
/** * 这是一个文档注释示例 * 它可以包含详细的说明、参数说明、返回值说明等 * @param num 一个整数参数 * @return 两倍于输入值的结果 */ public int doubleNumber(int num) { return num * 2; }
通过使用注释,可以提高代码的可读性和易理解性,同时也有助于团队协作和代码维护。在编写Java代码时,合理使用注释是一个良好的编程习惯。
🍔四、变量与常量
🌟4.1 常量
常量(在执行过程中其值不会发生改变的量)
1.自定义常量
2.字面值常量
a.🌑字符串常量
b.🌒整数常量
c.🌓小数常量
d.🌔字符常量
e.🌕布尔常量
f.🌖空常量
🌟4.2 进制转换
进制转换
其它进制转十进制
每一个位置上的系数*基数的权次方相加
十进制转其它进制
结论:除基取余,直到商为0,余数取反
十进制和二进制之间的快速转换
方法:使用8421码
e.g.
十到二:把十进制进行拆分(8,4,2,1)对应到二进制的每一位上
二到十:利用(8,4,2,1)将结果相加即可
任意进制X转换为Y进制
X进制->十进制->Y进制
有符号的数据表示方法
所有的数据运算的时候都是采用补码进行运算
有符号的数据表示方法
🌈原码:就是二进制表示形式,最高位是符号位,0表示正数,1表示负数其余位都是数值位.
一般用于存储
🌈反码:正数的反码和原码一样。负数的反码是在原码的基础上逐位取反,
符号位除外
是一个中间工具
🌈补码:正数的补码和原码一样。负数的补码是在其反码的基础上+1
用于运算·
byte a = 130; //这里涉及强制类型转换,相当于截取 byte b = -126; if(a == b) System.out.print("相等"); //130的二进制: 原码:00000000 00000000 00000000 10000010 这是一个正数,所以原反补一样 补码:00000000 00000000 00000000 10000010 强转相当于是截取,byte占一个字节,截取一个字节 符号位 数值位 补码:1 0000010 最高位是1,表示是一个负数 反码:1 0000001 原码:1 1111110 - 64+32+16+8+4+2= -126 //所以130存在byte中的值是-126
🌟4.3 变量
变量(在程序执行过程中其值可以在 某个范围 内发生改变的量)
组成:数据类型
变量名
初始值
数据类型
基本数据类型:4类8种
整数类型:byte(1),short(2),int(4),long(8)
浮点类型:float(4),double(8)
字符型:char(2)
布尔型:boolean(1)
注意事项:
🌈整数默认是int类型,浮点数默认是double类型
🌈要表示长整型需要使用L或者l标记,建议用L
🌈要表示单精度浮点数需要使用F或者f标记,建议用F
使用变量的注意事项:
🌈作用域问题
🌈初始值
类型转换
🌈默认转换(自动转换)
byte,short,char-->int-->long-->float-->double(+时)
注意:布尔型不参与类型转换
🌈强制转换(从大到小的转换)
目标类型 变量名 = (目标类型)(被转换的数据);
🌭五、运算符
字符参与运算
考察ASCII码表
a为97
A为65
0为48
字符串参与 “+” 运算
字符串遇到+的时候,就不再是加法运算 而是变成了字符串连接符 会把+左边和右边的内容拼接到一起,成为一个新的字符串
运算符
🌈算术运算符(“/” 注意一下)
基本的四则运算 : 加减乘除模(+-*/%)
增量运算符+= -= *= %=
自增/自减运算符 ++/--
🌈赋值运算符(还有拓展的赋值运算符)
拓展运算符(拓展运算符都隐含了强制类型转换)
实际上s+=1;等价于 s=(s的类型)(s+1);
🌈比较运算符
< , > , ==, >=, <= , !=
🌈逻辑运算符(用来链接布尔类型表达式或者值)
逻辑&: 有假则假 逻辑|:有真则真 逻辑^: 相同为假,不同为真。记谈恋爱。 逻辑!: 非真则假,非假则真。奇数个取反,偶数个不变。 逻辑&&: 有假则假 逻辑||:有真则真
单&于双&的区别:一个有短路效果,一个没有,如果两边不是表达式,是值时&会进行位运算
🌈位运算符
<<
>>
>>>
🌈三元运算符
? :
以下是运算符优先级, 从上到下以此减小