NetBeans: 10 años

20 10 2008
10 años

¡¡¡ Feliz décimo cumpleaños para NetBeans !!!





Árboles Binarios de Búsqueda en Java

22 11 2007

En estos días he tenido la necesidad de ver ciertas operaciones que se implementan el los árboles binarios de búsqueda (Binary Search Trees), y en este sitio encontré una implementación particularmente interesante, espero que les sea de utilidad.

En ciencias de la computación, un árbol binario de búsqueda es un árbol que tiene las siguientes propiedades:

  • Cada nodo tiene un valor
  • Se define un orden total sobre esos valores
  • El subárbol izquierdo de un nodo contiene valores menores o iguales que el valor de dicho nodo.
  • El subárbol derecho de un nodo contiene valores mayores o iguales que el valor de dicho nodo.

La ventaja más notable de los árboles binarios de búsqueda es que los algoritmos de ordenación y búsqueda relacionados como transversal inorden pueden ser muy eficientes.

Los árboles binarios de búsqueda son una estructura de datos fundamental usada para construir más estructuras de datos abstractas como conjuntos y arrays asociativos.
// BinarySearchTree class
//
// CONSTRUCTION: with no initializer
//
// ******************PUBLIC OPERATIONS*********************
// void insert( x ) --> Insert x
// void remove( x ) --> Remove x
// void removeMin( ) --> Remove minimum item
// Comparable find( x ) --> Return item that matches x
// Comparable findMin( ) --> Return smallest item
// Comparable findMax( ) --> Return largest item
// boolean isEmpty( ) --> Return true if empty; else false
// void makeEmpty( ) --> Remove all items
// ******************ERRORS********************************
// Exceptions are thrown by insert, remove, and removeMin if warranted

/**
* Implements an unbalanced binary search tree.
* Note that all “matching” is based on the compareTo method.
* @author Mark Allen Weiss
*/

Lee el resto de esta entrada »





Llamando código C en programas Java con la Java Native Interface (JNI)

20 10 2007

Juan Pablo Angamarca, https://jpangamarca.wordpress.com

En la programación de software con Java, a veces se da el caso de encontrarse con escenarios en los que el código Java no es suficiente. Y no es que Java no tenga el poder necesario para hacer lo que los programadores queremos hacer; hay muchas situaciones en las que se trabaja con sistemas heredados cuyo código es nativo, o también situaciones en las que se requiere realizar cálculos intensivos en los que por cuestiones de eficiencia es más recomendable trabajar con código nativo. Sun Microsystems, ya desde las primeras versiones de Java viene entregando la herramienta denominada Java Native Interface (JNI), con la que es posible hacer llamadas a código nativo desde nuestros programas Java. De acuerdo a lo que he leído sobre esta herramienta, no es una API fácil de aprender, sin embargo siempre es bueno saber que existen estas opciones en el desarrollo de sistemas. Les dejo el link a un tutorial en vídeo Flash donde se muestra un ejemplo sencillo de uso de JNI. Para desarrollar este ejemplo será necesario tener NetBeans 5.5.1 (bueno, hasta que nos venga NetBeans 6.0 en toda su gloria :)), el C/C++ Development Pack, así como MinSYS y un compilador de C/C++ que puede ser GCC o MinGW.

Un saludo a toda la comunidad de Café Lojano.

[Leer este post en Café Lojano]





En Java, el paso de parámetros es por valor.

28 06 2007

Juan Pablo Angamarca.

Existe comúnmente la creencia errónea de que en Java es posible pasar parámetros por referencia, y no es así. Java siempre pasa los parámetros por valor. Esta confusión se da debido a que todas las variables de objeto son referencias a objetos [1]. En el libro “The Java Programming Language” de Ken Arnold y James Gosling (autores de Java), sección 2.6.1., tenemos la siguiente cita: “There is exactly one parameter passing mode in Java – pass by value – and that helps keep things simple.” [2] (Existe un solo modo de paso de parámetros en Java – paso por valor – y eso ayuda a mantener las cosas simples.).

Antes de continuar, vamos a recordar cuáles son las definiciones de paso por valor y paso por referencia: [3]:

Paso por valor
significa que cuando un argumento se pasa a una función, la función recibe una copia del valor original. Por lo tanto, si la función modifica el parámetro, sólo la copia cambia y el valor original permanece intacto.

Paso por referencia
significa que cuando un argumento se pasa a una función, la función recibe la dirección de memoria del valor original, no la copia del valor. Por lo tanto, si la función modifica el parámetro, el valor original en el código que llamó a la función cambia.

Vamos a valernos de ejemplos para explicar el mecanismo con el que Java pasa parámetros a los métodos.

[leer más…]