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

【Java学习记录-4】相关名词和概念记录(持续更新)

目录

      • 1 注解
      • 2 包
      • 3 权限修饰符
      • 4 状态修饰符
        • 1. final
        • 2. static
      • 5. 多态
      • 6.抽象类
      • 7.接口

1 注解

@Override是一个注解,可以帮助我们检查重写方法的方法声明的正确性

注意:

  • 私有方法不能被重写(父类私有成员子类是不能继承的)
  • 子类方法访问权限不能更低(public > 默认 > 私有)

2 包

说明:包即文件夹,作用是对类进行分类管理
格式:package 包名;(多级包用.分开,eg: package p1.p2;)
手动建包:

  • 按照之前的格式编译java文件, javac HelloWord.java
  • 手动创建包,根据包创建对应的文件夹
  • 把对应的class文件放到包的最里面
  • 带包执行
    自动建包: javac -d . HelloWorld.java

导包快捷键:alt enter

3 权限修饰符

修饰符同一个类中同一个包中子类无关类不同包的子类不同包的无关类
private
默认
protected
public

4 状态修饰符

1. final

说明:final关键字是最终的意思,可以修饰成员方法,成员变量,类
特点:

  1. 修饰方法,表明该方法是最终方法,不能被重写;
  2. 修饰变量,表明该变量是常量,不能被再次赋值;
  3. 修饰类,表明该类是最终类,不能被继承
    注意:修饰基本类型,数据值不能改变。修改引用类型,则地址值不能改变。但是地址里面的内容是可以改变的。

2. static

说明:static关键字是静态的意思,可以修饰成员方法,成员变量
特点:

  1. 被类的所有对象共享
  2. 可以通过类名调用,也可以通过对象名调用。推荐用类名调用。

访问特点:静态成员方法只能访问静态成员

5. 多态

说明: 同一个对象,在不同时刻表现出来的不同形态
形式: 父类 对象 = new 子类();

特点:

  1. 有继承/实现关系
  2. 有方法重写
  3. 有父类引用指向子类对象

多态中成员访问特点(成员方法有重写)

  1. 成员变量:编译看左边,执行看左边(父类)
  2. 成员方法:编辑看左边,执行看右边(子类)

好处:提高了程序的扩展性。在定义方法的时候,使用父类型作为参数,在使用的时候,使用具体的子类型参与操作。
缺点:不能使用子类的特有功能

6.抽象类

说明:一个没有方法提的方法应该定义为抽象方法,而类中如果有抽象方法,该类必须定义为抽象类

特点:

  1. 抽象类和抽象方法都必须用abstract关键字修饰
  2. 抽象类中不一定有抽象方法,有抽象方法的类一定是抽象类
  3. 抽象类不能实例化,但可以通过子类对象实例化,这叫抽象类多态
  4. 抽象类的子类要么重写抽象类的所有抽象方法,要么是抽象类

成员特点:

  1. 抽象类成员变量可以是变量,也可以是常量
  2. 有构造方法,但是不能实例化,构造方法用于子类访问父类数据的初始化
  3. 可以有抽象方法,用于限定子类必须完成某些动作,也可以有非抽象方法,提高代码的复用性

7.接口

说明:接口就是一种公共的规范标准,只要符合规范标准,大家都可以通用。Java中的接口更多的体现在对行为的抽象

特点:

  1. 接口用关键字interface修饰:public interface 接口名{}
  2. 类实现接口用implements表示:public class 类名 implements 接口名 {}
  3. 接口不能实例化,但可以通过实现类对象实例化,这叫接口多态
  4. 接口的实现类,要么重写接口中的所有抽象方法,要么是抽象类

成员特点:

  1. 成员变量只能是常量,默认修饰符是 public static final
  2. 接口中没有构造方法,因为接口主要是对行为进行抽象的,是没有具体存在一个类。如果没有父类,默认继承自Object类
  3. 成员方法只能是抽象方法,默认修饰符是 public abstract

类和接口的关系:

  1. 类和类:继承关系,只能单继承,但是可以多层继承
  2. 类和接口:实现关系,可以单实现,也可以多实现,还可以在继承一个类的同时实现多个接口
  3. 接口和接口:继承关系,可以单继承,也可以多继承

抽象类和接口的区别:
成员区别:

  • 抽象类: 变量,常量;有构造方法;有抽象方法,也有非抽象方法
  • 接口 : 常量;抽象方法

设计理念区别:

  • 抽象类: 对类抽象,包括属性、行为
  • 接口: 对行为抽象,主要是行为

相关文章:

【Java学习记录-4】相关名词和概念记录(持续更新)

目录 1 注解2 包3 权限修饰符4 状态修饰符1. final2. static 5. 多态6.抽象类7.接口 1 注解 Override是一个注解,可以帮助我们检查重写方法的方法声明的正确性 注意: 私有方法不能被重写(父类私有成员子类是不能继承的)子类方法…...

《程序员面试金典(第6版)》面试题 16.25. LRU 缓存(自定义双向链表,list库函数,哈希映射)

题目描述 设计和构建一个“最近最少使用”缓存,该缓存会删除最近最少使用的项目。缓存应该从键映射到值(允许你插入和检索特定键对应的值),并在初始化时指定最大容量。当缓存被填满时,它应该删除最近最少使用的项目。 题目传送门:…...

kong网关启用jwt认证插件

认证流程: 1、创建一个用户 2、生成jwt的所需要的key和密钥 3、在https://jwt.io/的生成jwt token 4、启用jwt插件 5、发送请求的时候携带jwt的token信息 官方指导:https://docs.konghq.com/hub/kong-inc/jwt/configuration/examples/ 一、创建一个新的…...

day12 - 图像修复

在图像处理的过程中,经常会遇到图像存在多余的线条或者噪声的情况,对于这种情况我们会先对图像进行预处理,去除掉对图形内容有影响的噪声,在进行后续的处理。 本节实验我们介绍使用图像膨胀来处理图形的多余线条,进行…...

1720_Linux学习中的问题处理

全部学习汇总:GreyZhang/little_bits_of_linux: My notes on the trip of learning linux. (github.com) 这个有点学习的方法论的意思,画个滋味导图顺便整理一下。 遇到问题的时候,解决的方法大致有3中,而针对学习的建议有一部分是…...

七人拼团系统开发模式详解

七人拼团是最近兴起的一个模式,它通过更人性化的奖励机制,将产品利润最大化让利给参与拼团的用户,达到促进用户主动积极裂变和团队平台引流提升销量的效果,下面就来详细说一下这个模式。 七人拼团最大的特点,就是结合了…...

CPU性能优化:分支预测

条件跳转引起的控制冒险虽然也可以通过在流水线中插入空泡来避免,但是当流水线很深时,需要插入更多的空泡。一个20级的流水线为例,如果一条指令需要上一条指令的执行结束才能执行,则需要在这两条指令之间插入19个空泡,…...

过滤器Filter,拦截器Interceptor

过滤器Filter 快速入门 详情 登录校验-Filter package com.itheima.filter;import com.alibaba.fastjson.JSONObject; import com.itheima.pojo.Result; import com.itheima.utils.JwtUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.util.StringUtils…...

kafka整理

kafka整理 一、kafka概述 kafka是apache旗下一款开源的顶级的消息队列的系统, 最早是来源于领英, 后期将其贡献给apache, 采用语言是scala.基于zookeeper, 启动kafka集群需要先启动zookeeper集群, 同时在zookeeper记录kafka相关的元数据 kafka本质上就是消息队列的中间件产品…...

为什么有些情况下需要重写equals()和hashCode()方法?

目录 方法作用实战案例 方法作用 equals():判断对象是否相等,比如判断是否能放入Set集合中 情况1:没有重写equals()方法:由于所有类的默认基类都是Object类,所以默认使用Object类的equals()方法,那就是对象…...

14-Vue技术栈之Vue3快速上手

目录 1.Vue3简介2. Vue3带来了什么2.1 性能的提升2.2 源码的升级2.3 拥抱TypeScript2.4 新的特性 1、海贼王,我当定了!——路飞 2、人,最重要的是“心”啊!——山治 3、如果放弃,我将终身遗憾。——路飞 4、人的梦想是…...

JavaScript高级三、深入面向对象

零、文章目录 JavaScript高级三、深入面向对象 1、编程思想 (1)面向过程介绍 面向过程:分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候再一个一个的依次调用就可以了。 (2&…...

static

1. 静态局部变量 : 用于函数体的内部修饰变量,这种变量的生存期长于该函数。 2. 静态全局变量: 定义在函数体外,用于修饰全局变量,表示该变量只在本文件可见。 3. 静态函数: 准确的说,静态函数跟…...

zabbix动作执行失败 No media defined for user.

问题 zabbix动作执行失败 No media defined for user. 详细问题 解决方案 1(导航栏)用户 → \rightarrow →报警媒介 → \rightarrow →添加 2 选择类型 → \rightarrow →收件人 → \rightarrow →添加 3 更新 解决原因 笔者由于未点击更新钮导…...

JavaScript this 关键字

在JavaScript中,this关键字是一个特殊的关键字,它在函数内部使用,用于引用当前执行上下文中的对象。 this的值是在函数调用时动态确定的,它取决于函数的调用方式。下面列举了几种常见的调用方式和this的取值: 1. 全局…...

ubuntu基本信息查询

查询CPU信息 cat /proc/cpuinfo cat /proc/stat top lscpu 查询内存 free -m Options: -b, --bytes show output in bytes -k, --kilo show output in kilobytes -m, --mega show output in megabytes -g, --giga show output in gigab…...

Revit问题:创建牛腿柱和快速生成圈梁

一、Revit中如何用体量创建牛腿柱 牛腿:悬臂体系的挂梁与悬臂间必然出现搁置构造,通常就将悬臂端和挂梁端的局部构造,又称梁托。牛腿的作用是衔接悬臂梁与挂梁, 并传递来自挂梁的荷载。牛腿柱可以用于桥梁、厂房的搭建&#xff0c…...

k8s节点删除

1.设置该节点为不可调度状态 kubectl cordon k8s-node01 2.驱逐该节点上的pod kubectl drain k8s-node01 --ignore-daemonsets --delete-local-data 若是有pod删除不掉则加上--force参数强制驱逐 3.从集群中删除该node节点 kubectl delete node k8s-node01 4.在k8s-node…...

45°装备系统

45装备系统,规则:1、45 脚后剧情,场景地面出现,个体视角,非群体。2、产生寒暖对立,衣饰自动改变。3、地图下方块蛇,脚步顺逆差,让衣饰自动改变后出现形态特效。(形成进入…...

逻辑漏洞学习-身份验证漏洞

逻辑漏洞就是程序在实现业务逻辑上存在的错误,辑漏洞的出现通常是因为程序在设计业务逻辑时考虑不够全面,或者程序员的思维过程存在瑕疵,没有充分考虑到各种可能的情况 大部分程序员在设计的时候,目标是实现功能需求,…...

Arduino嵌入式单元测试框架:ArduinoUnit实战指南

1. Arduino平台嵌入式单元测试框架深度解析:unittest库工程实践指南在嵌入式固件开发中,"写完就烧、烧完就测、测完就改"的野蛮生长模式正迅速被工程化开发流程所取代。尤其在ESP32等资源受限但功能复杂的SoC平台上,缺乏可重复、可…...

OpenClaw隐私保护方案:Qwen3.5-9B本地处理医疗图片的10个细节

OpenClaw隐私保护方案:Qwen3.5-9B本地处理医疗图片的10个细节 1. 为什么选择本地化医疗图片处理 去年帮家人整理体检报告时,我遇到一个两难问题:既想用AI分析CT影像的异常阴影,又担心把敏感数据上传到第三方平台。这个矛盾促使我…...

OpenClaw技能开发指南:为SecGPT-14B定制专属安全检测模块

OpenClaw技能开发指南:为SecGPT-14B定制专属安全检测模块 1. 为什么需要为SecGPT-14B开发OpenClaw技能? 去年我在做安全审计时,经常需要手动将二进制文件上传到不同检测平台,再人工整理漏洞报告。这种重复劳动让我开始思考&…...

车载测试CAPL编程实战:结构(Struct)在车辆信号解析中的应用

1. 为什么车载测试需要结构(Struct)? 在车载测试领域,我们每天要处理海量的车辆信号数据。想象一下,一辆普通家用车的CAN总线上,每秒可能产生上千条报文,每条报文又包含多个信号值。比如发动机转…...

基于STM32与华为云的粮仓环境监测系统设计

1. 项目概述粮仓环境监测系统是现代农业管理中不可或缺的重要环节。作为一名长期从事农业物联网开发的工程师,我深知传统人工巡检方式存在的诸多痛点:效率低下、数据记录不完整、响应不及时等问题常常导致粮食储存过程中出现不必要的损失。这套基于华为云…...

前端测试吐槽:别再写那些没用的测试了!

前端测试吐槽:别再写那些没用的测试了! 毒舌时刻 前端测试就像体检——每个人都知道要做,但真正认真做的没几个。Jest、React Testing Library、Cypress... 一堆测试工具让你挑花了眼,结果你的测试还是写得像一坨屎。 我就想不明白…...

《深入理解Mybatis原理》MyBatis数据源与连接池详解

在技术领域,我们常常被那些闪耀的、可见的成果所吸引。今天,这个焦点无疑是大语言模型技术。它们的流畅对话、惊人的创造力,让我们得以一窥未来的轮廓。然而,作为在企业一线构建、部署和维护复杂系统的实践者,我们深知…...

5大核心功能打造高效媒体播放:免费开源解码工具LAV Filters全解析

5大核心功能打造高效媒体播放:免费开源解码工具LAV Filters全解析 【免费下载链接】LAVFilters LAV Filters - Open-Source DirectShow Media Splitter and Decoders 项目地址: https://gitcode.com/gh_mirrors/la/LAVFilters 在数字媒体播放领域&#xff0c…...

OpenClaw效率对比:人工vsQwen2.5-VL-7B处理100张图片耗时测试

OpenClaw效率对比:人工vsQwen2.5-VL-7B处理100张图片耗时测试 1. 测试背景与动机 最近在整理个人摄影作品集时,我遇到了一个典型问题:需要将100张混合了风景、人像、静物的照片按主题分类归档。手动操作不仅耗时,还容易因视觉疲…...

OpenClaw核心:上下文工程如何让AI更懂你?(万字源码深度解析)

我们之前说过除了记忆系统,Agent 是没什么技术难度的。 比如你自己做了个 Agent,如果只是想用他去装载几个 skill,去完成日常自媒体的选题、或者去小红书等平台上自动发发文章,那是比较简单的。 但,如果你想让这个 Age…...