java boolean

来源:百度知道 编辑:UC知道 时间:2024/05/14 06:50:14
下面这段代码不知道为什么都不先进行判断而直接执行最后一个语句!
谁能给我解释一下为什么?
先谢过了!
import java.io.*;
public class Boolean_01
{
public static void main(String args[])
{
try
{
BufferedReader inObj=new BufferedReader
(new InputStreamReader(System.in));
boolean bVar;
System.out.println("请你输入\"y\"或\"n\":");
String str=inObj.readLine();
inObj.close();
bVar=(str=="y");
if (bVar)

System.out.println("你输入的是:y");
else
System.out.println("你输入的不是:y");

}
catch(Exception e)
{
System.out.println(e.getLocalizedMessage());
}

}
}

Java程序中的每个变量要么是基本数据类型(boolean, char, byte, short, int, long, float, double),要么是对对象的引用

C++有许多种基本类型,额外还有struct, union, enum, 数组和指针,C++指针可以指向对象,也可以不指向对象

Java没有枚举、联合类型,因为Java认为没有必要。将可有可无的语言元素去掉是Java对C/C++做出的一大改变,因此,普遍认为Java较C++更轻便,更精简

Java采用Unicode字符集,C++通常用ASCII字符集。但ASCII是Unicode的子集,对于习惯于ASCII的程序员感觉不到区别

Java中的boolean类型不能转换成其他类型,反之亦然。C++最近引进了bool类型,代表布尔类型,整型也作为逻辑判断

模板是一种“泛型编程思想”,它有别于“面向对象编程思想”。C++在很大程度上已经支持了这种新型编程方法,特别是STL的出现
Java目前仍未支持泛型编程,不过据说Sun公司有在Java中引入模板的计划

C++支持“运算符的重载”,这是它的一个很重要的多态特征,是数据抽象和泛型编程的利器。它允许直接对对象进行四则运算,正像基本数据类型那样
Java不支持这种多态机制,也是为降低复杂性

两种语言都支持方法重载(overloading)

在C++中,为了允许运行时动态决定哪个函数被调用,一个函数必须用virtual修饰。virtual关键字被自动继承,用以支持多态

凡是没有用virtual修饰的成员函数(包括static)都是静态绑定的,即在编译时决定调用哪个版本

而在Java中,除了static、final、private是静态绑定以外,所有方法一律按动态绑定处理
C++中有“拷贝构造函数”的概念,在三种情况下,自动调用它
用一个对象初始化另一对象
对象作实参进行函数调用
对象作函数的返回值

通常,当一个对象需要做“深拷贝”(钱能:《C++程序设计教程》