认识JDK、JRE、JVM
JDK java开发工具包 java语言开发环境
JRE ->java程序运行时环境 只需要运行程序时,可以只安装JRE
JVM ->java程序虚拟机,java语言特点有跨平台运行,和JVM有关,一次编译到处运行
java跨平台性:JVM将字节码内容解析成系统指令和系统交互,在不同的系统上安装不同版本的虚拟机就可以执行字节码文件
JDK包含JRE包含JVM
javac:编译指令,将.java文件编译成.class文件(字节码文件)常在命令提示符下使用,例如: javac Hello.java 编译后文件夹内出现Hello.class(字节码文件)文件。
java+类名:运行指定类 JVM解析字节码文件变成系统(windows)指令。例如:java Hello,不 需要加.class后缀
配置环境变量
右键(此电脑)--高级系统设置--环境变量
JAVA_HOME:JDK根路径
Path:系统执行文件所在地址
classpath(现在不需要)
包名全部小写,类名首字母大写,常量名全部大写
尽量使用驼峰命名法,每个单词首字母大写
关键字和标识符
关键字:开发语言中已经内定的一些单词,并且赋予了特殊的作用,开发人员只能按照指定的语法进行使用
java关键字所有字母都是小写
标识符:变量名、类名、方法名、参数名、常量名、包名
命名规范:只能由字母,数字,下划线,$组成,
首字符不能是数字(中文语法通过,但是不允许)
不能是关键字
所有标识符可以缩写,但要见名知意
变量和常量
变量:在程序运行阶段,可能发生变化的量
声明变量:声明变量的名字和类型,使用“=”给变量赋值
初始化:给变量第一次赋值,未初始化的变量不能使用
常量:在程序运行阶段,不能发生变化的量
用final修饰->final int num;
数据类型
数据类型:基本数据类型(8个),引用类型
基本数据类型:整数byte,short,int,long
浮点型float,double
字符型char,
布尔型boolean
整数类型取值范围:
byte 1个字节 有8个bit 默认值:0
第一位存储符号:0正数,1负数
-2^7~2^7-1 (-128~127)
负数二进制换算十进制:先空出符号位,再反码加1
short 2个字节 16个二进制位 默认值:0
-2^15~2^15-1
int 4个字节 32个二进制位 默认值:0(默认)
-2^31~2^31-1
long 8个字节 64个二进制位 默认值:0
-2^63~2^63-1
浮点型:
float 单精度浮点型 4个字节 取值大于int 默认值:0.0f
double 双精度浮点型 8个字节 取值大于long 默认值:0.0(默认)
char 2个字节 0~65535(2^15-1)
char c='a'; ' '内只能有一个字符
numChar='\u0000'; 其中的0000是十六进制,最大值'\uFFFF'
boolean 默认值是false->0
ture是1
boolean b=true;占一个字节
boolean[] b_arr={true,false}; 占四个字节
基本数据类型之间的转换
1.隐式转换(程序会自动完成的转换)
取值范围小的类型可以自动转换为取值范围大的类型
byte a=12;
int b=a;
2.强制类型转换
int a=128;
byte b=(byte) a;(反码加1)
00000000 00000000 00000000 10000000
↑符号位
10000000(原数据过长,只能在byte 8位下保存此数据)
↑符号位
11111111(反码不包括符号位)
↑符号位
- 10000000(反码加1)
↑符号位变化(负号)
最后等于128
Boolean类型不能和其他类型转换(强制类型转换也不行)
二进制 0B111=7
八进制 0111=73
十六进制 0x111=273
\转义符
'\r'回车 '\t'制表符 '\n'换行符 '\\'斜线 '\'''单引号 '\"'双引号
输入输出:
System.in 输入流对象
import java.util.Scanner;
Scanner scan=new Scanner(System.in);
System.out.println();
关闭流
scan.close();
注释
//单行注释
/*多行注释
class 类名{} 类结构
一个.java文件只能有一个public 外部类
这个public类必须和文件名一样
*/
/**
* 文档注释
*/
运算符
+ ,-, *, /, %
整数和整数运算,得到的结果是整数
除非有long参与,得到结果是long类型
%结果的正负
A%B的结果和正负号和A一样
优先级:()优先级最高,=优先级最低,*/%高,+-低
自增自减
++--
在整数情况下,a++和a=a+1相同
在其他情况下不同: byte a=12;
a++和a=a+1不同
a++和++a:b=a++;先将a的值赋给表达式,后a+1
b=++a;先a+1,再将a的值赋给表达式
比较运算
< > = >= <= == !=
==在基本数据类型中比较的是:值是否一样
例:12.5==12.5f 结果为true 12==12.0 结果是true
逻辑运算:&&逻辑与运算符 || 逻辑或运算符 !逻辑非运算符
Boolean result=12>23&&23<45; 结果为false
短路现象:多个表达式运算,前面的表达式已经可以明确整个表达式的结果,后面的就不需要再运行