你好呀,我是沉默王二,一个和黄家驹一样身高,和刘德华一样颜值的程序员。为了输出更好的内容,我就必须先输入更多的内容,于是我选择 Stack Overflow 作为学习的第一战线,毕竟很多大牛都在强烈推荐。本篇文章,我们来探讨一下访问量足足有 87+ 万次的问题——什么是“找不到符号”,它是什么意思,它是如何发生的,以及如何修复它。

额外多 BB 几句。坚持写作这些年来,真的成长特别快,我建议你也行动起来——我坚信,学习不在入,而在出!

上图是之前的一个领导给我发的微信,看来他也看到了我的成长。(一不小心,暴露了自己的真名)

如果你还有啥想看的、想了解的,欢迎在评论区留言!我会的、我能写的,我都非常乐意分享出来,和你共同成长!接下来,我们来看正文。

01、“找不到符号”错误是什么意思

先来看一段代码:

String s = String();

有点经验的 Java 程序员应该能够发现上面这段代码中的错误,它缺少了一个 new 关键字。因此,这段代码在编译阶段是不会通过的。

当我们对编译错误置之不理,尝试运行它的时候,程序会抛出以下错误。

“找不到符号”,意味着要么源代码有着明显的错误,要么编译方式有问题。总之呢,是我们程序员搞的鬼,把编译器搞懵逼了,它有点力不从心,很无辜。

02、“找不到符号”是如何发生的

1)拼写错误

程序员毕竟也是人,是人就会犯错。

  • 单词拼错了,比如说把 StringBuilder 拼写成了 StringBiulder。
StringBuilder sb = new StringBiulder(); // 找不到符号,类 StringBiulder
  • 大小写错了,比如说把 StringBuilder 拼写成了 Stringbuilder。
StringBuilder sb = new Stringbuilder(); // 找不到符号,类 Stringbuilder

2)未声明变量

有时候,我们会在没有声明变量的情况下使用一个变量。

System.out.println(sss); // 找不到符号,变量 sss

或者变量超出了作用域。

for (int i = 0; i < 100; i++);
{System.out.println("i is " + i);
}

上面这段代码很不容易发现错误,因为仅仅是在“{”前面多了一个“;”。“;”使得 for 循环的主体被切割成了两个部分,“{}”中的 i 超出了“()”中定义的 i 范围。

3)方法用错了,或者不存在

比如说,Java 如何获取数组和字符串的长度?length 还是 length()?

String[] strs = {"沉默王二"};
System.out.println(strs.length()); // 找不到符号,方法 length()String str = "沉默王二";
System.out.println(str.length); // 找不到符号,变量 length

4)忘记导入类了

在使用第三方类库的时候,切记要先导入类。

StringUtils.upperCase("abcd");// 找不到符号,类 StringUtils

不过,IDEA 中可以设置类自动导入,来避免这个错误。

。。。。。。

导致出现“找不到符号”的错误原因千奇百怪,上面也只是列举出了其中的一小部分。问题的根源在于程序员本身,随着编程经验的积累,以及集成开发工具的帮助,这些错误很容易在代码编写阶段被发现。

03、如何修复“找不到符号”错误

一般来说,修复“找不到符号”的错误很简单,要么根据 IDE 的提示在编写代码的时候直接修复;要么根据运行后输出的堆栈日志顺藤摸瓜。

日志会给出具体的行号,以及错误的类型。根据提示,想一下自己的代码要表达什么意思,然后做出修复的具体动作。比如上图中提醒我们 35 行代码出错了,找不到变量 j,那么就意味着我们需要给变量 j 一个类型声明即可。

04、更复杂的原因

在实际的项目当中,出现“找不到符号”的错误原因往往很复杂,但大多数情况下,可以归结为以下几点:

  • 编码格式不对。比如说应该是 UTF-8,但有些遗留的项目会设置为 GBK、GB2312 等等。

  • JDK 的版本不匹配。比如说某些团队成员的电脑上安装的是 JDK 1.6,有的是 JDK 8,版本升级后的一些新语法自然就会和老版本发生冲突。

  • 第三方类库的升级。一些开源的共同类库往往会不兼容旧的版本,比如说最新版的 StringUtils 类的包为 org.apache.commons.lang3,但之前是 org.apache.commons.lang

  • 类名和方法名都相同,但包名不同,方法的参数不同,在使用的时候就容易造成“找不到符号”。

在我初学 Java 的时候,老师要求我们用记事本来编写代码,然后在命令行中编译和运行代码,那时候真的叫一个痛苦啊。

经常出现“找不到符号”的错误,差点入门到放弃。因为初学阶段,哪能记住那么多编程语言的规则啊,经常忘东忘西,再者记事本是没有行号的,找起问题来,简直要了老命。

吃过这样的苦后,我就强烈建议初学者不要再使用记事本编程了(莫装逼),直接上 IDE,有啥问题,工具帮你悠着点。

05、鸣谢

好了,我亲爱的读者朋友,以上就是本文的全部内容了。毫无疑问,能看到这里你在我心目中就是最棒的求知者,我必须要伸出大拇指为你点个赞

StackOverflow上87万访问量的问题:什么是“找不到符号”?相关推荐

  1. annotationprocessor 提示找不到类_StackOverflow上87万访问量的问题:什么是“找不到符号”?...

    你好呀,我是沉默王二,一个和黄家驹一样身高,和刘德华一样颜值的程序员.为了输出更好的内容,我就必须先输入更多的内容,于是我选择 Stack Overflow 作为学习的第一战线,毕竟很多大牛都在强烈推 ...

  2. alxc tool 报错数组超出了界限_Stack Overflow上59万浏览量的提问:为什么会发生数组越界?

    在逛 Stack Overflow 的时候,发现了一些访问量像昆仑山一样高的问题,比如说这个:为什么会发生 ArrayIndexOutOfBoundsException?这样看似简单到不值得一问的问题 ...

  3. 访问量100万的网站服务器,100万访问量 服务器配置

    100万访问量 服务器配置 内容精选 换一换 弹性负载均衡有不同的负载均衡,分别是共享型负载均衡和独享型负载均衡,便于用户根据不同的应用场景和功能需求选择合适的负载均衡器类型.共享型负载均衡:适用于访 ...

  4. 苗圩:全国已开通5G基站11.3万个,5G套餐签约用户87万

    11月21日,2019世界5G大会在北京开幕,工信部部长苗圩在开幕式上介绍,目前中国全国已开通5G基站11.3万个,预计年底13万个,5G套餐签约用户已有87万. 他还表示,随着5G应用场景的拓展,5 ...

  5. 百事公司宣布再生农业目标:改善农业供应链上25万人生活,100%可持续采购主要原料...

    百事公司宣布一项影响深远的"可持续农业"新目标,即在2030年前把再生农业措施扩展至700万英亩,约等同百事公司整体的农业足迹.百事公司预计将在未来十年消除至少300万吨的温室气体 ...

  6. 老码农教你在 StackOverflow 上谈笑风生

    老码农教你在 StackOverflow 上谈笑风生 本文作者: 伯乐在线 - 老码农 . 欢迎加入伯乐在线 专栏作者. 作为一个高大上的码农,你肯定用到过 StackOverflow,必须的.会有人 ...

  7. stackoverflow上一个最会举例子的专家

    https://stackoverflow.com/ Premraj是stackoverflow上一个一个最会举例子的专家,我特意收集了他的一些有趣的举例: Java弱引用最精彩的解释 https:/ ...

  8. 如何在StackOverflow上获得第一个标签徽章-以及为什么它很重要。

    by Angelos Chalaris 通过安吉洛斯·查拉利斯(Angelos Chalaris) 如何在StackOverflow上获得第一个标签徽章-以及为什么它很重要. (How to get ...

  9. linux服务器上nginx日志访问量统计命令

    linux服务器上nginx日志访问量统计命令 日志文件所在地方: /var/log/nginx/access_iqueendress.com.log /var/log/nginx/access_m. ...

最新文章

  1. 百度指数常见php框架,怎么导出数据到excel表格-如何将百度指数数据导出到Excel表格...
  2. 破解人工智能系统的四种攻击方法!
  3. spring配置文件import标签中使用${}占位符获得配置文件的属性值
  4. 单片机小精灵t2_51单片机定时器T2初始化设置
  5. 论文浅尝 | 知识图谱的单样本关系学习
  6. java divide 用法_java中BigDecimal加减乘除基本用法
  7. 文件的下载学习笔记:
  8. 安装scrapy 出现Failed building wheel for Twisted(总是显示此错误)解决办法
  9. 品高打造西科大教育云,带你看懂高教云建设之路
  10. 2月第3周业务风控关注|上海网信办复测23个被约谈APP 涉及1号店、小红书等
  11. spring读取配置文件
  12. Overleaf 硕士毕业论文参考文献格式设置
  13. JS变量特点及分号用法
  14. HP惠普笔记本Microsoft ACPI Compliant System未知设备的解决办法
  15. dh参数逆运动学_UR机械臂运动学正逆解方法
  16. 基于Milton的webdav解决方案 - Test
  17. 微信小程序调试webview_关于微信小程序webview的使用
  18. 5分钟超快速写,快写练习讲究快准狠~
  19. Ubuntu与Windows之间设置共享文件夹
  20. R语言ggsurv生存曲线一页多图的实现

热门文章

  1. Word:表格在页面中垂直居中
  2. httpd.conf linux,linux上安装apache以及httpd.conf基本配置
  3. 网页源代码隐藏域中存在密码
  4. 【前端学习】前端学习第十三天:JavaScript中DOM技术介绍
  5. hexo博客主题kaze 配置详细解析
  6. Arangodb——操作案例一
  7. IntelliJ IDEA / Webstorm 2019.3 PJ方法(永久有效)
  8. java.util.sortedmap_Java SortedMap lastKey()用法及代码示例
  9. 数据在网络层的传输过程
  10. 8位灰度图像BMP的保存