一、环境搭建:
下载时注意安装包平台版本
1、Windows下 下载jdk安装包,安装,安装后第二个点取消不安装 记住安装路径,
右击我的电脑------>属性------>环境变量
在用户变量下新建 JAVA_HOME 变量值为 jdk的安装路径
双击户变量下的 Path 在原变量值前加 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
在用户变量下新建CLASS_PATH 变量值为 %JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
2、Unix下 下载jdk压缩包 sudo chomd 777 /opt 解压至 /opt 目录下
解压命令为
unzip jdk.zip
tar cvf jdk.tar.gz
按下ctrl+alt+t----->cp ~/.bashrc ~/.bashrc.bak(复制原配置文件 以防出错)------>vi .bashrc(编辑配置文件)
在末尾加入
export JAVE_HOME=/opt/jdk 即解压路径
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=. (可不写 在前面加#可注释掉)
退出
source ~/.bashrc 更新配置文件
二、java基础
什么是java
1.编程语言
第一代:机器语言
第二代:汇编语言
第三代:高级语言
c c++ Python PHP c# java
c 面向过程
java 面向对象 JVM GC
2.开发环境
Java
SDK 软件开发工具
JDK Java开发工具
包含JRE
JDK的目录结构
bin:java的相关命令
db:java提供的数据库
demo/sample:java代码的一些示例
include:C语言的头文件等内容
jre:java的运行环境
lib:java所用的基本的jar包
JRE Java运行环境
API 应用程序接口
说明书
3.应用环境
4.部署环境
为什么选择java
快速开发。
一次编译,多处运行,跨平台。
支持动态更新
没有指针,不需要使用代码进行内存管理,纯面向对象
实现:
JVM---java虚拟机啊 GC-----垃圾处理机制 代码安全验证
JVM:将字节码文件转化成机器码
a.java------编译------a.clss
运行------JVM------转化----->CPU
Bytecode 字节码
JVM Java虚拟机
CPU 系统
1.java编写程序,代码
源码 .java
eg:Test.java Hello.java
2.编译 javac 将源码编译成字节码文件
字节码 .class
eg:Test.class Hello.class
字节码 bytecode
3.运行 java
启动JVM,将字节码文件转化成机器码,并运行机器码
GC 垃圾回收机制
GC 是 JVM的的一个系统线程
自动运行
不要认为控制
垃圾回收机制(规则)
一旦满足:垃圾回收机制会将JVM所有被标记为垃圾的对象删除,释放内存(资源)。
例如 JVM占用率80%时 或者 固定时间 还有就是当占用率过高时 一般不 会执行GC 因为GC也占用内存
运行阶段 JVM里 类加载-------->字节码验证--------->JIT运行
1.类加载
运行双亲委托机制
1.1 启动类加载
1.2 扩展类加载
1.3 本地类加载
1.4 自定义类加载
1.5 网络类加载
2.字节码验证
1.1代码要符合JVM的规范
1.2代码不能破坏计算机的系统或者结构
1.3栈不能溢出
1.4方法的参数类型要正确 (当用到类型的时候才验证)
1.5类型转换要正确
3.JIT just in time 即时编译,即边编译边运行 效率高