专业网站设计怎么做做古代风格头像的网站

news/2025/9/30 8:43:33/文章来源:
专业网站设计怎么做,做古代风格头像的网站,普宁做网站,自己做公司的网站吗转载自 你真的了解Java中的三目运算符吗三目运算符是我们经常在代码中使用的#xff0c;a (bnull?0:1);这样一行代码可以代替一个if-else,可以使代码变得清爽易读。但是#xff0c;三目运算符也是有一定的语言规范的。在运用不恰当的时候会导致意想不到的问题。本文就介绍一…转载自 你真的了解Java中的三目运算符吗三目运算符是我们经常在代码中使用的a (bnull?0:1);这样一行代码可以代替一个if-else,可以使代码变得清爽易读。但是三目运算符也是有一定的语言规范的。在运用不恰当的时候会导致意想不到的问题。本文就介绍一个我自己曾经踩过的坑。 一、三目运算符对于条件表达式b?x:y先计算条件b然后进行判断。如果b的值为true计算x的值运算结果为x的值否则计算y的值运算结果为y的值。一个条件表达式从不会既计算x又计算y。条件运算符是右结合的也就是说从右向左分组计算。例如a?b:c?d:e将按a?b:c?d:e执行。 二、自动装箱与自动拆箱基本数据类型的自动装箱(autoboxing)、拆箱(unboxing)是自J2SE 5.0开始提供的功能。一般我们要创建一个类的对象实例的时候我们会这样 Class a new Class(parameters); 当我们创建一个Integer对象时却可以这样 Integer i 100;(注意和 int i 100;是有区别的 ) 实际上执行上面那句代码的时候系统为我们执行了 Integer i Integer.valueOf(100); 这里暂且不讨论这个原理是怎么实现的何时拆箱、何时装箱也略过普通数据类型和对象类型的区别。 我们可以理解为当我们自己写的代码符合装拆箱规范的时候编译器就会自动帮我们拆装箱。那么这种不被程序员控制的自动拆装箱会不会存在什么问题呢 三、问题回顾首先通过你已有的经验看一下下面这段代码。如果你得到的结果和后文分析的结果一致并且你知道原理那么请忽略本文。如果不一致请跟我探索下去。 public static void main(String[] args) {    MapString, Boolean map  new HashMap();    Boolean b map ! null ? map.get(test) : false;    System.out.println(b);} 以上这段代码是我们在不注意的情况下有可能经常会写的一类代码在很多时候我们都爱使用三目运算符。 一般情况下我们会认为以上代码Boolean b的最终得到的值应该是null。因为map.get(test)的值是null而b又是一个对象所以得到结果会是null。 但是以上代码会抛出NPE Exception in thread main java.lang.NullPointerException 首先可以明确的是既然报了空指针那么一定是有些地方调用了一个null的对象的某些方法。在这短短的两行代码中看上去只有一处方法调用map.get(test)但是我们也都是知道map已经事先初始化过了不会是Null那么到底是哪里有空指针呢。 我们接下来反编译一下该代码。看看我们写的代码在经过编译器处理之后变成了什么样。反编译后代码如下 public static void main(String args[]){   Map map  new HashMap();   Boolean b  Boolean.valueOf(map  null ? false : ((Boolean)map.get(test)).booleanValue());   System.out.println(b);}看完这段反编译之后的代码之后经过分析我们大概可以知道问题出在哪里。((Boolean)hashmap.get(test)).booleanValue() 的执行过程及结果如下 hashmap.get(test)-null; (Boolean)null-null; null.booleanValue()-报错 好问题终于定位到了。很明显上面源代码中的map.get(test)在被编译成了 (Boolean)map.get(test).booleanValue()这是一种自动拆箱的操作。那么为什么这里会发生自动拆箱呢这个问题又如何解决呢 四、原理分析通过查看反编译之后的代码我们准确的定位到了问题分析之后我们可以得出这样的结论NPE的原因应该是三目运算符和自动拆箱导致了空指针异常。 那么这段代码为什么会自动拆箱呢这其实是三目运算符的语法规范。参见jls-15.25摘要如下 If the second and third operands have the same type (which may be the null type), then that is the type of the conditional expression. If one of the second and third operands is of primitive type T, and the type of the other is the result of applying boxing conversion (§5.1.7) to T, then the type of the conditional expression is T.If one of the second and third operands is of the null type and the type of the other is a reference type, then the type of the conditional expression is that reference type. 简单的来说就是当第二第三位操作数分别为基本类型和对象时其中的对象就会拆箱为基本类型进行操作。 所以结果就是由于使用了三目运算符并且第二、第三位操作数分别是基本类型和对象。所以对对象进行拆箱操作由于该对象为null所以在拆箱过程中调用null.booleanValue()的时候就报了NPE。 五、问题解决如果代码这么写就不会报错 MapString,Boolean map  new HashMapString, Boolean();Boolean b (map!null ? map.get(test) : Boolean.FALSE); 就是保证了三目运算符的第二第三位操作数都为对象类型。这样就不会发生自动拆箱操作以上代码得到的b的结果为null。 PS本文中的示例只是为了更加方便读者理解三目运算符会导致自动拆箱现象可能在代码中并不会直接这样使用。但是我自己的代码确实发生过类似问题。这里简化一下为了讲清楚原理。

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

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

相关文章

建设一个商城网站要多少钱seo综合查询怎么关闭

文章目录 2. docker常用命令2.1 参数说明(tomcat案例)2.2 基本命令2.3 高级命令2.4 其他 2. docker常用命令 2.1 参数说明(tomcat案例) 注意如果分成多行,\后面不能有空格 # 拉取运行 docker run \ -d \ -p 8080:8080 \ --privilegedtrue \ --restartalways \ -m…

衡阳电商网站建设手机网站的内容模块

一:引言: 图像和视频理解是计算机视觉应用中的基本问题,旨在使机器能够像人类一样解释和理解视觉数据。这些问题涉及识别图像和视频中的对象、人物、动作、事件和场景。如图1.1-(a)所示的图像识别任务包括对象检测[1]…

企业数字化转型战略规划:从愿景到落地的完整路径

企业数字化转型战略规划:从愿景到落地的完整路径 在数字经济浪潮席卷全球的今天,数字化转型已不再是企业的“选择题”,而是关乎生存与发展的“必答题”。然而,现实却颇为严峻:据麦肯锡等咨询公司的调查显示,超过…

贝叶斯学习笔记 - 详解

贝叶斯学习笔记 - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", &quo…

设计模式-结构性设计模式(针对类与对象的组织结构) - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

自学网站建设多久深圳网站建设推广方案

文章目录 CentOS7配置静态IP一、前言1.场景2.环境 二、正文1)确定网络接口名称2)配置固定IP和DNS3)重启网络服务4)验证配置 CentOS7配置静态IP 一、前言 1.场景 在 CentOS7上设置静态 IP 和 DNS。 2.环境 CentOS Linux 版本&…

凯利公式在期货交易中的应用

首先,我们需要理解凯利公式的目的:在重复的博弈中,找到一个最优的投注比例,以使你的长期资产增长率最大化,并避免破产风险。 一、 标准的凯利公式 最基础的凯利公式(用于两种结果,赢或输)如下: • f* = (应…

在确定性之外:关于AGI与ASI愿景的一些补充思考 (附阿里CEO云栖大会演讲全文) - 指南

在确定性之外:关于AGI与ASI愿景的一些补充思考 (附阿里CEO云栖大会演讲全文) - 指南2025-09-30 08:26 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; ov…

AT_agc054_c [AGC054C] Roughly Sorted

首先肯定考虑如何倒着回去。 发现从 \(1\) 到 \(n\) 操作,那么每个元素相当于如果不满足前面的条件,那么其就会被移动到 \(i + k\) 这个位置(已经满足条件的由于要最小化操作次数不能移动)。 那么倒着看,就相当于…

Ubuntu 24和25配置apt国内源

1.打开配置文件 sudo vim /etc/apt/sources.list.d/ubuntu.sources2.修改配置文件 # Ubuntu 24.04 (Noble) 官方源 Types: deb URIs: https://mirrors.aliyun.com/ubuntu/ Suites: noble noble-updates noble-backport…

誉重网站建设公司吃什么补肾最快最好

背景 ubuntu 18.04服务器磁盘突然100% 一查/var/log/journal目录占了14G 清理 要清理 journal 日志,可以使用以下步骤: 运行以下命令来查看 journal 日志的使用情况: journalctl --disk-usage这将显示 journal 日志的当前使用情况&#x…

特产网站开发的好处网站镜像 动态

来源:工业机器人之家北京理工大学 黄强教授团队北京理工大学借鉴人类长期进化所具备自然、快速、协调运动机理和灵巧结构特征,创新地研究了仿人机器人的仿生运动规划、控制与系统集成等关键技术,取得了新突破。提出了仿人机器人运动规划新方法…

dede网站经常被挂马 怎么办wordpress环境配置文件

ffmpeg使用xfade的转场特效 1. 介绍2. ffmpeg里面的xfade3. 使用 1. 介绍 参考文档 ffmpeg是一个音视频编辑工具,具体的。。。。我才搞接触,所以不懂。 xfade是一种视频转场滤镜,用于在两个视频片段之间创建平滑的过渡效果。xfade的转场效果…

完整教程:医疗编程AI技能树与培训技能树报告(国内外一流大学医疗AI相关专业分析2025版,上)

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

详细介绍:pxcharts多维表格编辑器Ultra版:支持二开 + 本地化部署的多维表格解决方案

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

实用指南:AWS实战:轻松创建弹性IP,实现固定公网IP地址

实用指南:AWS实战:轻松创建弹性IP,实现固定公网IP地址pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas…

做网站只有域名全球访问量最大的10个网站

场景:后台返回给页面的时间统一差8小时。 分析:差八小时,应该是时区问题。具体的是哪一层出的问题呢,mybatis?mysql?系统时间? 解析: 1.查询mysql时区(正常) 输入show variables like "%time_zone%";,显示当前时区 全局参数system_time_zone 系统时区,在My…

服务器租用网站重庆建设工程信息网官网入渝备案

SharePoint站点层次结构: 1.Web Application: 一般创建后对应一个IIS Web Site, 默认创建后是打不开的,因为网站没有任何内容。 2.Site Collection: 一个Web Application 下通常可以包含多个SiteCollection,创建一个SiteCollection后默认会…