【无标题】华清远见重庆中心—后端基础阶段技术总结/个人总结

 

目录

Java学习总结

变量

数据类型

加、减、乘、除、取余(求模)

字符串拼接符

运算符

if语句(如果)

 if...else 语句

 if...else if 语句

 switch语句

 for循环

while 循环

 do-while 循环

 数组 :

 数组复制 System.arraycopy

数组扩容

冒泡排序

 排序函数        

 二维数组


Java学习总结

变量

​​​​​​​​​​​变量: 一个可以装载“字面量”的容器
     代码的结尾要用;(英文分号)
int a = 1;
 数据类型 变量名称 = 数据值(字面量)
 变量声明:数据类型 变量名称
int b;
变量的初始化:变量名称 = 数据值(字面量)
b = 2;
数据类型 要与数据值(字面量)保持一致
数据类型(基本数据类型):byte short int long float double char boolean
保持一致:int整数类型 === 11整数类型
int c = "张三"; //编译错误:有红线的代码区域
 使用变量
        System.out.println(a);
        System.out.println(b);

变量相互赋值:将变量的值赋值给其他变量
        int n1 = 1;
        int n2 = n1;

变量的名称,规则(前、中后):
1、变量名称的开头只能以_或$(¥ 人民币),英文字母 定义
2、变量名称的中间只能以_或$(¥ 人民币),英文字母,数字 定义
int _admin;
int $admin;
int admin;
int Admin;
int ¥admin;
int ad_min;
int ad$min;
int admin01;
int ad01min;
在方法内,如果一个变量仅仅只声明,那么它不可以被使用
(在方法内,一个变量需要被初始化后才能使用)
int m;
System.out.println(m);
补充:1、变量不能重名
     2、变量名称的大小写敏感
     3、变量可以多个一起定义
int s = 1;//字母大小写对Java来说,是不同的(敏感)。
int S = 2;
多个变量声明
       
int a1,a2,a3,a4;
int a1,a2,a3,a4 = 12;
int a1=1,a2=2,a3=3,a4 = 12;
单行注释:注释一行内容(内容上边,或者结尾右侧对变量或者常量注释,对某一行代码进行解释
快捷方式: Ctrl + /

/* 多行注释:注释一个代码片段(方法、方法中的某几行) */
/* 快捷方式 /* + Enter */

数据类型

整数类型:int (byte short long)
整数类型:long
       为什么要用long类型? int数值范围无法表示的情况下所有整数数值类型默认为int
       注意:long类型数值后需要加上L或者l
浮点类型:float
注释:float定义浮点数类型时,需要加上F或者f
浮点类型:double
字符类型:char (基本数据类型)
整数类型 byte < short < int < long
大范围的数值类型 ==> 小范围的数据类型 :强制转化
   口诀:大转小要强转
   注意!运算方向是从右往左
小范围的数值类型 ==> 大范围的数据类型 :自动转化
     口诀:小转大自动转
数值范围大小:byte < short < int < long < float < double
      浮点型由于表示数的范围有特殊方式(不同于整数),所以float > long > int
      整数值的默认类型是int,小数值的默认类型是double

加、减、乘、除、取余(求模)

int a = 3;
int b = 7;
float c = 7.0f;

System.out.println(a + b);//10
System.out.println(a - b);//-4
System.out.println(a * b);//21
System.out.println(a / b);//0
//求模运算为 %
System.out.println(a % b);//3
两数相除:1、两数都是整数类型,求整数商
         2、两数任意一个是浮点数,求浮点数的商
System.out.println(a / c);//0.42857143
System.out.println(a % c);//3.0
数据类型表达式:
    运算表达式的最终类型,由运算表达式中的最大类型来决定。
int n = 1;
long m = 2;
long l = n + m; //最终类型是long,因为m是最高的long类型
double d = 1.2;
double d2 = n + d;

//注意:值溢出的风险。
 int类型 2100000000
int n1 = 210000;
int n2 = 210000;
int n3 = n1 * n2;//int 值溢出风险
System.out.println(n3);
程序逻辑在方法中是严格从上往下执行的
++ : 自加一
-- : 自减一
int a = 5;
a++;
a = a + 1 : =赋值运算从右往左
System.out.println(a);
a--;
a = a - 1
System.out.println(a);
什么是表达式? 
例如:a-b; b++; ++b :注意表达式最终都是以结果形式显示b(变量)的值,与b++,++b (表达式)的值是有区别的++,--在变量”左侧“和“右侧”的区别
判断依据: 看运算符在前,还是变量在前。
          如果运算符在前,则先对值进行自加,再将值赋值给左侧
          如果是变量在前,则先把值赋值给左侧,再自加。

字符串拼接符

 String a = "abc";
 String b = "123";
 System.out.println(a + b);
 重点:
       字符串拼接符的判断依据:+ 的任意一侧有字符串出现时,它就是拼接符
       字符串拼接符 与普通的加减运算的优先级一致。

运算符

​​​​​​​赋值运算符 = :1、优先等级最低 2、从右往左运算
赋值运算的扩展运算符: += -= /= *= %=
int a = 1;//将1赋值给a变量
int b = 2;
b += a; //b = b + a
System.out.println(b);//3
b *= a;
System.out.println(b);//3
int c = 5;
b %= c;//b = b % c
System.out.println(b);//3
交换两个数的值 
        a = 7; b = 3;
        int a = 3;
        int b = 7;

        a = b;//a = 7; b = 7;
        b = a;//a = 7; b = 7;
        需要定义一个中间量:
        int tmp;
        tmp = b;
        b = a;
        a = tmp;
       System.out.println("a = " + a);
       System.out.println("b = " + b);
比较运算符
 == 等号
 === 恒等 引用数据类型
 > , < , >= , <= ,!=
字符类型的比较:字符类型的比较是通过ASCII所对应的十进制编码进行比较

字符串类型的比较:字符串的不能用大小关系比较

if语句(如果)

格式:if(布尔表达式){ 执行语句 }
描述:如果布尔表达式成立,就会执行“执行语句”,否则直接跳过这一次判断
//案例: 大于等于60分:成绩及格
double score = 90;
if(score >= 60){
    System.out.println("成绩及格");
}
System.out.println("结束");

 if...else 语句

​​​
​​​​​格式:if(布尔表达式){ 执行语句 }else{ 执行语句 }
描述:如果布尔表达式成立,就会执行if中的“执行语句”,否则执行else中的“执行语句”
//案例:大于等于60分:成绩及格 小于60分:不及格

if(score >= 60){
    System.out.println("成绩及格");
}else{
    System.out.println("不及格");
}

 if...else if 语句

格式:if(布尔表达式){ 执行语句 }else if(布尔表达式){ 执行语句 }
描述:如果if中布尔表达式成立,就会执行if中的“执行语句”
如果else if中布尔表达式成立,就会执行else if中的“执行语句”
​​​​​​​随着条件的增多,我们可以增加else if的数量。
 案例:大于等于90 :优秀
                     80~90:良好
                     60~80:合格
                     0 ~60:差
       if(score >= 90){
            System.out.println("优秀");
        }else if(score >= 80 && score < 90){//score < 90
            System.out.println("良好");
        }else if(score >= 60 && score < 80) {
            System.out.println("合格");
        }else if(score < 60){
            System.out.println("差");
        }
控制台输入:java.util.Scanner
1、引入Scanner工具 :
import java.util.Scanner;
2、新建Scanner的对象:
Scanner scan = new Scanner(System.in);
3、先使用System.out.println("请输入内容:");
4、使用scan.nextXXX 定义输入值的类型。
随机数 Math.random()
Math.random() 创建一个0~1的数(且不包含1) double类型

 switch语句

switch语句格式:switch(数据值或变量){ case 值1:...; case 值2 :...;... }
//选项卡:选择1 选择2 选择3...
int n = 2; //选择的数据变量
switch (n){
    case 1:
        System.out.println("n为1");
        break;//通过break可以终止整个switch语句
    case 2:
        System.out.println("n为2");
        break;//通过break可以终止整个switch语句
    case 3:
        System.out.println("n为3");
        break;//通过break可以终止整个switch语句
}
注意:1、switch括号中一般是变量,变量需要指定特殊的数据类型(byte short int char String(Character))
        switch不可以设置的类型有:long,double,float
     2、有无break的情况(break 跳出(停止)switch语句),没有break情况,程序会继续往后执行。
     3、关于if语句与switch的区别:switch不能判断范围条件.
     4、default 除了case之外的其他条件,(default为了程序健壮性)

 for循环

for循环格式 for(初始化内容;结束循环条件;变化方式){...}
初始化内容:int i = 0
结束循环条件: i < 5 (布尔表达式)
变化方式: i++
循环是什么:解决重复代码问题。
 //举例:重复打印Hello World 50遍
        for(int i = 0; i < 50; i++){
            System.out.println(i);
        }

        循环的特殊结构
       死循环:循环没有结束条件
        for(int i = 0;;i++){}
        for(int i = 0;i < 5;){}
        for(;;){}

while 循环

//while循环格式 while(布尔表达式){ ... }
int a = 1;
while (a < 10){
    a++;
    System.out.println(a);
}
//while循环特殊形式
//while死循环
while(true){}

 do-while 循环

格式: do{  执行代码 }while(布尔表达式);
int a = 10;
while(a < 10){
    a++;
    System.out.println(a);
}

int b = 10;
do{
    b++;
    System.out.println(b);
}while(b < 10);
while 和 do-while的区别
do-while 是先执行再判断  while是先判断再执行
注意:break 在switch中,退出switch
break 在循环中出现,退出循环
continue 在循环中出现,跳过本地循环,开始下一次循环(本质:continue 到 i++ 开始下一次循环)

 数组 :

 简单定义:义将一类数据方到一个整体中
 专业定义:将数据类型相同的数据,放到一个集合
数组的定义方式:1、静态初始化  2、动态初始化

1、静态初始化 : 在构建数组时就给予初始化的值
数组类型: 数据类型[]、变量[]
数组初始化 {数组元素,数组元素,....}
int[] a = {1,2,3};//1、数组有3个元素长度 2
int b[] = {1,2,3};
2、动态初始化 :先构建数组的对象,然后在逐一赋值初始化
 基本格式: 数据类型[] 变量名 = new 数据类型[数组的长度]
int[] c = new int[3];
注意:数组的类型决定了元素是什么样的类型
动态初始化过程
new: 对象创建
虽然new int[3] 开辟了三个空间,但是空间中是有指定类型的默认值
int[] b = new int[3];
System.out.println(b[0]);//输出默认值0
b[0] = 1;
System.out.println(b[0]);
数组空间:​​​​​​​
int[] a = {1,2,3};
1、数组a的地址,指向了1,2,3元素所在的堆内存空间
2、而数组a的地址等于 1元素所在空间的地址。
3、1,2,3元素所在的堆内存空间的地址是连续的
对指定下标的数组元素赋值,可以直接修改该数组
a[1] = 4;
//其他类型数组的默认值
        float[] n1 = new float[3];//默认值0.0
        char[] n2 = new char[3];
        System.out.println(n2[0]);//空字符
        boolean[] n3 = new boolean[3];
        System.out.println(n3[0]);//false
        //引用数据类型的默认值
        String[] n4 = new String[3];
        System.out.println(n4[0]);//null 空对象

 数组复制 System.arraycopy

        System.arraycopy(src,srcPos,dest,destPos,length)
        src : 被复制的数组(从哪个数组复制)
        srcPos : 从src的哪个下标开始复制
        dest : 粘贴到的数组
        destPos : 从dest的哪个下标开始粘贴
        length : 复制的数据元素的长度
int[] c = {7,8,9,10,11,12};
        System.arraycopy(a,2,c,2,2);
        System.out.println("c数组:" + Arrays.toString(c));
        System.out.println("a数组:" + Arrays.toString(a));

数组扩容

数组阔容的办法
        Arrays.copyOf(src,length)
        //src:需要扩容的数组
        //length:扩容的长度
 int[] c = {1,2,3};
        c = Arrays.copyOf(c,4);
​​​​​​​        System.out.println(Arrays.toString(c));

 

冒泡排序

 int[] a = {5,4,3,2,1};
        //通过推理,总共有a.length - 1 次排序
        for(int j = 0; j < a.length - 1; j++){
            //一次排序
            //1.考虑倒数的第二位元素结束: i < a.length - 1
            //a.length - 1 - j : 考虑到不用比较的次数
            for (int i = 0; i < a.length - 1 - j; i++){
                //2.前面的数和后面的数比较大小
                if(a[i] > a[i+1]){
                    //3.交换
                    int tmp;
                    tmp = a[i];
                    a[i] = a[i+1];
                    a[i+1] = tmp;
                }
            }
            System.out.println(Arrays.toString(a));
        }

        System.out.println(Arrays.toString(a));

 排序函数        

public static void main(String[] args) {
    int[] a = {5,4,3,2,1};
    Arrays.sort(a);//从小到大的排序
    System.out.println(Arrays.toString(a));
}
public static void main(String[] args) {
    //问题 ["红","蓝","绿","蓝","红","绿"]
    // 按照:' 绿 < 蓝 < 红 '的规则排序
    String[] b = {"红","蓝","绿","蓝","红","绿"};

    for(int j = 0; j < b.length - 1; j++){
        for(int i = 0; i < b.length - 1; i++){
            if(b[i] == "蓝" && b[i+1] == "绿" || b[i] == "红" && b[i+1] == "蓝"|| b[i] == "红" && b[i+1] == "绿" ){
                String tmp;
                tmp = b[i];
                b[i] = b[i+1];
                b[i+1] = tmp;
            }
        }
    }
    System.out.println(Arrays.toString(b));
}

 

 二维数组

二维数组 : 二维数组的元素是一维数组
定义方式 int[][] 数组名称
静态初始化
int[][] n1 = {{1,2,3},{3,4,5}};
动态初始化
理解方式一: new int[行][列]
理解方式二: new int[有几个一维数组][这些一维数组中有几个元素]
int[][] n2 = new int[3][3];
int[][] n3 = new int[3][];// = {[],[],[]};//元素是三个空的一维数组
length 数组长度
 System.out.println(n4.length);//有多少个一维数组
 System.out.println(n4[n4.length - 1].length);//指定一维数组中的元素个数
二维数组的遍历
for(int i = 0; i < n4.length; i++){
    for(int j = 0; j < n4[i].length; j++){
        System.out.println(n4[i][j]);
    }
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值