C++&&Java的bug学习笔记

这篇文章是一篇bug记录文章,包括C++、Java的一些bug和解决方法,后续可能也会更新
  1. 这个警告目的是防止一个负的符号型的数据转化为无符号型时,会产生一个不是我们想要的很大的数据。signed 和unsigned数据的范围也不同。
    解决方法:在i前面加 unsigned 或者加 std::size_t
    将这一句改为 for(std::size_t i = 0; i < strlen(str); i++) 或
    for(signed i = 0; i < strlen(str); i++)

    A warning:comparison between signed and unsigned integer expressions [-Wsign-compare]

  2. distance是返回容器中两个地址之间的距离
    参数为(地址, 地址)
    返回值为整型

  3. Java:-Cannot make a static reference to the non-static method is_Valid_Password(String):
    出现这个错误的原因是在Java语言中对静态方法有两点规定:在静态方法中不可以使用this关键字;在静态方法中不可以直接调用非静态方法
    main方法必须为静态

  4. 报错[Error] invalid types ‘int[int]‘ for array subscript原因及解决方案:
    这通常是数组的问题,我目前总结出3种可能:

    数组变量名不一致,或者没定义,比如你定义了一个ans数组,但是你在用的时候误写成了a数组(oj应该爆CE)
    数组空间不够,比如你要访问a[6],可是你只定义了int a[6]数组,所以下标最多到5,定义改成7就行了。(oj应该爆RE)
    变量名和数组名重复定义,比如定义了一个int a;然后又定义了一个int a[6];数组,(oj应该爆CE吧)

    原文链接:https://blog.csdn.net/cool99781/article/details/119580433

  5. C++中union的作用:
    在C/C++程序的编写中,当多个基本数据类型或复合数据结构要占用同一片内存时,我们要使用联合体;当多种类型,多个对象,多个事物只取其一时(我们姑且通俗地称其为“n 选1”),我们也可以使用联合体来发挥其长处。

  6. 在C++中若要设置长度大于1000000的数组,不能在函数内部声明,因为这样属于局部变量,存放在了栈上,容易造成内存溢出。常出现在算法题中,我经常错

  7. sort(first,last,cmp);
    其中,first是元素的起始地址,last是结束地址,cmp是排序的方式。对[first,last)(一定要注意这里的区间是左闭又开)区间内数据根据cmp的方式进行排序。也可以不写第三个参数,此时按默认排序,从小到大进行排序。

  8. Java:如果一个类里定义了构造函数,则系统不会再给定义默认的无参构造函数。如若还需要无参的构造函数,则必须显式的在类中定义。

  9. Java:==是判断两个人是不是住在同一个地址,而equals是判断同一个地址里住的人是不是同一个

  10. Java:在程序中,调用方法并且把数组的名称作为参数传递到方法中。
    本质上是传递数组的地址值。既然传递的是数组的地址,那么方法就可以通过数组的地址改变内存中数组的内容。类似于C语言中调用函数传递数组的指针一样。可以在函数中通过指针改变数组的内容。
    所以在JAVA当中,数组为引用类型,可以把数组作为参数传递到方法中去改变数组。

    Caused by: java.lang.NullPointerException: Attempt to invoke virtual method ‘void androidx.appcompat.app.ActionBar.setTitle(java.lang.CharSequence)’ on a null object reference

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值