2021-05-05

JavaEE第一周知识总结:

Day01:

1.HelloWorld

编辑简单的程序:

class HelloWorld{

    public static void main(String[] args){
        System.out.println("hello,我来了Java!") ;
    }

}

2.Java中的关键字:

Java中的注释:提高代码阅读性, 解释说明程序!
    多行注释 /* */ 
    单行注释 //
    文档注释:/**  */ 后期:jdk安装目录bin目录:javadoc.exe: 解析文档注释的指令

    被Java语言赋予特定含义的单词
    关键字的字母都是小写!
    
在notepad++/editplus:高级记事本     
        针对Java代码的关键字有一种"颜色标记"
1)Java中最基本的单元"类"    
        书写格式:class  类名{}   
            class KeyWord{}   表示:定义一个了KeyWord这个类
2)public: 公共的,公开的: 权限很大

        权限修饰符 :
            public :现在目前先使用这个
            private:私有的 
            默认修饰符
            protected:受保护的
3)static:静态修饰符  
           被静态修饰的---"共享,共用"
            跟类的加载机制有关系
4)void : 格式是和Java中方法的定义相关  

5)数据类型
        基本数据类型:都是关键字
6)流程控制语句中: 选择结构,循环结构等存在关键字     

3.Java中的标识符

标识符: 
        在Java语言中,给类,给接口,给变量,给方法起名字的字符序列!
        
    起名字("见名知意")的时候,字符序列的组成规则:
        1)26个英文字母(大小写均可)
        2)可以是数字字符
        3)可以是$符号        
        4)可以是下划线_
        
        
    给类和接口起名字一致:
            如果是单个单词: 单词首字母大写,其余小写
                    举例:jdk提供的这些类:  class Socket{}
                           class Demo{}
                           
            如果是多个单词:遵循 "大驼峰命名法"
                                每个单词首字母都大写,其余小写
                            
                    
                    举例:class MakeNameDemo{}
                    
                    
    包:package(关键字)    :  
            实际开发中:通过 "包(目录)" 要进行代码的分层概念
                    
    给变量和方法起名字符序列一致:
            如果是单个单词: 单词全部小写
                        举例:   
                                int num = 10 ; 

            如果是多个单词:遵循"小驼峰命名法"
                                第一个单词全部小写,从第二个单词开始:每个单词首字母大写;
                                int applePrice = 5 ; 
                                
    给常量命名 :(Java源码:一般都是多个单词)
            如果是单个单词: 字母全部大写 
                           AGE    
            如果是多个单词:每个单词字母全部大写,中间使用下划线隔开
                    
                    举例
                            Java常用类:Integer:int类型的包装类类型
                                MIN_VALUE:最大值
                                MAX_VALUE:最小值
                                
                            JavaSE高级部分:多线程 Thread
                                优先级的常量字段:
                                    字段摘要 
                                    MAX_PRIORITY 
                                    线程可以具有的最高优先级。 
                                    MIN_PRIORITY :最低优先级
                                    NORM_PRIORITY:默认优先级
 


        注意事项:
                1)标识符组成可以是数字,但是不能以"数字开头"
                2)标识符不能是Java中的关键字
                3)Java严格区分大小写(Java语言是一种"强类型":语法结构非常严谨)

Day02:

1.常量:

常量:
        程序在执行过程中,其值是固定不发生改变的量!
        
      分类:
        1)字面值常量
                a)字符串常量 :    "hello"  双引号包含起来
                b)字符常量 : 'a','A','0' 单引号包含起来的内容
                        不参与运算:它就是固定的字符(键盘上的按键---字符)
                        
                        会存在ASCII码表
                                当字符'a',参与运算:就需要找ASCII码表的值: 97(小写字母字符)
                                'A':65(大写字母字符),'B':66 'C' :67
                                '0':48(数字字符),'1':49...
                        
                
                c)整数常量: 100,50     
                            34   (整数--- 默认:十进制)
                            
                                    进制:也是常理
                                            二进制
                                            八进制
                                            十进制:默认整数
                                            十六进制
                            
                d)小数常量:    
                        3.14
                        5.125
                e)布尔常量:true/false
                f):null:空常量   应用在"引用数据类型"    的默认值    
        
        2)自定义常量: 面向对象部分讲:  跟 关键字final有关系

进制的基本知识:

什么是进制
    数据进位一种方式
    二进制,逢二进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, 整数默认
    
    单位换算
            1byte = 8bit (8个比特位:8个电信号 ) :最基本二进制数据
            1kb = 1024 byte
            1m  = 1024 kb
            1g  = 1024m 
            1t  = 1024g

2.变量(重点):

在程序的执行过程中,其值发生改变的量!
    变量的三要素
        1)数据类型 ----- "一种限定"
        2)变量名称 -----  "符合 标识符的规则"
        3)初始化值 ----- 根据数据类型,给变量名称赋值!
        
        格式1:定义并且初始化
                数据类型 变量名称  =  初始化值;
                    int    num     =  10 ;    (分号在Java语言中,表示当前行语句结束!)
                
        格式2:先定义,在使用之前必须初始化
                数据类型  变量名称  ;    
                    int num2 ;
                    num2 =  10 ;
                变量名称 = 初始化值;    (使用这个变量之前,必须赋值; )
                
                
                
    Java中的数据类型的划分:
            基本数据类型:
            四类八种:一些变量,没有提示使用什么类型,默认int(根据具体需求)
                    
                整数类型
                        byte    字节类型            使用范围:-128~127        占用1个字节
                        short    短整型                                        占2个字节
                        int     整数默认类型        (-2^31 - 2^31-1)                        占4个字节
                        long    长整型        (定义系统时间---换算毫秒值)                                占8个字节
                                注意事项:定义long类型,需要在初始化值的后面加上一个标记(L/l)
                浮点类型:默认double
                        float    单精度                                        占4个字节
                        
                                注意事项:需要定义的float 需要在值的后面加标记:F/f
                        double    双精度(默认类型) 场景:商品价格                占8个字节
                字符类型    
                        char   字符                                            占2个字节
                        
                布尔类型(不会进行类型转换:仅仅只是表示逻辑判断! 结果不是true/false)
                        boolean                                                占1个字节
            
            
            引用数据类型:
                        数组(基本类型,引用类型),类(具体类,抽象类),接口
                        int[] arr 
                        String[] args

定义变量的注意事项:
        1)目前来说:我们定义 "局部变量"
            在方法定义中或者方法声明上的变量
        2)
            a)先定义,在使用前去赋值
                    如果没有报错,系统 "可能尚未初始化变量"
            b)直接给变量初始化
            
        3)Java是强类型语言:                            javascript(js):
                不能够将一个变量定义多次                若类型语言:一个变量重复定义的
            
        4)定义变量: 推荐格式: 一行定义一个变量 
                             也可以一行定义多个变量

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

Java中的显式类型转换(强制类型转换) :

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

+ :
        作用:
            1)算术运算符  :加法运算
            2)表示一个数据:正数   +7
            3)字符串的拼接符号
            
            
            字符串 (String:非常重要的类)
            网页的数据:--"表单提交"的数据---->String类型
            网页中地址栏 :http://ip地址/login?username=xx  String类型

3.算术运算符:

运算符:
          变量在程序的运行中使用的一些符号!
          
         算术运算符:
         
                基本的算术运算符
                        +,-,*,/(默认取整),%(取余数)
                        
                扩展的算术运算符:
                        ++,--    场景:统计 / 循环语句中使用
                        举例:
                        水仙花:三位数 范围:100-999     
                                    个位的立方+十位的立方 + 百位的立方 = 数据本身
                                    153
                        
         赋值运算符
         关系(比较)运算符
         逻辑运算符
         位运算
         三元(三目)运算符
         
    扩展的算术运算符:
                        ++,--    场景:统计 / 循环语句中使用
                        
        结论:
            单独使用++/--:无论数据前还是后,都是自增1或者自减1
            
            
            参与运算:
                参与运算使用:++/--数据的后面:先进行运算,然后自增或者自减1!
                参与运算使用:++/--数据的前面:先进自增1或者自减1,然后参与运算!

4.赋值运算符:

 

   赋值运算符: 
        最基本的赋值运算符
            =
            将=右边的数据赋值左边的变量
            
            int x = 10 ;
            将10这个数据赋值给int类型的变量x
            
        注意:=不能写成==(比较运算符)
        
    扩展的赋值运算符:
            +=,-=,*=,/=,%=
            
            int y = 20 ;
            y += 30 ;         --- 类似于 :y = y + 30 ;
            将+=右边的数据和左边的数据相加,在将结果赋值给左边的变量y
    5.比较运算符:

比较运算符(关系)
        
        <,<=,,>,>=,==,!=
        
        数学表达式:
                3<=x<=5 
    
    
        计算机语言:
                Java语言
                        int x  ;
                        x >= 3 &&(逻辑符号) x <= 5
                        
                        3<=x<=5 (报错:不是语句!)
    
    
    比较运算符连接的表达式:不管简单的还是复杂的表达式:结果都是true/false

6.逻辑运算符(重点):

逻辑符号:
    基本的逻辑运算符
                逻辑单与&:  并列关系 
                    特点:有false,则false!
                逻辑单或|: :满足一个即可
                    特点: 有true,则true
                逻辑异或^:
                     特点:相同则为false,不同则为true
                     简单记:男女关系
                        男女,女男  : true
                        女女,男男  : false
                逻辑非!:
                    非true,则false;非false,则true;偶数给非是它本身!
                    应用场景:
           
    扩展的逻辑运算符
                逻辑双与&&
                逻辑双或||


    逻辑非!:
                    非true,则false;非false,则true;偶数给非是它本身!
                    应用场景:
                            在登录的时候,如果用户名和密码不一致,提示"登录失败"
                            
    需求:
        已知 用户名"admin" :字符串  
        键盘录入数据,判断录入的数据和已知的数据一致,如果一致,提示"登录成功!"
        ,不一致,提示"登录失败" ;
        键盘录入数据的操作步骤: java.util.Scanner; (文本扫描器)
            1)导包:以后在Java语言中:
                    只要不是java.lang.*包下的类,都需要导包
                书写位置:在class上面    
                import java.util.Scanner;
                    
            2)创建文本扫描器对象:
                    Scanner 对象名  = new Scanner(System.in) ;
            3)提示用户,并接收数据  (回车---告诉jvm "录入完毕")
                    System.out.println("请您输入一个数据:") ;
                    int 变量名 =  对象名.nextInt() ;
                    
            4)使用这个变量      

  Day03:

1.扩展的逻辑运算符:

扩展的逻辑运算符:
        &&(逻辑双与),||(逻辑双或)

逻辑双与&&和逻辑单与&    
            
            
    共同点:当多个条件,有一个不满足,就不成立! 并列关系
            有false,则false
            
            
    逻辑单与&:无论符号左边的表达式是true还是false,右边都需要执行!    
    逻辑双与&&: 
                具有短路效果!
                如果符号左边的表达式为false,则右边的表达式不会执行了!
                逻辑性比单与&更强一些,开发经常使用逻辑双&& !
                
        
    逻辑双或||: 
                左边的表达式如果为true,右边不执行!

2.位运算符:

位运算符:
            针对具体的数据值进行运算!
            
        位与&:
                有0,则0
        位或|:    
                有1,则1
        位异或^:
                相同则为0,不同则为1
        ~反码  :对一个数据进行反码:按位取反(全部0变1,1变0)

位运算之位移符号
    
    Java源码中会有这些位移符号
                    
    
    <<:左移
            将数据的补码进行左移动,右边不够的补0,左边多余丢弃掉
            
            特点:将 <<符号左边的数据乘以2的移动次幂
            
            面试题:
                请用有效的数据方式写出2 * 8的结果 16 
                
                2 << 3        2 * 2 ^3 
            
    >>:右移 
            将数据的补码右移动;如果最高符号位为0,左边补0;如果最高符号位为1,左边补1...
    
                特点:
                        将>>符号左边的数据 除以2的移动次幂
                        
    >>>:无符号右移
            将数据的补码右移动,无论最高符号位为0还是1,左边都补0...

位异或的特点^: 一个数据被另一个数据位异或两次:其值是它本身!

3.三元运算符:

三元运算符(三目)
    
    格式
        (表达式)? 执行成立的结果:执行false的结果;
        
    执行流程:
        1)首先判断表达式是否成立
        2)如果成立,执行成立的结果
        3)如果不成立,就false的结果
  4.键盘录入数据:

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

    Scanner类: JDK5以后提供的:录入数据的 (无法直接录入char)
    
    
        录入字符串:        String nextLine() 
        录入int类型数据:int nextInt() 
        
        
    异常
        
        程序出问题了
                异常:
                        严重问题:error
                        普通异常问题:
                                编译时期异常 
                                运行时期异常 : 开发者在编程期间: 语法符号规则
                                                逻辑结构 存在弊端:
        
    录入的类型一定和接收的类型匹配:否则: java.util.InputMismatchException

5.流程控制语句—顺序结构:

流程控制语句:
        顺序结构语句(最基本的语句) 
            当前xxx.java文件---jvm 编译  -----> 类名.class(字节码文件)
            执行程序: java  类名.class;  (编译+运行: 底层原理是一种反射:Java高级部分)
                                                后期:反射贯彻于JavaEE
            jvm调用main方法:代码从上而下依次加载(源顺序)
        
        选择结构语句
        循环结构语句
6.选择结构语句之if结构:

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

            2)如果使用if格式1,里面的语句是条语句,
                {}是可以省略的!,不建议省略!
            if格式
    场景:针对多个情况进行判断
    格式
        if(表达式1){
            语句1;
        }else if(表达式2){
            语句2;
        }else if(表达式3){
            语句3;
            
            
        ...
                
        }else{
            语句n+1 ;
        }
        
        流程:
            首先,判断表达式1是否成立,成立,执行语句1
            否则,判断表达式2是否成立,成立,执行语句2
            否则,判断表达式3是否成立,成立,执行语句3
            
            ....
            如果上述都没有匹配的结果:执行else的语句;

7.选择语句结构之switch结构:

switch语句
    
    格式:
        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语句的注意事项
    
        1)case语句的后面只能是常量    (Java是一个强类型语言)                    
                                前端:javascript :switch语句的case后面可以常量也可以变量
        
        2)break语句:不要轻易省略掉,  会造成case 穿透现象(此时,
            如果跟某个case已经匹配,但是没有语句break,下面的case就不会对比,直接执行语句)
                break:结束,中断  :结束switch
                
        3)switch语句的结束条件
                a)语句break结束
                b)程序默认执行的到末尾!
                
        4)default语句可以在switch语句中的任何位置,不影响执行流程!    
                当前case后面的都匹配,执行default语句
                
                如果default语句在语句中的话,break语句 不能省略!
                如果default语句在switch末尾的话,break语句是可以省略!

Day04:

1.循环之for语句:

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

2.循环之while语句:

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

while和for循环的区别什么?
    
        1)应用场景的区别:
            是否明确循环次数
            如果明确循环次数,优先使用for循环 (开发中经常使用)
            当不明确循环的次数,使用while循环
        2)从格式---(内存角度) :for优于 while
            for循环结束之后,不能够访问到for循环中的变量;
            循环结束了, 变量(内存中变量:临时变量)就需要被回收了, 节省内存(栈内存)
            
            while循环:由于存在初始化语句是在while外面定义的,
            所有当前while循环,依然访问到while循环中的变量

死循环:
        循环语句没有结束条件---恒成立!
        
    while循环格式(推荐)
    for循环格式
        for(;;){
            循环体语句;
        }
        

    灵活使用死循环:当不明确次数,使用while循环
        while(true){
            
            //判断
            满足条件,退出死循环 
            break ; 
        }

3.do-while语句:

doWhile循环语句的格式
    
    初始化语句;
    do{
        循环体语句;
        控制体语句;
    }while(条件表达式) ;
    
    执行流程:
        初始化语句对变量赋值一次;
        成立,执行循环体语句---控制体语句
        判断条件表达式是否成立!
        ...
        条件不成立,循环语句结束!
        
        在控制台输出 5次"helloJavaEE" ;
        
        
do-while循环: 应用场景: 以后源码中会有,开发中很少用
            它和for,while最大的区别:即使条件不成立,循环体至少执行一次!

4.for循环嵌套:

for循环嵌套
    
        for(初始化语句1;条件表达式1;控制体语句1){
            
            for(初始化语句2;条件表达式2;控制体语句2){
                循环体
            }
        }
        
        
        内层循环作为外层的循环体语句!
    
流程:
        初始化1先执行,条件表达式1成立,
        执行循环:for循环    
                    先执行初始化语句2, 条件表达式2成立.
                        循环体语句 ---->控制体语句2----条件表达式2是否成立
                        不满足条件
        控制体语句1

5.跳转控制语句:

break:表示中断结束的意思,不能单独场景使用
            
                只能在这两个场景使用:
                            switch语句 :遇见break结束
                            循环中使用:结束循环语句的
                            
                                    单个循环语句中
                        嵌套循环中使用(早期的)
                                    
                        break 标签语句

                            标签语句:给外层循环和内层循环 起一个名字  标签名称:for(xxx)
                                break 标签名称;

跳转控制语句之:    
            continue:结束当前循环,立即下一次循环!

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

Day5:

方法:

Java语言中:如何定义一个方法
    
    有具体返回值类型的方法定义
    
    格式:固定写法:
    public static 返回值类型 方法名称(形式参数类型1 变量名1 ,形式参数类型 变量名2...){
        
        需要通过义务逻辑
        return 结果数据;
    }
    
    有返回值类型的方法定义解释说明
    
     public: 公共的,公开的 权限修饰符
     static: 静态的(面向对象讲)
     返回值类型:数据类型 : 目前---基本数据类型,以后使用引用数据类型
     方法名称:符合 "标识符"的规则:小驼峰命名法(多个单词) 
     形式参数列表:
            形式参数类型1 变量名1 ,形式参数类型 变量名2...
            
            形式参数类型:数据类型 : 目前---基本数据类型,以后使用引用数据类型
            
            变量名:符合 "标识符"的规则 (小驼峰命名法(多个单词) )
            
            
    方法体中中{}----> 携带一个关键字return :结束当前这个方法并且有一个结果;  

定义方法的注意事项
            1)方法与方法是平级关系    
                只能调用对方,不能去嵌套使用
            2)定义方法需要明确
                    1)明确返回值类型
                    2)明确参数类型以及参数个数
            3)方法的形式参数必须携带数据类型,否则报错(编译通不了)
                    Java是强制类型语言                        ---- 前端:javascript(弱类型语言)   定义变量var
                    public static int add(int a,int b){}              function add(a,b){}    

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

没有返回值类型的定义:
   
    
    固定的格式
        public static 返回值类型 方法名(形式参数类型1 变量名1 ,形式类型2 变量名2...){
            
            //业务
            //获取结果
        
        }
        
        
    解释说明:
        public static :固定写法 
        
        void:关键字
            Java中规定:针对没有具体返回值的结果的时候,但是方法中必须"返回值类型"
                使用void来替代"返回值类型" :满足格式要求!

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值