-
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
-
class HelloWorld{
public static void main(String[] args){
System.out.println("你好世界。");
}
}
-
关键字
关键字都是小写的
-
标识符
-
注意事项
-
a.只能有字母,数字,$, 下划线
-
b.不能以数字开头
-
-
原则
-
a.包:(就是文件夹作用,区分同名文件)起名字的时候都小写
-
b.类和接口:一个单词首字母大写,多个单词从第二个单词开始首字母大写
-
小写驼峰
-
大写驼峰
-
-
c.常量:每个字母都大写,多个单词用下划线隔开
-
-
-
注释
以后一定先写注释再写代码
先用注释把思路理出来,然后写代码
代码只是思想的一种具体表现形式而已
常量(在执行过程中其值不会发生改变的量)
1.自定义常量
2.字面值常量
a.字符串常量
b.整数常量
c.小数常量
d.字符常量
e.布尔常量
f.空常量
-
进制转换
-
其它进制转十进制
每一个位置上的系数*基数的权次方相加
-
十进制转其它进制
结论:除基取余,直到商为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类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(+时)
- 疑问:long不是8个字节吗,那为啥要弄成float
- 注意:布尔型不参与类型转换
- byte,short,char–>int–>long–>float–>double(+时)
-
强制转换(从大到小的转换)
- 目标类型 变量名 = (目标类型)(被转换的数据);
-
-
字符参与运算
-
考察ASCII码表
-
a为97
A为65
0为48
-
-
字符串参与 “+” 运算
- 字符串遇到+的时候,就不再是加法运算
而是变成了字符串连接符
会把+左边和右边的内容拼接到一起,成为一个新的字符串
- 字符串遇到+的时候,就不再是加法运算
-
运算符
-
算术运算符(“/” 注意一下)
-
赋值运算符(还有拓展的赋值运算符)
-
拓展运算符(拓展运算符都隐含了强制类型转换)
- 实际上s+=1;等价于 s=(s的类型)(s+1);
-
-
比较运算符
-
逻辑运算符(用来链接布尔类型表达式或者值)
-
逻辑&: 有假则假
逻辑|:有真则真
逻辑^: 相同为假,不同为真。记谈恋爱。
逻辑!: 非真则假,非假则真。奇数个取反,偶数个不变。
逻辑&&: 有假则假
逻辑||:有真则真 -
单&于双&的区别:一个有短路效果,一个没有,如果两边不是表达式,是值时&会进行位运算
-
-
位运算符
-
三元运算符
-