文章目录
一、概述
一些需要知道的东西
- Java 创始人 James Gosling
- Java是面向对象的强类型语言
- 与平台无关(可移植、跨平台)
- 支持分布式网络应用:即客户端和服务器分离
Java应用环境的划分 - J2EE(Java 2 Platform Enterprise Edition) 分布式开发
eg.网络电子商务 - J2SE(Java 2 Platform Stand Edition)
嵌入式开发
eg.手机等小型电子设备的软件 - J2ME(Java 2 Platform Micro Edition)
桌面应用软件 (很少用,不如C++)
单机软件
JVM
Java之所以可以实现“一次编译,到处运行”是因为JVM的存在,JVM是java虚拟机 包含了客户机和主机 ,程序员编写的java程序运行在JVM中
Java语言的编译过程
- 程序员编写java源程序(.java文件)
- java编译程序编译为Java字节码文件(.class文件)
- 执行 在JVM虚拟机里存在着不同系统的Java字节码程序,以及能够直接解释Java字节码的CPU)
- 最后在操作系统上进行执行
JVM的三大任务 - 加载代码 ClassLoader(类加载器)从本地存储加载字节码文件
- 校验代码 检查代码的可执行性
- 执行代码
JVM申请的存储空间
java程序的执行会将内存划分为栈空间和堆空间 - 栈空间
先进后出
自动分配 不需要程序员申请
存取数据的效率高
存储空间较小 不能存放大量数据
存储基本类型数据 - 堆空间
存放位置随机
程序员手动去申请
存取数据的效率最低
存储空间大 可以存放大容量数据
JDK
jdk java Development ToolKit(Java开发工具包)整个Java的核心,包括JRE(Java运行环境)和Java的基础类库
三者的包含关系
JDK->JRE->JVM->客户机和主机
以jdk1.8.0_241的文件目录看下jdk所包含的内容
- bin 二进制可执行文件 主要包含了编译器(javac.exe)
- include java和JVM交互用的头文件
- lib 类库
- jre java运行环境
- src 源码压缩包
- 其余是一些描述文件
安装JDK时环境变量的配置
配置环境变量是为了在我们需要编译java环境时,操作系统知道去哪里找对应的程序启动
临时环境变量
Win+R cmd打开命令行
-
set 显示所有环境变量
-
set path 显示当前path的值
-
set test=abc
新增环境变量test 值为abc -
set test=
删除环境变量 -
set path=%path%;D:\Program Files\jdk1.7.0_17\bin
在path当前值的后面追加D:\Program Files\jdk1.7.0_17\bin -
当有多个值时使用分号隔开
set path=java1.8/bin;java10/bin -
引用变量
set JAVA_HOME=D:\Program Files\jdk1.7.0_17
set path=%JAVA_HOME%\bin
临时变量只对当前窗口有效
设置为永久变量
Win+E ->此电脑->右键属性->高级系统设置->环境变量->系统变量->新建JAVA_HOME->path添加%JAVA_HOEM%\bin
第一个Java程序
public class HelloWorld{
public static void main(String[] args){
System.out.println("Hello World");
}
}
代码解释
- public 修饰符 指定当前文件中类名和文件名必须相同
一个源文件只能有一个public类 - class 声明类名称
- main 主方法 程序的入口和出口
一个源文件只能有一个main方法 - public static void main main的模板语法
- String[] args main形参 [] 集合 可接受0或多个参数
- args 参数索引 获取指定位置的参数
eg.当在运行程序时传入参数,并写代码输出在控制台时
而当传参为java HelloWorld "1 2 3"时 “1 2 3”被当作一个参数
在windows命令行运行
命令行当前所在路径为编写的java源程序的路径
#编译
#此条命令执行完成后 路径下会出现HelloWorld.class字节码文件
javac -encoding utf-8 HelloWorld.java
#运行
java HelloWorld
Java的错误类型
主要分为三类
- 编译期错误 代码语法错误 通过使用IDE对标红的代码进行立即改正
- 运行期错误 系统给出错误信息 通过调试解决
- 逻辑错误 程序内部逻辑错误 能够正常运行,但输出结果与预期有误
数据类型
数据的类型决定了变量的存储空间
java的变量一定要进行初始化
变量类型分为内置基本数据类型和引用类型
内置基本数据类型(8种)
- byte (8 bit) 1位符号位 7位指数 -2^7 ~ 2^7-1
默认值 0 - short(16 bit) 1位符号位 -2^15 ~ 2^15-1
默认值0 - int (32 bit) 1位符号 -2^31~ 2^31-1
默认值 0 - long(64 bit) 1位符号位 -2^63 ~ 2^63-1
默认值 0L - float(32 bit) 1位符号位 8位指数 23位尾数
默认值0.0f - double (64 bit) 1位符号 11位指数 52位尾数
默认值 0.0d - char (16 bit) unicode码
默认值 \u0000 - boolean 只有false和t
类型转换
基本规则
- 小转大 自动转换
- 大转小 强制转换
- 浮点数在java里默认是double类型的
- 整数在java里默认是int类型的
ps:这里的大小指的是变量类型所占的空间大小
大转小
小转大
变量
高级语言中使用变量来管理内存的数据
#定义格式
数据类型 变量名= 初始值;
eg
int i=1;
# i 可变的量
# 1 字面量 变量中存放的具体数据
变量的命名规则
- 以字母、下划线、 开 头 , 后 面 由 字 母 、 数 字 、 开头,后面由字母、数字、 开头,后面由字母、数字、、下划线组成
- 变量名应该见名知意
- 变量名可以使用中文 但不建议使用
- 变量名的首字母不建议使用大写
- 多个单词组成变量名时,使用驼峰命名法
- 变量名不能使用关键字
运算符
算术运算符
加、减、乘、除、取余、自增、自减与数学中的相同
eg.
关系运算符
- == 判断等于
- != 不等于
-
大于
- < 小于
-
= 大于等于
- <= 小于等于
逻辑运算符
- && 与
- || 或
- !非
&&和 &都表示与关系
|| 和 | 都表示或关系
二者的区别在于&&和 || 使用短路运算方式
eg.
位运算符
- & 按位与
- | 按位或
- ^ 按位异或
- ~ 按位取反
- << 左移 相当于乘二运算
-
右移 相当于除二运算
eg.
赋值运算符和三目运算符
- = 赋值
- 三目运算符
条件判断式?表达式1:表达式2
条件为真 执行表达式1
条件为假 执行表达式2
eg.