JAVA基础
一 了解JAVA
Pascal之父Nicklaus Wirth:“Algorithms+Data Structures=Programs”
译:应用程序=算法+数据结构
1.常见的Dos命令
dir
:列出当前目录下的文件夹md
:创建目录rd
:删除目录cd
:进入指定目录cd..
:退回上一级目录cd\
:退回到根目录del
:删除文件
2.Java语言的特点
面向对象性:
两个要素:类 ,对象
三个特征:封装 ,继承 , 多态
健壮性:
去除了C语言中的指针
自动的垃圾回收机制
跨平台性:
功劳归功于JVM(JAVA虚拟机)
Wtire once,Run anywhere.
一次编译,到处运行
3.JDK/JRE/JVM的关系
JDK(Java Development Kit:JAVA的软件开发工具包)=JRE(JAVA运行环境)+开发工具集
JRE=JVM(JAVA虚拟机)+javaSE标准类库
4.path环境变量配置
为什么要配置环境变量:
希望Java开发工具(javac.exe,java.exe)在任意文件夹下运行。
如何配置:
属性-高级系统设置-环境变量新建'JAVA_HOME'变量,变量值为安装的JAVA的JDK所在地址.
在path变量中添加'%JAVA_HOME%\bin'即可.
二 基本语法
1.java关键字的使用
定义:被java语言赋予了特殊含义,用作专门用途的字符串(单词)
特点:关键词所有的字母都小写
2.保留字:现有java版本尚未使用
具体有哪些保留字:goto / const
注意:自己命名标识符时尽量避免使用这些保留字
3.标识符的使用
定义:java对各种变量,方法,类等要素命名时使用的字符序列成为标识符.(凡是可以自己起名的都是标识符)
涉及到的结构:包名/类名/接口名/变量名/方法名/常量名(加粗为必须要遵守,否则编译不通过)
规则:
- 由24个英文字母大小写,0-9,
_
或$
组成 - 数字不可以开头
- 不可以使用关键字和保留字,但是可以包含关键字和保留字
- java严格区分大小写,长度无限制
- 标识符不能包含空格
规范:
包名
:多单词组成时所有字母都小写.例:xxyyzz
类名
,接口名
:多单词组成是,所有单词首字母大写.例:XxYyZz
变量名
,方法名
:多单词组成时,第一个单词首字母小写,后续首字母大写.例:xxYyZz
常量名
:所有首字母都大写,多单词组成时用下划线连接.例:XX_YY_ZZ
- 起名时为了提高阅读性,要做到见名知意
4.变量*
4.1 变量的概念
计算机内存中的一块存储空间,是存储数据的基本单元.
4.2变量的定义流程
声明: 数据类型 变量名; 例:int money;
赋值: 变量名= 值; 例:money = 100;
应用: System.out.println(变量名);
4.3变量的定义方式
声明变量的3种方式:
- 先声明,再赋值:【常用】
- 数据类型 变量名;
- 变量名 = 值;
- 声明并赋值:【常用】
- 数据类型 变量名 = 值;
- 多个同类型变量的声明与赋值:【了解】
- 数据类型 变量1 , 变量2 , 变量3 = 值3 , 变量4 , 变量5 = 值5;
5.数据类型*
5.1基本数据类型(primitive type)
1.整型:byte(1字节 = 8bit)、short(2字节)、int(4字节)、long(8字节)
byte范围:-128~127
声明:long型变量,必须要以"l"或者"L"结尾
通常,定义整型变量时,使用int型。
整型的常量,默认类型时:int
2.浮点型:float(4字节)/long(8字节)
浮点型,表示带小数点的数值
float表示数值的范围比long还大
定义float类型时,变量末尾要以"f"或"F"结尾
定义浮点型变量时,使用double型。
浮点型常量,默认类型为:double
3.字符型:char(1个字符=2字节)
定义char型变量通常使用一对单引号''
内部只能写一个字符
表示方式:1.声明一个字符;2.转义字符;3.直接使用 Unicode 值表示字符型常量
4.布尔型:boolean
只能取两个值之一: true 、 false
常常在条件判断、循环结构中使用
5.2引用数据类型(字符串)
String类型 取值范围:任何" "之间的字面
值字符编码:Unicode字符序列
6.类型转换
①自动类型转换(只涉及7种基本数据类型)
结论:当容量小的数据类型与容量大的数据类型的变量做运算时,结果自动提升为容量大的数据类型。
说明:此时的容量大小指的是,表示数的范围的大和小,比如:float容量要大于long的容量。
byte、char、short -->int -->long -->float -->double
特别:当byte、char、short三种类型的变量做运算时,结果为int类型。
②强制类型转换(只涉及7种基本数据类型)
强制类型转换:自动类型提升运算的逆运算。
1.需要使用强转符:()
2.注意点:强制类型转换,可能导致精度损失。
③String与8种基本数据类型间的运算
String属于引用数据类型,翻译为:字符串。
声明String类型变量时,使用一对双引号""
String可以和8种基本类型变量做运算,且运算只能是连接运算:+
String运算结果仍然是String类型。
7.运算符*
7.1算数运算符
操作符 | 描述 |
---|---|
+ | 加 , 求和 |
- | 减 , 求差 |
* | 乘 , 求积 |
/ | 除 , 求商 |
% | 模 , 取余 |
++ | 递增 , 变量值+1 |
-- | 递减 , 变量值-1 |
关于++/--在前++--在后的问题
++在前先做自增再赋值,++在后先做赋值再自增;
--同理
7.2赋值运算符
操作符 | 描述 |
---|---|
= | 右边直接赋值给左边 |
+= | 左边加右边然后赋值 |
-= | 左边减右边然后赋值 |
*= | 左边乘右边后赋值 |
/= | 左边除右边后赋值 |
%= | 求余后赋值 |
7.3关系运算符
操作符 | 描述 |
---|---|
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
== | 等于(注意与=赋值区分) |
!= | 不等于 |
7.4逻辑运算符
操作符 | 语义 | 描述 |
---|---|---|
&& | 与(并且) | 同为真则为真,有假则假 |
|| | 或(或者) | 有真就为真,全假则假 |
! | 非(取反) | 真即是假,假则为真 |
&&与&的区别:
共同点:有false则false,必须同时满足条件
不同点:逻辑单与&在判断左边为false时右边依然执行;而逻辑双与在判断左边为false时,会造成短路
效果,右边不参与运算,在开发中常用,执行效率高.
7.5三元运算符
操作符 | 语义 | 描述 |
---|---|---|
? : | 布尔表达式?值1:值2 | 表达式为真时,输出值1; 表达式为假时,输出值2 |
三 流程控制
1.分支结构
①if-else条件判断结构
三种结构:
//结构一:
if(条件表达式){
执行表达式
}
//结构二:二选一
if(条件表达式){
执行表达式1
}else{
执行表达式2
}
//结构三:多选一
if(条件表达式){
执行表达式3
}else if(条件表达式1){
执行表达式4
}else if(条件表达式2){
执行表达式5
}
...
else{
执行表达式n
}
//else 结构是可选的
②switch-case选择结构
switch(表达式){
case 常量1:
执行语句1;
//break;
case 常量2:
执行语句2:
...
default:
执行语句n;
//break;
}
//说明:根据switch表达式中的值,依次匹配各个case中的常量。一旦匹配成功,则进入各个相应的case结构中,调用其执行语句。当调用完执行语句以后,则仍然继续向下执行其他case结构中的执行语句,直到遇到break关键字或此switch-case末尾结束。
//break,可以使用在switch-case结构中,表示一旦执行到此关键字,就跳出switch-case结构
//switch结构中的表达式,只能是如下的六种数据类型之一:byte、short、char、int、枚举类型(jdk5.0新增)、String类型(jdk7.0新增)
2.补充:Scanner用法
/*
如何从键盘获取不同类型的变量:需要使用Scanner类
具体实现步骤:
1.导包:import java.util.Scanner
2.Scanner的实例化:Scanner scan = new Scanner(System.in);
3.调用Scanner类的相关方法( next()/nextxxx() ),来获取指定类型的变量
注意:
需要根据相应的方法来输入指定类型的值,如果输入的数据类型与要求的类型不匹配时,会报异常:InputMisMatchException
导致程序中止。
*/
//1.导包:import java.util.Scanner
import java.util.Scanner;
class ScannerTest{
public static void main(String[] args){
//2.Scanner的实例化
Scanner scan = new Scanner(System.in);
//3.调用Scanner类的相关方法
System.out.println("请输入你的姓名:");
String name = scan.next();
System.out.println(name);
System.out.println("请输入你的年龄:");
int num = scan.nextInt();
System.out.println(num);
System.out.println("请输入你的体重:");
double weight = scan.nextDouble();
System.out.println(weight);
System.out.println("你是否相中了我?(true/false)");
boolean man = scan.nextBoolean();
System.out.println(man);
//对于char型的获取,Scanner没有提供相关的方法,只能获取一个字符串
System.out.println("请输入你的性别:(男/女)");
String gender = scan.next();//"男"
char genderChar = gender.charAt(0);//获取索引为0位置上的字符
System.out.println(genderChar);
}
}
3.循环结构*
1)循环结构四要素
①初始化条件
②循环条件 ————>是boolean类型
③循环体
④迭代条件
说明:通常情况下,循环结束都是从条件二中循环条件范围false了。
2)三种循环结构
①for循环
for( ①初始化语句 ; ②循环条件 ; ④循环操作 ){
③循环体
}
执行过程:① ————> ② ————> ③ ————> ④ ————> ② ————> ③ .... ②不满足————>循环结束
执行过程
- 首次执行初始部分(仅一次)。
- 对布尔表达式进行判断,结果为true,则执行逻辑代码。
- 本次执行完毕后,执行迭代部分,再次判断,结果仍旧为true,则再次执行逻辑代码。
- 直至布尔表达式的结果为false时,才会退出循环结构,执行后续代码。
②while循环
初始化语句
while(循环条件){
循环体;
循环操作;
}
执行流程:
- 先对布尔表达式进行判断,结果为true,则执行逻辑代码。
- 本次执行完毕后,再次进行判断,结果仍旧为true,则再次执行逻辑代码。
- 直至布尔表达式的结果为false时,才会退出循环结构,执行后续代码。
③do-while循环
初始化语句;
do{
循环体(循环操作)
}while(循环条件);
执行流程:
- 先执行一次循环操作之后,再进行布尔表达式的判断。
- 如果结果为true,则再次执行循环操作。
- 如果结果为false,才会退出循环结构,执行后续代码。
3)三种循环的区别
①三种循环的区别
for循环和while循环先判断条件是否成立,然后决定是否执行循环体(先判断后执行)
do-while循环则是先执行一次循环体,然后判断条件是否成立,是否继续执行循环体(先执行后判断)
②for和while的区别
条件控制语句控制的自增变量,因为归属for循环
的语句结构中,在for循环结束后,就不能再被访问到了
条件控制语句所控制的自增变量,对于while循环
来说不属于其语法结构中,再while循环结束后,该变量还可以继续使用
③死循环格式
for(;;){}
while(true){} //常用
do{}while{true};
4.流程控制关键字
①流程控制break:终止、跳出switch、循环结构.
②流程控制continue:结束本次、进入下一次循环。
四 Java方法(method)
Java方法介绍:(method)是将具有独立功能的代码块组织成一个整体,使具有特殊功能的代码及,达到代码复用的效果,减少main方法中代码冗余
标签:JAVA,变量,数据类型,基础,循环,执行,表达式,Scanner From: https://www.cnblogs.com/jc1126/p/17590036.html