当前位置: 首页 > news >正文

Java基础重温巩固

方法

  • 方法与方法之间是平级关系,不能嵌套
  • return表示结束当前方法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

基本数据类型和引用数据类型

基本数据类型:数据存储在自己的空间中

引用数据类型:数据存储在其他空间中,自己空间存储的是地址值

值传递

  • 传递基本数据类型时,传递的是真实的数据,形参的改变,不影响实际参数的值

在这里插入图片描述
在这里插入图片描述

  • 要有new才会有堆内存
  • 引用类型,传递的是地址值,形参的改变,影响实际参数的值
    在这里插入图片描述

自动拆装箱

  • 装箱(boxing)将 基本数据类型 转换成 包装类
  • 拆箱(unboxing)将 包装类 转换成 基本数据类型
  • 自动装箱将 基本数据类型 自动转换成 包装类
  • 自动拆箱将 包装类 自动转换成 基本数据类型
// 自动装箱
Integer num1 = 6;
// 自动拆箱
int num2 = num1;

重载

  • 同一个类中方法名相同参数不同的方法。与返回值无关

    • 参数不同,个数不同,类型不同,顺序不同
  • java虚拟机会根据不同的参数来区分同名的方法

构造方法

  • 构造方法也叫构造器,构造函数
  • 作用:创建对象给变量赋值,初始化
  • 创建一次对象,构造方法就会被调用一次

特点:
1.方法名与类名相同,大小写也要一致
2.没有返回值类型,连void都没有
3.没有具体的返回值 (不能由retrun带回结果数据)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Java内存

在这里插入图片描述
在这里插入图片描述

成员变量和局部变量

在这里插入图片描述
在这里插入图片描述

内部类

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
1.什么是内部类?

  • 写在一个类里面的类就叫做内部类

    2.什么时候用到内部类?

    • B类表示的事物是A类的一部分,且B单独存在没有意义比如: 汽车的发动机ArrayList的选代器人的心脏等等
  • 内部类的分类

在这里插入图片描述

匿名内部类

在这里插入图片描述

  • 为了避免一次调用就要创建一个类去继承父类
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

lambda表达式

  • @FunctionalInterface接口加了这个注解不报错,就是函数式接口,可以使用lambda表达式
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
package com.liang.lambda;import java.util.Arrays;
import java.util.Comparator;public class lambdaDemo {public static void main(String[] args) {//lambda表达式Integer[] arr = {21,3,4,5,67,8,9};
//        Arrays.sort(arr, new Comparator<Integer>() {
//            @Override
//            public int compare(Integer o1, Integer o2) {
//                return o1-o2;
//            }
//        });//lambda完整格式
//        Arrays.sort(arr,(Integer o1, Integer o2)->{
//                return o1-o2;
//        });//lambda省略写法Arrays.sort(arr,( o1, o2)-> o1-o2);System.out.println(Arrays.toString(arr));}
}

在这里插入图片描述

this

  • this就是找上级代码执行的内容

  • 获取值就近原则

    在这里插入图片描述

static

  • static表示静态,是java中的一个修饰符,可以修饰成员方法,成员变量

  • 静态变量是随着类的加载而加载的,优先于对象出现的

  • 静态变量是类共享的,谁要用谁就拿
    在这里插入图片描述
    在这里插入图片描述

  • 类.方法调用工具类

在这里插入图片描述
在这里插入图片描述

  • 静态方法里面没有this,不能调用非静态的成员变量
  • 非静态方法里面,有个隐藏的this
  • 静态会存在堆内存

总结:

  • 静态方法中没有this关键字。

  • 静态方法中,只能访问静态。

  • 非静态方法可以访问所有。

  • 静态方法只能调用和访问静态
    在这里插入图片描述

  • 静态优先于对象加载

在这里插入图片描述
在这里插入图片描述

增强for遍历

  • 修改增强for中的变量,不会改变集合中原本的数据
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

排序算法

冒泡排序

  • 冒泡排序:相邻的数据两两比较,小的放前面,大的放后面

在这里插入图片描述

  • idea批量改变字母,选中需要修改的字母shit+f6改成你对应的
    public static void main(String[] args) {//冒泡排序:相邻的数据两两比较,小的放前面,大的放后面int[]  arr = {1,5,4,2,3};//外循环: 表示我要执行多少轮如果有n个数据,那么执行n - 1 轮for (int i = 0; i < arr.length-1; i++) {//0 1 2 3//内循环: 每一轮中我如何比较数据并找到当前的最大值// -1: 为了防止索引越界//-i: 提高效率,每一轮执行的次数应该比上一轮少一次for (int j = 0; j < arr.length-1-i; j++) {if (arr[j]>arr[j+1]){int temp = arr[j];arr[j] = arr[j+1];arr[j+1] = temp;}}}for (int i = 0; i < arr.length; i++) {System.out.print(arr[i]+" ");}}

选择排序

  • 从0索引开始,拿着每一个索引上的元素跟后面的元素依次比较小的放前面,大的放后面,以此类推。
    在这里插入图片描述
    public static void main(String[] args) {//        选择排序:
//        1,从@索引开始,跟后面的元素一一比较。
//        2,小的放前面,大的放后面。
//        3,第一次循环结束后,最小的数据已经确定
//        4,第二次循环从1索引开始以此类推。//选择排序int[]  arr = {10,5,4,2,3};//最终代码://外循环: 几轮//i:表示这一轮中,我拿着哪个索引上的数据跟后面的数据进行比较并交换for (int i = 0; i < arr.length-1; i++) {for (int j = i+1; j < arr.length; j++) {if (arr[i]>arr[j]){int temp = arr[i];arr[i] = arr[j];arr[j] = temp;}}}for (int i = 0; i < arr.length; i++) {System.out.print(arr[i]+" ");}}
http://www.lryc.cn/news/69434.html

相关文章:

  • Text2SQL 语义解析数据集、解决方案和学术论文资源整合
  • redis集群+哨兵配置实操宝典
  • nginx的语法
  • 华为OD机试之英文输入法(Java源码)
  • 一个团队管理者应该干什么?
  • 服务器数据库文件加载到 MySQL
  • 6-《网络面试》
  • [高光谱]高光谱数据的获取与展示
  • veth网卡的多队列及RPS
  • 国内的程序员数量是否已经饱和或者过剩?
  • flutter不能抓包
  • 从桌面端到移动端,.NET MAUI为什么对WPF开发人员更简单?
  • [Python]... 和pass
  • 【信息安全案例】——软件解密技术(以OllyDbg为例)
  • 【华为OD机试真题2023B卷 JAVAJS】阿里巴巴找黄金宝箱(I)
  • 记录一次windows mysql5.7安装失败的过程
  • 前端知识复习一
  • 低代码赋能生物药企数字化
  • 【计算机视觉】最后显示的CIFAR-100数据集照片很模糊怎么解决?
  • OJ 系统未解决或者有疑问问题:
  • 《游戏编程模式》--优化模式--学习
  • 电脑照片怎么导入苹果手机?三个妙招帮你解决!
  • 换个花样玩C++(13)一文深度全面剖析类构造,析构,赋值运算和移动构造
  • 这是一篇使用ChatGPT生成的关于隐私计算的文章
  • Docker持久化固定容器IP
  • Filter和Interceptor和Aspect
  • maven 项目依赖加载不出来
  • Python collections模块
  • Qt-学习 QJson协议解析
  • Git的安装与连接