java输入的内容与输出的结果不一样?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java输入的内容与输出的结果不一样?相关的知识,希望对你有一定的参考价值。

参考技术A 下面那个read方法调用了两次,当然会不一样。改成:int readData;while(true) if((readData=fis.read())==-1)break;System.out.println(readData); 参考技术B 下面那个read方法调用了两次,当然会不一样。改成:int readData;while(true) if((readData=fis.read())==-1)break;System.out.println(readData); 参考技术C 下面那个read方法调用了两次,当然会不一样。改成:int readData;while(true) if((readData=fis.read())==-1)break;System.out.println(readData); 参考技术D Java怎么实现输入一个string表达式然后输出计算的结果 Scanner sc = new Scanner(System.in);System.out.println( 请输入表达式 );String str = sc.next();ScriptEngineManager sem = new ScriptEngineManager();ScriptEngine daqi = sem.getEngineByName( nashorn );Object eval = daqi.eval(str);System.out.println(eval.toString()); 第5个回答  2022-06-29 Java怎么实现输入一个string表达式然后输出计算的结果 Scanner sc = new Scanner(System.in);System.out.println( 请输入表达式 );String str = sc.next();ScriptEngineManager sem = new ScriptEngineManager();ScriptEngine daqi = sem.getEngineByName( nashorn );Object eval = daqi.eval(str);System.out.println(eval.toString());

【java】-关于String的使用以及其输出结果的问题

RT... 输出的结果为什么会是这种形式? 求解

==是比较内存地址的

String的两种创建方式

    String str1=“abc”;在字符串常量池中生成abc ,如果有不生成直接引用。

    所以str1与str3地址一样

    String str2=new String("abc");在堆中生成String对象其值为“abc”

     

如果用equals比较所有结果都为true

追问

我只是想知道为什么前三句中的字符串不输出,并且第二句不是应该为true么,怎么也变在了false.

追答

+号的作用啊 以“str1==str3”+str1==str3为例
先进行左结合 "str1==str3"+str1生成新的字符串str1==str3abc之后在于str3比较。
想要你的结果需要用括号"str1==str3"+(str1==str3)

参考技术A 因为java内部有这样一种机制,通过string s=“334”,声明的string变量,是保存在一个缓存中,下次如果是相同的string内容,就不重新分配新的存储空间 参考技术B 个人觉得你有疑惑的的是第二个false值和第五个true值。是吗?
首先,你要知道String类型在Java里属于引用传递类型,即不可变的;String不属于基本数据类型中的一种。
其次,是关于String的两种实例方式。String str = "abc";只会生成一个对象,如果之前有的话;String str = new String("abc");则会生成两个对象。
最后,回答你的疑问:在开始时,str1和str3比较前为false,比较后位true,是因为引用传递和创建对象时开辟内存地址造成的。
参考技术C 前面的字符串和后面的字符串连接形成新的字符串,再与最后的字符串进行比较呗 参考技术D 字符串比较要用
boolean
equals(Object anObject)

将此字符串与指定的对象比较。

以上是关于java输入的内容与输出的结果不一样?的主要内容,如果未能解决你的问题,请参考以下文章

输入流与输出流

R语言之数据输入与输出

什么是输入输出数据类型

JAVA当中如何可以实现连续的输入和输出,如图,输入后得到结果后可以继续输入。

DES加密解密结果为何不一致?

【java】-关于String的使用以及其输出结果的问题