Java 赋值 “=” 讲解

前言

我们从接触java第一天,就是到 = 是赋值的意思,把等号右边结果的值,赋给等号左边的变量,那具体是怎样赋值呢?你有了解过吗?

= 1.0版本

大家都知道,java中有 8大基本类型,对于基本类型来说 = 就是直接赋值的

	byte a = 1;System.out.println("byte a = 1:" + a);

在这里插入图片描述

= 2.0版本

除开8大基本类型,对象类型 的数据 = 直接赋值的是 地址

public class ycfTest {public static void main(String[] args) throws Exception {User user = new User(19,"木易唐唐");System.out.println("用户信息为:"+user);}
}
class User{int age;String name;public User(int age, String name) {this.age = age;this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}
}

在我们没有重写toString()方法时,直接打印user,命令台输出的是一个地址
在这里插入图片描述
在User类中重写toString()

	@Overridepublic String toString() {return "User{" +"age=" + age +", name='" + name + '\'' +'}';}

此时打印结果才是我们输入的用户信息
在这里插入图片描述

= 3.0版本

对于 +=-==/= 一个意思,只是运算符号不相同。

	int a = 1, b = 0;b += a;// 相当于 b = b + a;System.out.println("b = " + b);

在这里插入图片描述

	b -= a;// 相当于 b = b - a;b *= a;// 相当于 b = b * a;b /= a;// 相当于 b = b / a;

= 4.0版本

第一次看到这个代码,我自己是蒙逼的,这个是咋回事?废话不多说,先跑一遍代码再说。

	String msg = "222";if((msg = null) == null){System.out.println("(msg = null) 等于 null" );} else {System.out.println("(msg = null) 不等于 null");}

输出结果如下:
在这里插入图片描述
现在改变条件,在 if 里面让 msg = “333”

	String msg = "222";if((msg = "333") == null){System.out.println("(msg = null) 等于 null" );} else {System.out.println("(msg = null) 不等于 null");}

输出结果如下:
在这里插入图片描述
此时msg不为null了,那msg的值是哪个呢?很容易也想得到msg的值是 333 吧,于是我们可以得出结论 (msg = xxx) 的结果,就是 xxx 赋予的值。

小扩展

(msg = null) == null 经过修改,我们会经常来做文件流的读取,当文件读取行 lineTxt 为 null 时,就代表文件流已经读取完毕。

	BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(txtFile), "GBK"));String lineTxt = null;while ((lineTxt = br.readLine()) != null) {......

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/554788.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux 系统管理命令:时间、进程、网络、磁盘、关机重启等 top命令用法详解

文章目录系统管理常用命令1. 日期1.1 查看日历: cal1.2 查看/设置时间: date2. 进程2.1 查看进程信息: ps2.2 动态显示进程信息: top2.3 终止进程: kill2.4 服务的管理: service3. 网络3.1 网卡信息查询与配置: ifconfig3.2 检测远程主机连通性: ping3.3 查看网络状态(监听端口…

BigDecimal 加减乘除顺序验证

结论:BigDecimal 与常识的加减乘除计算优先顺序无关联,采用的是方法调用顺序,顺序执行。 public static void main(String[] args) {BigDecimal two new BigDecimal("2");BigDecimal one new BigDecimal("1");System.…

LocalDate详解

LocalDate使用 localDate时间创建方式 /*** localDate时间创建方式* 获取当前时间*/Testpublic void localDateCreate() {LocalDate yyyyMMdd LocalDate.now();LocalTime HHmmssSSS LocalTime.now();LocalDateTime yyyyMMddHHmmssSSS LocalDateTime.now();System.out.print…

Java8中计算时间的四种方式及区别Period、Duration、ChronoUnit、Until 时间区间Duration的简单使用

一.简述 在Java8中,我们可以使用以下类来计算日期时间差异: 1.Period 2.Duration 3.ChronoUnit二.Period类 Period类计算只有年、月、日 计算的是LocalDate两个时间间隔的年月日 public static void main(String[] args) {LocalDate startTime Loc…

[JAVA基础] 成员变量和局部变量(一看就懂的总结归纳篇)

引言 成员变量和局部变量在每种编程语言中都有涉及,如果之前了解过其他语言的成员变量或者局部变量,那么在学习java中的成员变量和局部变量时可以看看有那些联系和不同,这一块的东西也不能说难,如果第一次接触可能会感觉有点乱&a…

【Java多线程】内存模型JMM—主内存与工作内存分析

文章目录JAVA内存模型JVM主内存与工作内存描述JVM内存间交互规则JVM先行发生原则内存交互基本操作的 3 个特性原子性(Atomicity)可见性(Visibility)有序性(Ordering)上述内存模型与Java多线程之间的问题JAVA内存模型 共享变量:如果一个变量在多个线程的工作内存中都…

Java 两个日期之间相差的天数计算 Calendar的DAY_OF_MONTH, DAY_OF_YEAR, DATE的区别

项目开发过程中经常遇到这类需求,计算两个日期之间的差,今天我系统总结一下这个技术点: 1、两个日期之间相差的天数,日期为单位(比如相差两秒,可能就相差一天,1.12:23:59:59和13:01…

JMM中工作内存和主内存的关系

Java运行时的数据区域分布: 一、共享区域: (1)方法区:存储了每个类的信息(包括类的名称、方法信息、字段信息)、静态变量、常量以及编译器编译后的代码等。其中常量池就是在此区域:记录了每一…

使用MyBatis获得包含内嵌对象或对象集合的结果——MyBatis结果集封装(复杂对象,连接查询结果集封装)

最终要获得的SysUser对象 public class SysUser implements Serializable {//普通String属性private String userId;private String userName;private String userPhone;private String userPassword;private String userLastLoginTime;private String userCreateTime;private…

SpringBoot配置MyBatis的sql执行超时时间(mysql)

当某些sql因为不知名原因堵塞时,为了不影响后台服务运行,想要给sql增加执行时间限制,超时后就抛异常,保证后台线程不会因为sql堵塞而堵塞。 方法一 yml全局配置:单数据源可以,多数据源时会失效 方法二 j…

HTTP协议中的302,303状态码

之前也只知道302,303是请求重定向,但是当被问到302,303的具体区别是什么的时候我有点迷,现在就为了加强记忆,来了解下具体情况: 302是http1.0的内容,303是http1.1的内容。301和302本来在规范中是不允许重定向时改变请求方法的(将POST改为GET&#xff09…

Java8中Stream为什么要boxed

在介绍boxed前,先看下面一个案例 Java8中的有个生成随机数的Random类,先看下面代码,功能是生成100个随机数。数字在0到100之间。 Random random new Random(); IntStream intStream random.ints(0, 100); intStream.lim…

Spring工具类:FileCopyUtils、StreamUtils

文章目录FileCopyUtilsStreamUtils参考资料Spring 在 org.springframework.util 包提供了很多实用的工具类。今天关心一下Copy 相关的两个: FileCopyUtils FileCopyUtils就是对StreamUtils的copy方法进行了封装,在每次复制完毕后关闭流。(因…

Spring自带工具类(断言、ObjectUtils、FileCopyUtils、ResourceUtils、StreamUtils、ReflectionUtils、AopUtils、AopCont)

文章目录断言对象、数组、集合文件、资源、IO 流反射、AOP断言 断言是一个逻辑判断,用于检查不应该发生的情况Assert 关键字在 JDK1.4 中引入,可通过 JVM 参数-enableassertions开启SpringBoot 中提供了 Assert 断言工具类,通常用于数据合法…

Arrays.asList踩坑——引发的Exception in thread “main“ java.lang.UnsupportedOperationException

Exception in thread “main” java.lang.UnsupportedOperationException 如果你尝试修改Arrays.asList方法生产的List&#xff0c;那么就会报这个错误 public static void main(String[] args) {Integer[] arr new Integer[]{7,8,9};List<Integer> list Arrays.asLi…

GIS算法:JAVA拓扑套件JTS

常用可以用于GIS数据处理和空间计算的java包有geotool和jts。 相对来说&#xff0c;geotool功能更全面&#xff0c;还可以用于数据转换、瓦片地图发布、栅格影像分析等&#xff0c;jts只能进行基本的数据处理和空间计算。 但大多数情况下jts就完全够用了。 geotool的官网&am…

Java本地远程服务器debug调试详解

日常我们debug是经常用的&#xff0c;但是本地还好说&#xff0c;远程debug就有点难度&#xff0c;而且有时候必须要在预演&#xff0c;测试环境的服务器去debug&#xff0c;举个例子&#xff0c;需要https&#xff0c;公网&#xff0c;域名之类的&#xff0c;测试服务器这些有…

Linux “ll“ 命令详解

“ls -l” “ls -al” ll 用来查询当前目录下文件及目录的详情 1.第一位文件类型 普通文件 &#xff0c; d 目录文件&#xff0c;I 链接文件&#xff0c;p 管理文件&#xff0c; b 块设备文件&#xff0c; c 字符设备文件&#xff0c; s 套接字文件 2.文件属性 第一部分表示文…

使用BASE64Decoder完成文件与二进制之间互相转化

import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.OutputStreamWriter; import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder;/**\* 使用sun.misc.BASE64Decoder和sun.misc.BASE64Encoder\* 完成文件转化二进…

SpringBoot项目jar发布获取jar包所在目录路径

//第一种File path new File(ResourceUtils.getURL("classpath:").getPath());if(!path.exists()) path new File("");System.out.println(path.getAbsolutePath());//第二种System.out.println(System.getProperty("user.dir"));//第三种Stri…