gpt4 book ai didi

java - PHP和Java有什么区别?

转载 作者:IT老高 更新时间:2023-10-28 20:30:59 25 4
gpt4 key购买 nike

精通PHP但学习Java的人应该知道的PHP和Java之间的主要区别是什么?

编辑:我的意思是语言的语法差异,即它们的数据类型,它们如何处理数组和引用变量等等:)

最佳答案

不是一个详尽的列表,我是一名 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){
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");

ArrayLists 仍然有数字键。还有另一个名为 HashMap 的集合,它会为您提供一个字典(或关联数组,如果您在 90 年代上学的话)之类的对象。


ArrayLists 和其他集合是使用泛型( )实现的。我不是 Java 程序员,所以我对泛型的了解只是它们描述了对象将操作的事物的类型。那里还有很多事情要做。


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 应用程序是通过“运行、处理请求、停止运行”的方式构建的。

关于java - PHP和Java有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/411254/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com