Java Variable

C#实战:5分钟搞定Modbus RTU通讯(基于NModbus4库) 本文详细介绍了如何使用C#和NModbus4库快速实现Modbus RTU通讯,包括环境配置、核心功能实现、性能优化及常见问题排查。通过代码示例和实用技巧,帮助开发者高效完成工业自动化设备的数据采集与控制任务。 阅读详情

数据类型:

基本数据类型:

  1. 数值型:
    1)、整数类型: byte(1字节) 、short(2字节)、int(4字节)、long(8字节)

    注意:整型数据默认为int类型 定义为long类型时末尾需加“L”或“l”不添加不会报错
    long l1 = 12344L;

    2)、浮点类型: float(4字节)、double(8字节)
    注意:浮点型默认为double类型,定义float类型是需在末尾添加“F”或“f”不添加时报错
    float f1 = 12.3F;

  2. 字符型: char(2字节)
    注意: 每个char类型变量只能存放一个字母(如一个英文字母、一个汉字、一个日文等),用单引号
    括起,若要表示多个字母,则应用String类型,用双引号括起
    char c1 = ‘c’;

  3. 布尔类型: boolean
    注意: boolean类型只能取值true或false ,不能取值null

引用数据类型:

  1. 类: class (字符串属于类)
    本质上,一个类就是程序员定义的类型,并且,类是一种引用数据类型,表面上看,对象引用变量中似乎存放的一个对象,但事实上,它只是包含了该对象的引用

  2. 接口: interface

  3. 数组:
    Java中,数组被看做对象,一个数组变量实际上是一个包含数组引用的变量,
    数组既可以存储基本数据类型值,也可以存储对象
    (详见Java Array)

  4. 字符串:String 类 也是一种常用的数据类型

注意:字符串与基本数据类型之间只能进行连接运算:+ 将两者拼接在一起 运算结果仍是一个字符串

String  nation = "what is your name?";
String nation1 = nation + m1 //  "what is your name?57"

类型转换

类型转换是一种将一种数据类型的值转换为另一种数据类型的操作

自动类型转换:范围小的类型数据与范围大的类型数据之间运算得到的数据类型取大范围的类型

总是可以将一个数值赋给支持更大数值范围类型的变量,若不进行类型转换,就不能把一个值赋给范围较小类型的变量

char、byte、short ===> int ===> long ===> float ===> double

short s = 1;
int i;
i = s; // 自动转换

char、byte、short三者之间运算得到的结果默认取int类型

强制类型转换:范围大类型数据的转换为范围小的类型数据
long  l1 = 12345L;
int m1  = (int)l1; // 57

注意: 如果要将一个值赋给范围较小类型的变量,若在这种情况下没有使用强制类型转换,就会出现编译错误,强制类型转换的问题:容易损失精度

变量及其作用域

每个变量都代表一个存储值得内存位置,声明一个变量即告诉编译器这个变量存放什么类型的值
每个变量都有其作用范围,并且,一个变量在可以使用前,必须被声明和初始化

基本类型变量与引用变量

基本类型变量:
即其数据类型为基本数据类型,其存储在内存的栈空间中,对应内存中存储的是基本类型的值
将一个变量赋值给另一个变量时:
对于基本类型变量,就是将一个变量的实际值赋给另一个变量,之后改变其中任何一个变量的值,都不会影
响到另一个变量的实际值
int a = 2;
int b = 3;
System.out.println("a: " + a); // 2
System.out.println("b: " + b); // 3

b = a;
System.out.println("a: " + a); // 2
System.out.println("b: " + b); // 2

a = 4;
System.out.println("a: " + a); // 4
System.out.println("b: " + b); // 2
包装类类型

基本数据类型不是一个对象,可以使用包装类来包装成一个对象

/**
 * byte    --> Byte    
 * short   --> Short
 * int     --> Integer
 * long    --> Long
 * float   --> Float
 * double  --> Double
 * boolean --> Boolean
 * char    --> Character
 */
 Integer i = new Integer("123");
 Integer i = new Integer(123);

注意: 包装类没有无参构造器,所有包装类实例都是不可变的,一旦创建,其内部值就不能再改变

将基本类型值转换为包装类对象的过程称为装箱,相反的转换过程称为开箱,Java允许基本类型和包装类型之间自动转换(自动装箱和自动开箱)

// 自动装箱
Integer[] intArray = {1, 2, 3};
Integer x1 = 3 + new Integer(5);
Integer x2 = 3;
// 自动开箱
System.out.println(intArray[0] + intArray[1] + intArray[2]); // 6
int x4 = new Integer(4);
int x5 = new Integer(3) + new Integer(4);
引用类型变量:
对应内存所存储的值是一个引用,即对象的存储地址,它存在于栈空间中,实际对象存储于堆空间中
对于引用类型变量,就是将一个变量的引用赋给另一个变量,之后二者都指向同一个对象,
故再改变其中意一个变量的属性值,另一个变量的相应属性值也会改变
public class TestCircle {
    public static void main(String[] args) {
        Circle circle1 = new Circle();
        circle1.radius = 1;

        Circle circle2 = new Circle();
        circle2.radius = 3;

        System.out.println("Circle1's radius: " + circle1.radius); // 1.0
        System.out.println("Circle2's radius: " + circle2.radius); // 3.0

        circle2 = circle1;
        System.out.println("Circle1's radius: " + circle1.radius); // 1.0
        System.out.println("Circle2's radius: " + circle2.radius); // 1.0

        circle2.radius = 9;
        System.out.println("Circle1's radius: " + circle1.radius); // 9.0
        System.out.println("Circle2's radius: " + circle2.radius); // 9.0
    }
}

class Circle {
    double radius;
}
不同数据类型变量的默认值

基本数据类型:
byte、short、int、long: 默认值为 0
float、double: 默认值为 0.0
char: 默认值为 ‘\u0000’
boolean: 默认值为 false
引用数据类型:
声明引用数据类型变量而未初始化时,应对其进行显示赋值为null

注意: Java中只有在类中的成员变量没有手动赋值进行初始化时,才会对其自动初始化,赋予其对应类型的默认值,而对于方法中的局部变量不会自动赋默认值,因此,局部变量必须在使用前声明并初始化

局部变量

方法中定义的变量称为局部变量,其作用范围(作用域)从变量声明的地方开始,直到包含该变量的块结束为止,并且其在使用前必须进行声明和赋值

方法的参数也是一个局部变量,一个方法的作用域涵盖整个方法

for等循环体中声明的变量其作用域仅限于从声明处到其循环体结束,但在其头部(即小括号内)声明的局部变量作用域为整个循环体

可以在一个方法中的不同快中声明同名局部变量,但不能再嵌套快中或同一块中两次声明同一局部变量

// 这是正确的:
for (int i = 0; i < 9; i++) { ... }
for (int i = 0; i < 8; i++) { ... }

// 这是错误的:
public static void main(String[] args) {
    int i = 1;

    for (int i = 0; i < 9; i++) { ... }

}

类变量(数据域)

一个类的实例变量和静态变量被称为类变量或数据域
无论在何处声明,类变量的作用域都是整个类,类变量和方法可以在类以任意顺序出现,但是当一个类变量是基于另一个数据域的引用进行初始化时,则必须顺序出现(即被引用的先声明)


public class Test {
    // 这种情况下first变量必须先与last变量声明
    private int first;
    private int last = first + 1;
}

类变量只能声明一次,但是在一个方法内的不同非嵌套块中,可以多次声明同名变量
若局部变量和一个类变量同名时,那么局部变量优先,而同名类变量被隐藏

    public class Test {
        private String name = "Tennyson";
        private int age = 12;

        public void test() {
            String name = "Damocles";

            System.out.println("name: " + name); // Damocles
            System.out.println("age: " + age); // 12
            // 此时要调用类变量应使用this
            System.out.println("this.name: " + this.name); // Tennyson
        }
    }

【WiFi】T830 MT7992 WMM测试修改操作说明 WiFi WMM(Wi-Fi Multimedia)是Wi-Fi联盟推出的一项技术,用于优化无线网络中的多媒体内容传输。WMM通过优先处理不同类型的数据流来改善网络性能,特别是在网络拥堵时。:WMM通过提供服务质量支持,确保语音、视频和其他多媒体应用在无线网络中获得优先处理。这有助于减少延迟和抖动,改善用户体验。:WMM将数据流分为四个优先级队列:语音、视频、最佳效果(Best Effort)和背景(Background)。语音和视频流通常被赋予更高的优先级,以确保它们在网络中得到及时传输。 阅读详情

相关推荐

避开这些坑!RK3588安卓系统内置输入法的正确姿势(含.mk文件修改指南)

本文详细解析了在RK3588安卓系统定制中预置第三方输入法的完整流程与关键避坑指南。重点涵盖APK签名、Android.mk文件编写、系统默认输入法配置(使用adb ime list命令获取服务名)以及SeLinux策略适配等核心步骤,并指出RK3566/RK3568等兄弟平台的通用性与差异点,帮助开发者实现稳定、深度的系统集成。

tgb34567890的博客 438

Variable is already assigned to this value JAVA什么意思

Variable is already assigned to this value 含义:变量已分配给此值 换句话说就是这个接收的参数已经获得了这个值,不需要再写一次 变量名= 示例: 这里面sb已经获得了这个值,我们可以直接删掉 sb = ...

北鹤M的代码手账 9860

[数字电路]用与非门实现BCD译码器驱动数码管

Hello,大家好。这里是xdd_core,好久不见。今天来和大家聊聊大一数字电路课程的一个课设。# Key word:BCD Decoder,Proteus8.x,NAND Gate,Digital Circuit# 流程:Proteus8.x仿真电路并绘制PCB导出Gerber文件打样,最终实物验证。# 以下为我对这个课设的report(里面对整个设计做了详细介绍,并设计了完整的验证电路) 感谢观看,仅供参考,未经作者允许,禁止转载/抄袭,本文已上传至数据库,查重必挂QAQ BCD to 7-Segme

xddcore的博客 6012

Sonar常见问题及修改

柚子之前在重构项目的时候,参考了sonar给出的修改意见,下面是对sonar常见问题的一番总结。提示:以下是本篇文章正文内容,下面案例可供参考问题主要存在以下几类:(1)变量和方法名命名不规范,条件语句不规范:前者按照驼峰命名法进行修改,后者主要出现的是if语句合并问题,将其合并到上一级。(2)单个方法复杂度太高:对其方法进行拆分,降低复杂度到15。(3)涉及Java基础知识的改进建议:根据其建议进行相应的修改。

Java程序媛,欢迎大家一起交流学习~ 1万+

基于51单片机语音识别智能台灯设计

智能台灯;语音识别;STC89C52RC单片机

Benso_H的博客 5843

通过两个mark点确定某一个点的位置

read_image (Image0, '0.bmp') binary_threshold (Image0, Region, 'max_separability', 'dark', UsedThreshold) connection (Region, ConnectedRegions) fill_up (ConnectedRegions, RegionFillUp) select_shape_std (RegionFillUp, SelectedRegions, 'max_area', 70) red...

优快云博客 3889

【错误解决】Error:variable is assigned but never accessed

这个错误通常出现在编程语言中,尤其是在静态类型的编程语言中,如TypeScript、Java等。它表示你声明了一个变量,但是在代码的其他地方没有使用这个变量。这通常是因为你写了一些代码来计算或生成一个值,但是你没有在后续的代码中使用这个值。

m0_64286422的博客 456

SolidWorks 2022 学习(一)软件安装

接下来是安装SolidWorks,右键SolidWorks.2022.SP0.Premium.DVD.iso,选择装载。然后以管理员身份运行SolidWorks_Flexnet_Server目录下的server_install.bat。更改需要安装的产品,以及安装路径,并勾选接受条款,点击现在安装,会弹出如下窗口。然后以管理员身份运行setup.exe,开始安装solidworks。下载链接会在文章末尾给出,下载完成的文件如下图所示。双击注册表文件,然后点击确定。保持不动,点击确定,开始安装。

qq_38383364的博客 3130

第5章 基本语言特性 — 精通MVC 3 框架

Essential Language Features 基本语言特性   C# is a feature-rich language, and not all programmers are familiar with all of the features we will rely on in this book. In this chapter, we are going to look

Foreach 2985

麻辣香锅病毒分析

Spicy Hot Pot浏览器劫持病毒(麻辣香锅病毒)从2020年初被安全公司监测到,因其病毒模块带有MLXG_KM被安全行业代称麻辣香锅病毒。目前通过各种激活工具传播, 包括暴风激活、小马激活和KMS激活等诸多工具,疑似与下载站进行合作推广此类激活工具。Spicy Hot Pot 是一个浏览器劫持 Rootkit,它会将用户的主页更改为指向恶意软件操作员控制的页面,此外还会将内存转储从机器上传到预定义的服务器,并结合本地更新功能以确保其保持更新。通常浏览器劫持者会通过更改用户主页的恶意可执行文件或注册表

不忘初心,护天下安全! 4794

指纹浏览器降维打击(下):Cloudflare Turnstile 与 hCaptcha 的底层交互逻辑

本文将深度拆解:Turnstile 与 hCaptcha 的 Iframe 沙箱通信机制,动态混淆 JS 与 PoW(工作量证明)的物理破解法则,以及如何通过 C++ 底层事件合成与环境基因强绑定,实现验证码的“无感过验”。

数据知道的博客 424

java里variable_Java 中 field 和 variable 区别及相关术语解释

这是一个以前从没仔细想过的问题——最近在阅读《Java Puzzlers》,发现其大量使用了“域”这个词,这个词个人很少见到,在这本书中倒是时常出现,所以在好奇心的驱使下搜索了一下相关的内容,顺便复习了一下基础,最后整理如下。先说一下 field 和 variable 之间的区别:class variables and instance variables are fields while loc...

weixin_36059283的博客 502

【INMP441】 MEMS麦克风,让硬件“听得见”,更要“听得清”

INMP441是一款数字MEMS麦克风,采用PDM接口输出高质量数字音频信号。相比传统模拟麦克风,它具有高度集成、抗干扰强、功耗低等优势,支持通过时钟启停实现软件控制开关。该麦克风体积小巧但功能强大,内置MEMS传感器、ADC转换器等模块,适合智能音箱、语音遥控等应用。工程师可通过ESP32等主控芯片轻松连接INMP441,利用多麦克风阵列实现波束成形等高级功能。INMP441展现了数字音频采集的先进技术,为创客和智能硬件开发者提供了优秀的音频解决方案。

深耕CV 1537

Java 中 field 和 variable 区别及相关术语解释

这是一个以前从没仔细想过的问题——最近在阅读《Java Puzzlers》,发现其大量使用了“域”这个词,这个词个人很少见到,在这本书中倒是时常出现,所以在好奇心的驱使下搜索了一下相关的内容,顺便复习了一下基础,最后整理如下。 先说一下 field 和 variable 之间的区别: class variables and instance variables are fields while local variables and parameter variables are not. All f

Java后端技术栈 1558

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

JAVA的Field和variable区别

Field 可以被声明为静态或非静态的,静态的 Field 是类级别的属性,可以被所有实例共享;而非静态的 Field 是实例级别的属性,每个对象都有自己独立的 Field。Variable 的生命周期与所在的代码块相同,当代码执行完毕后,Variable 将会被销毁,其占用的内存空间也会被释放。它们可以被声明为静态或非静态的,静态的字段是类级别的属性,可以被所有实例共享;需要注意的是,字段的命名应该遵循一定的规范,例如使用驼峰命名法、避免关键字和保留字等。类的非静态字段,分别用于存储人物的姓名和年龄;

x5237732的博客 441

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

java getfield_java field, property,variable及getField和getDeclaredField的区别

java 里面的field ,property, attribute,variable的区别field: 就是定义的用于保存数据的字段property: property是用于描述类中的特征,所以property比field的含义要广,因为特征包含的方面更加广,一个数据可以代表某方面的特征,但是并不是所有的特征都是你要的数据,它可能是类本身的某个特性的描述。variable:变量,就是我们平时看到...

weixin_30895059的博客 305

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

java中的field 和 variable的理解,java注解中的ElementType.FIELD和ElementType.LOCAL_VARIABLE

先说一下 field 和 variable 之间的区别: class variables and instance variables are fields while local variables and parameter variables are not. All fields are variables. 成员变量(field)是指类的数据成员,而方法内部的局部变量(local...

Kodulf_007的博客 8691

java里variable_【Java】05 Variable 变量

什么是Variable变量?- 变量是内存中的一个存储区域- 这个存储区域内的数据允许在同一类型范围内不断变化- 是程序最基本的存储单元,包含三个要素【变量类型】【变量名】【存储的值】为什么需要变量?- 在内存中短暂的存储我们需要的数据如何使用变量?- Java的变量需要先声明,再使用- 使用变量名来访问这块区域的数据- 变量能作用的范围只在所声明的一个作用域当中- 作用域:在定义的一对{}内- ...

weixin_36180471的博客 606

maven配置报错The JAVA_HOME environment variable is not defined correctly,this environment variable is

maven配置报错The JAVA_HOME environment variable is not defined correctly,this environment variable is needed to run this program.的解决方法 配置maven的系统环境变量后,mvn -version提示 那肯定是JAVA_HOME配置的不对,于是查看了一下 没发现有什么问题,于是找度娘,以下是博主DistressRroke _chen的方法,似乎不使用我的问题 于是又看到了另外一个方

HarryMing的技术分享 9万+

java field, property,variable及getField和getDeclaredField的区别

java 里面的field ,property, attribute,variable的区别 field: 就是定义的用于保存数据的字段 property: property是用于描述类中的特征,所以property比field的含义要广,因为特征包含的方面更加广,一个数据可以代表某方面的特征,但是并不是所有的特征都是你要的数据,它可能是类本身的某个特性的描述。 variable:变量,就是...

weixin_30598225的博客 151

property field java_java field, property,attribute,variable及getField和getDeclaredField的区别

java 里面的field ,property, attribute,variable的区别field: 就是定义的用于保存数据的字段property: property是用于描述类中的特征,所以property比field的含义要广,因为特征包含的方面更加广,一个数据可以代表某方面的特征,但是并不是所有的特征都是你要的数据,它可能是类本身的某个特性的描述。attribute:没有这个家伙。不用看...

weixin_39933438的博客 194

java中instance variable,class variable,local variable之间的区别

原文:Difference between instance class and local variables in Java f

dtnqy的专栏 1万+

java10系列(二)Local-Variable Type Inference

序 本文主要解读下java10的Local-Variable Type Inference 实例 @Test public void testVar(){ var list = List.of(1,2,3,4,5); var strList = list.stream() ...

weixin_34185560的博客 161

Java Variable 变量

本文介绍了 Java 中 Variable(变量)的相关内容。。。

Regino的博客 2317

安装配置Maven,The JAVA_HOME environment variable is not defined correctly的解决方法

文章目录安装配置Maven,The JAVA_HOME environment variable is not defined correctly的解决方法1、在Maven官网下载安装Maven 后,运行出现(如下图)解决方法方法1、直接将mvn.cmd中的路径修改正确:方法2、将JAVA_HOME指向安装目录,而非bin目录下即可: Maven 安装配置时,出现The JAVA_HOME env...

qq_40260304的博客 1万+
下一篇: Java Exception
Tennysons
博客等级 码龄10年 0粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值