首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

你好呀,是沉默王二,一个和黄家驹一样身高,和刘德华一样颜程序员。...本篇文章,我们来探讨一下访问量足足有 87+ 万次问题——什么是“找不到符号”,它是什么意思,它是如何发生,以及如何修复。 额外多 BB 几句。...因此,这段代码在编译阶段是不会通过。 ? 当我们对编译错误置之不理,尝试运行时候,程序会抛出以下错误。 ? “找不到符号”,意味着要么源代码有着明显错误,要么编译方式有问题。...总之呢,是我们程序员搞鬼,把编译器搞懵逼了,它有点力不从心,很无辜。 ? 02、“找不到符号”是如何发生 1)拼写错误 程序员毕竟也是人,是人就会犯错。...03、如何修复找不到符号”错误 一般来说,修复找不到符号”错误很简单,要么根据 IDE 提示在编写代码时候直接修复;要么根据运行后输出堆栈日志顺藤摸瓜。 ?

1.5K41

高级Python工程师教你如何正确写代码

在code review时候,才明白为什么命名是一件很难事情。 计算机科学有两个难点:缓存失效,给变量命名,以及差一错误经手每一段代码都带有隐喻意。GodComponent?...从来没想到,关于命名要说东西居然不能用一句话就概括完。 旧代码和下一个开发者 你有没有看过一些代码并觉得很奇怪?那些开发者为什么这样做?这完全说不通啊。 有幸曾经使用过遗留代码库。...这让意识到了环境重要性:要时刻记得团队正在工作环境是什么样。 如果忘记了代码,稍后又看到,而无法重新回想起当时环境时,我会说:“到底为什么他们会这样做?...在这方面得到了太多具体教训。 我会试着从周围解决代码,而高级工程师则会试着从中间解决。删除所有内容。一个永远不会运行if语句?一个不应该调用函数?是的,一切都没了。?...在每次code review时都会问自己这个问题:“为什么他们那样做?”。每当我找不到合适答案时,都会和他们谈谈。

61030
您找到你想要的搜索结果了吗?
是的
没有找到

不了解Java反射机制?看这篇就行!

我们又为什么要学? 当程序运行时,允许改变程序结构或变量类型,这种语言称为动态语言。我们认为java并不是动态语言,但是却有一个非常突出动态相关机制,俗称:反射。...既然封装了成员变量,我们又该如何获取这些成员变量呢?...C(); 符号: 类C 位置: 类A 4个错误 或许我们理所当然认为这样应该是错,类B根本就不存在。...所以这并不是我们想要。 我们想要就是用那个类就加载那个类,也就是常说运行时刻加载,动态加载类。如何实现动态加载类呢?...当我们javac All.java时候,它不会报任何错误,也就是说在编译时候是没有错误。只有当我们具体用某个类时候,那个类不存在,才会报错。

37610

【.NET】UnpackMe!Shielden+DNGuard,双层变异壳 - 脱壳详解

请参考原帖, 惊奇发现连二楼Falcon_2015这样.net高手也卡在了这里…… 根据我对于DNGuard 多年研究,出现上图右边所示错误:“试图使用链地址信息(有2个以上节或有一个TLS...,找到可选头,这里有个AddressOfEntryPont域,是000030CE,这是一个RVA(相对虚拟地址)。...2.我们再找到ImageBase这个域,是00400000,ImageBse标志着程序载入内存理想初始地址(基地址),这里也是为什么采用XP系统来调试.NET程序原因,有兴趣朋友可以研究下。..._CorExeMain这个函数究竟做了哪些工作,如何一步一步启动托管运行环境,等有时间继续写吧。 很多人问我SE+DNG壳脱壳时脱壳机报错如何修复。...修复这里资源很麻烦,还需要重新定位RVA地址。本文将介绍一种快捷办法,那就利用微软自带ILDASM和ILASM,先进行反编译,再编译回去。 但是我们发现在编译回去过程中,遇到了如下错误

8.6K40

Linux makefile 教程 非常详细,且易懂

可见,makefile都成为了一种在工程方面的编译方法。 现在讲述如何写makefile文章比较少,这是想写这篇文章原因。...而在链接程序时,链接器会在所有的Object File中找寻函数实现,如果找不到,那到就会报链接错误码(Linker Error),在VC下,这种错误一般是:Link 2001错误,意思说是说,链接器未能找到函数实现...在找寻的过程中,如果出现错误,比如最后被依赖文件找不到,那么make就会直接退出,并报错,而对于所定义命令错误,或是编译不成功,make根本不理。...为什么需要使用这样步骤?...,那么,所有的目标都会得到满足) 3、自动化变量 在上述模式规则中,目标和依赖文件都是一系例文件,那么我们如何书写一个命令来完成从不同依赖文件生成相应目标?

4.2K20

多图|入门必看:万字长文带你轻松了解LSTM全貌

非常简单:我们知道神经网络隐含层已经对关于输入有用信息进行了编码,因此,为什么不把这些隐含层作为记忆来使用呢?...LSTM(理论上)可以跟踪你当前使用方法返回类型,并能对应当返回变量做出更好建议;它还能在不进行编译情况下通过返回错误类型得知你是否犯有错误。...同样,懂得如何创造方法:正确指令后跟装饰符(先是描述,然后是@param,再是@return等),正确放置装饰符,返回非空方法以合适返回语句结尾。至关重要是,这种行为贯穿长串长串代码!...但是我们知道,神经网络隐层能编码有用信息。因此,为什么不将这些隐层用作为记忆,从某一时间步传递到下一时间步呢?于是我们便得到RNN。...因此,我们想要学习如何收集、更新和使用信息——为什么不借助它们自己迷你神经网络来学习这些东西呢?这样我们就得到了LSTM。 现在,我们已经浏览了整个过程,可以自己进行模型调整了。

1.1K81

Makefile经典教程(掌握这些足够)

可见,makefile都成为了一种在工程方面的编译方法。       现在讲述如何写makefile文章比较少,这是想写这篇文章原因。...而在链接程序时,链接器会在所有的Object File中找寻函数实现,如果找不到,那到就会报链接错误码(Linker Error),在VC下,这种错误一般是:Link 2001错误,意思说是说,链接器未能找到函数实现...在找寻的过程中,如果出现错误,比如最后被依赖文件找不到,那么make就会直接退出,并报错,而对于所定义命令错误,或是编译不成功,make根本不理。...endif endif 当然,你也许会说,使用override关键字不就可以重新定义环境中变量了吗?为什么需要使用这样步骤?...,那么,所有的目标都会得到满足) 3、自动化变量 在上述模式规则中,目标和依赖文件都是一系例文件,那么我们如何书写一个命令来完成从不同依赖文件生成相应目标?

2.6K20

如何避免 Java 中“NullPointerException”

个人认为这种行为原因如下: 大多数开发人员在这里没有看到任何问题,并将所有 NPE 异常都视为开发人员错。 意识到这个设计问题开发人员不知道如何解决。...Java 提供了编译类型安全,向开发人员保证他不能不匹配不同变量类型。而且,如果您这样做了 - Java 甚至会在编译步骤中让他知道。...因此,他们错过了: 初始化对象 验证对象 没有治愈人性方法,也与它无关。避免NPE实用方法是什么?让我们在下面回顾一个示例并尝试修复。...让我们使用 Null 检查和可选 ifPresent 来修复: 使用 Null 检查和可选 ifPresent 修复问题 而且,编译后,我们得到了一个成功构建: 构建成功 15 检查器框架限制...不幸是,还没有找到在 maven 编译步骤中添加方法。因此,如果存在,请在评论中告诉我会对其进行测试并将其添加到文章中。

2.8K20

使用TypeScript两年后,还值得吗?

遗憾是,通常源代码和声明之间没有严格联系。并且它们可能还是不正确或过时,或者根本就没有。 就个人而言,没有找不到声明这样问题。大多数流行库都有自己作者或社区准备好类型定义。...不管怎样,还有一个更严重问题 - 正如我之前提到,一些声明是不正确或过时。如果你遇到这样问题,没有简单解决方案。你可以使用声明能正常工作之前版本,自己修复并贡献出去或等待作者来解决。...你可以告诉编译器“这个常量妥妥是一个数字”,如果你尝试将其用作数组或字符串,TS编译器将始终提示你输入错误。...在右侧 - VS Code 立即通知你代码中错误。 ? 在左侧 - 一个类错误地实现了用户扩展接口(参见上一个屏幕)。在右边 - 描述错误信息.. 类 ES6中有类,所以你可能之前用过。...如果是一个数字,为什么你刚刚在前面添加字符串“id_”呢?TypeScript代码看起来很像其他流行类型语言,并且你有可能将获得更好,更准确代码审查。

1.3K20

干货 | 从资深软件工程师学到避坑大法

当进入代码审查环境时候,才明白为什么命名这么难。 在计算机科学里有两个难题:内存不足、命名、以及差一(off-by-one)错误。...每次代码审查时都问自己:「他们为什么这样做?「。每当我找不到合适答案时,就会去和他们谈谈。 在第一个月后,开始在同事代码中找到错误(就像他们对代码做一样)。...认为测试是一种文档,是对代码假设文档。测试会告诉(或之前的人)他们预想代码是如何工作,以及他们预期哪里会出错。 所以,当写测试时,我会记住: 记录如何使用测试时用到类/函数/系统。...你不能将这些信息存到代码中,因为这样任何人都能看得到。 把它们作为环境变量?这是一个好主意。但你怎么把它们放在那里?...当你修复 bug 时,你不仅仅关注如何修复 bug,而是你为什么不早点发现呢?是否有布置警报?如何能够更好地监控来避免类似的问题? 还不知道如何监控 UI。

55620

基于Qt新冠肺炎疫情数据实时监控平台1.1版本

1.前言 上一篇文章用Qt做了个疫情数据实时监控平台,介绍了实现思路和简单过程,主要包括数据接口获取和Qt开发,这两天修复一些BUG,完善了部分功能,如下: 新增辟谣信息详情显示界面,点击谣言标题弹出信息详情...修复数据类型定义错误造成折线显示错误BUG 适配Linux,修改打开超链接函数 2.BUG修复 今天早上打开一看,累计疑似/确诊折线变成了下面这样, 而腾讯新闻页面的是这样: 很明显是纵轴最大设置错了...当我尝试在Ubuntu环境下编译工程时,报错提示找不到头文件: 这也不奇怪,因为windows.h是Windows系统下头文件,而Ubuntu肯定是没有的。...id=8be33c500e00257c97419ac24ab59d8f 就会得到这条谣言新闻JSON格式详细信息,如下: 好了,有了接口返回JSON数据,我们就可以直接解析使用了。...(ID:mcu149),可以在后台回复:疫情监控,我会把最新版Qt工程和安装包下载链接发送给你。

1.5K10

使用resnet, inception3进行fine-tune出现训练集准确率很高但验证集很低问题

在这篇文章中,我会构建一个案例来说明为什么KerasBN层对迁移学习并不友好,并给出对Keras BN层一个修复补丁,以及修复实验效果。 1....2.1.3之前,当BN被冻结时(trainable=False),仍然会更新mini batch移动均值和方差,并用于测试,造成用户困扰(一副没有冻结住样子)。 这种设计是错误。...认为更好方式应该是使用训练中得到移动均值和方差(译者注:这样不就退回2.1.3之前做法了)。...原因和2.1.3修复原因相同,由于冻结BN后续层没有得到正确训练,使用mini batch均值和方差统计会导致较差结果。...如果BN没有冻结,它也会继续使用训练集中得到统计

2.2K20

使用命令行编译、运行Java程序

一、不带包名如何编译 1、没有中文java文件。...问题: 为什么我们通过IDE就能编译通过。 通过IDE,不可能分开java文件编码和java compiler编码格式,文件设置成什么编码,编译器都会知道,就会用什么编码来解析。...原生javac不会这样只会按照默认系统编码来编,这个时候如果文件编码不同,就出现这个问题了。...运行报错“错误找不到或无法加载主类A” 原因分析: 这里地方有点绕人,我们先分析为什么现在命令不行。...编译A.java 解决方案一: 我们可以用比较无脑方式 甚至,可以javac -d . *.java,但是认为.* 不妥,这样把不必要类也编译了。

1.6K10

代码调试最佳指南

像往常一样,得到了很多有帮助回答,现在如何教授代码调试技巧/描述调试过程有了些想法。 ?...有了这样错误信息,就可以检查是否需要修复防火墙,或者是否由于某种原因得到错误IP地址。...其它语言中类似于Rust语言failure库工具有: Go语言:习惯用法似乎是把你一堆错误串成一个大字符串,这样你就得到了一长串这样错误提示:“error:第一个错误:error:第二个错误...如果你知道其它语言中如何处理程序错误方法,请告诉我会很感兴趣! ? 了解错误消息含义 经常理所当然地认为代码调试一个子技巧是:正确理解错误消息含义!...在学习Rust时候经常碰到这样问题,Rust编译器会提示“你有一个奇怪lifetime错误”,而我就会想“呃,好吧,Rust,知道了,现在就去搞清楚lifetime是如何工作!”

1.1K40

代码调试最佳实践

在Twitter上发了一条推文说,从来没有见过任何好调试代码指南。像往常一样,得到了很多有帮助回答,现在如何教授代码调试技巧/描述调试过程有了些想法。...有了这样错误信息,就可以检查是否需要修复防火墙,或者是否由于某种原因得到错误IP地址。...其它语言中类似于Rust语言failure库工具有: Go语言:习惯用法似乎是把你一堆错误串成一个大字符串,这样你就得到了一长串这样错误提示:“error:第一个错误:error:第二个错误...如果你知道其它语言中如何处理程序错误方法,请告诉我会很感兴趣! 了解错误消息含义 经常理所当然地认为代码调试一个子技巧是:正确理解错误消息含义!...在学习Rust时候经常碰到这样问题,Rust编译器会提示“你有一个奇怪lifetime错误”,而我就会想“呃,好吧,Rust,知道了,现在就去搞清楚lifetime是如何工作!”

93610

CString 和 char* 类型转化

I love %s", graycat);   注意由于在可变参数列表中(在函数说明中是以“...”表示)并没有隐含一个强制类型转换操作符。你会得到什么结果呢?   ...(注意,是“字符”,而不是“字节”,因为 CString 是以隐含方式感知 Unicode )。   ...同时,还应该注意是,如果你有一个常量串指针,这个串本身被存储在只读内存中,如果试图存储,即使你已经调用了 GetBuffer ,并获得一个只读内存指针,存入操作会失败,并报告存取错误。...大部分编译器是这样设计:在临时对象被创建代码下一个执行步骤处隐含调用这个临时对象析构函数,实现起来,一般都是在下一个分号处。...lstrlen(Name) + 1(OK,承认,也犯了同样错误!)。

5.9K20

构建高可扩展纯IPv6云主机

本文介绍了如何在商用服务器之间使用纯IPv6通信构建新高度可扩展云托管解决方案,我们面临IPv6协议有哪些问题,以及我们如何解决这些问题以处理超过1000万活跃用户。...为什么我们决定运行纯IPv6网络? 在Hostinger,我们关心很多创新技术,所以我们决定运行一个名为Awex新项目,基于这个协议。...只有前端(面向用户)服务在双栈环境中运行 — 其他东西都是仅用于IPv6西向流量。 结构体系 在这篇文章中不想详细介绍,但是我会描述构建这个架构所需关键组件。 我们正在使用pod。...它有一些程序错误,其中大部分最终都修复了,但并不是我们所需要那么快。所以,我们对有关OpenSwitch实验推迟了一段时间,并给了Cumulus一个尝试。...最后,通过调整在ESXi上运行节点MTU数值,我们能够在不丢包情况下处理所有数据包。 得到教训 对于更大基础设施,IPv6协议更可接受,更具可扩展性。

3.5K80

十条有用 Golang语言 技术

添加新特性应当很容易。许多人参与开发该应用,应当可以被理解,且维护简单。许多人使用该应用,bug 应该容易被发现并且可以快速修复用了很长时间学到了这些事情。...不论你如何添加其他字段到T结构体。你代码总是能编译,并且在以后 Go 版本也可以保证这一点。只要在代码集中执行go vet,就可以发现所有的无标签语法。 4....State字段没有初始化,Go 默认使用对应类型进行填充。由于State是一个整数,零也就是0,但在我们例子中表示Running。 那么如何知道 State 被初始化了?...不过弹性并不好。如果你想对服务器集合引入其他逻辑的话会如何呢?...Go 天生就是个简单语言,在大多数情况下只会有一种方法来作某事。简单是力量源泉,也是为什么在人层面表现的如此有弹性。 如果必要的话,使用这些基数。

72990

十条有用 Golang语言 技术

添加新特性应当很容易。许多人参与开发该应用,应当可以被理解,且维护简单。许多人使用该应用,bug 应该容易被发现并且可以快速修复用了很长时间学到了这些事情。...不论你如何添加其他字段到T结构体。你代码总是能编译,并且在以后 Go 版本也可以保证这一点。只要在代码集中执行go vet,就可以发现所有的无标签语法。 4....State字段没有初始化,Go 默认使用对应类型进行填充。由于State是一个整数,零也就是0,但在我们例子中表示Running。 那么如何知道 State 被初始化了?...不过弹性并不好。如果你想对服务器集合引入其他逻辑的话会如何呢?...Go 天生就是个简单语言,在大多数情况下只会有一种方法来作某事。简单是力量源泉,也是为什么在人层面表现的如此有弹性。 如果必要的话,使用这些基数。

99860

Go语言 10 个实用技术--转

添加新特性应当很容易。许多人参与开发该应用,应当可以被理解,且维护简单。许多人使用该应用,bug 应该容易被发现并且可以快速修复用了很长时间学到了这些事情。...不论你如何添加其他字段到T结构体。你代码总是能编译,并且在以后 Go 版本也可以保证这一点。只要在代码集中执行go vet,就可以发现所有的无标签语法。   4....State字段没有初始化,Go 默认使用对应类型进行填充。由于State是一个整数,零也就是0,但在我们例子中表示Running。   那么如何知道 State 被初始化了?...不过弹性并不好。如果你想对服务器集合引入其他逻辑的话会如何呢?...Go 天生就是个简单语言,在大多数情况下只会有一种方法来作某事。简单是力量源泉,也是为什么在人层面表现的如此有弹性。   如果必要的话,使用这些基数。

1K70
领券