No es una lista exhaustiva, y soy un desarrollador de PHP que hizo un recorrido por Java hace un tiempo así que Caveat Emptor.
Todas las variables en Java deben ir precedidas de un tipo de datos. Esto incluye tipos primitivos como boolean, int, doble y carbón, así como objetos de tipos de datos, tales como ArrayList, cuerdas, y sus propios objetos
int foo = 36;
char bar = 'b';
double baz = 3.14;
String speech = "We hold these truths ...";
MyWidget widget = new MyWidget(foo,bar,baz,speech);
Cada variable sólo puede contener un valor de su tipo. Uso de las declaraciones anteriores, la siguiente no es válida
foo = baz
igualdad en los objetos (no en los tipos primitivos) comprueba la identidad del objeto. Entonces, lo siguiente, de manera no intuitiva, imprime falso. Las cadenas tienen un método de igualdad para manejar esto.
//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");
}
Las matrices son sus agrupaciones clásicas C. sólo puede contener las variables de un tipo particular, se deben crear con una longitud fija
Para evitar esto, hay una serie de objetos de colección, uno de ellos se llama ArrayList que actuará más como matrices de PHP (aunque el negocio de hold one type sigue siendo cierto).No obtiene la matriz como la sintaxis, toda la manipulación se realiza a través de métodos
//creates an array list of strings
ArrayList<String> myArr = new ArrayList<String>();
myArr.add("My First Item");
ArrayLists todavía tienen teclas numéricas. Hay otra colección llamada HashMap que le dará un diccionario (o matriz asociativa, si fue a la escuela en los 90) como objeto.
ArrayLists y otras colecciones se implementan con algo llamado genéricos (el <Cuerda>). No soy un programador de Java, por lo que todo lo que entiendo sobre genéricos es que describen el tipo de cosas en las que operará un objeto. Hay mucho más pasando allí.
Java no tiene punteros. Sin embargo, todos los objetos son en realidad referencias, similares a PHP 5, disímiles a PHP 4. No hago creo que Java tiene la sintaxis de referencia & de &.
Todos los parámetros del método se pasan por valor en Java. Sin embargo, dado que todos los objetos son en realidad referencias, está pasando el valor de la referencia cuando pasa un objeto. Esto significa que si manipulas un objeto pasado a un método, las manipulaciones se mantendrán. Sin embargo, si intenta algo como esto, no obtendrá el resultado que espera
public void swapThatWontWork(String v1, String v2)
{
String temp = var1;
var1 = var2;
var2 = temp;
}
¡Es un momento tan bueno como cualquier otro para mencionar que los métodos necesitan tener su tipo de retorno especificado, y las cosas malas sucederá si un método devuelve algo que no debería. El siguiente método devuelve un int
public int fooBarBax(int v1){
}
Si un método se va a lanzar una excepción, usted tiene que declarar como tal, o el compilador no tendrá nada que ver con ello.
public int fooBarBax(int v1) throws SomeException,AnotherException{
...
}
Esto puede ser complicado si utiliza objetos que no ha escrito en su método que podrían arrojar una excepción.
Usted principal punto de entrada de código en Java va a ser un método de una clase, en contraposición a los PHP principal punto de entrada global
Los nombres de variables en Java no comienzan con un sigilo ($) , aunque creo que pueden hacerlo si lo desea
Los nombres de las clases en Java distinguen entre mayúsculas y minúsculas.
Las cadenas no son mutables en Java, por lo que la concatenación puede ser una operación costosa.
La biblioteca Java Class proporciona un mecanismo para implementar subprocesos. PHP no tiene tal mecanismo.
Los métodos PHP (y funciones) le permiten tener parámetros opcionales. En Java, es necesario definir un método separado para cada posible lista de parámetros
public function inPHP($var1, $var2='foo'){}
public void function inJava($var1){
$var2 = "foo";
inJava($var1,$var2);
}
public void function inJava($var1,$var2){
}
PHP requiere un $ explícita esta usarse cuando un objeto llama a sus propios métodos de métodos. Java (como se ve en el ejemplo anterior) no.
programas
Java tienden a ser construido a partir de un "programa se ejecuta, se mantiene en funcionamiento, procesa las solicitudes de" tipo de camino, en tanto que las aplicaciones PHP se construyen a partir de una "corrida, gestionar la solicitud, deja de correr" tipo de camino .
¿Cómo empiezas a responder esta pregunta? Es como preguntar: "¿Cuáles son las diferencias entre español y portugués?" –