2021-05-04

JavaSE基础(W1)总结

本周学习内容:

目录

Day1内容

1.Java中的关键字是什么:

2.Java中的标识符

3.jdk的安装目录下文件夹的作用:

Day2内容

1.Java中的常量:

2.什么是进制:

3.什么是变量:

4.数据类型的划分

5.强制类型转换

6.源码反码补码

7.运算符

Day3内容

1.扩展的逻辑运算符

2.位运算符:

3.三元运算符:

4.键盘录入数据

5.选择结构if

6.swit语句

7.Switch语句注意事项

Day4内容

1.for循环

2.while循环

3.while和for循环的区别

4.will循环语句的格式

5.do_while循环的格式

6.for循环嵌套

7.跳转控制语句break ;continue ;return ;

Day5内容

1.方法的概念及有返回值类型方法定义与调用

2.方法定义的注意事项

3.没有返回值类型的定义


Day1内容

Java中的关键字
Java中的标识符
jdk的 安装目录下文件夹的作用

 

 

 

 

1.Java中的关键字是什么:

被Java语言赋予特定含义的单词,关键字的字母都是小写!

public:代表权限修饰符,字面意思公开的,代表权限很大,后期学习(private:私有的,默认修饰;protected:受保护的)

static:静态修饰符,

vodi:表是没有返回值

class:最忌本地单元“类”

基本数据类型:都是关键字

流程控制语句中: 选择结构,循环结构等存在关键字

2.Java中的标识符

标识符是 在Java语言中,给类,给接口,给变量,给方法起名字的字符序列!    

起名字的时候要见名知意,字符序列的组成规则

     1.可以是26个英文字母,大小写都可以

     2.可以是数字字符(但不能开头)

     3.可以是$符号

     4.可以是"_"

给类和接口起名字:

    单个单子:首字母大写,其余小写

    多个单词:每个单词首字母大写,遵循“大驼峰”命名法

给变量和方法起名字符序列一致:

    如果是单个单词: 单词全部小写

如果是多个单词:

    遵循"小驼峰命名法",第一个单词全部小写,从第二个单词开始:每个单词首字母大写                       

           给常量命名 :如果是单个单词: 字母全部大写 如果是多个单词:每个单词中间使用下划线隔开

3.jdk的安装目录下文件夹的作用:

        bin目录:可执行目录,里面包含Javac.exe编译命令以及Java.exe运行命令
        
        db目录: 内置数据库
        
        include目录: Java语言的部分底层使用C语言完成的,里面包含了C文件  xxx.h文件
        
        jre目录: java语言的运行环境目录,里面包含JVM  Java虚拟机 ,其中的lib目录中会存放JVM的默认配置文件,以及日志记录文件loggin.properties,程序解析过程中,给开发者提示错误信息

        lib目录: 工具包储存一些相关配置文件及工具类库toos.jar 


        src目录: 将java底层源代码告诉开发者


Day2内容

1)Java中的常量
2)什么是进制及进制转换的四种格式
3)什么是变量及数据类型划分
4)Java中数据类型的划分
5)强制类型转换
6)原反补码
7)运算符(三种)

 

 

 

 

 

 

 

 

 

1.Java中的常量:

常量是程序在执行过程中,其值是固定不发生改变的量!    

分类:

1)字面值常量

        a)字符串常量:“字符串”用双引号包起来

        b)字符常量:‘a’,‘b’,‘c’,用单引号包起来

        c)整除常量:1,10,100(默认十进制)

         d)小数常量:3.14,0.15

         e)布尔常量:true/false

         f)NULL:空常量“引用数据类型”的默认值

2)自定义常量

2.什么是进制:

进制是数据进位的一种方式

     二进制,逢二进1,由0,1组成 ,以"0b"开头
     八进制,逢八进1,由,0,1,2,3,4,5,6,7组成 ,以"0"开头
    十六进制,逢十六进1,由0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,以"0x"开头
    十进制:逢十进1, 整数默认  

  进制的格式转换:

1)任意进制转换十进制

 

 

2)十进制转换到任意进制

 

3)8421码快速转化法

 

4)有符号的数据表示法

 

3.什么是变量:

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

变量的三要素:

1)数据类型

2)变量名称  需要符合 标识符的规则

3)初始化值   根据数据类型,给变量名称赋值!

定义并且初始化:

数据类型 变量名称  =  初始化值;(分号代表结束)

 

4.数据类型的划分

 

基本数据类型

   整数类型默认int

byte    字节类型   -128~127      1个字节
short    短整型                       2个字节
int     整数默认类型               4个字节
long    长整型 (值的后面加上一个标记(L/l))8个字节
浮点类型:默认doublefloat    单精度(需要在值的后面加标记:F/f)    4个字节
double 双进度8个字节
字符类型char   字符  2个字节
 布尔类型(不做运算,只判断)boolean (true/false)1个字节
引用数据类型String字符串-

 

 

 

 

 

 

 

  
                      
                  

 

5.强制类型转换

基本数据类型除了Boolean不参与运算,变量在进行运算的时候需要保证数据类型一致

java中的隐式类型转换,默认类型提升:byte,short,char三者之间不转换,一旦参与运算,先转换为int类型!

强制类型转换的格式

目标数据类型(目前使用基本类型)   变量名称  =  (目标数据类型)(初始化值); 
                byte c = (byte)(a + b) ;

 

6.源码反码补码

假如byte b = 130 ;,那么因为byte取值范围为 -128~127,运算时默认int类型,从int转换到byte可能会有损失,这个时候值不在byte范围内,强转后的结果则可能会出现损失精度	
	   
	  130 默认int类型,此时数值为正数,原码,反码,补码相同
	 00000000 00000000 00000000 10000010				130
	 
	假如强转则需要将数据截取为1个字节(8位) 
	byte b = (byte)130 ;
	
	(00000000 00000000 00000000) 10000010
	
	最高符号位		数值位
	1				0000010			补码
-					      1
----------------------------
	1               0000001		  反码
	
	1				1111110       原码
	--------------------------------------
	-                64+32+16+8+4+2+0  = -126
	
	1	1	1	1	1	1	1	1
	128 64  32   16  8  4   2   1

7.运算符

运算符就是在程序运行中使用到的一些符号

算数运算符:

基本的算术运算符 +,-,*,/(默认取整),%(取余数)

扩展的算术运算符:++,-- 


       单独使用++/--:无论数据前还是后,都是自增1或者自减1

参与运算:
                参与运算使用:++/--数据的后面:先进行运算,然后自增或者自减1!
                参与运算使用:++/--数据的前面:先进自增1或者自减1,然后参与运算!

1)赋值运算符
           最基本的赋值运算符,将=右边的数据赋值左边的变量

扩展的赋值运算符:+=,-=,*=,/=,%=
           将+=右边的数据和左边的数据相加,在将结果赋值给左边的变量

2)比较运算符:

比较运算符有:<,<=,,>,>=,==,!=
           比较运算符连接的表达式:不管简单的还是复杂的表达式:结果都是true/false

3)逻辑运算符:

基本的逻辑运算符:逻辑单与&,逻辑单或|,逻辑异或^,逻辑非!

逻辑单与&:  并列关系 特点:有false,则false!

逻辑单或|: :满足一个即可 特点: 有true,则true

逻辑异或^:特点:相同则为false,不同则为true

逻辑非!:非true,则false;非false,则true;偶数给非是它本身!


 


 

Day3内容

1)扩展到逻辑运算符
2)位运算符
3)三元运算符
4)键盘录入数据
5)流程控制语句
6)选择控制语句if三种格式
7)switch语句及注意事项

 

 

 

 

 

 

 

 

 

1.扩展的逻辑运算符

扩展的逻辑运算符:逻辑双与&&;逻辑双或||:

共同点:有false,则false: 都是表示一种并列关系: 多个条件的时候,有一个不满足,则条件不成立!

不同点:逻辑单与&连接的表达式,如果左边为false,右边表达式依然会执行!
                   逻辑双与&&的表达的逻辑性要强于逻辑单与&,开发中使用&&!      

逻辑双或||:短路效果:左边表达式如果为true,则右边不会执行了,有true,则true!

 

2.位运算符:

位运算符: 针对具体的数据值进行运算!

位与&: 有0,则0

位或|:     有1,则1

位异或^:相同则为0,不同则为1
        位异或的特点^: 一个数据被另一个数据位异或两次:其值是它本身!

 ~反码  :对一个数据进行反码:按位取反(全部0变1,1变0)

<<:左移 :将数据的补码进行左移动,右边不够的补0,左边多余丢弃掉
                        将<<符号左边的数据 乘以2的移动次幂

>>:右移: 将数据的补码右移动;如果最高符号位为0,左边补0;如果最高符号位为1,左边补1...
                        将>>符号左边的数据 除以2的移动次幂

>>>:无符号右移:将数据的补码右移动,无论最高符号位为0还是1,左边都补0...

 

3.三元运算符:

格式:(表达式)? 执行成立的结果:执行false的结果;
        (a>b)?a:b; 

执行流程:
        1)首先判断表达式是否成立
        2)如果成立,执行成立的结果
        3)如果不成立,就false的结果

三元运算符的嵌套:

int max2 = (a>b) ? ((a>c)? a: c): ((b>c)? b: c) ;
		System.out.println("max2:"+max2) ;

 

4.键盘录入数据

步骤:
        1)导包
        2)创建文本扫描器对象 
        3)提示并录入数据("回车",录入)
        4)接收并使用数据 (根据 具体的需求)

import java.util.Scanner;//	1)导包
Scanner sc = new Scanner(System.in) ;	2)创建文本扫描器对象
int a = sc.nextInt() ;	3)提示并录入数据("回车",录入)
4)接收并使用数据 (根据 具体的需求)

5.选择结构if

if语句格式1

第一种格式
		应用场景:针对单个条件进行判断
		格式:
			if(表达式){
				语句;
			}
					
	执行流程:如果判断条件成立,则执行语句;否则不成立,不会执行!
			
	需要注意的事项:
			1)if的后面不能有;
					if(表达式);{}  错误语法
			有左大括号的地方不能有分号;有分号的地方不能有左大括号	

			2)如果使用if格式1,里面的语句是条语句,
				{}是可以省略的!,不建议省略!

if语句格式2

if语句格式2
	if(表达式){
		语句1;
	}else{
		语句2;
	}
	
	执行流程:,条件成立执行语句1;否则,执行语句2

if语句格式3

		if(表达式1){
			语句1;
		}else if(表达式2){
			语句2;
		}else if(表达式3){
			语句3;

		...
				
		}else{
			语句n+1 ;
		}
执行流程:
1.先判断表达式1是否成立,如果成立就执行表达式1,
否则,判断表达式2是否成立,如果成立,执行语句2
否则,判断表达式3是否成立,如果成立,执行语句3
一直向下判断		
....

如果上述都没有匹配的结果:执行else的语句;

 

6.swit语句

switch(表达式){
		case 值1:
			语句1;
			break ;
		case 值2:
			语句2;
			break;
		...

		default:
			语句n+1;
			break ;
		}
        首先表达式接收一个值
		然后和case语句 值1比较,如果成立,执行语句1,break 结束switch
		值1不匹配,判断和值2是否匹配,如果匹配成功,执行语句2,结束switch
		...
		...
		上面case 语句都不成立,
		执行default语句,执行语句n+1,结束switch!
		

问:switch(表达式):表达式它可以是什么数据类型?
                最基本的类型:int,byte,char
                jdk5以后:可以跟枚举类(enum)
                JDK7以后:String类型

 

 

7.Switch语句注意事项

1)case语句的后面只能是常量

2)break语句:不要轻易省略掉(如果省略会导致case穿透现象,如果没有break那么程序将继续向下执行,知道语句结束或遇见break)

3)switch语句的结束条件
                a)语句break结束
                b)程序默认执行的到末尾!

4)default语句可以在switch语句中的任何位置,不影响执行流程!    
                当前case后面的都匹配,执行default语句
                如果default语句在语句中的话,break语句 不能省略!
                如果default语句在switch末尾的话,break语句是可以省略!

 


 

Day4内容

1)for循环
2)while循环
3)while和for循环区别
4)while循环语句的格式
5)do while循环语句的格式
6)for嵌套
7)跳转控制语句

 

 

 

 

 

 

 

 

1.for循环

循环的三种格式 
        for循环
        while循环
        do-while循环

for循环的格式:
		for(1)初始化语句;2)条件语句;4)步长语句(控制体语句)){
				
				3)循环体语句;
		}

		执行流程:
			1)初始语句给当前循环中的变量赋值:执行一次
			2)接下来执行条件语句,判断条件语句是否成立
			3)如果条件语句结果成立:true,执行3)循环体语句
			4)执行控制体语句++/--,
			循环了
			5)继续去判断条件语句是否成
			6)成立,继续执行循环体语句...
			...
			...
			当前条件语句不成立,for循环结束!

2.while循环

while循环的通用格式
	
	初始化语句;
	while(条件表达式){
		循环体语句
		控制体语句;
	}
执行流程
	初始化语句:给变量进行赋值
	当前条件表达式成立,执行循环体语句;
	继续控制体语句, 再次执行条件表达式
	...
	...
	当条件表达式不满足条件,while循环结束
	
	注意事项:
		while循环在使用的时候:
		注意事项
			不要忘了控制体语句,否则死循环

3.while和for循环的区别

循环次数是否明确明确优先使用for循环
不明确使用while循环

 

 

 

2)从格式---(内存角度) :for优于 while
            for循环结束之后,不能够访问到for循环中的变量;
            循环结束了, 变量(内存中变量:临时变量)就需要被回收了, 节省内存(栈内存)

    while循环:由于存在初始化语句是在while外面定义的,所有当前while循环,依然访问到while循环中的变量

 

4.will循环语句的格式

 

while循环格式(推荐)
	for循环格式
		for(;;){
			循环体语句;
		}
灵活使用死循环:当不明确次数,使用while循环

例如:求一个未知数的每个位上的数据之和!
        //定义一个最终结果变量
        int sum = 0 ;
		//只要这个数据不为0,一直判断 
		//不明确循环次数使用while循环		
		while(n!=0){
			sum += n % 10 ; //获取低位
			
			n = n / 10 ; //去掉低位	
			
		}
		System.out.println(sum) ;

5.do_while循环的格式

特点:即使循环条件不成立,也能输出依次

doWhile循环语句的格式
	
	初始化语句;
	do{
		循环体语句;
		控制体语句;
	}while(条件表达式) ;
	
	执行流程:
		初始化语句对变量赋值一次;
		成立,执行循环体语句---控制体语句
		判断条件表达式是否成立!
		...
		条件不成立,循环语句结束!

 

6.for循环嵌套

外层控制行数,内层控制列数

for循环嵌套
	
		for(初始化语句1;条件表达式1;控制体语句1){
			
			for(初始化语句2;条件表达式2;控制体语句2){
				循环体
			}
		}
		
		
		内层循环作为外层的循环体语句!

流程:
		初始化1先执行,条件表达式1成立,
		执行循环:for循环	
					先执行初始化语句2, 条件表达式2成立.
						循环体语句 ---->控制体语句2----条件表达式2是否成立
						不满足条件
		控制体语句1

 

7.跳转控制语句break ;continue ;return ;

跳出main方法:
                1)System.exit(0);
                2) return

continue:结束当前循环,立即下一次循环!不能单独使用,一般都在循环中使用!

return 也属于跳转控制语句,结束方法去使用
       一般 情况:return需要结合有具体返回值类型的方法使用!

break:表示中断结束的意思,不能单独场景使用,只能在以下两个场景使用:
                            switch语句 :遇见break结束
                            循环中使用:结束循环语句的
                            
                            单个循环语句中 嵌套循环中使用

wc:for(int x = 0 ; x < 5 ; x ++){ //x=0,1,2
			nc:for(int y = 0 ; y < 5 ; y++){
				
				if(x==2){
					break wc; 
				
				if(y == 2){
					//break wc ; //结束外层循环
					break nc ;//结束内层循环

 

Day5内容

1)方法的概念及有返回值类型方法定义与调用
2)方法定义是注意事项
3)没有返回值类型的的定义

 

 

 

 

1.方法的概念及有返回值类型方法定义与调用

a)什么是方法(函数):

讲一段代码独立起来,使用时直接调用,避免代码重复

b)怎样定义一个方法

	public static 返回值类型 方法名称(形式参数类型1 变量名1 ,形式参数类型 变量名2...){		
		
		return 返回数据;
	}

	例如:
    public static int add(int sum1 ,int sum2...){		
		
		return sum1 + sum2;

        注意事项:
		有返回值类型的方法的调用 
		单独调用 :没有输出结果
		    没有意义:在功能模块中,(代码块中),有返回值类型的方法:业务,返回结果!
										在调用者位置输出---main方法中调用这个方法
		输出调用:输出后该方法将不能再次使用
		    可以用:不建议,相同获取的结果数据在进行操作,无法操作!
		赋值调用(推荐):可以通过打印resulrt获取方法的运算结果
			int result= add(sum1 ,sum2) ;

 

2.方法定义的注意事项

a)方法与方法是平级关系  只能调用对方,不能去嵌套使用(方法的定义不能在main方法中,否则报错)

b)定义方法需要明确
                1)明确返回值类型
                2)明确参数类型以及参数个数(形参实参个数要相同)

c)方法的形式参数必须携带数据类型,否则报错(编译通不了)

d)返回结果类型需要和最终的接收结果一样!       
              保证方法体中的类型一致:考虑数据类型
               保证:接收的结果类型和方法中携带返回的结果类型一致! 

 

 

3.没有返回值类型的定义

        public static 返回值类型 方法名(形式参数类型1 变量名1 ,形式类型2 变量名2...){}
		
		void:关键字
			Java中规定:针对没有具体返回值的结果的时候,但是方法中必须"返回值类型"
				使用void来替代"返回值类型" :满足格式要求!
		//调用方法完成
		//赋值调用 :用不了因为没有结果
		//void v = printStar(5,5) ;错误: 非法的表达式开始 :void只是替代 "返回值类型"
		//输出调用也不可以
		//System.out.printnln(printStar(5,6)) ;(虚拟机认为输出的是一段语句)
		
		//单独调用,只能单独调用
		printStar(5,6) ;

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值