初学Java小结
1. java的开发环境
想要使用java进行编程, 我们需要安装JDK. 说起JDK, 不免我们就会想到 JRE 和 JVM.
那么 JDK 和 JRE, JVM 有什么关系呢?
JDK: java 开发工具
JRE: java 的运行环境
JVM: java 虚拟机
JDK是包含JRE和JVM的.
正是因为有了JRE, java 的开发者才得以将自己开发的程序发布到用户手中, 用户才得以使用.
JVM是整个java实现跨平台最核心的部分. 所有的java程序都会被编译成.class文件, 这类文件可以在虚拟机上执行. 也就是说和电脑的操作系统无关. .class文件是通过虚拟机间接和操作系统交互, 由虚拟机将程序解释给本地系统执行
2. 如何运行一个java程序?
这里有一个问题:
在main方法中, (String args[])的作用是什么?
运行时命令行参数
3. 数据类型
数据类型总共分为两种:
1. 基本数据类型
基本数据类型总共有八种:
byte 的数据范围为: -128 ~ + 127
char 的数据范围为: 0 ~ 32768
short 的数据范围为 : -32768 ~ +32767
int 的数据范围为: - 2^31 ~ +2^31 - 1
long 的数据范围为: -2^63 ~ +2^63 - 1
在进行编程时, 浮点型默认为double
关于布尔类型:
- 在java中, 布尔类型没有明确的大小
- 在java中, 布尔类型只有两个取值, true 和 false
- 在java中, 没有所谓的0是假, 非0是真, 只有true和false
2. 引用数据类型
引用数据类型包括: 类, String, 数组, 抽象类, 接口, 枚举…
对于字符串String而言, 在进行 + 运算的时候 , 只要 + 两边有字符串, +号起的是字符串拼接作用, 最后得到的结果就是字符串.
字符串和字符串的拼接:
String a = "Hello";
String b = "World";
System.out.println(a + b); // HelloWorld
字符串和整数的拼接
String str = "result = ";
int a = 10;
int b = 20;
String result = str + a + b;
System.out.println(result); // result = 1020;
4. 变量的命名规则
硬性指标:
- 一个变量名只能包含数字, 字母, 下划线
- 数字不能开头.
- 变量名是大小写敏感的. 即 num 和 Num 是两个不同的变量
注意: 虽然语法上也允许使用中文/美元符($)命名变量, 但是不推荐这样做
软性指标:
- 变量命名要具有描述性, 见名知意.
- 变量名不宜使用拼音(但是不绝对).
- 变量名的词性推荐使用名词.
- 变量命名推荐: 小驼峰命名法(当一个变量名由多个单词构成的时候, 除了第一个单词之外, 其他单词首字母都大写) .
int numValue = 10; // 小驼峰命名法
5. 常量(在运行过程中不能发生修改的量)
在java中, 常量有两种表示形式:
- 字面值常量: 10, 0.1, “abc”, true
- final修饰的变量:
final int A = 10; // A 就成了一个常量
注意:
3. 用final修饰了变量之后, 变量名要大写
4. 常量只能被初始化一次, 且使用的时候, 一定要记得初始化
6. 数值类型转换
数值转化分为两种:
1. 隐式类型转换: 把一个小类型数据给大类型
int a = 10;
long b = 20L;
b = a; // 把 int 类型转换成 long 类型
2. 显式类型转换(强制类型转换): 把一个大类型数据给小类型(会产生精度损失)
int a = 10;
double b = 10.5;
a = (int)b; // 将double 类型强制类型转换成 int 类型
注意: 布尔类型不可以和任何类型发生类型转换, 强制类型转换也不可以
6. 数值提升
在进行运算时, 如果产生了不同数据类型混合运算, 就会发生数值提升(从小类型数据提升到大类型数据)
int a = 10;
long b = 20;
//int c = a + b; // 从 long 到 int 可能会有精度的损失
long d = a + b; // a 会提升成为 long 类型
若运算时数据类型均相同, 就不会发生数值类型提升
byte a = 10;
byte b = 20;
int c = a + b; // a 和 b 都会提升成为 int
由于计算机的 CPU 通常是按照 4 个字节为单位从内存中读写数据. 为了硬件上实现方便, 诸如 byte 和 short 这种低于 4 个字节的类型, 会先提升成 int, 再参与计算.