• ¡Bienvenid@! Recuerda que para comentar en el foro de El Chapuzas Informático necesitas registrar tu cuenta, tardarás menos de 2 minutos y te dará valiosa información además de ayudarte en lo que necesites o pasar un rato agradable con nosotros.

AYUDA Alguien que entieda programación JAVA si me pudiera ayudar con unas preguntas

antondca

Chapuzas Junior
Registrado
24 Abr 2015
Mensajes
800
Puntos
43
Tengo algunas dudas con unas preguntas teoricas de JAVA.

Son las sigueintes preguntas: (Seleccionar la correcta en cada caso)

1) El siguiente código Java: public class Uno{} (RESPUESTA CORRECTA AL 100% B)
a. Declara un objeto con ámbito público
b. Debería estar contenido en un archivo llamado Uno.java
c. Debería ser la única clase del archivo dónde se encuentre.

2) En la expresión (x>7 && x<15), se producirá un cortocircuito, si (RESPUESTA CORRECTA AL 100% C)
a. x=7
b. x=15
c. x=9

3) La palabra clave static sirve (RESPUESTA CORRECTA AL 100% C)
a. Para que los campos así declarados no puedan modificarse.
b. Para que no se puedan crear instancias de clase.
c. Para utilizar los métodos así declarados sin necesidad de crear una instancia.

4) Dado el siguiente código. Determina qué línea de código impide la correcta ejecución.
Eliminada esta línea cual sería el resultado obtenido.

Duda_Java.jpg

Error en la linea nº7, si la eliminamos el resultado es uno Correcto al 100%

5) Si con un navegador con la maquina virtual Java activada visita una página web A que contenga un applet, se abre otra página web B sin cerrar la página A y, posteriormente, se vuelve a tener frente la página A con el applet, la secuencia de ejecuciones en el applet sería: (Esta no tengo ni idea)
a. init(), start(), destroy(), start().
b. init(), start(), stop(), init().
c. init(), start(), stop(), start().
d. Ninguna de las anteriores.

Estas unas de las preguntas que tengo dudas. Tambien hay otras dos que son más orientadas a bases de datos pero en JAVA.

6) Dado el siguiente fragmento de código obtenido de un programa perfectamente creado, por tanto, se enteide que existe definicion de todas las clases y elementos necesarios para su ejecución, se pide, sabiendo que consultase define como
ResultSet consulta = null;
¿Cuál es el resultado de este codigo? (En esta creo que es la B)
consulta = statment.executeQuery(“SELECT pasword FROM identificadores”+
” WHERE identificador=””+identencryp+””);


a. Imprime en una ventana nueva el texto Select password form indentificadores.
b. Ejecuta la orden SQL sobre una tabla denominada identificadores.
c. Ejecuta una encriptación de tipo MD5 sobre password
d. Ninguna de las anteriores.

7) ¿Cómo se comprueba en un programa JAVA que la conexión JDBC con una base de datos es correcta?
a. Si la expresión Connection c = DriverManager.getJDBC(dbUrl, user, password) devuelve una excepción entonces la conexión no es correcta.
b. Si la sentencia Connection c = DriverManager.getConnection(dbUrl, user, Password) devuelve una excepción entonces la conexión es correcta.
c. Si la sentencia Connection c = DriverManager.getConnection(dbUrl, user, password) devuelve una excepción entonces la conexión no es correcta.
d. Ninguna de las anteriores


En estas preguntas tengo un par de dudas...
Si alguien me puede ayudar, se lo agradecería muchisimo.

Un saludo.
 
Última edición:
1-No estpy seguro, diria A, pero deberia ser un ninguno de los anteriores, ya que no declara un objeto, sino una clase...

2-c

3-c
4-La que esta marcada en rojo. No se ejecutara nunca esa linea. Si la eliminad, sale uno

5-Ni idea de applets

6-b o d, la b realmente no es una devolucion de datos

7- no me acuerdo...

Las explicaciones, mañana desde el ordenador, que con movil es un asco


Enviado desde mi X5pro mediante Tapatalk
 
1-No estpy seguro, diria A, pero deberia ser un ninguno de los anteriores, ya que no declara un objeto, sino una clase...

2-c

3-c
4-La que esta marcada en rojo. No se ejecutara nunca esa linea. Si la eliminad, sale uno

5-Ni idea de applets

6-b o d, la b realmente no es una devolucion de datos

7- no me acuerdo...

Las explicaciones, mañana desde el ordenador, que con movil es un asco


Enviado desde mi X5pro mediante Tapatalk


Muchisimas gracias, por tu rapidez en contestar. :) Ya me quedo algo más claro

Thanks you!
 
Enviado desde mi X5pro mediante Tapatalk

Tambien tengo otras una de ellas la solucción lo que no se como java lo interpreta estos parametros.

7. Dada la siguiente expresión: x=(y>x)?x++:++y; ¿qué valores tomarán las variables si inicialmente estaban a 0. (RESPUESTA CORRECTA AL 100% B)
a. x=1 e y=0
b. x=1 e y=1
c. x=2 e y=1

Pongo la solucción y la expresion en grande y subrayo lo que no entiedo ni se como lo interpreta java. Que es la "?" y los dos puntos ":"

Las demás no se si las tengo bien.

8. En Java la sobrecarga de métodos consiste en (RESPUESTA CORRECTA AL 100% B)
a. tener dos o más métodos con el mismo nombre, pero distinto valor de retorno
b. tener dos o más métodos con el mismo nombre, pero distinta lista de parámetros.
c. tener dos o más métodos con el mismo nombre, pero distinta lista de parámetros y distinto valor de retorno.

9. Para poder ejecutar un programa en Java. (Aqui es la c) (RESPUESTA CORRECTA AL 100% B)
a. Se ha de tener instalado correctamente el Netbeans.
b. Se ha de tener al menos la VMJ (máquina virtual de Java) instalada y correctamente configurada.
c. Se ha de tener instalado el programa javac.exe.

10. ¿Cuál es el resultado de la ejecución del siguiente código? (RESPUESTA CORRECTA AL 100% B)
class Valor {
int i;
}
public class Comparacion {
public static void main (String[] args) {
Valor v1 = new Valor();
Valor v2 = new Valor();
v1.i=v2.i=100;
System.out.println(v1.equals(v2));
}
}


a. true
b. false
c. No puede funcionar, los objetos están mal creados.
d. Ninguna de las anteriores.

y la última sería esta:
11. Al ejecutar la sentencia s = s + “Hola”, siendo s un objeto de clase String (RESPUESTA CORRECTA AL 100% B)
a. Se actualiza el objeto s concatenando su valor inicial con la palabra “Hola”
b. Se crea un objeto nuevo a partir de la unión de s y la palabra “Hola”
c. Se produce un error, ya que + sólo se usa para sumar valores numéricos.
d. Se crea un nuevo objeto de la clase StringBuilder.


Muchisimas gracias por tu ayuda. ;)
 
Última edición:
Ojo con la primera pregunta.
La respuesta correcta es la b.

b. Debería estar contenido en un archivo llamado Uno.java

La a no es correcta porque no es un objeto si no una clase.
La c no es correcta porque puede haber varias clases en un mismo archivos, solo UNA PUBLICA por archivo.
Y en relación con lo anterior, el nombre del .java debe coincidir con el nombre de la clase pública del archivo, en este caso Uno.java, por lo que en mi opinión esa es la correcta.

Estoy un poco oxidadete con java, pero estoy casi seguro.

Edit
Sobre la 7 no lo se, y me hace sentir tonto la verdad, diría que es la c, pero no recuerdo si en fallo de conexión daba excepción o simplemente te devolvía un nulo.
Puedes probarlo de todas maneras y lo compruebas.


Edit 2
La expresion ? : es un operador ternario o condicional o como quieras llamarlo.

(y>x)?x++:++y

Eso equivale a

if(y>x){
x++;
}else{
y++;
}

La 8 es la b:
Varían los parámetros, pero puedes tener el mismo retorno perfectamente. Por ejemplo un constructor sobrecargado.

La 9 es la b:
El javac.exe es un compilador de java, pero si tu tienes un jar ya compilado, lo que viene a ser un programa java, lo que necesitas es la máquina virtual java para ejecutarlo.

La 10 tiene un poco mas de chicha:
Si obviamos que el nombre de la clase está con minúscula ( valor y Valor ) es programa en funcional.
Sin embargo creo recordar que el equals hace un comparación básica del tipo a==b a no ser que lo redefinas.
Lo que quiere decir que a y b tendrían que ser el mismo objeto, no objetos diferentes con propiedades iguales.
Por lo tanto el output sería false.

La 11 si es la b.
En java las string no son dinámicas o modificables o como quieras decirlo, por lo que se instancia una string nueva al hacer esa operación.
 
Última edición:
Ojo con la primera pregunta.
La respuesta correcta es la b.

b. Debería estar contenido en un archivo llamado Uno.java

La a no es correcta porque no es un objeto si no una clase.
La c no es correcta porque puede haber varias clases en un mismo archivos, solo UNA PUBLICA por archivo.
Y en relación con lo anterior, el nombre del .java debe coincidir con el nombre de la clase pública del archivo, en este caso Uno.java, por lo que en mi opinión esa es la correcta.

Estoy un poco oxidadete con java, pero estoy casi seguro.

Edit
Sobre la 7 no lo se, y me hace sentir tonto la verdad, diría que es la c, pero no recuerdo si en fallo de conexión daba excepción o simplemente te devolvía un nulo.
Puedes probarlo de todas maneras y lo compruebas.


Edit 2
La expresion ? : es un operador ternario o condicional o como quieras llamarlo.

(y>x)?x++:++y

Eso equivale a

if(y>x){
x++;
}else{
y++;
}

La 8 es la b:
Varían los parámetros, pero puedes tener el mismo retorno perfectamente. Por ejemplo un constructor sobrecargado.

La 9 es la b:
El javac.exe es un compilador de java, pero si tu tienes un jar ya compilado, lo que viene a ser un programa java, lo que necesitas es la máquina virtual java para ejecutarlo.

La 10 tiene un poco mas de chicha:
Si obviamos que el nombre de la clase está con minúscula ( valor y Valor ) es programa en funcional.
Sin embargo creo recordar que el equals hace un comparación básica del tipo a==b a no ser que lo redefinas.
Lo que quiere decir que a y b tendrían que ser el mismo objeto, no objetos diferentes con propiedades iguales.
Por lo tanto el output sería false.

La 11 si es la b.
En java las string no son dinámicas o modificables o como quieras decirlo, por lo que se instancia una string nueva al hacer esa operación.

Edito, muchas gracias por la pregunta 10, el valor estaba con la v en minuscula por eso no me funcionaba, y si da false como resultado muchisimas gracias ;) Era solo una minuscula ahahah en fin...
Vale muchas gracias :)

respecto a la pregunta número 9, creo que tengo entendido que si no tienes el compilador no puedes ejecutar programas java, ya que necesita compilarse para obtener el archivo .class

Y muchas gracias por la duda de la pregunta 7 :)

Voy a actualizar las respuestas. lol las últimas 5 preguntas son todas las respuestas B :/ ahahaha
 
Última edición:
Juas perdón no había visto la edición.
Con eso de que java es un lenguaje interpretado la verdad es que todo el tema puede resultar un poco confuso.
Imagino que te habran dicho algo asi como que hay diferencia entre lenguajes compilados e interpretados, pero lo cierto es que realmente java no se compila desde 0 en cada ejecución.
Puedes pensar en el archivo .class como una especie de "precompilado", del que si partes ya puedes ejecutar el programa.

Voy a intentar explicarlo mejor.
Cuando tu escribes guardas los archivos en un .java
Al "compilar" creas los archivos .class a partir de esos .java
Por último la máquina virtual "interpreta" estos .class por decirlo de alguna forma.

Pero lo cierto es que si alguien a ti te pasa los .class puedes ejecutarlos sin problemas con la máquina virtual sin tener que volverlos a compilar ni nada. Muchas librerias o apis de terceros en java funcionana así.
Tu te puedes descargar un archivo .class de un tercero, el te da una api de como usarlo y tu puedes incorporarlo a tu programa sin ni siquiera tener acceso al codigo fuente de ese .class.
El .class esta escrito en bytecode, un "lenguaje" de mas bajo nivel que puede ser interpretado en por la máquina virtual de java, sin llegar a ser código máquina.

Y como ultimo paso, a un usuario no programador puedes pasarle un archivo .jar comprimido, y este puede ejecutarlo con la máquina virtual instalada, sin necesidad de compilar nada, como si fuera un .exe.
Es decir puedes ejecutar un programa en java previamente compilado (cuidado con esto, no es compilado a código máquina) solo con tener la jvm.

Es posible que me haya explicado como el culo y no hayas entendido la mitad pero en resumen es eso xd, lo que necesitas obligatoriamente para ejecutar un programa en java es la jvm, el programador es el que se tiene que encargar de darte el programa ya compilado.
 
Juas perdón no había visto la edición.
Con eso de que java es un lenguaje interpretado la verdad es que todo el tema puede resultar un poco confuso.
Imagino que te habran dicho algo asi como que hay diferencia entre lenguajes compilados e interpretados, pero lo cierto es que realmente java no se compila desde 0 en cada ejecución.
Puedes pensar en el archivo .class como una especie de "precompilado", del que si partes ya puedes ejecutar el programa.

Voy a intentar explicarlo mejor.
Cuando tu escribes guardas los archivos en un .java
Al "compilar" creas los archivos .class a partir de esos .java
Por último la máquina virtual "interpreta" estos .class por decirlo de alguna forma.

Pero lo cierto es que si alguien a ti te pasa los .class puedes ejecutarlos sin problemas con la máquina virtual sin tener que volverlos a compilar ni nada. Muchas librerias o apis de terceros en java funcionana así.
Tu te puedes descargar un archivo .class de un tercero, el te da una api de como usarlo y tu puedes incorporarlo a tu programa sin ni siquiera tener acceso al codigo fuente de ese .class.
El .class esta escrito en bytecode, un "lenguaje" de mas bajo nivel que puede ser interpretado en por la máquina virtual de java, sin llegar a ser código máquina.

Y como ultimo paso, a un usuario no programador puedes pasarle un archivo .jar comprimido, y este puede ejecutarlo con la máquina virtual instalada, sin necesidad de compilar nada, como si fuera un .exe.
Es decir puedes ejecutar un programa en java previamente compilado (cuidado con esto, no es compilado a código máquina) solo con tener la jvm.

Es posible que me haya explicado como el culo y no hayas entendido la mitad pero en resumen es eso xd, lo que necesitas obligatoriamente para ejecutar un programa en java es la jvm, el programador es el que se tiene que encargar de darte el programa ya compilado.

Vale, ahora si lo que entendido, muchisimas gracias por la explicación ;)

SAlu2
 
De nada, si tienes cualquier otra duda no dudes en preguntar, te ayudaré en lo que pueda.
Ánimo con el aprendizaje.
 
De nada, si tienes cualquier otra duda no dudes en preguntar, te ayudaré en lo que pueda.
Ánimo con el aprendizaje.

12. Dada la siguiente declaración String s = new String (“Esto es una cadena”); (Creo que la B)
a. s es un objeto de tipo String.
b. s es una referencia a un objeto de tipo String.
c. s es una variable de tipo String.

13. En Java, ¿cuál es valor por defecto que toma un campo de tipo double? (Creo que la C)
a. 0
b. 0.0
c. 0.0d

14. Para qué se usa en Java la instrucción continue (Creo que la C)
a. Para salir de un bucle
b. Para ejecutar la siguiente instrucción
c. Para volver a evaluar la condición de un bucle.

2. En la expresión (x>7 && x<15), se producirá un cortocircuito, si… (Creo que la a)
a. x = 7
b. x = 15
c. x = 9

En la 2. no seria la A¿?

¿Estas las tengo bien? Muchas gracias Sampi
 
Última edición:
Están bien.

en la 2 si es la a.
(x>7 && x<15)
Se evalúa la primera condición x>7.
Al ser x = 7 la primera condición es un false.
Al ser el operador un AND (&&) la segunda parte de la condición (x<15) nunca llega a evaluarse.
 
Están bien.

en la 2 si es la a.
(x>7 && x<15)
Se evalúa la primera condición x>7.
Al ser x = 7 la primera condición es un false.
Al ser el operador un AND (&&) la segunda parte de la condición (x<15) nunca llega a evaluarse.

Perfecto, :) son las que he puesto en el examen :D aajajajaj muchas gracias ;)
 
Están bien.

en la 2 si es la a.
(x>7 && x<15)
Se evalúa la primera condición x>7.
Al ser x = 7 la primera condición es un false.
Al ser el operador un AND (&&) la segunda parte de la condición (x<15) nunca llega a evaluarse.

La 14. Es la C verdad? La instrucción continue lo que hace en un bucle es saltarse lo que esta debajo del continue y vuelve otra vez al principio del bucle.

Thanks :=)
 
Así es, continue salta la iteración actual y continua con la siguiente.
 
Arriba