java部分基础知识点1
1. dos的基本操作命令
盘符切换:
盘符号(不区分大小写):
举例: d:
罗列当前目录下的所有文件以及文件夹:dir
进入指定的目录:cd
回退上一级:cd..
回退根目录:cd\
创建目录: md 文件夹名称
创建文件 :copy con 文件名称
内容(ctrl+Z) 回车
删除文件: del 单个文件
del *.txt
删除目录:rd 文件夹名称(空目录)
删除带内容的目录:
rd /s 文件夹名称:询问是否删除
rd /s /q :暴力删除
ipconfig
ping ip地址
2.path环境变量的配置
1)将jdk安装目录的bin目录路径作为path变量中的某个变量直接引用!
2)系统变量:
变量名:JAVA_HOME
变量值:Jdk的安装目录
在path:引入JAVA_HOME变量
%JAVA_HOME%\bin
3. 常量以及分类
常量:在程序运行过程中,其值不发生改变!
"hello" (常量池)
分为两大类:
1)字面值常量
字符串常量
字符常量
'a' ,'A','0':单独使用输出的字符本身
参与运算:找ASCII码表的值
'A':65
'a':97
'0':48
整数常量
小数常量
布尔常量
空常量
2)自定义常量(居多) :和final有关系
4.十进制到任意进制的转换
1). 8421码(快速转换法:快速的将十进制—二进制 二进制—十进制)
x进制 - y进制
分步完成:
x进制----十进制
十进制---y进制
举例:二进制 八进制
2). 有符号位的数据表示法(计算机底层进行计算:采用补码进行计算)
正数/负数:原,反,补
5.变量
1.变量的概念
2.变量的三要素
数据类型
变量名称(遵循标识符的规则)
初始化值
3.变量的数据类型的划分
两大类:
基本数类型:四类八种
整数类型:默认int
byte 范围:-128-127 1个字节
short 2个
int 4
long 8
浮点类型:默认double
float 4
double 8
字符类型:char 2个字节
布尔类型
boolean (true/false) 占1个字节
引用数据类型:
数组,接口,类(具体类,抽象类)
4.隐式转换以及显示转换
byte,short,char三者之间不转换,一旦运算,先转换为int类型进行计算!
标数据类型(目前基本类型) 变量名 = (目标数据类型)初始化值;
6.运算符
1. 算术运算符
++/--
参与运算:
++/--在变量前面:先进行自增或者自减,然后参与运算
++/--在后面:先运算,在自增或者自减
2. 赋值运算符
扩展的赋值运算符:
+=,*=,-=,/=,%=...
隐藏了强制类型转换
short s = 1 ;
s+=1;===>等价于 : s = (short)(s+1) ;
3.比较运算符(关系运算符)
比较运算符---关系运算符
>,<,>=,<=,==,!=
变量x范围:
数学表达式: 3<=x<=5
Java表表达式:
x>=3 &&(逻辑运算符) x<=5
|| (逻辑运算符)
比较运算符:连接的表达式无论是简单还是复杂的,最终结果要么true/false
注意事项:
==不能写成=
4.逻辑运算符
逻辑单与&:有false,则false
逻辑单或|:有true,则true
逻辑异或^:相同则为false,不同则为true
逻辑非!:非true,false;非false,则true
偶数个非是它本身!
逻辑单与&和逻辑双与&&的区别?
逻辑单与和逻辑双与:
都表示并列关系,有false,则false!
逻辑双与&&连接的表达式:左边为false,右边就不执行了(具有短路效果)
5.位运算符
位异或的特点以及<<,>>的特点?
位异或:^ 相同则为0,不同则为1
一个数据被另一个数据位异或两次,其值是该数据本身!
<<: 将<<左边的数据值乘以2的移动次幂 2<<3 2*2^3
>>: 将>>左边的数据除以2的移动次幂 24 >> 2 24/2^2 = 6
6.三元(三目)运算符
三元运算符的格式以及执行流程 (后面----->TreeSet集合中去使用)
(表达式)? 执行true的结果:执行false的结果; (比较两个数据的最大值,比较数据是否相等)
执行流程:
首先判断表达式是否成立,如果成立,执行true的结果,否则执行false的结果语句;
键盘录入数据 Scanner类 : java.util.Scanner;
应用场景:
JavaSE:去使用键盘录入数据
模拟用户登录/注册的操作
a)导包
在class上面,package 下面
import java.util.Scanner ;
b)在main方法中创建键盘录入对象Scanner
Scanner sc = new Scanner(System.in) ;
c)提示并集接收数据
System.out.println("请输入数据:") ;
//目前使用方法:Scanner类提供了方法:nextInt()
int number = sc.nextInt() ;
d)针对number操作,要么输出/比较/求最大值....
流程控制语句: If语句
if语句格式2以及执行流程
开发中:if...else...
if(表达式){
语句1;
}else{
语句2;
}
表达式是否成立,如果成立,执行语句1,否则,执行语句2;
if语句格式2它和三元运算符的区别?
if语句格式2范围更大一些:推荐使用if语句格式2
if语句格式2:既可以操作具体的数据值/也可以操作输出语句
三元运算符:仅仅是作为一个运算符,一般都是操作具体的数据值!
int a = 10 ;
int b =20 ;
(a>b) ? a: b ;
如果能够使用三元运算符的就一定能够使用if...else...
但是如果能够使用if...else...,不一定能够使用三元运算符。
if语句格式嵌套
需求:键盘录入三个数据:求三个数据最大值
if(表达式){
if(表达式1){
}else{
}
}else{
if(表达式){
...
}else{
....
}
}
流程控制语句:选择结构语句之switch语句
switch语句格式: switch(表达式) {
case 值1: 语句体1;
break;
case 值2: 语句体2;
break; …
default: 语句体n+1;
break; }
执行流程首先计算出表达式的值其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程
中,遇到break就会结束。最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序
结束掉。
注意事项:
case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的
default可以省略吗?可以省略。一般不建议。除非判断的值是固定的。(单选题)
break可以省略吗?可以省略,一般不建议。否则结果可能不是你想要的
default的位置一定要在最后吗?可以出现在switch语句任意位置。
switch语句的结束条件:
遇到break
执行到程序的末尾
1. case穿透性
在switch语句中,如果case的后面不写break,将出现穿透现象,也就是不会在判断下一个case的值,直接向后运
行,直到遇到break,或者整体switch结束。
public static void main(String[] args) { int i = 5; switch (i){
case 0: System.out.println("执行case0");
break;
case 5: System.out.println("执行case5");
case 10: System.out.println("执行case10");
default: System.out.println("执行default"); } }
上述程序中,执行case5后,由于没有break语句,程序会一直向后走,不会在判断case,也不会理会break,直接
运行完整体switch。
由于case存在穿透性,因此初学者在编写switch语句时,必须要写上break。
2. if语句和switch语句的区别
在做判断的时候,我们有两种选择,if语句和switch语句,那么,我们到底该如何选择使用那种语句呢?
if语句使用场景:
针对结果是boolean类型的判断
针对一个范围的判断
针对几个常量值的判断
switch语句使用场景:
流程控制语句:循环结构语句
初始化语句:一条或者多条语句,这些语句完成一些初始化操作。
判断条件语句:这是一个boolean 表达式,这个表达式能决定是否执行循环体。
循环体语句:这个部分是循环体语句,也就是我们要多次做的事情。
控制条件语句:这个部分在一次循环体结束后,下一次循环判断条件执行前执行。通过用于控制循环条件中的变
量,使得循环在合适的时候结束。
1. 循环语句1–for
for循环语句格式:
for(初始化表达式①; 布尔表达式②; 步进表达式④){
循环体③
}
执行流程
执行顺序:①②③④>②③④>②③④…②不满足为止。
①负责完成循环变量初始化
②负责判断是否满足循环条件,不满足则跳出循环
③具体执行的语句
④循环后,循环条件所涉及变量的变化情况
循环练习:使用循环,计算1-100之间的偶数和
public static void main(String[] args) { //1.定义一个初始化变量,记录累加求和,初始值为0
int sum = 0; //2.利用for循环获取1‐100之间的数字
for (int i = 1; i <= 100; i++) { //3.判断获取的数组是奇数还是偶数
if(i % 2==0){ //4.如果是偶数就累加求和
sum += i;
}
}//5.循环结束之后,打印累加结果
System.out.println("sum:"+sum);
}
注意事项:
判断条件语句的结果是一个boolean类型循环体语句如果是一条语句,大括号可以省略;
如果是多条语句,大括号不能省略。建议永远不要省略。
一般来说:有左大括号就没有分号,有分号就没有左大括号
2.循环语句2–while
while循环语句格式:
while循环语句格式:
基本格式 while(判断条件语句) {
循环体语句;
}
扩展格式
初始化语句;
while(判断条件语句) {
循环体语句;
控制条件语句;
}
案例:
while循环实现打印10次HelloWorld
public static void main(String[] args) { //while循环实现打印10次HelloWorld
//定义初始化变量
int i = 1;
//循环条件<=10
while(i<=10){
System.out.println("HelloWorld");
//步进
i++;
}
}
while循环计算1-100之间的和
public static void main(String[] args) {
//使用while循环实现
//定义一个变量,记录累加求和
int sum = 0;
//定义初始化表达式
int i = 1;
//使用while循环让初始化表达式的值变化
while(i<=100){
//累加求和
sum += i ;
//步进表达式改变变量的值
i++;
}
//打印求和的变量
System.out.println("1‐100的和是:"+sum);
}
for循环和while循环的区别
for循环语句和while循环语句可以等价转换,但还是有些小区别的使用区别:
控制条件语句所控制的那个变量,在for循环结束后,就不能再被访问到了,而while循环结束还可以继续使用,如
果你想继续使用,就用while,否则推荐使用for。原因是for循环结束,该变量就从内存中消失,能够提高内存的使
用效率。