目录
java前言
JDK、JRE、JVM
三者关系图解
JDK、JRE、JVM解释:
JDK、JRE、JVM作用
java跨平台
关于java内的文件
.java文件运行原理
标识符
定义
标识符原则
java注释
注释的作用
注释分类
使用javadoc工具要注意的细节
8大基本数据类型
数据据类型的默认值
基本类型的字面值
进制前缀
数据类型的类型转换
注意:
转换规则
运算规则
引用数据类型
运算符
前言
优先级控制
运算符速查表
java前言
java之父:詹姆斯•高斯林(James Gosling)
java语言平台版本
- JAVASE — Standard Edition—标准版/基础版
- JAVAEE — Enterprise Edition— 企业版/商务版
- JAVAME — Micro Edition — 微型版/移动版
Java语言特性:简单性、安全性、面向对象、高性能、编译性、解释性、分布式处理、健壮性、开源、跨平台
JDK、JRE、JVM
三者关系图解
三者关系:JDK>JRE>JVM(三者是包含关系)
JDK、JRE、JVM解释:
- JDK:Java Development Kit(java开发工具套件)
- JRE:Java Runtime Environment(java运行环境)
- JVM:Java Virtual Machine(Java虚拟机)
JDK、JRE、JVM作用
- JDK:JDK是java语言软件开发工具包,主要用于移动设备,嵌入式设备上的Java应用程序,编写java必须使用JDK,他提供编译和运行Java程序的环境,是整个java开发的核心
- JRE:java运行的环境
- JVM:将字节码文件翻译成当前平台认识的可执行文件格式
java跨平台
- JDK:JDK是java语言软件开发工具包,主要用于移动设备,嵌入式设备上的Java应用程序,编写java必须使用JDK,他提供编译和运行Java程序的环境,是整个java开发的核心
- JRE:java运行的环境
- JVM:将字节码文件翻译成当前平台认识的可执行文件格式
java跨平台
由上面观之Java跨平台前提:安装对应的JVM
java是一门解释性的语言:jvm将字节码文件一行一行的解释为当前操作系统可执行文件格式。
关于java内的文件
- 源文件:.java文件
- 字节码文件:.class文件
- 编译环节所对应的文件:javac.exe
- 运行环节所对应的文件:java.exe
.java文件运行原理
.java文件(javac.exe)=>.class文件(java.exe)=>jvm运行.class得到结果
标识符
定义
标识符:标识符可以简单的理解成一个名字。
在Java中,我们需要给代码中的很多元素起名,包括类名、方法名、字段名、变量名等等。我们给对应元素起的名称就被称为标识符
标识符原则
- 标识符可以由字母、数字、下划线(_)、美元符($)组成,但不能包含 @、%、空格等其它特殊字符
- 不能以数字开头。
- 标识符严格区分大小写。
- 要做到见名知意。
- 标识符不能是Java的关键字
注意:除了上述的50个关键字以外,true,false,null也不可以被用作标识符
java注释
注释的作用
- 屏蔽代码
- 解释说明
注释分类
- 屏蔽代码
- 解释说明
注释分类
| 注释名称 | 注释内容 |
| 单行注释 | // |
| 多行注释 | |
| 文档注释 |
注意:多行注释内容不能用于生成一个开发者文档,而使用文档注释内容可以生成一个开发者文档
使用javadoc工具要注意的细节
- 如果一个类需要使用javadoc工具生成一个软件开发者文档,那么该类必须经过public修饰
- 文档注释注释的内容一般都是位于类或方法上面的
8大基本数据类型
数据据类型的默认值
| 类型 | 默认值 |
| 整数型 | 0 |
| 浮点型 | 0.0 |
| 字符型 | 'u0000'(空格) |
| 布尔型 | false |
| 引用类型 | null |
基本类型的字面值
- 我们只要写一个整数,就默认是int类型
- 我们只要写一个小数,就默认是double类型
- byte,short,char三种比int小的整数可以用范围内的值直接赋值
- 字面值后缀L——long、 D——double、F——float
进制前缀
- 0b - 标识这是2进制 ,如:0b0101
- 0 - 标识这是8进制, 8进制是三位,如: 023
- 0x - 标识这是16进制,如: 0x0001
数据类型的类型转换
- 0b - 标识这是2进制 ,如:0b0101
- 0 - 标识这是8进制, 8进制是三位,如: 023
- 0x - 标识这是16进制,如: 0x0001
数据类型的类型转换
注意:
- 整形与浮点型底层存储结构就不一样(浮点型底层采用科学计数法)
- 箭头开始的地方是小类型(容量小的类型),箭头指向的地方是大类型(这里的"大"和"小",指的是对应类型的取值范围,不是字节数)
转换规则
隐式转换:小类型到大类型直接转
byte m = 120; int n = m;//小转大,右面的m是小类型,给左面的n大类型赋值,可以直接使用 float f = 3.2f; double d = f; //-->可以执行
显示转换:大转小强制转,浮变整,小数没
double a=3.2;
int b=(int)a;
System.out.println(b);//b=3
注意:不能对boolean类型进行类型转换。
运算规则
1.计算结果的数据类型,与最大数据类型一致
2.byte,short,char三种比int小的整数,运算时会先自动转换成int
byte a=3;
byte b=5;
byte c=(byte)(a+b);//a+b会自动提升为int
System.out.println(c);//c=8
3.整数运算溢出
4.浮点数运算不精确——后面有解决办法
5.浮点数的特殊值
Infinity 无穷大 3.14/0
NaN not a number 0/0.0 或 0.0/0
引用数据类型
定义:除了基本类型以外的所有类型都是引用类型
注意:引用类型是一个对象类型,它的值是指向内存空间的引用,就是地址,所指向的内存中保存着变量所表示的一个值或一组值。如:类,接口,数组
运算符前言
运算符:用于连接 表达式的操作数,并对操作数执行运算的符号。
运算符5种类型以及优先级:
算术运算符>比较运算符>逻辑运算符>三目运算符>赋值运算符。
根据操作数来分类
- 单目运算符:只有一个操作数的运算符
- 双目运算符:有两个操作数的运算符
- 三目运算符:有三个操作数的运算符
优先级控制
当一个表达式包含多个运算符时,就需要考虑运算符的优先级,优先级高的运算符先参与运算,优先级低的运算符后参与运算。在实际的开发中,不需要特别去记忆运算符的优先级别,也不要刻意的使用运算符的优先级别,对于不清楚优先级的地方使用小括号辅助进行优先级管理。
运算符速查表
自增自减运算符
i++ i先参与运算 i=i+1
++i i=i+1 i参与运算
三目运算符
exp1?exp2:exp3
注意:如果表达式1结果为true那么整个式子的结果就是表达式2的结果,否则是表达式3的结果



