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

花几千上万学习Java,真没必要!(二十二)

1、final关键字:

 

测试代码1:

package finaltest.com;public class FinalBasicDemo {public static void main(String[] args) {// final修饰基本数据类型变量final int number = 5;// 尝试修改number的值,这将导致编译错误// number = 10; // 这行会报错System.out.println("number: " + number);}
}

测试代码2:

package finaltest.com;//final关键字
public class FinalDemo {  // final静态变量,在声明时初始化  private static final int MAX_SIZE = 100;  // final实例变量,通常在构造方法中初始化  private final String name;  // final局部变量,通常在声明时或初始化块中初始化  // 不直接在类中声明final局部变量,因为它需要被赋值  // 构造方法  public FinalDemo(String name) {  this.name = name; // 初始化final实例变量  }  // final方法,表示该方法不能被子类重写  public final void showDetails() {  System.out.println("Name: " + name);  System.out.println("Max Size: " + MAX_SIZE);  }  // 普通方法,在方法内部使用final局部变量  public void processData(int[] data) {  // final局部变量,在声明时初始化  final int threshold = 50;  for (int i = 0; i < data.length; i++) {  if (data[i] > threshold) {  System.out.println("Data[" + i + "]: " + data[i] + " is greater than threshold.");  }  }  }  // main方法,测试FinalDemo类  public static void main(String[] args) {  // 创建FinalDemo对象  FinalDemo demo = new FinalDemo("ExampleObject");  // 调用final方法  demo.showDetails();  // 调用普通方法,并传递一个整数数组  int[] data = {20, 60, 30, 80, 40};  demo.processData(data);  // 尝试修改final静态变量的值(编译错误)  //FinalDemo.MAX_SIZE = 200; // 这行会报错  // 尝试在构造方法之外修改final实例变量的值(编译错误)  // demo.name = "NewName"; // 这行也会报错  }   
}

运行结果如下:

 

测试代码3:

package finaltest.com;
public class FinalReferenceDemo {  static class MyObject {  int value;  public MyObject(int value) {  this.value = value;  }  public void setValue(int value) {  this.value = value;  }  @Override  public String toString() {  return "MyObject{" + "value=" + value + '}';  }  }  public static void main(String[] args) {  // final修饰引用数据类型变量  final MyObject obj = new MyObject(10);  // 尝试修改obj的引用(即对象的地址),将导致编译错误  // MyObject newObj = new MyObject(20);  // obj = newObj; // 这行会报错  // 可以改变obj引用对象内部的数据  obj.setValue(20);  System.out.println(obj); }  
}

 测试代码4:

package finaltest.com;
//一个 final 实例变量 finalInstanceVar,它必须在构造方法中初始化。
//一个 static final 静态变量 STATIC_FINAL_VAR,它在声明时就被初始化了,并且可以通过类名直接访问。
//一个 final 方法 finalMethod,该方法不能被任何子类重写。
//一个普通方法 printInfo,用于打印实例变量和静态变量的值。
public class MyClass {  // final 实例变量,必须在构造方法中初始化  private final int finalInstanceVartest;  // final 静态变量,在声明时初始化  private static final int STATIC_FINAL_VAR = 42;  // 构造方法,用于初始化final实例变量  public MyClass(int finalInstanceVar) {  this.finalInstanceVartest = finalInstanceVar;  }  // final 方法,表示该方法不能被重写  public final void finalMethod() {  System.out.println("This is a final method.");  }  // 普通方法,可以访问final变量  public void printInfo() {  System.out.println("Final instance var: " + finalInstanceVartest);  System.out.println("Static final var: " + STATIC_FINAL_VAR);  }  // main 方法,测试这个类  public static void main(String[] args) {  MyClass obj = new MyClass(10);  obj.finalMethod(); // 调用final方法  obj.printInfo(); // 调用普通方法,打印信息  // 尝试访问静态final变量,可以直接通过类名访问  System.out.println("Direct access to static final var: " + MyClass.STATIC_FINAL_VAR);  }  
}

运行结果如下:

 

2、static关键字:

 

测试代码1:

package finaltest.com;
public class StaticDemo {  // 静态变量  static int counter = 0;  // 静态初始化块  static {  System.out.println("Static block initialized");  }  // 静态内部类  static class StaticInner {  public void display() {  System.out.println("Static inner class method");  }  }  // 构造方法,实现静态变量的增加  public StaticDemo() {  counter++;  }  // 静态方法  public static int add(int a, int b) {  return a + b;  }  // 主方法,说明静态变量、静态方法和静态内部类的使用  public static void main(String[] args) {  // 静态代码块会在类加载时自动执行  // 调用静态方法  System.out.println("Sum of 5 and 3 is: " + add(5, 3));  // 访问静态变量  System.out.println("Number of StaticDemo objects created: " + counter);  // 使用静态内部类  StaticInner inner = new StaticInner();  inner.display();  }public void displayInstanceCount() {  // 直接访问静态变量instanceCount并打印其值  System.out.println("Number of StaticDemo objects created: " + counter);  } 
}

运行结果如下:

 

测试代码2:

package finaltest.com;
public class StaticTest {// 静态变量private static int instanceCount = 0;// 静态代码块static {System.out.println("Static block initialized");// 实现静态变量的初始化代码}// 构造方法,实现静态变量的增加public StaticTest() {instanceCount++;}// 静态方法public static int add(int a, int b) {return a + b;}// 静态内部类static class DatabaseConnection {// 数据库连接private static String connectionString = "jdbc:mysql://localhost:3306/mydb";// 静态方法,模拟获取数据库连接public static String getConnectionString() {return connectionString;}}// 一个非静态方法public void displayInstanceCount() {System.out.println("Number of StaticDemo objects created: " + instanceCount);}// 主方法,说明静态和非静态成员的使用public static void main(String[] args) {// 静态代码块会在类加载时自动执行// 调用静态方法System.out.println("Sum of 5 and 3 is: " + add(5, 3));// 访问静态内部类的静态成员System.out.println("Database connection string: " + DatabaseConnection.getConnectionString());// 创建StaticDemo的实例StaticDemo obj1 = new StaticDemo();StaticDemo obj2 = new StaticDemo();// 调用非静态方法obj1.displayInstanceCount(); }
}

运行结果如下:

 

 

 

 

 

 

相关文章:

花几千上万学习Java,真没必要!(二十二)

1、final关键字&#xff1a; 测试代码1&#xff1a; package finaltest.com;public class FinalBasicDemo {public static void main(String[] args) {// final修饰基本数据类型变量final int number 5;// 尝试修改number的值&#xff0c;这将导致编译错误// number 10; // …...

在RK3568上如何烧录MAC?

这里我们用RKDevInfoWriteTool 1.1.4版本 下载地址&#xff1a;https://pan.baidu.com/s/1Y5uNhkyn7D_CjdT98GrlWA?pwdhm30 提 取 码&#xff1a;hm30 烧录过程&#xff1a; 1. 解压RKDevInfoWriteTool_Setup_V1.4_210527.7z 进入解压目录&#xff0c;双击运行RKDevInfo…...

1.30、基于卷积神经网络的手写数字旋转角度预测(matlab)

1、卷积神经网络的手写数字旋转角度预测原理及流程 基于卷积神经网络的手写数字旋转角度预测是一个常见的计算机视觉问题。在这种情况下&#xff0c;我们可以通过构建一个卷积神经网络&#xff08;Convolutional Neural Network&#xff0c;CNN&#xff09;来实现该任务。以下…...

Windows如何使用Python的sphinx

在Windows上使用Python的Sphinx进行文档渲染和呈现&#xff0c;‌可以遵循以下步骤进行操作&#xff1a;‌ 安装Python&#xff1a;‌首先&#xff0c;‌确保你的Windows系统上已经安装了Python。‌你可以从Python的官方网站下载并安装适合你系统&#xff08;‌32位或64位&…...

C++ STL nth_element 用法

一&#xff1a;功能 将一个序列分为两组&#xff0c;前一组元素都小于*nth&#xff0c;后一组元素都大于*nth&#xff0c; 并且确保第 nth 个位置就是排序之后所处的位置。即该位置的元素是该序列中第nth小的数。 二&#xff1a;用法 #include <vector> #include <a…...

【PostgreSQL教程】PostgreSQL 选择数据库

博主介绍:✌全网粉丝20W+,CSDN博客专家、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物联网、机器学习等设计与开发。 感兴趣的可…...

C# —— HashTable

集合collections命名空间&#xff0c;专门进行一系列的数据存储和检索的类&#xff0c;主要包含了:堆栈、和队列、list、ArrayList、数组 HashTable 字典 storeList 排序列表等类 Array 数组 长度固定&#xff0c; 类型固定 通过索引值来进行访问 ArrayList动态数组&#xff0c…...

LeetCode 第407场周赛个人题解

目录 100372. 使两个整数相等的位更改次数 原题链接 思路分析 AC代码 100335. 字符串元音游戏 原题链接 思路分析 AC代码 100360. 将 1 移动到末尾的最大操作次数 原题链接 思路分析 AC代码 100329. 使数组等于目标数组所需的最少操作次数 原题链接 思路分析 A…...

使用Django框架实现音频上传功能

数据库设计&#xff08;models.py&#xff09; class Music(models.Model):""" 音乐 """name models.CharField(verbose_name"音乐名字", max_length32)singer models.CharField(verbose_name"歌手", max_length32)# 本质…...

[路由器]IP-MAC的绑定与取消

背景&#xff1a;当公司的网络不想与外部人员进行共享&#xff0c;可以在路由器页面配置IP-MAC的绑定&#xff0c;让公司内部人员的手机和电脑的mac&#xff0c;才能接入到公司。第一步&#xff1a;在ARP防护中&#xff0c;启动IP-MAC绑定选项&#xff0c;必须启动仅允许IP-MAC…...

Idea配置远程开发

Idea配置远程开发 本篇博客介绍使用idea通过ssh连接ubuntu服务器进行开发 目录 Idea配置远程开发1.idae上点击file->Remote Development2.点击New Connection3.填写相关信息4.输入密码5.选择IDE版本和项目路径5.1 点击open an SSH terminal打开控制台5.2 依次执行命令 6.成…...

lua 实现 函数 判断两个时间戳是否在同一天

函数用于判断两个时间戳是否在同一天。下面是对代码的详细解释&#xff1a; ### 函数参数 - stampA 和 stampB&#xff1a;两个时间戳&#xff0c;用于比较。- resetInfo&#xff1a;一个可选参数&#xff0c;包含小时、分钟和秒数&#xff0c;用于调整时间戳。 ### 函数实现…...

工作纪实53-log4j日志打印文件隔离

在项目中&#xff0c;我有一堆业务日志需要打印&#xff0c;另一部分的日志&#xff0c;是没有格式的&#xff0c;需要被云平台离线解析并收集到kafka或者hdfs、hive等&#xff0c;需要将日志隔离打印到不同的文件 正常的log4j配置是下面这样的&#xff0c;配合Sl4j直接使用默认…...

7月21日,贪心练习

大家好呀&#xff0c;今天带来一些贪心算法的应用解题、 一&#xff0c;柠檬水找零 . - 力扣&#xff08;LeetCode&#xff09; 解析&#xff1a; 本题的贪心体现在对于20美元的处理上&#xff0c;我们总是优先把功能较少的10元作为找零&#xff0c;这样可以让5元用处更大 …...

FPGA DNA 获取 DNA_PORT

FPGA DNA DNA 是 FPGA 芯片的唯一标识&#xff0c; FPGA 都有一个独特的 ID &#xff0c;也就是 Device DNA &#xff0c;这个 ID 相当于我们的身份证&#xff0c;在 FPGA 芯片生产的时候就已经固定在芯片的 eFuse 寄存器中&#xff0c;具有不可修改的属性。在 xilinx 7series…...

使用 hutool工具实现导入导出功能。

hutool工具网址 Hutool参考文档 pom依赖 <dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.7.20</version></dependency><dependency><groupId>org.apache.poi</gro…...

大语言模型-Transformer-Attention Is All You Need

一、背景信息&#xff1a; Transformer是一种由谷歌在2017年提出的深度学习模型。 主要用于自然语言处理&#xff08;NLP&#xff09;任务&#xff0c;特别是序列到序列&#xff08;Sequence-to-Sequence&#xff09;的学习问题&#xff0c;如机器翻译、文本生成等。Transfor…...

spring(二)

一、为对象类型属性赋值 方式一&#xff1a;(引用外部bean) 1.创建班级类Clazz package com.spring.beanpublic class Clazz {private Integer clazzId;private String clazzName;public Integer getClazzId() {return clazzId;}public void setClazzId(Integer clazzId) {th…...

MAC 数据恢复软件: STELLAR Data Recovery For MAC V. 12.1 更多增强功能

天津鸿萌科贸发展有限公司是 Stellar 系列软件的授权代理商。 STELLAR Data Recovery For MAC 该数据恢复软件可从任何存储驱动器、清空的回收站以及崩溃或无法启动的 Mac 设备中恢复丢失或删除的文件。 轻松恢复已删除的文档、照片、音频文件和视频。自定义扫描以帮助恢复特…...

初识godot游戏引擎并安装

简介 Godot是一款自由开源、由社区驱动的2D和3D游戏引擎。游戏开发虽复杂&#xff0c;却蕴含一定的通用规律&#xff0c;正是为了简化这些通用化的工作&#xff0c;游戏引擎应运而生。Godot引擎作为一款功能丰富的跨平台游戏引擎&#xff0c;通过统一的界面支持创建2D和3D游戏。…...

Windows配置Qt+VLC

文章目录 前言下载库文件提取文件编写qmakeqtvlc测试代码 总结 前言 在Windows平台上配置Qt和VLC是开发多媒体应用程序的一个重要步骤。Qt作为一个强大的跨平台应用开发框架&#xff0c;为开发人员提供了丰富的GUI工具和库&#xff0c;而VLC则是一个开源的多媒体播放器&#x…...

本地部署 mistralai/Mistral-Nemo-Instruct-2407

本地部署 mistralai/Mistral-Nemo-Instruct-2407 1. 创建虚拟环境2. 安装 fschat3. 安装 transformers4. 安装 flash-attn5. 安装 pytorch6. 启动 controller7. 启动 mistralai/Mistral-Nemo-Instruct-24078. 启动 api9. 访问 mistralai/Mistral-Nemo-Instruct-2407 1. 创建虚拟…...

2月科研——arcgis计算植被差异

ArcGIS中&#xff0c;设置高于或低于某个值的像元为 -9999&#xff0c;然后将这些地方设为空——目的&#xff1a;去除异常值和黑色背景值 Con(("T_std ano7.tif" > 2) | ("T_std ano7.tif" < - 2), - 9999,"T_std ano7.tif") SetNull(&…...

深入理解Android中的缓存与文件存储目录

&#x1f31f; 引言 在Android应用开发中&#xff0c;合理管理应用的数据存储至关重要。应用可能需要保存各种类型的数据&#xff0c;从简单的配置信息到多媒体文件&#xff0c;甚至是缓存数据以提高性能和用户体验。Android提供了多个内置目录来满足这些需求&#xff0c;但它…...

Linux_生产消费者模型

目录 1、生产消费者模型示意图 2、生产者消费者之间的关系 3、定义交易场所 4、实现生产消费者模型 5、伪唤醒 6、多生产多消费者的实际运用 7、POSIX信号量 7.1 初始化信号量 7.2 销毁信号量 7.3 等待信号量 7.4 发布信号量 8、生产消费的环形队列模型 8.1…...

【Vue】`v-if` 指令详解:条件渲染的高效实现

文章目录 一、v-if 指令概述二、v-if 的基本用法1. 基本用法2. 使用 v-else3. 使用 v-else-if 三、v-if 指令的高级用法1. 与 v-for 一起使用2. v-if 的性能优化 四、v-if 的常见应用场景1. 表单验证2. 弹窗控制 五、v-if 指令的注意事项 Vue.js 是一个用于构建用户界面的渐进式…...

junit mockito Base基类

编写单元测试时我们都习惯性减少重复代码 以下基于spring mvc框架&#xff0c;需要手动pom导包 BaseTest类用于启动上下文进行debug调试 MockBaseTset类用于不启动上下文进行打桩mock pom.xml <dependency><groupId>org.mockito</groupId><artifactId…...

朋友圈运营分享干货2

朋友圈发什么内容&#xff1f; 1、产品相关 产品服务&#xff1a;产品的内容要有“用户视角”从用户的使用痛点入手&#xff0c;写到用户心坎里&#xff0c;才能引发购买 买家秀&#xff1a;买家秀是很好的朋友圈索材&#xff0c;可以让用户有一个正面感知清楚了解工品的情况…...

linux中创建一个名为“thread1“,堆栈大小为1024,优先级为2的线程

在Linux中&#xff0c;直接创建一个具有特定堆栈大小和优先级的线程通常不是通过标准的POSIX线程&#xff08;pthread&#xff09;库直接支持的。POSIX线程库&#xff08;pthread&#xff09;提供了创建和管理线程的基本机制&#xff0c;但不直接支持设置线程的堆栈大小或优先级…...

架构以及架构中的组件

架构以及架构中的组件 Transform Transform 以下的代码包含&#xff1a; 标准化的示例残差化的示例 # huggingface # transformers# https://www.bilibili.com/video/BV1At4y1W75x?spm_id_from333.999.0.0import copy import math from collections import namedtupleimport …...

美工宝盒网站/清博舆情系统

通过access日志记录&#xff0c;可以分析出并发访问量的大小&#xff0c;也可以分析访问的基本信息&#xff0c;比如请求ip地址&#xff0c;请求客户端信息以及访问的具体地址等。 1. 配置logstash的配置文件 input {file {start_position > beginning path > "E:…...

个人业务网站建设/windows系统优化软件

欢迎使用Xcode Xcode是Apple的集成开发环境(IDE)。您使用Xcode为Apple产品(包括iPad,iPhone,Apple Watch,Apple TV和Mac)构建应用程序。 Xcode提供了用于管理整个开发工作流程的工具-从创建您的应用程序到测试,优化并将其提交到App Store。 项目将组织开发应用程序所…...

1000学习做网站贵吗/观看b站的广告网站平台

2019独角兽企业重金招聘Python工程师标准>>> binSort.cpp /** 这里是主函数的执行文件 * binSort.cpp */ #include<iostream> #include"studentrecord1.h" #include"chainwithiterator.h" #include"myexceptions.h"void…...

商务网站开发实验报告/谷歌seo新规则

上一节讲了 常微分方程的三种离散化 方法:差商近似导数、数值积分、Taylor 多项式近似。 目录 2 欧拉&#xff08;Euler&#xff09;方法 2.1 向前 Euler 公式、向后 Euler 公式 2.2 Euler 方法的误差估计 3 改进的 Euler 方法 3.1 梯形公式 …...

呼和浩特做网站公司/湖南seo推广

请大佬秒了此题。LG传送门 题目描述 给出一个形如\(\qquad f(x_1,x_2,...,x_n)\sum_{i1}^{n}(x_i-a_i)^2\) 的\(n\)元函数&#xff0c;以及\(m\)条第\(i\)条形如\(\qquad \sum_{j1}^{n}x_j*b_{i,j}0\) 的限制&#xff0c;求函数的驻点&#xff0c;即无论任何\(x\)向任意方向取得…...

wordpress 安装错误/对网站的建议和优化

导读&#xff1a;本文围绕ASP WEBSHELL权限设置&#xff0c;从最低级的权限开始介绍&#xff0c;讲解了每一步的具体操作方法&#xff0c;并配有屏幕截图&#xff0c;希望能对你提权有所帮助。 关键词&#xff1a;ASP WEBSHELL权限设置 Shell 提权 权限 操作方法 提权的基础是…...