目录
一.什么是java
-
java是詹姆斯·高斯林于1995年推出的一款面向对象的编程语言.
-
java语言具有跨平台,多线程,高并发等特点.其中,它的跨平台是建立在JVM的基础上的.
-
JVM指java虚拟机,是一个假想计算机,所有的java程序都是需要在JVM上运行的;这样,只需要在不同平台上安装对应版本的JVM,就可以实现同一段代码在不同平台上的运行.
二.java开发平台搭建
1.安装JDK和JRE
JRE是java运行环境,java程序要运行,就必须安装JRE,它里边包含了JVM和一些核心类库
JDK是java开发工具包,,里边包含了JRE和一些工具类
2.配置环境变量
-
如果不配置环境变量,Java代码就只能写在JDK安装目录的Bin目录下,才可以被系统执行Javac/Java命令,运行起来,这在进行复杂项目的时候是很不方便的,而且容易对Bin目录下的可执行文件产生误操作,导致java环境崩溃;
-
通过配置环境变量,就可以在任意目录下进行java代码的编写,并调用Javac/Java命令进行编译和运行.
三.dos常用指令
* 1)盘符号 + ":" ----> 用于切换当前所在磁盘
* 2)cd+空格+目录名/目录路径 ----> 用于进入指定目录
* 3)cd.. ----> 用于退回上级目录
* 4)cd/ ----> 用于退回当前磁盘的根目录
* 5)copy con + ***.格式 ---->创建新文件,输入文件内容后,按ctrl+z结束
* 6)del + 文件名.格式 ----> 删除指定文件
* 7)del + *.格式 ----> 批量删除所有指定格式的文件
* 8)md + 目录名 ----> 新建目录
* 9)rd + 目录名 ----> 删除该目录,若目录不为空,则失败报错
* 10)rd /s + 目录名 ----> 通过询问,删除该目录,可删除非空目录
* 11)rd /s /q + 目录名 ----> 不询问,直接删除该目录,无论目录是否为空
* 12)dir ----> 显示当前目录下所有目录及文件
* 13)ipconfig ----> 显示本机IP地址
* 14)ping + ip地址/域名 ----> 检查是否可与指定地址/域名通信
* 15)calc ----> 打开系统自带计算器
* 16)mspaint ----> 打开系统自带画图工具
四.java基础语法结构
class Demo{ //定义一个类
public static void main(String[] args){ //定义主函数:程序入口
System.out.println("helloworld");
}
}
五.关键字与标识符
- 关键字:被java语言赋予特殊含义的单词.彩色标识
- 标识符:自己定义的类/变量等的名字,要遵循一定规范
标识符命名规范:
只能使用英文字母的大小写,数字,下划线,$,数字不能做开头
类名遵循大驼峰命名法
变量名/方法名遵循小驼峰命名法
常量名所有字母大写,单词之间下划线连接
六:常量与变量
- 常量:不变的量,用final定义
整数常量
小数常量
字符常量
字符串常量
布尔常量
空常量
- 变量:在程序中会改变的量
定义变量三要素:
数据类型 变量名1 = 初始值, 变量名2;
初始值可以在定义时赋予,也可以在使用前赋予
变量数据类型:基本数据类型和引用数据类型
基本数据类型:
字符类 ---- char //参与计算时会转为ASCII值(0:48,A:65,a:97)
字节型 ---- byte
短整型 ---- short
整型 ---- int //整数默认类型
长整型 ---- long //定义时后边加L/l
单精度浮点类型 ---- float //定义时后边加F/f
双精度浮点类型 ---- double //小数默认类型
引用数据类型:
类,数组,接口
数据类型转换:隐式转换和显式转换
- 隐式转换:小取值范围类型自动提升为大取值范围类型
char,byte,short之间不转换,在参与运算时直接提升为int
char/byte/short ----> int ----> long ----> float ----> double
- 显式转换:大取值范围类型强行转换为小取值范围类型(可能存在数据丢失)
格式: 目标数据格式 变量名 = (目标数据格式)(表达式或值)
七.运算符
- 算术运算符
" + " ---- 正号/加/字符串拼接
" - " ---- 负号/减
" * " ---- 乘
" / " ---- 除
" % " ---- 取模(求余)
" ++ " ---- 自增 //在变量之前,先自增,在参与运算;在变量之后相反
" -- " ---- 自减 //在变量之前,先自减,在参与运算;在变量之后相反
- 赋值运算符
" = " ---- 将右边的数值赋值给左边变量
"+=,-=,*=,/=,%=" ----> 扩展的赋值运算符,将变量与右侧值进行运算,再赋给变量,隐含了强制类型转换
- 逻辑运算符
逻辑单与: & ----> 两侧判断皆为true,则输出true,否则为false
逻辑单或: | ----> 两侧判断皆为false,则输出false,否则为true
逻辑异或: ^ ----> 两侧判断结果相同,则输出false,否则为true
逻辑非: ! ----> 判断为true则输出false,判断为false则输出true
逻辑双与:&&和逻辑双或:|| ----> 与逻辑单与/逻辑单或逻辑功能相同,具有"短路"效果
短路效果指当根据左侧判断结果已经可以确定最终输出结果时,右侧语句不在执行
如:逻辑双与左侧为false,则最终结果已确定为false,右侧语句不在执行
- 三元运算符
格式: (判断语句)?判断为真时的值 : 判断为假时的值;
注:三元运算符需要输出一个值,无法执行语句,如输出语句
八.键盘录入数据
import java.util.Scanner; //导包public class Demo {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in); //创建新的扫描器对象
int a = sc.nextInt();//键盘录入整数
double b = sc.nextDouble();//键盘录入小数
String s = sc.next();//键盘录入字符串
}
}
九.流程控制语句
- 顺序结构
程序默认按照从上而下的顺序依次执行
- 分支选择结构
if语句
if(判断表达式){
语句体;
} //若判断语句为真,执行语句体
if...else...语句
if(判断表达式){
语句体1; //若判断表达式为真,则执行语句体1
}else{
语句体2; //若不为真,则执行语句体2
}
if...else if...语句
if(判断表达式1){
语句体1; //若判断表达式1为真,则执行语句体1
}else if(判断表达式2){ //若判断表达式1为假,则判断表达式2
语句体2; //若判断表达式2为真,则执行语句体2
}else if(){... //...
... //...
}else{ //...
语句体n; //若以上所有表达式都判断为假,则执行语句体n
}