背景
平台
平台指的是操作系统
例如:windows,macOS,linux
跨平台
程序可以在任意平台上运行
JAVA跨平台原理
使用JVM(JAVA虚拟机)
针对不同的操作系统提供不同版本的JVM
在需要运行JAVA应用程序的操作系统上,安装一个与操作系统对应的JAVA虚拟机(JVM)即可
JRE和JDK
JRE - Java runtime environment
是运行时环境,包含JVM和运行时所需要的核心类库
想要运行已有的JAVA程序,只需要安装JRE即可
JDK - Java Development Kit
包含JRE和开发人员使用的工具
开发工具:编译工具javac.exe和运行工具java.exe
想要开发一个全新的java程序就必须要安装JDK
开发步骤:编写程序,编译程序,运行程序
编译时编译器会将JAVA源程序编译为一个JAVA字节码文件
helloworld案例
-
新建文本文件,修改名称为HelloWorld.java
-
书写程序内容:
public class HelloWorld{
public static void main(String [] args){
System.out.println("HelloWorld");
}
}
- 编译和运行,打开命令提示符窗口(cmd)进入到HelloWorld.java所在的目录并使用javac命令进行编译
javac HelloWorld.java
- 此时会生成JAVA字节码文件.class
- 执行格式:java 类名
java HelloWorld
基础语法
注释
注释是指在程序指定位置添加的说明性信息
单行注释 | //注释信息 |
---|---|
多行注释 | /*注释信息*/ |
文档注释 | /** 注释信息 */ |
关键字
关键字的字母全部小写
常用的代码编辑器针对关键字有特殊的颜色标记,比如 public class static void 都是常用关键字
常量
在程序运行过程中,值不可以发生改变的量就是常量
常量类型 | 书写方式 |
---|---|
字符串常量 | 双引号括起来的内容 |
整数常量 | 不带小数的数字 |
小数常量 | 带小数的数字 |
字符常量 | 用单引号括起来的内容 |
布尔常量 | 布尔值,表示真假 |
空常量 | 一个特殊的值,空值,值是null。空常量不能直接输出 |
计算机存储
计算机存储设备的最小信息单元叫做位 bit,称为比特位,通常用小写的b表示
计算机中最小的存储单元叫字节(byte),通常由B表示,字节是由连续的8个位组成
数据类型
JAVA是强类型语言,对于每一种数据都给定了明确的数据类型,不同的数据类型分配了不同的内存空间,所以表示的数据大小也是不一样的
数据类型分为基本数据类型和引用数据类型。
基本数值类型包括数值型和非数值型
数值型中包括整数(byte,short,int,long)浮点数(float,double)字符(char)
非数值型中包括布尔类型(boolean)
引用数据类型包括类(class),接口(interface)和数组( [ ] )。
关键字 | 内存占用 |
---|---|
byte | 1 |
short | 2 |
int | 4 |
long | 8 |
float | 4 |
double | 8 |
char | 2 |
boolean | 1 |
给一个整数,默认为int类型。给一个浮点数,默认为double类型
变量
在程序运行过程中,其值可以发生改变的量我们称为变量
本质上,变量是内存的一小块区域
定义变量:
数据类型 变量名=变量值
int a=10
使用变量名直接取值
修改变量值:变量名=变量值
变量使用的注意事项:
- 在一个class中,变量的名字不能重复
- 定义变量的时候需要给一个初始值,否则无法使用
- 为了防止定义LONG类型的时候整数太大,需要在赋值的整数后面加一个L
long l = 10000000000L - 浮点数默认的是double类型。为了防止类型不兼容,需要flout类型时需要在数字后面加F
float f=3.14F
标识符
标识符就是给类,方法,变量等起名字的符号
标识符由数字,字母,下划线和美元符($)组成
标识符不能以数字开头,不能是关键字,需要区分大小写
常见的命名约定:
小驼峰命名法 -针对方法和变量
- 标识符是一个单词的时候,首字母小写
- 标识符是多个单词组成的时候,第一个单词首字母小写,其他单词首字母大写firstName
大驼峰命名法-针对类
- 标识符是一个单词的时候,首字母大写
- 标识符是多个单词组成的时候,每个单词的首字母大写FirstName
类型转换
类型转换分为强制类型转换和自动类型转换
自动类型转换
把一个表示数据范围小的数值或者变量赋值给另一个表示数据范围大的变量
byte到char的自动类型转换是不可以的,类型不兼容
强制类型转换
把一个表示数据范围大的数值或者变量赋值给另一个表示数据范围小的变量
目标数据类型 变量名 = (目标数据类型)值或者变量
int k = (int) 88.88
此时k=88,有数值的丢失
运算符
p18