2011-11-24 8 views
5

Sé que la implementación de ordenación de python (timsort) se implementa en C para obtener un mejor rendimiento. ¿Es ese también el caso de la implementación de java, o todos los algoritmos de Java están implementados en Java?¿Los algoritmos de Java están implementados en C o en Java?

+0

Eche un vistazo al código fuente para encontrarlo (está en un archivo ZIP en su directorio JDK). (o espere un minuto para que alguien publique la respuesta) –

Respuesta

6

La mayoría de las bibliotecas estándar se implementan típicamente en Java. Dicho esto, se debe implementar una gran cantidad de funcionalidades específicas de sistema operativo o plataforma en el código "nativo", por lo que un buen porcentaje también se escribe normalmente en C y/o C++. Depende un poco de la implementación de JVM particular, por supuesto.

La funcionalidad típica implementada en otros lenguajes además de Java incluye el subprocesamiento, la E/S de red, la E/S de archivos y la API de UI de bajo nivel. Sin embargo, tenga en cuenta que todas estas son características específicas de bajo nivel: los algoritmos más abstractos/generales son ideales para la implementación en Java y, por lo tanto, lo son normalmente.

4

La mayor parte de la biblioteca de Java está implementada en Java, incluyendo el sort algorithm

+0

Pero OpenJDK no es la implementación estándar de JVM. – Viruzzo

+4

@Viruzzo ¿estás seguro de eso? :) – unbeli

+0

Estoy corregido, ahora (de Java 7). Eso es lo que obtienes por tener que trabajar con Java 1.4.2 la mayor parte del tiempo ... – Viruzzo

1

La respuesta es, depende de la implementación JVM real y el tipo de algoritmo. La mayoría de los alogrithms de API stadard públicos están en java. Una excepción es la programación de hilos.

1

Por lo que yo sé, se implementan en Java. Here puede encontrar algo de información al respecto.

1

Si echa un vistazo a las fuentes java.util.Arrays.sort(), puede ver que el algoritmo de clasificación se implementa en Java. Sin embargo, esto no necesariamente implica que todos los demás algoritmos también lo estén.

Cuestiones relacionadas