我是一名编写Java(适用于Android)的C#程序员,并且有一些Java的技术细节,我仍然不确定,并担心我会从C#角度接近:
equals()
还是==。基本上是object.equals与C#(值类型的反射,引用类型的地址引用)大致相同答案 0 :(得分:10)
按顺序回答:
ref
或out
Object
引用和一个原始值,就会涉及自动装箱/拆箱,而我永远不会记得这种方式可行。尽管如此,这是一个坏主意,IMO。)答案 1 :(得分:4)
是否传入方法中的参数 和C#一样吗? (复制 参考类型)
复制所有主要类型,所有对象实际上是指向对象的指针,指针被复制,但实际对象不会被复制。
为什么有@Override属性 突然出现(我认为这是Java 1.5 +?)
它没有,因为Java 1.6你也可以使用它来显示一个方法正在实现一个接口。 @Override允许你向编译器表明你认为你正在覆盖一个方法,编译器会在你没有的时候发出警告(实际上这非常有用,特别是如果超类更改的话)
如何编译 申请,如果你错过了 其中一个库的依赖关系 你在用吗?
我认为不是。
我是否需要担心使用+ = 大字符串连接(例如使用a 而不是StringBuilder
在某些情况下。 java编译器+ VM非常适合自动使用StringBuilder。然而,它并不总是这样做。我不会事先优化这个(或任何东西)。
Java是否有运算符重载: 我应该使用equals()或== by 默认。基本上是object.equals 与C#大致相同(反射为 值类型,地址参考 参考类型)
不,它没有运营商重载。
答案 2 :(得分:0)
关于字符串连接我认为这取决于您是否一起添加静态字符串或者是否连接变量。使用变量,最好使用StringBuilder。 :)
所以:
String s = "A";
s += "B";
s += "C";
很好。
但是这里使用StringBuilder更好
String s = "A";
s += variable_b;
s += variable_c;