第一周总结

第一章 Java基础知识

1.1 基础常识

常用的DOS命令

盘符:: 切换盘符

cd 文件夹名/路径 :进入指定文件夹

cd … : 进入上级目录

cd / : 进入根目录

dir :查看目录

md 文件名 :创建文件夹

copy con 文件名 : 创建文件

echo 文件内容(ctrl z) 文件名 : 创建文件

rd 文件名 : 删除空文件夹

rd /s : 询问删除文件夹

rd /s /q : 暴力删除文件夹

del : 删除文件

ipconfig : 查看ip

cls :清屏

exit :退出dos命令行

1.2 Java语言概述

java语言是面向对象的,跨平台的语言,java编写的程序可以运行在任何的操作系统上,每一个操作系统上都有相应的不同版本的jvm虚拟机。

jdk : java开发工具包,包括jre和开发所需的工具包

jre : Java运行环境,包括jvm和java云新房所需要的核心类库

jvm : java虚拟机(一个假想计算机,可处理java程序)

java语言的执行机制: 将源文件(*.java)先编译成平台中立的字节码文件(.class),再将字节码文件进行 解释执行

1.3 Java语言的环境搭建

配置环境变量

JAVA_HOME:Java相关环境执行命令时需要 的目录。(D:\Java\jdk1.8.0_162)

path:windows系统执行外部命令时要搜寻的路径,上移到最顶层(%JAVA_HOME%\bin)

path是windows系统执行命令时要搜寻的路径。配置path的目的是为了在控制台的任何文件路径下,都可以调用jdk指定目录下的所有指令

检验是否成功 :win+r 输入cmd 打开控制台 :

输入javac –version 和java -version

1.4 Java的第一个程序HelloWord

class FirstTest{
    public static void main(String[] args){
        System.out.println("HelloWorld!");
    }
}s

1.5 注释

单行注释 //

多行注释 /* */

文档注释 /** */

第二章 数据类型

2.1关键字

关键字是指被java语言赋予的,具有特定含义的单词。如class,static,public等。

注意事项:
goto和const这两个作为保留字使用,不是关键字

2.2 标识符

1.针对包,类,接口,方法,变量,常量等起名字的字符序列;

2.标识符的组成:

​ 1)26个英文字母(大小写)
​ 2)数字字符

​ 3)符号(下划线)

​ 4_$符号

​ 5)严格区分大小写的

3.给类,接口起名字是相同:

​ 如果是一个单词:首字母大写,其余小写

​ 如果是多个单词组成:每一个单词首字母都大写,其余小写(大驼峰命名法)

4.给方法和变量起名字的规则:

​ 如果是单个单词 :字母全部小写

​ 如果是多个单词:第一个单词字母全部小写,从第二个单词开始,每个单词首字母大写,其余小写(小驼峰命名法)

5.给常量命名的规则:(推荐多个单词)

​ 如果是单个单词:字母全部大写

​ 如果是多个单词:每个单词字母大写,单词和单词使用下划线隔开

2.3 常量

在程序执行过程中,其值不发生改变的量

1.分类

1)字面值常量

​ 整数常量、小数常量、字符常量、字符串常量、布尔常量、空常量

		//整数常量
		System.out.println(100) ;
		//小数常量
		System.out.println(3.1415926) ;
		//字符串常量
		System.out.println("hellWorld") ;
		//字符常量
		//当字符单独使用的时候,直接字符本身'a','A','0'
		//但是如果字符参与运算:找一个对应的ASCII码表的固定值
		System.out.println('a') ;
		System.out.println('A') ;
		System.out.println('0') ;
		//'a':97  'A':65   '0':48
		System.out.println('a'+1) ;//'a'---->ASCII码表的值 97  b:98
		System.out.println('A'+1) ;//'A' :65  B:66
		System.out.println('0'+1) ;//'0':48  '1':49
		//布尔常量
		System.out.println(true) ;
		System.out.println(false) ;
		//空常量
		String s = null ;
		System.out.println(s) ;

2)自定义常量


2.进制也属于常量

2.4 变量

在程序执行过程中其值发生改变的量。

1.分类 :

1)基本数据类型

​ 整数类型(默认int):int、short、long、byte

​ 注:long m=12L;

​ 浮点类型(默认double):float、double

​ 注:float f=3.14F;

​ 字符类型 :char

​ 布尔类型:boolean

2)引用数据类型

2.变量的三要素:

​ 1)数据类型

​ 2)变量名称

​ 3)初始化值

3.定义变量的注意事项:

1)同一个变量不能重复定义

2)一行也可以定义多个变量

3)变量可以直接初始化

4.注 :

1)变量要进行运算,必须保证数据类型一致

2)boolean类型不参与类型转换

5.显性转换:大类型转换为小类型

隐式转换:小类型转换为大类型,char、byte、short在参与运算的时候会自动转换为int型

byte的取值范围是-128~127

2.5 常见进制及其相互转换

1.常见进制:二进制,八进制,十进制,十六进制

二进制:由0b开头

八进制:0-7组成,以0开头

十进制 :默认进制

十六进制 :由0-9及a-f组成,以0x开头

2.进制之间的相互转换

1)二进制-八进制

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cWPgHMom-1626005448401)(D:\QF_workspace\第一章 Java基础知识.assets\image-20210710143655997.png)]

2)二进制-十进制

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UaI2Yg04-1626005448403)(D:\QF_workspace\第一章 Java基础知识.assets\image-20210710144216005.png)]

第三章 运算符

3.1 逻辑运算符

1.基本逻辑运算符

逻辑单与: &	并列关系(满足全部条件)

		有false,则false
							

逻辑单或: |	或的关系(满足一个条件即可)

		有true,则true
							
逻辑异或: ^  

		相同则为false,不同则为true
						
逻辑非: ! 非true,则false;非false则true
		偶数个非是他本身

2.扩展的逻辑运算符

逻辑双与&&
逻辑双或:||

逻辑单与&和逻辑双与&&的区别?

共同点:都是能够表述"并列"关系

不同点: 逻辑单与&:无论左边的表达式是true还是false,右边都要执行

	   逻辑双与&&:具有短路效果,左边达式如果是false,则右边就不执行了
	   
逻辑双||: 左边的表达式如果是true,则右边不执行了

只要有逻辑并列判断,优先采用的逻辑双与&&(或的关系判断:使用双或||)	
执行效率高!

3.2位运算符

位运算操作的都是具体的数据值
基本的位运算符号:
	1.位与: & 有0,则0	
	
    3 & 4  
	
 3  00000000	00000000	00000000  00000011	
 4 	00000000 	00000000	00000000  00000100
 &	-------------------------------------------------
	00000000	00000000	00000000  00000000
	
	结果:0

    2.位或: | 有1,则1
    
    3 | 4
 3  00000000	00000000	00000000  00000011
 4	00000000 	00000000	00000000  00000100
 |  -------------------------------------------------
    00000000    00000000    00000000  00000111  
	
	结果:7
	
	3.位异或: ^ 相同则为0,不同则为1 (一个数据被另一个数据位异或两次,其值是他本身)
	
 3  00000000	00000000	00000000  00000011
 4	00000000 	00000000	00000000  00000100
 ^	-------------------------------------------------
	00000000    00000000    00000000  00000111
	
	结果:7
	
   4.反码 : ~:按位取反:0变1,1变0	
	~3
	
	00000000	00000000	00000000  00000011  (补码进行计算)
~	
    ----------------------------------------------------
    11111111    11111111    11111111  11111100  (补码) 

最高符号位 				数值位
	1					1111111    11111111    11111111  11111100   补码
	-													        1
	---------------------------------------------------------------------
	1					1111111    11111111    11111111  11111011   反码
	
	1					0000000	   00000000    00000000  00000100  原码
	
	结果:-4

	
			
其他的运算符号:位移符号
		<<:左移动
		左移的特点:
					<<:将左边的数据乘以2的移动次幂
		>>:右移动
		右移的特点:
					>>:将左边的数据除以2的移动次幂
		>>>:无符号右移

3.3 三目运算符

格式:
(表达式)? 执行true的结果:执行false的结果;

执行流程:
	判断表达式是否成立,如果成立则执行第一个
	如果不成立,则执行第二个

3.4 键盘录入

jdk类:java.util.Scanner :一个简单的文本扫描器
使用步骤
	1.导包: 在java语言中:只要不是java.lang包下的类都需要导入 
	
			import java.util.Scanner;
			
	2.固定格式: 创建键盘录入对象(文本扫描器对象)
			Scanner 对象名 = new Scanner(System.in) ;
			
	3.开始录入数据:
			public int nextInt():录入下一个int类型
			int 变量名 = 对象名.nextInt() ;
			
		    java.util.Scanner类中:提供一个功能:
	        public String nextLine();录入String类型
		
	4.使用变量
    注:键盘录入的细节:
		如果先录入int,在录入String,会漏掉第二个数据String
	原因就是 输入回车符号-->才能录入数据;回车符号---> (换行)
	
	方案1:在录入字符串之前,新创建一个键盘录入对象
	
	方案2:Scanner类提供了这个功能:
			public String next():录入一个字符串 (非正式用法)

第四章 流程控制

流程控制语句:
1.顺序结构语句
进入到主程序之后,main方法被jvm调用之后
代码依次由上而下进行执行!

​ 2.选择结构语句
​ if语句
​ switch语句
​ 3.循环结构
​ for
​ while
​ do-while语句

4.1 顺序结构

代码依次由上而下进行执行

4.2 选择结构

1.if语句
		格式1:
			if(表达式){
				语句;
			}

执行流程:
			1)先判断表达式是否成立,
			2)如果成立,执行语句内容
			3)不成立则不执行
			
格式1是针对单个条件进行判断

        格式2:
			if(表达式){
				语句1;
			}else{
				语句2;
			}
	
执行流程:
		1)首先判断表达式是否成立,
		2)如果成立,则执行语句1;
		3)不成立执行语句2
		
格式2是针对两个条件进行判断	
		if格式2和三元运算符的区别:
        if语句格式2:相对三元运算符:范围更大:流程控制语句,既可以操作输出语句也可以操作具体的数据值
        三元运算符:只能操作具体的数据(int,String字符串数据...)
        三元能够实现的,一定能够使用if格式2
        但是反之,if能够实现,三元运算符不一定能够实现
	    一般采用if格式2.
	    
if格式2的嵌套
	
	if(表达式1){
		if(表达式2){
			语句1;
		}else{
			语句2;
		}
	}else{
		if(表达式3){
			语句3;
		}else{
			语句4;
		}
	}
	
针对多个条件进行判断
			
			格式3
			针对多种情况进行判断
	
			if(表达式1){
				语句1;
			}else if(表达式2){
				语句2;
				...
			}else{
				语句n;
			}
执行流程:
		1)首先判断表达式1是否成立;如果成立,则执行语句1;
		2)不成立,继续判断表达式2是否成立,成立,执行语句2
		...
		...
		如果上面都不成立,最终执行else里面语句;
2.switch语句
        表达格式:
        switch(表达式){
        	case 值1:
        		语句1;
                break;
            case 值2:
        		语句2;
                break;  
                ...
             default:
             	语句n;
             	break;
            }
          执行流程:
          1.使用switch表达式的值与case值匹配
          2.若与case值匹配,则执行相应的case语句
          3.若有break,则直接跳出switch
            若没有,则继续往下执行
          4.若switch表达式的值与case值没有匹配的,则执行default
          
          注意事项:
          1.case值只能是常量,不能是变量
          2.case语句后必须要有break,若没有,会有“case穿透”、
          3.default语句可以在程序的任何一个地方
          
          switch语句中的表达式可以是什么样的数据类型:
					基本数据:int,byte,short,char
					JDK5以后可以跟枚举 enum
					JDK7以后可以跟String类型


4.3 循环结构

1.for循环
for(条件1;条件2;条件3)
{
循环体;
}

执行顺序:先执行条件一,再看条件一是否满足条件二的判断,如果满足则进入循环,反之则不进入循环,如果进入循环里则执行循环体里面的内容,最后再执行条件三。

一般for循环样式为

for(var i=0;i<10;i++){
//循环体
}


双层for循环

        for (条件一; 条件二; 条件三) {
            //循环体
            for (条件四; 条件五; 条件六) {
                //循环体二
            }
        }


2.while循环
            while (条件) { 满足条件就执行 }
         注:因为满足条件就执行,所以我们写的时候一定要注意,就是设定一个边界值,不然就一直循环下去了
3.do while循环
			do
			{
			循环体;
			}while(条件)
		跟while循环相似,只是do while循环是先执行一遍循环体,再判断条件,若条件成立则继续执行。

结构

1.for循环
for(条件1;条件2;条件3)
{
循环体;
}

执行顺序:先执行条件一,再看条件一是否满足条件二的判断,如果满足则进入循环,反之则不进入循环,如果进入循环里则执行循环体里面的内容,最后再执行条件三。

一般for循环样式为

for(var i=0;i<10;i++){
//循环体
}


双层for循环

        for (条件一; 条件二; 条件三) {
            //循环体
            for (条件四; 条件五; 条件六) {
                //循环体二
            }
        }


2.while循环
            while (条件) { 满足条件就执行 }
         注:因为满足条件就执行,所以我们写的时候一定要注意,就是设定一个边界值,不然就一直循环下去了
3.do while循环
			do
			{
			循环体;
			}while(条件)
		跟while循环相似,只是do while循环是先执行一遍循环体,再判断条件,若条件成立则继续执行。
上一篇:Debug模式&进制&位运算


下一篇:OK6410A 开发板 (八) 81 linux-5.11 OK6410A JTAG调试