环境
jdk,jvm,jre
三者之间的关系
jdk >jre >jvm
//bin
包含的都是exe文件
//include
c文件,因为java底层都是用c语言写的
//jre:java运行环境
核心类库
里面包含jvm的一些配置文件
日志文件
//lib
核心工具类
//src.zip
源码文件
//javafx-src.zip
扩展源码文件
环境变量配置过程
- 为什么要配置环境变量
- 为了在任何目录下都能执行javac编译与java运行命令
- 当系统执行命令时,首先在当面目录下寻找,找不到就到环境变量下的path中找,故需要配置环境变量.在要运行的文件目录下执行命令
- 两种方式
- 方式一:path中直接配置bin目录
- 方式二:JAVA_HOME中写入jdk目录,path中引用%JAVA_HOME%\bin
如果jdk路径改变,修改JAVA_HOME不用修改path,防止path发生错误
常见指令
不区分大小写
//切换目录
c: //切换盘符
cd.. //切换上一级目录
cd softmgr\notepad++\prctice //切换至practice
cd\ //切换至本盘符的根目录下
//创建文件
md java //当前目录下创建java文件夹
mkdir java //linux中创建java文件夹
cd java
copy con helloworld.java //java目录下创建helloworld.java文件
输入内容 //内容输入结束按ctrl + z 保存退出
//删除文件
del helloworld.java //删除当前文件夹下的helloworld.java文件
del *.txt //删除该目录下的所有后缀为txt的文件
rd java //删除当前目录下的java文件(空目录)
rd java /s /q //暴力删除该文件包括其内容
rm -rf //linux下递归删除文件与内容
//一些其他常见命令
cls //清除屏幕
ipconfig //查看本机的ip
control //打开控制面板
calc //打开计算器
mspaint //打开绘画
ping ip地址 //查看本机是否通信
dir //查看当前目录下的一些信息
//dos命令运行java文件
//首先创建一个java后缀文件里面补全内容
//cd到java文件当前目录路径
javac 文件名.java //编译完成同目录下生成后缀为.class的字节码文件
java 类名 //运行生成结果
了解java
诞生于1995年,James Gosling
java 版本
- javaSE
- 桌面应用程序和商务应用程序
- javaME
- 嵌入式应用设备
- javaEE
- 企业级开发
软件结构
- B/S
浏览器-服务器:用户只需要有浏览器就可以使用服务器的功能 - C/S
客户端-服务器:用户需要更新客户端,重装程序才可以使用服务器更新后的功能
java语法规范
注释
便于阅读代码,同时便于代码排错
- 单行注释
- //输入注释内容
- 多行注释
- /*
输入注释内容
*/
- /*
- 文档注释
- /**
会被jvm解析成为文档说明书
*/
- /**
关键字
java中具有特定含义的单词,变量名与类型不能与其同名
例,public,class,void,static,if…
标识符
- 字母数字下划线美元符号组成,数字不能开头
- 不能与关键字同名
- 见名知意
类和接口遵循大驼峰命名法
变量,方法遵循小驼峰命名法
常量
- 字面值常量
- 字符常量 ‘a’
- 字符串常量 “hello”
- 整数常量 3
- 小数常量 3.0
- 布尔常量 true
- 空常量 null
- 自定义常量
- final
数据类型
- 基本数据类型
- 整型
- byte (1字节):-128~127 循环取值
- short(2字节)
- int(4字节)默认
- long(8字节): long a = 30L/l
- 浮点型
- float(4字节): float b = 80.0F/f
- double(8字节)默认
- 字符型 char a = ‘a’;
- 布尔型 boolean b = true
- 整型
- 引用数据类型
- 数组
- 类
- 接口
类型转换
byte,char,short---->int----->long---->float------>double
byte,short,char参与运算自动转换为int类型
- 隐式转换
- 字节长度短的自动转换为长的,由编译器自动完成
+=,-=,*=可以自动完成强转而不报错
- 字节长度短的自动转换为长的,由编译器自动完成
- 显式转换
- 字节长度长的无法自动转换为短的,会报错,就需要强转
例,int b = 2;
short a = (short) (b * 3);
- 字节长度长的无法自动转换为短的,会报错,就需要强转
进制
短除法,反向取余
二进制: 0B
八进制: 0
十六进制: 0x
//8421法:十进制转换二进制
拆解数字为128,64,32,16,8,4,2,1组合
然后对应数字赋值1,未对应数字赋0,组合即可
//二进制转化八进制
从右往左每三位一个单位,每个单位十进制换算,组合起来
//二进制转换十六进制
从右往左每四位取一个单位,同上
运算符
- 自增与自减
- b = a++ //
a赋值给b;然后a自增
- b = --a //
a自减;然后赋值给
- b = a++ //
- 逻辑运算符
^ 异或:相同为flase,相反为true
- && 与&:有flase则flase,
- || 与|:有true则ture
&&与||具有短路效应,可以提高代码运行效率
- 三元运算符
int result = a > b ? a : b;
语句
- 顺序语句
- 判断语句
if...else与三元运算符的区别
if语句范围大,可以写输出语句,但是三元运算符最后得到的结果只能进行赋值,无法输出语句