Buscar
Social
Ofertas laborales ES
« Hoy termina el soporte de Microsoft para Windows XP SP3 | Main | Curso gratuito online sobre Java Embedded Applications en Raspberry Pi »
martes
abr082014

115 preguntas de entrevista de trabajo (con sus respuestas) sobre Java

Sotirios-Efstathios Maneas, un estudiante de doctorado griego, ha hecho esta recopilación de 115 preguntas típicas de entrevista de trabajo sobre Java, junto con sus respuestas. Si vais a ir a una entrevista de trabajo pronto, puede que os sea útil. También puede seros útil si vais a entrevistar a alguien para contratarlo. Y si no estáis en ninguno de los dos casos, ¡Puedeque leyendo las preguntas aprendáis algo nuevo!.

PrintView Printer Friendly Version

EmailEmail Article to Friend

Reader Comments (11)

Buenas,

A mi estas entrevistas en las que te hacen un cuestionario siempre me han parecido una farsa en la que poco o nada se evalua el verdadero nivel del candidato. Se pueden preparar y falsear como si de sacar un carnet de conducir se tratase.

Por otro lado, estos articulos de "The 10 top..", "25 things...", etc normalmente solo sirven para procastinar y poco aportan.
Aprovecho para recomiendar una web en la que aparte de prepararte bien para este tipo de tests, explican correctamente cada uno de los temas. Para mi es una de las visitas diarias siempre que tengo tiempo: http://javarevisited.blogspot.fr/

Un saludo

abril 8, 2014 | Unregistered CommenterUnoPorAhi

Cuidado con las respuestas, porque ya he visto un error de bulto.
Se asegura que el método repaint() es thread-safe, cuando no lo es, al menos en la versión 8 de JavaSE. No hay ninguna sincronización.
No solo eso, sino que si se llama desde un componente de Swing, debe hacerse dentro del EDT

public void repaint(long tm, int x, int y, int width, int height) {
if (this.peer instanceof LightweightPeer) {
// Needs to be translated to parent coordinates since
// a parent native container provides the actual repaint
// services. Additionally, the request is restricted to
// the bounds of the component.
if (parent != null) {
if (x < 0) {
width += x;
x = 0;
}
if (y < 0) {
height += y;
y = 0;
}

int pwidth = (width > this.width) ? this.width : width;
int pheight = (height > this.height) ? this.height : height;

if (pwidth <= 0 || pheight <= 0) {
return;
}

int px = this.x + x;
int py = this.y + y;
parent.repaint(tm, px, py, pwidth, pheight);
}
} else {
if (isVisible() && (this.peer != null) &&
(width > 0) && (height > 0)) {
PaintEvent e = new PaintEvent(this, PaintEvent.UPDATE,
new Rectangle(x, y, width, height));
Toolkit.getEventQueue().postEvent(e);
}
}
}

abril 8, 2014 | Registered Commenterchoces

StackOverflow al rescate:

http://stackoverflow.com/questions/20905985/is-the-swing-repaint-method-still-safe-to-use-outside-the-edt-in-java-7

abril 8, 2014 | Unregistered CommenterUnoPorAhi

No veo ese rescate por ningún lado. Aparte de que el código fuente del OpenJDK es, sin duda, más "decisivo" que cualquier comentario.

Ese método no está sincronizado, y usa propiedades de la clase, que además son protected: x, y, width, height.

Es perfectamente posible que en versiones anteriores sí lo estuviese, pero en la 8 actual, es evidente que no lo está.

abril 9, 2014 | Registered Commenterchoces

Acabo de comprobar las fuentes del JDK 7u40, y son idénticas a la actual en el JDK 8

abril 9, 2014 | Registered Commenterchoces

O_o Acabo de mirarlo y no son en absoluto iguales:

La implementacion del metodo que comentas en java 7u40 es:


public void repaint(long tm, int x, int y, int width, int height) {
RepaintManager.currentManager(this).addDirtyRegion(this, x, y, width, height);
}

Y en java 8 es efectivamente como has puesto. Un gran cambio...

abril 9, 2014 | Unregistered CommenterUnoPorAhi

Ah, yo miraba en la implementacion para swing JComponent y no en la implementacion AWT (Component). En cualquier caso mirar la implementacion del repaint de AWT entiendo que no viene al caso ya que AWT es thread safe no?

Un saludo

abril 9, 2014 | Unregistered CommenterUnoPorAhi

AWT tampoco es thread-safe. De hecho, el Event Dispatch Thread es una tarea de AWT.

http://docs.oracle.com/javase/8/docs/api/java/awt/EventQueue.html

De todos modos, cuando se invoca repaint() desde Swing, sin parámetros (que es lo más usual), siempre se ejecuta el repaint de Component de más arriba.

abril 10, 2014 | Registered Commenterchoces

No entiendo muy bien porque dices que AWT no es thread safe. No se que tiene que ver el link a la cola de eventos que pones. Puedes explicarlo un poco? Los componentes graficos de AWT hacen uso del sistema de ventanas del SO, y heredan sus caracteristicas y propiedades.

Por otro lado el repaint sin parametros de AWT tiene esta implementacion:

public void repaint() {
repaint(0, 0, 0, width, height);
}

O sea, que al final si se le llama desde swing se ejecuta la implementacion repaint de swing (JComponent) y no la de AWT.

abril 10, 2014 | Unregistered CommenterUnoPorAhi

Esta discusión sobre repaint() se ha llevado al foro de JavaSE

abril 10, 2014 | Registered Commenterchoces

PostPost a New Comment

Enter your information below to add a new comment.

My response is on my own website »
Author Email (optional):
Author URL (optional):
Post:
 
Some HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>