几个java小问题

【深度解析】AURIX TC387 UCB Flash架构与避坑指南(第一篇) 摘要:UCB(用户配置块)是AURIX TC3xx芯片启动与安全的关键配置区域,位于DFLASH0存储区。每个512字节的UCB包含启动模式、安全设置等关键参数,并通过强制CRC32校验确保完整性。UCB分为启动头(UCB_BMHD)、安全配置(UCB_ORIG)及其备份(UCB_COPY)三种主要类型。不同于常规Flash,UCB具有自动擦除特性,错误配置可能导致芯片永久锁死。开发中应谨慎修改UCB,必须同时编程原始和备份版本,并确保正确的CRC校验。后续文章将详细介绍UCB编程方法和调试技巧。 阅读详情

关于面试题的几个补充

1.看代码说结果:

public static void main(String[] args){
    char x = ‘b’;
    int i = 0;
1.  System.out.println(true?x:0); //这个0是short类型    
2.  System.out.println(true?x:1111111110); 
3.  System.out.println(false?i:x); 
}

要类型转换
直接写出的0是 short 类型

b
98
98

解释:
条件运算符的3个核心要点

  • 如果第二个和第三个操作数具有相同的类型,那么他就是条件表达式的类型.
  • 如果一个操作数的类型是byte,shotr或char,而另一个操作数类型是int的常量表达式,条件表达式的值是可以用类型byte,short或char表示的,
  • 否则,将操作数类型运用二进制数字提升(向上转型),二表达式的类型就是第二个和第三个操作数提升后的类型

  1. System.out.println(true?x:0);
    对于语句1中的条件表达式,第二个操作数是char类型,第三个操作数是一个整型常量,符合核心要点的第二点.
    其实这里的常量0,实质是一个short类型的常量,和char类型一样都占2个字节,所以不会发生转型.
    当执行print语句的时候,将调用PrintStream.print(char)这个被重载的方法,输出 b

  2. System.out.println(true?x:1111111110);
    这条语句同样适用于核心要点的第二点,将调用PrintStream.print(long)方法,输出 98

  3. System.out.println(false?i:x)
    因为x是int类型的,所以必定放生向上转型,char自动转型为int i的值变为 98,调用PrintStream.print(int)方法,输出98.

“+” 运算符和 “+=”运算符

char a = 'A';
1. a = a + 1;//报错
2. a += 1;

1.a = a + 1;//报错
这条语句为什么会报错?
在Java编程思想中有这样一句话

加号的唯一作用就是将较小数据类型的操作数提升为int

这句话我们可以的得知,只要是比int小的基本数据类型,用加号与一个整数常量连接的时候,会被自动转型为int,这也是为什么a = a + 1会报 int类型不能转换成char类型的原因了

2.a += 1;
为什么这句有没有报错?
因为 += 运算符存在隐式强转,这条语句等价于:
a = (char)((int)a + 1 )

交换值的问题

有a,b个int类型的变量,要求不通过临时变量交换2个变量的值

public class Change{
    public static void main(String[] args){
        int a = 7; 
        int b = 5;
        a = a ^ b;
        b = b ^ a;
        a = a ^ b;
        System.out.println(a + "  " + b);
    }
}

这种方法是最正确也是最高效的

另一种方法

a = a + b ;
b = a - b ;
a = a - b ;

这种方法看似可以,但是却不正确,因为没有考虑到数据溢出问题
题上并没有说a和b的值有多大,
a和b都是int类型,最大存储范围为 2147483647 到 -2147483648

class Test {
    public static void main(String[] args) {
        System.out.println(Integer.MAX_VALUE);
        System.out.println(Integer.MIN_VALUE);
    }
}

问题出在 a = a + b;
如果当 a+b 的值大于了 2147483647 就会发生数据溢出,从而导致后面的语句得不到正确的值.

STM32进入HardFault_Handler时,如何找到问题所在? 当STM32进入HardFault_Handler时,定位问题发生的点 阅读详情

相关推荐

【Blockly开发教程】01 初识Blockly

Blockly 是由 Google 开发的开源代码库,它可以为网页程序和移动端应用程序添加可视化代码编辑器。

Bright的博客 4512

JAVA基础学习 Day006

1. 关于自动提升类型的易错题 public static void main(String[] args) { char x = 'x'; int i = 10; System.out.println(true? x : i); System.out.println(true? 'x' : 10); } //答案: //120 //x /* * 如果其中有一个是变量,按照自动类型转换规则处理成一致的类型; * 如果都是常量,如果一个是char,如果另一个是[0~65535

Cheldor的博客 279

电力系统实时仿真技术:从硬件在环到主流平台实践

实时仿真是一种基于高性能计算硬件,在严格时间约束下模拟物理系统动态行为的关键技术。其核心原理在于通过硬实时计算,确保仿真步长内的模型求解与输出时间严格同步,从而构建高保真的虚拟测试环境。这项技术的核心价值在于为电力电子、新能源并网等复杂系统的研发提供了无风险的“数字沙盘”,能够安全地验证控制器逻辑、保护装置动作及系统稳定性。在工程实践中,硬件在环测试通过连接虚拟模型与真实硬件,形成了控制器硬件在环和功率硬件在环两大主流应用场景,广泛应用于设备研发、电网安全分析和人员培训。本文聚焦于电力系统领域,深入解析了实

weixin_30952479的博客 420

易错题

publicclassTest01 { publicstaticvoidmain(String[]args) { charx='x'; inti=10; System.out.println(false?i:x); // 120 System.out.println(false?10...

weixin_30430169的博客 150

利用LTspice设计Pt100测温电路

是一种广泛使用的温度传感器,它属于(RTD, Resistance Temperature Detector)的类型,通常用于温度测量。在0°C时,的电阻值为100欧姆,且它的电阻值会随着温度的升高而升高。PT100热电阻温度阻值对应表)因此可以根据这一特性来检测出环境温度。

2301_77033628的博客 2417

看完这篇爽文我终于学会了示波器(一)

示波器基础篇的介绍,希望对你有用,下次分享一下如何测试。

qq_45508321的博客 974

32、short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?

32、short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错? short s1 = 1; s1 = s1 + 1; (s1+1运算结果是int型,需要强制转换类型) short s1 = 1; s1 += 1;(可以正确编译) JAVA面试问题及答案大全

kaszxc的博客 261

一文速览:大模型语料构建与基础训练全流程实战指南

因为模型只有看到足够丰富、高质量的数据,才能真正学到“真本事”,展现出更强大的泛化能力,也就是能够在全新的场景和任务下,做出准确的推理和判断。我们日常做饭的时候,通常会先把买回来的菜仔细清洗干净,把坏掉的叶子、泥土、杂质等去除掉。同理,训练大模型的数据就像我们的食材,如果不干净,就会影响模型的学习效果,甚至训练出逻辑紊乱的模型。在大模型的世界里,有一句名言:“Garbage in, Garbage out”,翻译过来就是“垃圾输入,垃圾输出”,说白了,就是给模型喂的是什么数据,它学到的就是什么知识。

master_hunter的博客 1671

三元运算符的注意点

三元运算符的注意点 三元运算符: (条件表达式)? 表达式1:表达式2 如上图所示,当条件表达式的内容为true时,执行表达式1的内容,反之,则执行表达式2的内容。 当你遇到如下情况时: public static void main(String[] args) { char x = 'x'; int i = 10; System.out.println(true? x : i);//结果为120 System.out.println(true? 'x' : 10);//结果为x }

weixin_55961892的博客 369

Python 爬虫教程:抓取视频平台数据(观看量、评论数、点赞数等)

爬虫(Crawler)是通过编写程序模拟浏览器行为,从互联网上抓取并提取信息的技术。爬虫的核心任务是模拟用户访问网页,获取网页内容并解析出我们需要的数据。爬虫技术被广泛应用于搜索引擎、数据分析、电商价格监控、内容抓取等领域。Bilibili和YouTube。这两个平台都提供丰富的用户生成内容(UGC),且在中国和全球范围内都非常流行。Bilibili:以二次元文化为主的视频平台,用户活跃,视频内容丰富。Bilibili的网页数据较为简单,可以通过传统的HTML解析抓取。YouTube。

2201_76125261的博客 1854

SAP CPI 和 PO 的区别

SAP CPI适合云集成轻量级的集成需求,并且由于其云架构,具有快速部署低维护高度可扩展的特点。SAP PO更适合本地系统集成复杂的集成场景和高度定制化的需求,并且对于已经有 SAP 基础设施的企业来说,PO 提供了更多的控制和灵活性。选择使用哪个平台通常取决于企业的技术架构、集成需求、预算以及对灵活性和控制的需求。如果企业主要使用 SAP 的本地系统,并且有复杂的集成需求,那么 SAP PO 是一个理想的选择。如果企业更多地依赖云应用,并希望简化集成操作,那么 SAP CPI 更加适合。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1874

JavaSE基本语法上练习题

JavaSE基本语法上简答题编程题 简答题 1.标识符的命名规则需要注意哪几点? 由26个英文字母大小写,0-9 ,_或 $ 组成 数字不可以开头 不可以使用关键字和保留字,但能包含关键字和保留字 Java中严格区分大小写,长度无限制 标识符不能包含空格 命名规则需要严格遵守。 2.基本数据类型有哪几类?包含String吗? 基本的数据类型包括 整型(byte short int long) 浮点型(float double) 和布尔型(boolean) 字符型(char) 不包括String,Stri

天问的博客 631

C++和OpenGL实现3D游戏编程【连载6】——不规则图形的纹理贴图(附源码)

上一节我们讨论了纹理贴图的相关基础操作,但上一节的纹理贴图操作基本上都是规则图形,包括圆形和球形虽然复杂一点,但是它也是规则的。这一节课我们要讨论一下,怎么在不规则图形上纹理贴图,就比如文章下图的心形纹理贴图,以及纹理的平移、旋转、放大缩小功能。

zhooyu的博客 1308

关于java的几个困惑问题

关于java的几个困惑问题

风向南吹 128

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

java中的问题_java中几个常见的问题

1.正确使用equals方法Object的equals方法容易抛出空指针异常,应使用常量或确定有值的对象来调用equals方法例如://不能使用一个值为null的引用类型变量来调用非静态方法,否则会抛出异常String str = null;if (str.equals("java")) {...}else {...}如果运行上面的程序则会抛出空指针异常,但是我们把第二行的条件判断语句改为下面这样...

weixin_32821257的博客 222

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

学习java项目遇到的几个问题

学习java项目遇到的几个问题   遇到问题:eclipse错误: 找不到或无法加载主类 Test 解决办法:在src文件夹上点右键-Build Path-Use as Source Folder,重新进行编译,一切正常了。 参考:Eclipse错误: 找不到或无法加载主类或项目无法编译10种解决大法! https://blog.youkuaiyun.com/chenleixing/article/d...

nanbiandehe的博客 330

关于在ORACLE下开发JAVA的几个问题

关于在ORACLE下开发JAVA的几个问题  作者:超级菜鸟  [2002-05-27] 返 回 | 关 闭        我本来不再想写一些类似教程的文章,因为既然叫教程就要能历经历史的考验,而对于我这种菜鸟级的程序设计者来说仅喜欢随心所欲地交流一些自己的经验。可以不成方法,无关条理地想到哪说到哪。但是有些问题我又不能不出来说明白,因为目前网上的很多“教程”都在把初学者引向错误,有些是作者个人理

§为艺术而技术§ 1065

java必须理解的几个小问题

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33694620的博客 101

Java并发编程几个问题的解答

例如,在 1 秒钟内,可能先给文字处理软件分配 5 毫秒去执行保存文档等操作,然后马上切换给音乐播放软件分配 5毫秒去读取音频数据并播放等,如此反复切换,在宏观上呈现出多个程序同时运行的效果。资源分配有序化:可以规定一个拿筷子的顺序,比如甲先拿筷子 A,乙再拿筷子 B,然后甲拿筷子 B,乙拿筷子A,按照固定顺序去获取资源,避免同时争抢的混乱情况和死锁问题。,也就是沿着 main 方法里的代码从上到下按顺序执行,若有方法调用则进入被调用方法继续按顺序执行,执行完后返回 main 方法继续向下执行。

2301_80052073的博客 937

初学JAVA需要搞懂的几个问题

转自出处 对于这个系列里的问题,每个学Java的人都应该搞懂。当然,如果只是学Java玩玩就无所谓了。如果你认为自己已经超越初学者了,却不很懂这些问题,请将你自己重归初学者行列。内容均来自于优快云的经典老贴。  问题一: 我声明了什么!  String s = "Hello world!";  许多人都做过这样的事情,但是,我们到底声明了什么?回答通常是:一个

martin_liang的专栏 518

关于Java的几个问题

最近面试了很多公司,一些笔试和面试的问题让我深有感触。虽然说自己对Java已经很熟悉了,不过当面对一些细节的时候,自己确实有点无从下手。下面简单的列举几个例子: 1.Java中堆和栈的区别 其实,这个问题并不是很难。不过也许很多程序员往往忽略了这一点,尤其是在垃圾回收的时候。大家可能习惯了Java的GC机制,其实如果能仔细理解GC,我们完全可以提高执行程序的效率。那么堆和栈就...

yanghuidang 88

关于Java的几个小问题

Java 语言的特点有:①面向对象,主要是封装,继承,多态②平台无关性,“一次编写,到处运行”,因此采用 Java 语言编写的程序具有很好的可移植性。③支持多线程。C++ 语言没有内置的多线程机制,因此必须调用操作系统的 API来完成多线程程序设计,而Java却提供了封装好多线程支持;④支持 JIT 编译,也就是即时编译器,它可以在程序运行时将字节码转换为热点机器码来提高程序的运行速度。JVM、 JDK 和 JRE 有什么区别?JVM。

朝碧海而暮苍梧 763

java Web项目布署到TomCat的几个注意问题

java Web项目布署到TomCat的几个注意问题

a13556161704的博客 234

Java面试中最常被人问到的几个问题

Java面试中,最常被人问到的几个问题: 1、java.util.*包的UML结构图。 Collection ¦ ¦_List ¦ ¦_LinkedList ¦ ¦_ArrayList ¦ ¦_Vector ¦ ¦_Set ¦ ¦_TreeSet ¦ ¦_HashSet ¦ ¦_Map ¦ ¦_HashMap ¦ ¦_Compare,Comparetor ¦ ¦...

一个搞IT的人 774

java 操作字符串需注意的几个问题

1、了解“==” 和 “equals”的区别。 在java中,所有的对象名其实中一个引用,这一点在字符串比较中可以很清楚的看到。如下: String s1=new String("hello"); String s2=new String("hello"); boolean b1=(s1==s2)?true:false;//b1=false; b1=(s1.equal

gddghs 775

有关java的几个小问题

最近遇到不少有意思的小问题,解决后与大家分享。 一.java日期的使用 以前我遇到这种都是直接去查api的,也没特意去背,最近做一些小的练习项目发现日期使用还是很频繁的,是时候总结一下记住吧。public class TestDate { public static void main(String[] args) throws ParseException { //1.获取当前系统时间

lovellypop的博客 367

Java类的几个小问题

Java类的几个小问题 属性和关键词this 类的方法里用到类的属性,要不要加this?看下面两段代码 class it{ private int ok = 0; public void cc(){ ok = 3; System.out.println(ok); System.out.println(this.ok); } ...

日暮图远8102的博客 218
上一篇: 面向对象之抽象和接口
下一篇: 集合简单总结
dong4go
博客等级 码龄12年 5粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值