JAVA笔记

常用的CMD命令

1.盘符名称+冒号

说明:盘符切换

2.dir

说明:查看当前路径下的内容

3.cd 目录

说明:进入单级目录

4.cd

说明:回退到上一级目录

5.cd 目录1 \目录2 \ ...

说明:进入多级目录

6.cd \

说明:回退到盘符目录

7.cls

说明:清屏

8.exit

说明:退出命令提示符窗口

 


JAVA基础概念

注释分类

1.单行注释

格式:// 注释信息

2.多行注释:

格式:/* 注释信息 */

3.文件注释

格式:/*                */

字面量的分类

字面量类型说明举例
整数类型不带小数点的数字666,-88
小数类型带小数点的数字13.14,-5.21
字符串类型用双引号括起来的内容"sadasda","你好"
字符类型用单引号括起来的,内容只能有一个'A','0','我'
布尔类型布尔值,表示真假只有两个值:true,false
空类型一个特殊的值,空值

值:null

 

\t 制表符

在打印的时候,把前面字符串的长度补齐到8,或者8的整数倍。最少补一个空格,最多补8个空格。

变量的定义格式

  • 数据类型 变量名 = 数据值;

基本数据类型

数据类型关键字取值范围
整数byte

-128~127

short 
int(默认) 
long 
浮点数float 
double(默认) 
字符char 
布尔booleantrue,false

 

标识符

硬性要求

  • 由数字,字母,下划线(_)和美元符($)组成
  • 不能以数字开头
  • 不能是关键字
  • 区分大小写

软性要求

1.小驼峰命名法:方法,变量

规范1:标识符是一个单词的时候,全部小写

范例1:name

规范2:标识符由多个单词组成的时候,第一个单词首字母小写,其他单词首字母大写

范例2:firstName

2.大驼峰命名法:类名

规范1:标识符是一个单词的时候,首字母大写

范例1:Student

规范2:标识符由多个单词组成的时候,每个单词的首字母大写

范例2:GoodStudent


键盘录入

步骤一:导包)

import   java.util.Scanner;                ( 导包必须再类定义的上边)

步骤二:创建对象

Scanner sc = new Scanner(System.in);

步骤三:接收数据

int i = sc.nextInt(); 

 

运算符   

算术运算符

 

符号作用
+
-
*
/
%取余

 

取值范围

byte < short < int < long < float < double

 

隐式转换(自动提升类型)

把一个取值范围小的数值,转换成取值范围大的数据

转换规则1:

  • 取值范围小的,和取值范围大的进行运算,小的会先提升为大的,再进行计算

转换规则2:

  • byte   short   char   三种类型的数据在运算的时候,都会直接先提升为 int ,然后再进行运算

强制转换

不能直接把一个取值范围大的数值,赋值给取值范围小的变量

  • 强转格式:目标数据类型  变量名  =  (目标数据类型)被强转的数据;
  • 范例:
    byte  b  =(byte)a;
    
    byte result = (byte)(b1 + b2) ;
    

     

字符串的  " + "操作

  1. 当 " + "操作中出现字符串时,这个 " + "是字符串连接符,而不是算术运算符。会将前后的数据进行拼接,产生一个新的字符串。
  2. 连续进行 " + "操作时,从左到右逐一执行。

自增自减运算符

符号作用说明
++变量的值加1
--变量的值减1

 

赋值运算符

符号作用说明
=赋值int a = 10,将10赋值给变量a
+=加后赋值a+=b,将a+b的值给a
-=减后赋值a-=b,将a-b的值给a
*=乘后赋值a*=b,将a*b的值给a
/=除后赋值a/=b,将a➗b的商给a
%=取余后赋值

a%=b,将a➗b的余数给a

 

关系运算符

符号说明
==a==b,判断a和b的值是否相等,成立为true,不成立为false
!=

a!=b,判断a和b的值是否不相等,成立为true,不成立为false

>a>b,判断a是否大于b,成立为true,不成立为false
>=a>=b,判断a是否大于等于b,成立为true,不成立为false
<a<b,判断a是否小于b,成立为true,不成立为false
<=a<=b,判断a是否小于等于b,成立为true,不成立为false
  • 注意事项:关系运算符的结果都是boolean类型,要么是true,要么是false。

逻辑运算符

符号作用说明
&逻辑与并且,两边都为真,结果才为真
|逻辑或或者,两边都为假,结果才为假
^逻辑异或相同为false,不同为true
逻辑非取反

 

短路逻辑运算符

符号作用说明
&&短路与结果和&相同,但是有短路效果
||短路或结果和|相同,但是有短路效果

 

  • 注意事项:
  • & |,无论左边true,false,右边都要执行。
  • && ||,如果左边能确定整个表达式的结果,右边不执行。
  • &&:左边为false,右边不管是真是假,整个表达式的结果一定是false。
  • ||:左边为true,右边不管是真是假,整个表达式的结果一定为true。

三元运算符

格式:关系表达式?表达式1:表达式2;

解释:如果关系表达式为true,则返回表达式1,如果关系表达式为false,则返回表达式2。

范例:

int max = a > b? a : b;
System.out.println(max);

  


判断和循环

if语句的第一种格式

格式:if(关系表达式){
        语句体;    
     }


范例:if(酒量>2){
       System.out.println("酒量不错");
     }


执行流程:

  1. 先计算关系表达式的值
  2. 如果关系表达式的值为true就执行语句体
  3. 如果关系表达式的值为false就不执行语句体
  4. 继续执行后面的其他语句

 if语句的第二种格式

格式: if(关系表达式){
        语句体1;
    }else{
        语句体2;
    }


范例: if(酒量 > 2){
        System.out.println("酒量不错");
    }else{
        System.out.println("酒量不行");
    }

 执行流程:

  1. 先计算关系表达式的值
  2. 如果关系表达式的值为true就执行语句体1
  3. 如果关系表达式的值为false就不执行语句体2
  4. 继续执行后面的其他语句

if语句的第三种格式 

格式: if(关系表达式){
        语句体1;
    }else if(关系表达式){
        语句体2;
    }
        ...
        else{
        语句体 n + 1;
    }


范例: if(score >= 95 && score <= 100){
        System.out.println("送自行车一辆");
    }else if(score >= 90 && score <= 94){
        System.out.println("游乐场玩一天");
    }else{
        System.out.println("打一顿");    
    }

执行流程:

  1. 先计算关系表达式1的值
  2. 如果为true就执行语句体1;如果为false就计算关系表达式2的值
  3. 如果为true就执行语句体2;如果为false就计算关系表达式3的值
  4. ......
  5. 如果关系表达式结果都为false,就执行语句体n+1。

 switch语句格式

格式: switch(表达式) {

           case 值1:
                语句体1;
                break;
           case 值2:
                语句体2;
                break;
           ...
           default:
                语句体 n+1;
                break;

}


范例:switch(心里想吃的面) {
          case "兰州拉面":
                吃拉面;
                break;
          case "热干面":
                吃热干面;
                break;
         default :
                吃泡面;
                break;              
}

执行流程:

  1. 先计算表达式的值。
  2. 依次和case后面的值进行比较,如果有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。
  3. 如果所有的case后面的值和表达式的值都不匹配,就会执行default里面的语句体,然后结束整个switch语句。

格式说明:

  1. 表达式:(将要匹配的值)取值为byte,short,int,char。
  2. case:后面跟的是要和表达式进行比较的值(被匹配的值) 。
  3. break:表示中断,结束的意思,用来结束switch语句。
  4. default:表示所有情况都不匹配的时候,就执行该处的内容,和if语句的else相似。
  5. case后面的值只能是字面量,不能是变量。
  6. case给出的值不允许重复。

 for循环

格式: for(初始化语句; 条件判断语句; 条件控制语句){
         循环体语句;
        }



范例: for(int i = 1; i <= 10; i++){
         System.out。println("HelloWord");
        }

执行流程:

1.执行初始化语句

2.执行条件判断语句,看其结果是true还是false

         如果是false,循环结束

         如果是true,执行循环体语句

3.执行条件控制语句

4.回到2继续执行条件语句 

 

 

 while循环的执行流程

格式: 初始化语句;
       while(条件控制语句){
            循环体语句;
            条件控制语句;
        }
        

范例:int i = 1;
      while(i <= 10){
          System.out.println(i);
          i++;
      }

 执行流程:

  • 初始化语句只执行一次
  • 判断语句为true,循环继续
  • 判断语句为false,循环结束

for和while的对比

  • 相同点:运行规则一样
  • 区别:for循环中,初始化语句,因为属于for循环中,在for循环结束后,就不能再次使用变量。
  • while循环中,初始化语句,因为不属于while中,在while循环结束后,还可以继续使用变量。

 使用for和while的区别:

  • for循环:知道循环次数或者循环的范围
  • while循环:不知道循环的次数和范围,只知道循环的结束条件

do...while循环 

格式: 初始化语句;
       do{
        循环体语句;
        条件控制语句;
     }while(条件控制语句);


    执行流程:先执行后判断


范例: int i = 1;
       do{
         System.out.println(i);
         i++;
     }while(i <= 5);

无限循环

for(;;){
    System.out.println("学习");    
}


while(true){
    System.out.println("学习");
}


do{
    System.out.println("学习");
}while(true);

跳转控制语句

  • continue:跳过本次循环,继续执行下次循环。
  • break:结束整个循环。

获取随机数

1.导包

import java.util。Random;

2.创建对象

Random r = new Random ();

3.生成随机数

int number = r.nextInt(随机数的范围);

数组

  • 数组:是一种容器,可以用来存储同种数据类型的多个值
  • 注意事项:数组容器在存储数据的时候,需要结合隐式转换考虑。
  • 建议:容器的类型,和存储的数据类型保持一致

数组的定义

格式: 数据类型 [] 数据名

范例: int [] array

数组的静态初始化

初始化:在内存中,为数组容器开辟空间,并将数据存入容器中的过程

格式: 数据类型 [] 数组名 = {元素1, 元素2, 元素3, ...};


范例:int [] array = {11, 22, 33};

 索引

  •  索引:也叫坐下标,角标。
  • 索引的特点:从0开始,逐一+1增长,连续不间断

数组的地址值 

int [] arr = {1,2,3,4};

System.out.println(arr);//[I@6d03e736 (地址值)

 拓展:

  • 格式的含义:[D@776ec8df
  • [ : 表示当前是一个数组
  • D : 表示当但数组里面的元素都是double类型的
  • @:表示一个间隔符号(固定格式)
  • 776ec8df:才是数组真正的地址值(十六进制)

 

数组元素访问

格式:数组名 [索引] ;

 把数据存储到数组当中

格式:数组名[索引] = 具体数据/变量;

细节:一旦覆盖之后,原来的数据就不存在了。

范例:arr[0] = 100;

获取数值:可以直接打印,或者赋值变量

int number = arr [0];

System.out.println(arr[0]);


 数组遍历

  • 数组遍历:将数组中所有的内容取出来,取出来之后可以(打印,求和,判断...)
  • 注意:遍历指的是取出数据的过程,遍历不是打印!!! 
  • java中,数组的长度属性:length

    调用方法:数组名.length

  • 拓展:

    快速生成数组的遍历方式:数组名.fori

遍历出数组中的每一个元素

    for(int i = 0; i <= arr.length; i++){
        //i:表示数组每一个元素的索引
        //arr[i]:表示数组每一个元素
        System.out.println(arr[i]);
    }    

数组动态初始化

动态初始化:初始化时只指定数组长度,由系统为数组分配初始化。

格式: 数组类型 [] 数组名 = new 数组类型[数组长度];

范例:int[] arr = new int[3];

数组默认初始化的值
 

数组类型:默认初始化值为 0
小数类型:

默认初始化值为 0.0

字符类型:默认初始化值为 '/u0000'  空格
布尔类型:

默认初始化值为 false

引用数据类型:默认初始化值为 null

数组动态初始化和静态初始化的区别

  • 动态初始化:手动指定数组长度,由系统给出默认初始化值。
  • 使用条件:只明确元素个数,不明确具体数值,推荐使用动态初始化
举例:使用数组容器来存储键盘录入的5个整数。

int [] arr = new int [5];

  •  静态初始化:手动指定数组元素,系统会根据元素个数,计算出数组长度。
  • 使用条件:需求中已经明确了要操作的具体数据,直接静态初始化。
举例:将全班的学生成绩存入数组中 11,22,33

范例:int [] arr = {11,22,33};

数组常见问题总结

  • 索引越界异常:访问了不存在的索引
  • 最小索引:0
  • 最大索引:(数组长度 -1)

方法

  1. 方法:程序中最小的执行单位
  2. 用法:重复的代码,具有独立功能的代码可以抽取到方法中

最简单的方法定义

格式: public static void 方法名(){
        方法体 (打包起来的代码);
      }

范例: public static void getSum(){
        int num1 = 10;
        itn num2 = 20;

        int result = num1 + num2;
        System.out.println(result);
      }
  • 注意:方法必须先定义后调用

 带参数的方法定义

单个参数

格式: public static void 方法名(参数){
        方法体;
    }

范例: public static void method(int number){
        System.out.println(number);
    }


多个参数

格式: public static void 方法名(参数1, 参数2, ...){
        方法体;
    }

范例: public static void getSum(int num1, int num2){
        int result = num1 + num2;
        System.out.println(result);
    }

 注意:方法调用时,参数的数量与类型必须与方法定义中小括号里面的变量——对应。

 带返回值方法的定义

格式: public static 返回值类型 方法名(参数){
        方法体;
        return 返回值;
    }


范例:public static int getSum(int a, int b){
      int c = a + b;
      return c;  
    }

 方法调用的三种方法

直接调用:

方法名(实参);

 

赋值调用:

整数类型 变量名 = 方法名(实参);

 

输出调用:

System.out.println(方法名(实参));

return关键字 

  • 方法没有返回值:可以省略不写。如果书写,表示结束方法
  • 方法有返回值:必须要写。表示结束方法返回结果

方法的重载 

  • 同一个类中,方法名相同,参数不同的方法。与返回值无关。
  • 参数不同,个数不同,类型不同,顺序不同(不建议)
范例: 

正确: public class MethodDemo {
        public static float fn(int a){
            //方法体
        }
        public static int fn(int a, int b){
            //方法体
        }
      }


错误: public class MethodDemo {
     public static void fn(int a){
            //方法体
        }
        public static int fn(int a){
            //方法体
        }
      }
    

  形参和实参

  1. 形参:全称形式参数,是指方法定义中的参数
  2. 实参:全称实际参数,方法调用中的参数

注意:方法调用时,形参和实参必须——对应。

范例: public static void mian (String [] args){
        getSum(10,20);//实参

        
        int a = 10;
        int b = 10;
        getSum(a,b);//实参
    }    

      public static void main (int num1,int mun2)//形参{
        int result = num1 + mum2;
        System.out.println(result);
  }

 方法的注意事项

  1. 方法不调用就不执行
  2. 方法与方法之间是平级关系,不能互相嵌套定义、
  3. 方法的编写循序和执行循序无关
  4. 方法的返回值类型为void,表示该方法没有返回值,没有返回值的方法可以省略return语句不写。如果要编写return,后面不能跟具体的数据
  5. return语句下面,不能编写代码,因为永远执行不到,属于无效代码。

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值