精通PHP但学习Java的人应该知道的PHP与Java之间的主要区别是什么?
编辑: 我的意思是这些语言的语法上的差异,即它们的数据类型,它们如何处理数组和引用变量等等:)
这不是一个详尽的清单,我是PHP开发人员,前一段时间做过Java之旅,所以做了Caveat Emptor。
Java中的每个变量都必须以数据类型开头。这包括基本类型,例如boolean,int,double和char,以及对象数据类型,例如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
对象(不是原始类型)上的相等性检查对象的身份。因此,以下内容直观地显示为false。字符串具有相等的方法来处理此问题。
//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){
println("True");
}
else{
println("False");
}
数组是经典的C数组。只能保存一种特定类型的变量,需要以固定长度创建
为了解决这个问题,有一系列的对象集合,其中一个名为ArrayList,其作用类似于PHP数组(尽管保持一种类型的业务仍然成立)。您不会像语法那样得到数组,所有操作都是通过方法完成的
//creates an array list of strings
ArrayList<String> myArr = new ArrayList<String>();
myArr.add("My First Item");
ArrayList仍然具有数字键。还有一个称为HashMap的集合,它将为您提供类似于对象的字典(如果您是90年代上学的话,则为关联数组)。
ArrayList和其他集合通过称为泛型(
Java没有指针。但是,所有对象实际上都是引用,类似于PHP 5,与PHP 4不同。我不 认为
Java具有(已贬值的)PHP&reference&syntax。
所有方法参数均通过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中的变量名不是以符号($)开头的,尽管我认为如果您希望它们可以
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应用程序是通过“运行,处理请求,停止运行”的方式构建的。
问题内容: 简单的问题: php中的’和’有什么区别?什么时候应该使用两者之一? 问题答案: 基本上,单引号字符串是纯文本,几乎没有特殊情况,而双引号字符串具有变量插值(例如)以及转义序列,例如“ \n”(换行符)。 您可以在PHP的手册中了解有关字符串的更多信息。
问题内容: 我知道PHP的基本用法要求,需要一次,包含一次和包含一次。但是我对何时使用它们感到困惑。 示例:我有3个文件,例如:settings.php,database.php和index.php。 在database.php文件中,我写道: 然后在index.php中,我写道: 所以我两次加载settings.php,可以吗?有使用这些功能的提示吗? 问题答案: 包含一个文件,如果找不到该文件
问题内容: 在线查看职位空缺时,我注意到某些职位需要“核心Java”知识。什么是核心Java,它与Java有何不同? 问题答案: “核心Java”是Sun的术语,用于指 Java SE,标准版 和一组相关技术,例如Java VM,CORBA等。这主要是为了区别于Java ME或Java EE。 还要注意,他们在谈论的是一组库,而不是编程语言。也就是说,无论使用什么库,编写Java的基本方式都不会改
问题内容: JavaScript和Java有什么区别? 问题答案: Java和Javascript相似,例如Car和Carpet相似。
本文向大家介绍PHP中die()和exit()有什么区别?,包括了PHP中die()和exit()有什么区别?的使用技巧和注意事项,需要的朋友参考一下 die和exit之间没有区别,它们是相同的。 退出状态的PHP手册- 模具状态的PHP手册- 但是,差异很小,即解析器返回令牌所花费的时间。
问题内容: 我只是想知道为什么我们通常在两个布尔之间使用逻辑OR 而不是按位OR ,尽管它们都运行良好。 我的意思是,请看以下内容: 我们可以代替使用吗?与和相同。 问题答案: 如果您使用和形式,而不是这些运算符的和形式,则Java不会费心地单独评估右手操作数。 这是您是否希望缩短评估时间的问题-在 大多数情况 下都是如此。 说明短路好处的一个好方法是考虑以下示例。 正如Jeremy和Peter提