查看: 2746|回复: 4

[已经解决] 崩溃了!有啥区别么?!

[复制链接]
梦石
0
星屑
211
在线时间
905 小时
注册时间
2010-9-6
回帖
3138
发表于 2015-9-12 13:24:53 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
本帖最后由 stevenrock 于 2015-9-12 13:28 编辑

".equals()"和"=="有区别么?!
".equals()"和"=="有区别么?!
".equals()"和"=="有区别么?!
令人崩溃的事情说三遍!说不过瘾,必须喊出来!而且是歇斯底里的喊!!!
".equals()"和"=="有区别么么么么……?!

呼呼,冷静下来继续说。今天的项目是用swing+JDBC做出来登录注册。于是偶瞬间完成注册效果,但是却在登录环节停滞不前。明明数据库里已经注册添加了用户名,偏偏不停的提示"该用户名不存在"(这话还是偶自己写的,简直就是在自我嘲讽)。
最后,被一位高人费了九牛二虎之力,查出来了问题的根源,把偶判断用户名是否在数据库中存在记录的"A==B"替换成了"A.equals(B)"。
测试……艾玛居然成功了!
项目算是完成了,但是偶的价值观碎了一地!最后,忍不住还是想仰天长啸:“'.equals()'和'=='有区别么?!”

后记:偶发誓,以后的if语句,再也不用"=="判断了!绝不!!永远!!!

点评

能放脚本吗  发表于 2015-9-12 14:31
头像被屏蔽
梦石
0
星屑
88
在线时间
631 小时
注册时间
2014-8-4
回帖
3243
发表于 2015-9-12 14:19:18 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复

使用道具 举报

梦石
0
星屑
9292
在线时间
2504 小时
注册时间
2011-5-20
回帖
14521

开拓者

发表于 2015-9-12 21:02:45 | 显示全部楼层
不知道这是什么脚本···

评分

参与人数 1星屑 +5 收起 理由
stevenrock + 5 塞糖

查看全部评分

[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复

使用道具 举报

寒

梦石
0
星屑
1049
在线时间
1391 小时
注册时间
2010-8-9
回帖
3301
发表于 2015-9-12 22:41:18 | 显示全部楼层
本帖最后由 寒冷魔王 于 2015-9-12 22:43 编辑

换头像了,表示竟然直到刚刚才认出是在学Java的stevenrock酱= =  表示脸盲症泪奔。。。

既然是stevenrock酱,我就说几句吧。
stevenrock酱应该是用String出了问题。
其实由Object定义的equals()是和==一致的,但是String对equals()进行了重载,所以→_→

做一个简单的测试:
[fold=代码][pre lang="java"]class Program
{
        public static void main (String[] args)
        {
                /* Test 1 */
                String s1 = "String";
                String s2 = "String";
                System.out.println("Test 1:");
                System.out.println(s1==s2);
                System.out.println(s1.equals(s2));
                /* Test 2 */
                String s3 = new String("String");
                String s4 = new String("String");
                System.out.println("Test 2:");
                System.out.println(s3==s4);
                System.out.println(s3.equals(s4));
                /* Test 3 */
                String s5 = s1;
                String s6 = s1;
                System.out.println("Test 3:");
                System.out.println(s5==s6);
                System.out.println(s5.equals(s6));
                /* Test 4 */
                String s7 = s1;
                String s8 = s2;
                System.out.println("Test 4:");
                System.out.println(s7==s8);
                System.out.println(s7.equals(s8));
                /* Test 5 */
                String s9 = s3;
                String s10 = s4;
                System.out.println("Test 5:");
                System.out.println(s9==s10);
                System.out.println(s9.equals(s10));
        }
}[/pre][/fold]
测试结果如下链接:
http://ideone.com/ORLO8J

可以看出,String中,==还包含着对引用相同与否的判断,而equals()仅判断内容相等。

建议stevenrock酱强化一下基础,虽然Java很简单,但是仍有许多细节问题需要注意。
尽管stevenrock酱的水平目前都可以直接上手客户端了,但还是建议多看看书,比如《Java编程思想》,强化一下自己。

点评

是if语句的判断了,谢谢你的建议。  发表于 2015-9-12 23:57

评分

参与人数 2星屑 +186 收起 理由
三途亚梦 + 166 认可答案
stevenrock + 20 认可答案

查看全部评分

回复

使用道具 举报

梦石
0
星屑
1547
在线时间
688 小时
注册时间
2009-11-11
回帖
2692
发表于 2015-9-13 02:36:20 | 显示全部楼层
笔记下就好,以后不要再犯同样的错误,经常错在同一种写法的错误上,这样写脚本会令自己很蛋疼

评分

参与人数 1星屑 +5 收起 理由
stevenrock + 5 我很赞同

查看全部评分


嘿。嘿。嘿
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部