1.什么是程序
程序是为了模拟现实世界,解决现实世界问题的使用计算机语言编写的一系列有序的指令集合。
2.java的历史
2014由甲骨文发布jdk8.0。
3.java的语言特点
面向对象。(贴近人类思维,模拟现实世界,解决现实问题)
简单性(自动gc管理机制、不易造成内存溢出)
跨平台(先将源代码编译成平台中立的.class字节码文件,可以由各个系统的jvm去解释执行)
4.执行机制
编译执行:
将源文件编译成平台相关的机器码文件,一次编译多次执行。执行效率高,不可跨平台。
解释执行:
将源文件交给不同的平台独有的解释器。一行一行执行。
执行效率低,可以跨平台。
java执行机制:
先编译,再解释
将源文件编译成字节码文件(平台中立文件.class),再将字节码文件进行解释执行。一次编写到处运行。
jvm:java虚拟机
使用软件在不同操作系统中,模拟相同的环境。
jre:运行环境
包含jvm和解释器,完整的java运行环境。
jdk:开发工具包
包含jre和类库和开发工具包(编译器+调试工具)
2.环境变量配置
通过高级系统设置,在用户变量或者系统变量中添加JAVA_HOME变量将jdk当前安装目录填入。
接着添加CLASSPATH变量 .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar; 紧接着再系统PATH变量中加入 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin; 将bin目录存入进去。
环境变量的目的就是为了能让电脑找到我们的jdk
2.1常用dos命令操作
更换盘符:d:
查看当前目录下的文件及文件夹:dir
进入文件夹:cd文件夹的名字
返回上一级目录:cd ../
同级目录:cd ./
返回根目录:cd /
清空屏幕:cls
删除文件:del,删除不了文件夹
删除文件夹:rd 文件夹名称
退出:exit
chcp 65001 设置为utf-8 为多国都认识的语言统一标准。
javac 源文件名称.java编译
java 类名 运行
2.2 类的阐述
一个源文件可以定义多个类。
每个类都会生成独立的.class文件
一个源文件只能有一个公开类。
2.3 package
带包编译:javac -d .源文件名称.java
带包运行:java 包名.类名
3.java语言基础
内存:内存就是存储数据或程序用的,他是一块瞬时状态的存储空间,他的容量根据内存条决定。
JVM默认分配的物理内存容量是计算机内存的1/8;
1B(Byte字节)=8bit(一个b即一个位就代表一个0或1(即二进制),
3.1 变量
计算机内存的一块存储空间,是存储数据的基本单位。
声明变量的3种方式: 先声明,再赋值:
【常用】 数据类型 变量名; 变量名 = 值; 声明并赋值:
【常用】 数据类型 变量名 = 值; 多个同类型变量的声明与赋值:
【了解】 数据类型 变量1 , 变量2 , 变量3 = 值3 , 变量4 , 变量5 = 值5;
变量名首字母必须为字母(a-z A-Z),下划线(_),或者美元符号($)开始,
后面每个单词字母大写,或者可以跟数字,数字不能开头。
4数据类型
整形分为
声明long型变量,必须以"l"或"L"结尾 通常定义整型变量时,使用int型。
整型默认类型是:int型
浮点型分为
float表示数值的范围比long还大
布尔型 boolean
只能取两个值之一:true 、 false 常常在条件判断、循环结构中使用
字符型 char
ASCII(American Standard Code for Information Interchange)美国信息交换标准码。
基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。
ASCII是最通用的信息交换标准,为英文字符设定了统一并且唯一的二进制编码。
Unicode编码 Unicode(万国码)是计算机科学领域里的一项业界标准,包括字符集、编码方案等。
它为每种语言中的每个字符设定了统一并且唯一的二进制编码。 以满足跨语言、跨平台进行文本转换、处理的要求,(其中包含了ASCII编码)。
Unicode中每个字符都对应一个二进制整数,可以使用多种方式赋值。
字符赋值:char c1 = 'A';(通过''描述为字符赋值)
整数赋值:char c2 = 65;(通过十进制数65在字符集中对应的字符赋值)
进制赋值:char c3 = '\u0041';(通过十六进制数41在字符集中所对应的字符赋值)
转义字符:\
引用数据类型(字符串)
自动类型转换:小自动转达大。
自动类型转换: 两种类型相互兼容。 数值类型(整数和浮点数)互相兼容。
目标类型大于源类型。 double大于int。
强制类型转换:大转小,容易丢失精度。
5:运算符
算数运算符
赋值运算符
逻辑运算符
关系运算符
三元运算符
()-> 算数运算符 -> 关系运算符 -> 逻辑运算符 -> 赋值运算符
5.1 自动类型提升
进行算数运算时: 两个操作数有一个为double,计算结果提升为double。
如果操作数中没有double,有一个为float,计算结果提升为float。
如果操作数中没有float,有一个为long,计算结果提升为long。
如果操作数中没有long,有一个为int,计算结果提升为int。
如果操作数中没有int,均为short或byte,计算结果仍旧提升为int。
注意:任何类型与String相加(+)时,实为拼接,其结果自动提升为String。
6.选择结构与分支结构
流程图
选择结构
概念:根据已知条件进行逻辑判断,满足条件后执行相应操作。
基本if if-else
多重if:适用区间判断,但要保证条件顺序(从大到小、从小到大)。
嵌套if:
switch分支结构
switch结构中的表达式,只能是如下的6种数据类型之一: byte 、short、char、int、枚举类 型(JDK5.0新增)、String类型(JDK7.0新增)
case 之后只能声明常量。不能声明范围。
Switch选择结构是以等值判断,在条件不是区间式的时候使用switch更方便高效。
当表达式都不是switch中的value中的值,就会执行default:的语句
局部变量:概念:声明在方法内部的变量,必须先赋值再使用。
作用范围:定义行开始到所在的代码块结束。
循环结构
通过某个条件,重复的执行一段逻辑代码。
循环都包含四要素
1.初始部分:用以判断的变量
2.循环条件:决定是否继续循环的依据。
3.循环操作:需要重复执行的逻辑代码或任务。
4.迭代部分:控制循环条件改变的增量。
while:首次即有入口条件,先判断、再执行,适用于循环次数不明确的情况。
do-while
先执行一次循环操作之后,再进行布尔表达式的判断。适用于循环次数不明确的情况
while和do-while的区别 都是循环。 执行次序不同 初识情况条件不满足情况下。
While循环一次都不会执行。 do-while至少会执行一次。
for循环
流程 1.初始部分(仅一次)2.条件判断 3.循环操作 4.迭代部分 条件判断 循环操作
首次即有入口条件,先判断、再执行,适用于循环次数明确的情况。
7.流程控制
流程控制 break:终止、跳出switch、循环结构。
流程控制 continue:结束本次,进入下一次循环。
break有两种形式:不带标号和带标号。
不带标号:跳出当前循环,继续执行循环体下面的语句;
带标号:跳出当前循环并跳出标号所指的循环,继续执行所指的循环体下面的语句。