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

Java 03(代码块,内部类,lambda表达式)

代码块

使用{}括起来的代码块

1.局部代码块

位置
方法中的一对大括号
作用

在这里插入图片描述

减少代码的生命周期,提早的释放内存
----
很少用,因为现在电脑的内存大了

2.构造代码块

位置

image-20241211105806361

类中方法外的一堆大括号
特点
1.在创建对象,执行代码的时候,就会执行构造代码块,(优先于构造方法执行)
作用
将多个构造方法中,重复的代码,抽取到构造代码块当中,从而提高代码的复用性

3.静态代码块

位置
类中方法外的一对大括号,需要加入static关键字
特点

在这里插入图片描述

类加载的时候就会调用,当这个类加载的时候就i会创建一次,
但是类只加载一次,所以只会执行一次,但是***局部代码块除外
作用
1.将数据进行初始化
(数据比较复杂)
2.文件读取

内部类

就是定义在一个类里面的类

成员内部类

class outer{class inner{}
}
格式
outer.inner in = new outer().new inner();
成员访问细节
内部类访问外部类:直接访问,包括私有
外部类访问内部类:不可以,需要访问的话需要创建对象,
并且,在外部内类里创建内部类对象的时候,可以直接inner =new inner();
小面试题

在这里插入图片描述

意义
一个汽车对象有一些别的内容例如发动机,可以使用内部类
但一般比较少用

静态内部类

class outer{static class inner{}
}
只有内部类才能这样写;
格式
outer inner in =new outer.inner();
注意事项
静态只能访问静态

局部内部类

放在方法里面,代码块和构造器等执行体里面;

在这里插入图片描述

比较鸡肋,不怎么用,上图是一个样例

匿名内部类**

概述
本质上是一个特殊的局部内部类(定义在方法内部)
前提
需要存在一个接口或者类
格式
new 接口/类名{
}
问题

在这里插入图片描述

可以让代码变得更加简介
在定义类的时候就可以实例化对象

Lambda表达式

1.作用

简化匿名内部类的代码写法
(匿名内部类杯从写的形参列表) -> {被重写的方法体代码
}

2.例子

在这里插入图片描述

3.注意

并不是所有的都可以使用lambda使用
只允许操作函数式表达式接口:
也就是有且仅有1个抽象方法的接口
可以跟@Override的使用一样,在需要的时候加上@FunctionalInterface检测一下

4.细节

a
如果方法体只有一行代码,可以省略大括号不写
b

在这里插入图片描述
)

只有一个参数,参数类型和小括号都可以不写
c
忘记了,参数类型可以一直省略不写

5.与匿名内部类的差别

1.lambda只能是函数类接口
2.lambda在编译的时候不会产生class字节码文件,但是匿名内部类需要

http://www.xdnf.cn/news/7478.html

相关文章:

  • python八股文汇总(持续更新版)
  • 《医院运营管理典型应用数据资源建设指南2025》全面分析
  • Apache Apisix配置ip-restriction插件以限制IP地址访问
  • CesiumEarth v1.15 更新
  • 在Windows系统中使用C++与Orthanc交互:基于DICOMweb的医学影像应用开发
  • Fiddler抓包教程->HTTP和HTTPS基础知识
  • 八股文--JVM(2)
  • Python 计算机网络TCP网络应用程序开发
  • 解决npm install报错:getaddrinfo ENOTFOUND registry.nlark.com
  • 数据分析_商务运营考核指标体系搭建
  • AI筑基,新质跃升|英码科技亮相华为广东新质生产力创新峰会,发布大模型一体机新品,助力产业智能化转型
  • 鸿蒙PC新物种发布!华为MateBook Pro/ Fold深度解析:折叠屏革命与生态破局
  • 塔式服务器都有哪些重要功能?
  • MATLAB跳动的爱心
  • [SpringBoot]Spring MVC(5.0)----留言板
  • 企业版单机修改密码、密码过期、修改密码有效期及密码认证方式变更(sm3与md5)的操作步骤
  • Backend - Oracle SQL
  • RabbitMQ Topic RPC
  • 在Windows 11中,Edge浏览器默认会打开多个标签页,导致任务切换时标签页过多
  • List更简洁的编码构建
  • 【华为鸿蒙电脑】首款鸿蒙电脑发布:MateBook Fold 非凡大师 MateBook Pro,擎云星河计划启动
  • 易趋赋能智能家电:从需求到交付的全链路降本增效
  • 【Jitsi Meet】(腾讯会议的平替)Docker安装Jitsi Meet指南-使用内网IP访问
  • 聚焦开放智能,抢占技术高地 | 2025 高通边缘智能创新应用大赛第五场公开课来袭!
  • ⼆叉搜索树详解
  • 《MambaLLIE:基于隐式Retinex感知的低光照增强框架与全局-局部状态空间建模》学习笔记
  • 测试--自动化测试函数
  • C++类与对象--4 友元
  • 【C++】日期类
  • sherpa-ncnn:音频处理跟不上采集速度 -- 语音转文本大模型