基本dos指令
Java相关
诞生于1995, 詹姆斯高斯林
- javaSE--针对桌面应用程序和商务应用程序的解决方案
- JavaME--针对嵌入式设备的一种解决方案; 移动端 Android
- JavaEE--针对企业开发环境的一种解决方案;
Java环境搭建及path变量配置
JVM--Java虚拟机
JRE--jvm及Java的核心类库
JDK--jre及工具库
JDK,JRE,JVM三者之间的关系
三者之间的关系: Jdk > Jre >Jvm,
JVM: Java虚拟机,是一个假象计算机,有自己的内存分配以及自己的存储方式,所有 的java程序要被 Jvm进行编译和运行;
JRE: Java 运行环境 ,里面包含jvm以及运行时的核心类库(lib目录---rt.jar包)
JDK: Java 开发工具包(包含了jre以及一些工具类库---lib--->tools.jar) 举例:Jdk提供了一个类:Math:数学运算的工具类
在JDK中
-
bin目录:
javac.exe 编译
java.exe 运行javadoc.exe---解析 文档注释--产生文档说明书(面向对象中使用)
logging.properties---日志配置文件
rt.jar--运行时的核心类库 -
lib目录:
tools.jar--工具类库 -
src.zip:
源码文件, 其中包含Java核心类及扩展类的源码
配置环境变量
如果不配置系统环境变量的中的path变量,需要每一次编写java文件都需要在 jdk安装目录的bin目录去操作,以后不能将所有的.java文件都存储在jdk安装目录的bin 目录,如果有的java文件,删除的时候导致将bin目录里面的exe文件不小心删除,jdk软件 出问题了;
目的: 就是为了在其他目录下也能javac进行java文件的编译,使用java进行java类的运行;
两种配置方式
方式1:
复制jdk安装目录的bin目录的路径,直接将路径放在系统变量--->path 中
- 弊端1:当jdk升级,需要手动更改path的路径,可能导致误删了其他系统变量
- 弊端2:后期会使用tomcat服务器,使用java编写的,启动的时候会在系统变量 寻找一个变量JAVA_HOME,启动直接闪退(启动失败了)
方式2:
直接系统变量---->新建一个变量:JAVA_HOME 变量值:Jdk的安装目录 path:新建一个路径 %JAVA_HOME%\bin
- 好处:
以后不需要手动更改path,防止数据被误删;
jdk升级,只需要改动 JAVA_HOME的路径;
关键字 ---特定含义的单词(全小写)
class/public/static/void
标识符(重点)
1.命名
对"类 接口"---大驼峰命名法
对"变量及方法"---小驼峰命名法
对"常量"
标识符的组成规则
1)可以是26个英文字母(大小写都可以)
2)可以是0-9的数字
3)可以是$或者_下划线
4)Java定义标识符:严格区分大小写
注意事项:
- 定义标识符不能
数字开头 - 不能是
Java关键字 - 起名字---见名知意
常量
- 字面值常量
(1) 字符串常量 - (2) 字符常量
-
注意事项:
① 当字符单独使用时---代表对应字符'a' 'A' '0'②当字符参与运算,键盘每一键'字符
---找ASCII码表'a'---97 小写
'A'---65 大写
'0'---48 常数 - 自定义常量---跟一个关键字final
- 整数常量--还包含进制
- 小数常量
- 布尔常量
- 空常量
变量及数据类型_类型转换
变量: 程序执行过程中,值一直发生改变的量
变量三要素
变量限定----数据类型
变量名----遵循标识符的规范要求
初始化值----和数据类型保持一致
数据类型划分
- 基本类型
四类八种
第一类----整数类型: byte, short, int(默认), long
第二类----浮点类型: float, double
第三类----字符类型: char
第四类----boolean 不参与计算
- 引用类型(面向对象中): 数组 类 接口
类型转换
1. Java隐式转换(Java数据默认提升)
byte short char 三者之间不互相转换,一旦参与运算时, 优先提升为int类型
- byte short char---->int(考点)--->long--->float
int a = 3 ;
byte b = 4 ;
int result = a + b ;System.out.println("result:"+result) ;
2. Java显式转换(强制转换)
不仅适用于基本类型, 是适用于引用数据类型(面向对象中的"多态")
- 将大的类型范围---->转换为小的类型范围
格式:
目标数据类型 变量名 = (目标数据类型)(表达式或初始化值)
int a = 3 ;
byte b = 4 ;
byte result = (byte)(a+b) ;System.out.println("result:"+reuslt) ;
运算符
1.算术运算符
① 基本算术运算符:
+ ,-, *, /, %(模:求余数)
注意事项:
/ 是取整
% 是求余数的
出现小数, 分子分母上给乘以double类型的值
② 扩展的算术运算符: ++, --
情况1: 单独使用:比较简单
无论++或者--在数据的前面还是后面,都是对这个变量本身自增1或者自减1
情况2 : 参与运算使用(重点)
1 ) 如果++或者--在数据的前面,先进行自增或者自减,然后参与运算;
2 ) 如果++或者--在数据的后面,先运算,然后进行自增或者自减
2.赋值运算符
基本赋值运算符 =
扩值的赋值运算符 +=, -=, * =, /=, %=
在扩展的赋值运算符里面,
+=,-=,*=,/=,%= 隐藏了强制类型转换
3.比较运算符
<, >, >=, <=, ==, !=(不等于)
无论这些符号连接的表达式是简单的还是复杂, 结果应该布尔类型, true/false
表达式:
这些运算符号---连接起来多个变量
注意:
== 不能写成 =
4.逻辑运算符
在实际开发中,针对某些业务场景
(登录/注册,判断用户是否登录成功了或者判断用户是否注册成功)进行业务逻辑判断;
-
基本的逻辑运算符
①逻辑单与& ----并列关系
/ 特点:有false,则false;
②逻辑单或| ----或的关系
/ 特点:有true,则true
③逻辑异或^
/特点:
相同则为false,不同则为true
简单记忆:男女关系男女 女男 true
女女 男男 false④逻辑非!
非true,则false;非false,则true;偶数给非是它本身 -
逻辑运算符---扩展符号
(1) 逻辑双与 && ----并列关系, 必须同时满足才成立
(2)逻辑双或 || ---- 或的关系:有一个满足条件 成立; -
逻辑双与&& 和 逻辑单与&的区别?
共同点: 有false则false
不同点: 逻辑双与&&具有短路效果,
当&&连接的表达式左边有false, 则右边不执行了
实际开发中: &&以及||使用最多,他们可以提高程序的执行效率;
逻辑双或||
|| 连接的表达式左边true,右边不执行了(具有短路效果),有true,则true
5.三元运算符(三目运算符)
-
格式:
(简单或者复杂的表达式)? 执行成立的结果:执行不成立的结果;
-
执行流程:
1)先判断表达式是true还是false, 如果是true, 执行成立的 结果;
2)如果是false, 执行不成立的结果;
进制
键盘录入数据
导包---创建键盘录入对象---提示并录入数据---固定写法
======
import java.util.Scanner ;
class ScannerDemo{
public static void main(String[ ] args){
Scanner sc = new Scanner(System.in) ;System.out.println("请您输入一个数据:") ;
int number = sc.nextInt() ;
System.out.println("您输入的数据是:"+number) ;
流程控制语句
①选择结构语句
if语句(三类)
Type1
第一种格式的执行流程
if(表达式){
语句;
}
1)判断表达式是否成立,如果成立,则执行语句,否则不执行;
注意事项:
if( )后面不能带分号
记住:有分号的地方就不能{,有{的地方,不能有分号;
Type2
第二种格式
if(表达式){
语句1 ...;
}else{
语句2...;
}
执行流程:
1)首先判断表达式是否成立,如果成立,则执行语句1...
2)如果不成立,执行语句2...
需求:
键盘录入两个数据,比较两个数据最大值;
Type3
if...else...流程控制语句
if(表达式){ 语句1; 这里面的语句可能是具体的变量携带的结果或者是输出语句; }else{ 语句2; }
- if...else...和三元运算符的区别?(重点)
区别:
共同点:都是选择一个结果;(带有选择判断思想)
不同点:
1)格式不同
三元运算符---是一个运算符 ---应该要出来具体的结果值
(表达式)?执行true的结果:执行false的结果
2)范围不同
if...else...大于三元运算符:
三元运算符的能够实现,一定能够使用if...else...实现
但是,if...else...不一定能够使用三元
-
引入 if...else...嵌套
if(表达式1){ if(表达式2){ 语句1; }else{ 语句2; } }eles{ if(表达式3){ 语句3...; }else{ 语句4...; } }
需求:
键盘录入三个数据(int类型),获取三个数据最大值;
顺序结构语句:
从进入到程序的入口之后,代码从上而下依次加载(最简单的一种结构)
举例: 从main进来之后,直接去输出,依次输出...
System.exit(0) ; -----表示 终止jvm