-
servlet函数传递中的“==”和“equals”的问题5
参数传递是XXX?a=0
在doGet方法中
String a=request.getParameter("a");
boolean b=a=="0";
System.out.println(b);
boolean c="0".equals(a);
System.out.println(c);
结果 b是false c是true,我觉得两个都是true才对啊?为什么????困扰了好久,哪个高手来给我说说。2012年1月10日 11:28
9个答案 按时间排序 按投票排序
-
图片没贴好:
如图:
[img]http://dl.iteye.com/upload/attachment/0061/8739/963f057a-ebfe-35a1-84db-673b03c746cb.jpg
[/img]2012年1月10日 19:57
-
你也可以参照一下这个问题:
http://www.iteye.com/problems/77923
http://dl.iteye.com/upload/attachment/0061/8739/963f057a-ebfe-35a1-84db-673b03c746cb.jpg
这上面是图解。2012年1月10日 19:56
-
String a=request.getParameter("a"); boolean b=a=="0"; System.out.println(b); boolean c="0".equals(a); System.out.println(c); 结果 b是false c是true,
1.==等号是比较两个引用是否执行同一个对象。也就是比较两个引用的对象实例地址是否相同。所以b为false。
2.equals在这里是比较两个字符串的值是否相等。
所以c为true。
3.这里对b来说容易干扰的是他们的值,相同,但是 对应的实例不同。
4.楼上,fjg0427 说的情况 是 "0" 是从字符串常量中去一个字符串,不是新构造一个字符串。
2012年1月10日 19:48
-
仁兄用的是tomcat吧
其实这个问题和
String a = "0"
String b = new String("0")
a == b 的结果是false 道理是一样的,"0"是字面量,b是对象,而且String对象重写了hashCode,== 肯定为false。
request.getParameter最底层生成parameter的值:strValue = new String(buff, start, end-start, B2CConverter.getCharset(enc));
2012年1月10日 16:56
-
如果是String a = "0";
boolean b = a=="0";
b的结果应该是true.
String a=request.getParameter("a");
a的值是一个对象的引用值跟常量字符串不是同一个地址.2012年1月10日 15:32
-
String a=request.getParameter("a");
boolean b=a=="0";
上面的语句相当如
String a=request.getParameter("a");
String c="0";
boolean b=(a==c);
然后就是==与equals的区别
==比较的是a,c两个对象的引用是否是同一个对象
显然不是 所以b=false
equals比较的是字符串内容是否相等
显然是相等的 两个字符串的内容都是“0”2012年1月10日 13:31
-
boolean b=a=="0"; System.out.println(b);
b为什么就要是true????
你为什么认为b应该是true2012年1月10日 13:25
相关推荐
在事件处理函数中,使用XMLHttpRequest对象来创建一个异步请求,并将数据传递给服务器端。在服务器端,使用Java语言来处理传递过来的数据,并返回结果。 在Java中,使用Servlet技术来处理Ajax请求。Servlet是一个...
**问题二:“==”和equals方法究竟有什么区别?** 1. **“==”操作符**: - 用于比较两个基本类型的值是否相等。 - 对于引用类型,“==”比较的是两个引用是否指向同一个对象。 2. **equals方法**: - 默认情况...
JavaBean是Java编程语言中的一个组件,主要用于构建...同时,也演示了如何在Servlet和JSP中使用JavaBean进行数据传递和计算。JavaBean的使用简化了代码,提高了代码的复用性和可维护性,是Java Web开发中的重要概念。
180、JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么? 42 181、四种会话跟踪技术 42 182、Request对象的主要方法 43 183、我们在web应用开发过程中经常遇到输出某种编码的字符,如iso8859-1等,如何输出...
Java面试题目涵盖了许多核心概念,...这些只是Java面试中常见的一部分问题,实际面试可能会涉及更多领域,如异常处理、IO流、网络编程、设计模式等。理解并熟练掌握这些基础概念对于成为一名合格的Java开发者至关重要。
引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值为 null,而原始...
### Java简单图书馆管理系统知识点解析 #### 一、项目概述 本项目是一个基于Java技术的简单图书馆管理...通过JavaBean、Servlet和JSP的综合运用,展示了Java Web开发的基本流程和技术要点,适合初学者学习和实践。
`FindBugs` 是一款静态代码分析工具,用于检测 Java 代码中的潜在错误和不良实践。这份报告列举了一些常见的 `FindBugs` 报告问题,让我们...在开发过程中定期运行 `FindBugs` 分析可以帮助及时发现和修复这些问题。
设计模式是软件设计中常见问题的解决方案模板。Java开发中常用的模式包括单例模式、工厂模式、策略模式、观察者模式等。 ### Spring/SpringMVC Spring是一个开源框架,用于简化Java应用开发。它包括了依赖注入、...
- **解释**:在 Java 中,`String` 类型的对象有两种主要的比较方式:`==` 运算符和 `equals()` 方法。`==` 主要用来比较两个对象是否指向同一个内存地址;而 `equals()` 方法则用于比较两个字符串对象的内容是否...
2. **使用存储函数和过程**:攻击者可以利用数据库中的存储函数或存储过程来执行任意代码。这种方式更为隐蔽,因为它们通常是在数据库内部运行的,且具有较高的权限。 #### 案例分析 假设有一个Web应用程序,其...
//通过显示页面传递一个pagetype对象和PaginationBean对象 Page page = new Page(request.getParameter("pagetype"),(PaginationBean)request.getSession().getAttribute("page3")); //非第一次进入显示...
- 由于多个线程共享一个实例,因此需要注意线程安全问题,避免在 Servlet 中使用成员变量。 #### 5. Struts 中 request 请求流程 **基本流程:** 1. 用户提交请求到服务器。 2. 请求被转发至 ActionServlet,...
接着,它会调用对应Servlet的`service`方法,将这两个对象作为参数传递进去。 5. **处理请求**:Servlet根据请求内容进行相应的业务逻辑处理。 6. **响应客户端**:处理完成后,Servlet会通过`HttpServletResponse`...
一旦确定了目标Servlet,Servlet容器会创建`HttpServletRequest`和`HttpServletResponse`对象,并将其作为参数传递给该Servlet。在Servlet内部,可以通过对`HttpServletRequest`对象的操作来获取客户端的信息,包括...
3. 当多个客户请求Servlet时,引擎通常不会为每个客户启动一个进程,而是使用线程模型来服务多个请求,以提高效率和资源利用率。 4. 表达式16/4-2~5*8/4 Mod 5\2的计算结果为4,遵循运算符的优先级和位运算规则。 ...
Java面试题涵盖了许多核心概念,包括集合框架、Spring框架、字符串处理、对象生命周期、网络请求、数据库操作以及并发控制等。...在实际面试中,面试官可能会深入探讨这些知识点的具体应用和细节。
- **`HashSet`的使用和原理**:基于`HashMap`实现,不允许重复元素,通过`hashCode()`和`equals()`方法判断元素是否相等。 - **`TreeSet`的原理和使用**:基于红黑树实现,可以自然排序或自定义排序。 - **集合和数...