JavaRush /Java 博客 /Random-ZH /刚开始学习Java的人最常见的问题

刚开始学习Java的人最常见的问题

已在 Random-ZH 群组中发布
理解本文所需的知识水平:初学者。您正在学习 Java 语法任务,并且更接近其初始水平。 刚开始学习Java的人最常见的问题——1您刚刚开始学习 Java。你会被来自聚宝盆的术语轰炸。您加载了大量的技术信息,有时您会对三棵松树感到困惑。相信我,既然你已经涉足编程,事情就永远如此(此时,屏幕外响起一声不祥的笑声,一个安静的声音,中断了一半的话语,低声说道:“快跑……先救自己吧)”太晚了...”)。即使您是最好的开发人员,错误也会在您的余下编程生涯中困扰您。然而,这根本不像听起来那么可怕。
如果您刚刚开始学习 JavaRush,那么您很可能已经遇到了本文中提出的问题。无论如何,我们欢迎您提出评论来描述您在学习 Java 的头几个月中遇到的问题。

0 级问题:比较运算符 (==) 和赋值运算符 (=) 的混淆。

对于那些从其他编程语言转向的人来说,这是一个非常常见的问题。一般来说,从小学开始我们就已经习惯了(=)这是一个等号。可以用来记住的一个简单技巧是:如果您知道您只关心其中一个值(将一个值分配给另一个值),则使用单个“ =”符号,否则如果您关心所有变量和值(你比较它们)你需要一个双“ ==”符号。

问题:使用比较运算符 (==) 测试字符串等效性

要做什么:请记住,不能使用 来检查 Java 对象的等价性(==),因为该运算符旨在测试基本类型的相等性。
刚开始学习Java的人最常见的问题——2
对于对象,您需要使用.equals(). String在 Java 语言中,它只不过是一个对象(和)immutable
标记为的对象Immutable 是其状态在创建后无法更改的对象。在Java中,这意味着类的所有实例字段都被标记为final和 是原语(或也immutable)。

问题:循环中的字符串连接

不要自己尝试这个!每次连接字符串时,都会创建一个新对象String(正如我们在上面发现的,字符串immutable是不可变的)。在某些时候,您将耗尽内存,或者程序将开始花费太多时间来完成。 解决方案。在循环中连接内容时使用StringBuilder替代方法。当需要对字符串进行大量更改时使用String该类。StringBuilder这些线与 不同String,不是immutable

问题:空指针异常

null当我们实际上需要一个真实的对象时 尝试使用空指针时,就会发生这种异常。
所有原始类型都有默认值。所以, yint0, ybooleanfalse。任何引用类型(即对象)的默认值为null。它不是一个对象或类型,而是一个特殊的值。这本质上意味着“这里什么都没有”。
刚开始学习Java的人最常见的问题 - 3
该怎么做:如果您的代码编写方式使得您的对象在某些时候可以接受该值null,则您需要添加“检查null”,特别是如果您不是自己创建该对象的话。还要记住,返回空集合比返回一组 更好null。为 getter 和 setter 添加验证也很好。

问题:由于某种原因 if / while / for 循环不起作用

if (something.equals («что-то еще»)); {// <---- корень зла!!!
     System.out.println («Почему я не работаю???»);
}
这是怎么回事?很简单:一个额外的分号已经让数十万新手 Java 程序员痛不欲生。好吧,之后你就不需要它了if ()。从语言的角度来看,这样的语法是完全可以接受的,因此编译器不会抱怨它。但它终止了条件语句,块内的代码{}永远不会满足上面的条件。
刚开始学习Java的人最常见的问题 - 4
解决方案:记住设计逻辑。“ ;”标志意味着某个区块的结束,但这里一切才刚刚开始。

问题:尝试从静态方法(例如 main)访问非静态成员变量

解决方案。这个问题涉及到概​​念本身的理解static。如果一个方法标有这个词,则意味着我们不需要实例化该类来调用main方法。因此,解决办法就是充分理解“静力学”并理解其本质。

问题:尝试通过开发现有的库和工具来重新发明轮子

解决方案。其实这并不是什么大问题。对于初学者来说,这是一个更有用的练习。但是,如果您想关注结果,例如创建一个方便的订户数据库,那么在电话簿中搜索订户只是您的应用程序的结果之一。在这种情况下,就不需要编写二分查找算法了。使用现有的(我们向您保证,有人在您之前已经编写了它并且它位于标准库中)。所以研究一下Oracle文档中的Java标准库。学习 Google,习惯阅读 Stack Overflow 并提出有关JavaRush 帮助的问题!……当然,这些并不是初学者的全部问题。在评论中描述一下你的吧! 您有兴趣阅读 Java 相关文章吗?加入 Java 开发人员小组这里有很多有趣的东西。
评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION