不是一个详尽的列表,我是PHP开发人员,他曾经做过Java的游览,而Caveat Emptor则是这样。
Java中的每个变量都需要加上数据类型。这包括诸如boolean,int,double和char之类的基本类型,以及Object数据类型,如ArrayList,String和您自己的对象
int foo = 36;
char bar = 'b';
double baz = 3.14;
String speech = "We hold these truths ...";
MyWidget widget = new MyWidget(foo,bar,baz,speech);
每个变量只能保存其类型的值。使用上述声明,以下内容无效
foo = baz
对象上的等同(不是基本类型)检查对象标识。所以以下不直观地打印出错误。字符串有一个平等的方法来处理这个。
//see comments for more information on what happens
//if you use this syntax to declare your strings
//String v1 = "foo";
//String v2 = "foo";
String v1 = new String("foo");
String v2 = new String("foo");
if(v1 == v2){
pritnln("True");
}
else{
println("False");
}
数组是您的经典C数组。只能保存一个特定类型的变量,需要创建一个固定的长度
为了解决这个问题,有一系列的对象集合,其中一个被称为ArrayList,它将更像PHP数组(尽管保持一种类型的业务仍然是真的)。你不会得到数组像语法,所有的操作是通过方法完成的
//creates an array list of strings
ArrayList myArr = new ArrayList();
myArr.add("My First Item");
ArrayLists仍然有数字键。还有另外一个名为HashMap的集合,它会给你一个字典(或者关联数组,如果你在90年代去上学)像对象。
ArrayLists和其他集合使用泛型(< String>)进行实现。我不是一个Java程序员,所以我所了解的泛型是他们描述一个对象将要操作的类型。那里还有更多的事情。
Java没有指针。然而,所有的对象实际上都是引用,与PHP 5类似,与PHP 4不相似。我不认为Java具有(折旧)PHP&引用和语法。
所有方法参数都通过Java中的值传递。但是,由于所有对象实际上都是引用,所以在传递对象时传递引用的值。这意味着如果您操纵传入方法的对象,操作将会坚持。但是,如果您尝试这样的事情,您将无法获得期望的结果
public void swapThatWontWork(String v1, String v2)
{
String temp = var1;
var1 = var2;
var2 = temp;
}
这是一个很好的时间,任何提到方法需要有他们的返回类型指定,如果一个方法返回不应该的东西会发生坏事情。以下方法返回一个int
public int fooBarBax(int v1){
}
如果一个方法会抛出一个异常,你必须这样声明,否则编译器就不会有什么关系。
public int fooBarBax(int v1) throws SomeException,AnotherException{
...
}
如果您使用的方法中没有写入可能引发异常的对象,这可能会变得棘手。
Java中的主要代码入口点将是一个类的方法,而不是PHP的主要全局入口点
Java中的变量名不能以sigil($)开头,虽然我想他们可以如果你想要它们
Java中的类名称区分大小写。
字符串在Java中不可变,因此级联可能是一项昂贵的操作。
Java类库提供了一种实现线程的机制。 PHP没有这样的机制。
PHP方法(和函数)允许您具有可选参数。在java中,您需要为每个可能的参数列表定义一个单独的方法
public function inPHP($var1, $var2='foo'){}
public void function inJava($var1){
$var2 = "foo";
inJava($var1,$var2);
}
public void function inJava($var1,$var2){
}
当一个对象调用自己的方法方法时,PHP需要一个显式的$ this。 Java(如上例所示)没有。
Java程序往往是从“程序运行,保持运行,进程请求”的方式构建的,其中PHP应用程序是从“运行,处理请求,停止运行”的方式构建的。