CodeGym /Blog Java /Random-ES /Antiguo nivel 09
John Squirrels
Nivel 41
San Francisco

Antiguo nivel 09

Publicado en el grupo Random-ES

Conocimiento vs Habilidades

Antiguo nivel 09 - 1La universidad nos enseñó que no hay gran diferencia entre la teoría y la práctica. Pues seguro que entiendes que no es lo mismo. Pero no ves la diferencia central. Sin embargo, hay uno. La mayoría de la gente pone el signo de igualdad entre “Yo sé” y “Yo puedo”. ¿Tú? ¿Qué tal algunos ejemplos?
  1. Sé que fumar es malo para mí, pero fumo.
  2. Sé que la comida rápida es mala para mí, pero la como.
  3. Conozco las normas de tráfico, pero no sé conducir.
  4. Sé que trotar es bueno para mí, pero no lo hago por la mañana.
A menudo sucede que las personas toman "yo sé" por "yo puedo". Es un buen ejemplo con las normas de tráfico. Si una persona conoce las normas y sabe cómo conducir, ¿significa que puede conducir? No. ¿Y si cree que sabe conducir? Entonces, ¿por qué necesitaría un instructor? Ya lo sabe todo. Cuando estés seguro de que ya sabes todo, probablemente no aprenderás nada nuevo. Y si estás seguro de que sabes hacer todo, no estudiarás. Un pensamiento como este ni siquiera se te pasará por la cabeza. Y eso significa que te perderás todas las maravillosas oportunidades de aprender algo. La universidad normal solo te da conocimiento; tendrás que adquirir habilidades por tu cuenta. Pero que escucho? ¿Has tenido práctica además de teoría en tu universidad? Ok, si estudiaste en la facultad de física, haga un modelo de trabajo de una máquina de vapor con una eficiencia de al menos el 20%. Apuesto a que sabes cómo hacerlo, pero en realidad no podrás hacerlo, ¿verdad? ¿ Eres químico ? Haz pólvora sin humo. Sabes cómo, pero no puedes, ¿eh? ¿Matemático, eres tú? Calcular la trayectoria de un proyectil de artillería. No olvides tener en cuenta la forma de la concha. Los puntos matemáticos no vuelan en la vida real. Y no hay caballos esféricos. Antiguo nivel 09 - 2¿Biólogo? Aislar penicilina. Este moho crece en los melones, para que lo sepas. Ya sabes cómo, ¡maravilloso! ¿Puedes hacerlo? ¿Economista?Haga un pronóstico de crecimiento del precio del petróleo. ¿Hecho? Y ahora conviértalo en $2,000 o $200,000 al año según su pronóstico. ¿Alguna vez has jugado en FOREX? ¿Por dinero real? ¿O simplemente sabes lo que es? ¿Economía Internacional? ¡Espléndido! ¿Dónde abro una sociedad offshore? En Hong-Cong, Irlanda o en USA. ¿Por qué? Incluso si sabes eso, lo cual es dudoso, difícilmente podrás hacerlo, ya que en realidad nunca lo has hecho. Ni siquiera tienes la menor idea de cómo hacerlo. Oh, ¿no estudiaste eso en la universidad? ¿Qué derecho tengo a asignarte tareas para las que no estás preparado? Porque estas son las tareas de la vida real. Esta práctica ES , todo lo que has estudiado en la universidad es: caballos esféricos, competencia perfecta, nada de eso existe en la vida real. Pero ¿por qué me he olvidado de mencionarespecialista en mercadotecnia ? ¿Cuál es la mejor manera de gastar mis $500 para que tantas personas como sea posible sepan acerca de mis conferencias? ¿En publicidad? ¿Eres consciente de que no solo la publicidad clásica ya está desactualizada, sino también el concepto de USP (propuesta de venta única), que estoy seguro que te enseñaron en la universidad como una panacea casi única? Olvida que sabes algo. Pregúntese: ¿qué puedo hacer? Útil, quiero decir? ¿Algo por lo que la gente pagaría dinero? ¿Buen dinero, quiero decir? Así que amigos, expresemos gratitud a un curso tan maravilloso como CodeGym. Gracias a él no sólo sabrás programar, sino que podrás hacerlo. También podrá conseguir un trabajo y ganar un buen dinero en unos pocos años. Espero que este dinero sea suficiente para vivir agradable y acogedor. Lo diré una vez más, para que lo recuerdes: no importa lo que sepas. Lo único que importa es qué habilidades útiles tienes, las que la gente estaría dispuesta a pagarte. Cuanto antes entiendas esto, mejor.

Has alcanzado un nuevo nivel

Nivel 9

Antiguo nivel 09 - 3

1 Risha, rastro de pila

Antiguo nivel 09 - 4- ¡Ey! Hoy les contaré qué es el stack trace. Pero primero déjame explicarte qué es la pila. - Imagine una pila de papeles - asignaciones para cierto empleado. Se puede poner una nueva tarea en la parte superior de la pila, y él tomará una tarea de la parte superior de la pila. Por lo tanto, las asignaciones no se realizarán por orden de llegada. Cada vez que el empleado toma la última asignación. Tal estructura de colección se llama pila . - En Java, hay una colección especial - Stack. Esta colección tiene métodos «agregar un elemento» y «tomar (obtener/quitar) un elemento». Como ya sabes, el último elemento agregado se tomará primero. - Hum. No es difícil, supongo. - Bien. Entonces déjame explicarte qué es un seguimiento de pilaes. - Imagine que en Java la función А llama a la función B , y esta última llama a la función C , que a su vez llama a la función D. Entonces, para salir de la función B , primero debe salir de la función C , y para hacerlo, debe salir de la función D. Esto es muy similar a una pila. - ¿Y cuál es la similitud? - En la pila, para llegar a una determinada tarea, también debe completar todas las tareas puestas en la parte superior. - Bueno, es un poco una analogía, pero no estoy seguro de haber entendido todo bien. - Mira aquí. En Java una pila es un conjunto de elementos. Es como hojas de papel en una pila. Para tomar la tercera desde arriba, debes tomar la segunda hoja, pero antes debes tomar la primera. Siempre puede poner y tomar hojas, pero puede ponerlas solo en la parte superior y tomar solo desde la parte superior. Lo mismo se aplica a la llamada de función. La función А llama a la función B , la última llama a la función C. Para salir de А , primero debe salir de B , y para ello debe salir de C. - Espera un minuto. Si lo hice bien, toda la pila resulta en "solo se puede tomar la última hoja que se puso en la pila" y "primero, debe salir la última función llamada". ¿Es eso así? - Sí. Entonces, la secuencia de llamadas a funciones es la «pila de llamadas a funciones», o simplemente «pila de llamadas». La última función llamada debe ser terminada primero. Veamos el ejemplo: Antiguo nivel 09 - 5- OK. Supongo que todo está claro con la llamada a la función. Pero, ¿qué es este StackTraceElement ? - La máquina virtual Java registra todas las llamadas a funciones. Para esto tiene una colección especial - pila. Cuando una función llama a otra, JVM coloca un nuevo elemento StackTraceElement en esta pila. Cuando finaliza la función, el elemento se elimina de la pila. Por lo tanto, esta pila siempre almacena información actualizada sobre el estado actual de la «pila de llamadas a funciones». - Cada StackTraceElementcontiene información sobre el método llamado. Entonces puede obtener el nombre de este método usando getMethodName . - El ejemplo anterior lo muestra:
  1. Obtener la «pila de llamadas»:
  2. Iterar la matriz usando el bucle for-each . Espero que no lo hayas olvidado.
  3. Imprime los nombres de los métodos en System.out .
- Una cosa interesante, y aparentemente fácil. ¡Gracias Risha!

2 Diego, Tarea en la pantalla de seguimiento de la pila

- ¡Hola, amigo! Aquí hay una pequeña tarea para mostrar en la pantalla un seguimiento de la pila.
Tareas
1 Cada método debe devolver su StackTrace
Escriba cinco métodos que se llamen entre sí. Cada método debe devolver su StackTrace.
2 StackTrace de nuevo
Escriba cinco métodos que se llamen entre sí. Cada método debe devolver el nombre de su método de llamada. Puede obtener el método de llamada usando StackTrace.
3 El método debe devolver el número de línea del código desde el que se llamó a este método
Escriba cinco métodos que se llamen entre sí. Cada método debe devolver el número de línea del código desde el que se llamó a este método. Usa la función element.getLineNumber() .
4 Seguimiento de pila de 10 llamadas
Escriba código para obtener un seguimiento de pila de 10 llamadas.
5 El método debe devolver un resultado: su profundidad de seguimiento de pila
Escriba un método que muestre y devuelva su profundidad de seguimiento de pila. La profundidad de seguimiento de la pila es el número de sus métodos (el número de elementos en la lista).

3 Elly, errores y excepciones

- ¡Hola, amigo! Hoy tenemos una lección muy interesante. Te hablaré de las excepciones. La excepción es un mecanismo especial para controlar errores en el programa. Estos son algunos ejemplos de errores que pueden ocurrir en el programa:
  1. El programa intenta escribir un archivo en el disco lleno.
  2. El programa intenta llamar a un método de una variable que almacena la referencia nula.
  3. El programa trata de dividir un número por 0.
Estas acciones dan como resultado un error. Por lo general, esto conduce al cierre de un programa ; no tiene sentido continuar ejecutando el código. - ¿Porqué es eso? - ¿Tiene sentido girar el volante cuando el coche se está cayendo por un precipicio? - ¿Quieres decir que el programa debe terminar? - Sí. Así era antes. Cualquier error condujo a la terminación de un programa. - Es una decisión muy inteligente. - ¿No sería mejor intentar trabajar? - Sí. Ha escrito un texto enorme en MS Word, lo ha guardado, no se ha guardado, pero el programa le dice que todo está bien. Y sigues escribiendo. Tonto, ¿no? - Sí. - Luego, a los programadores se les ocurrió un movimiento interesante:cada función devolvía el estado de su trabajo. 0 significaba que la función funcionaba como se suponía que debía hacerlo, cualquier otro valor significaba que había un error : este valor era un código de error. - Pero este enfoque tenía una desventaja. Después de cada (!) llamada de función, tenía que verificar el código (número) devuelto por la función. En primer lugar, era un inconveniente: el código de manejo de errores rara vez se ejecutaba, pero siempre había que escribirlo. En segundo lugar, las funciones en sí mismas a menudo devuelven valores diferentes: ¿qué hacer con ellos? - Sí. Eso es lo que iba a preguntar. - Entonces llegó un futuro brillante: aparecieron excepciones y manejo de errores. Así es como funciona:
  1. Cuando ocurre un error, la máquina virtual Java crea un objeto especial, una excepción, que contiene toda la información sobre el error. Para diferentes errores hay diferentes excepciones.
  2. Entonces, esta excepción obliga al programa a interrumpir la función actual inmediatamente y la función siguiente, hasta que salga del método principal. Después de eso, el programa termina. Los desarrolladores de Java llaman a este proceso "revierte la pila de llamadas".
- Pero has dicho que el programa no va a salir seguro. - Así es, porque hay una forma de atrapar la excepción. Cuando y donde lo necesite, puede escribir un código especial para detectar estas excepciones y hacer algo importante. - Para hacer esto, hay una construcción especial try-catch . Mira cómo funciona: Antiguo nivel 09 - 6- Por qué «Después de llamar al método1. Nunca se mostrará» no se mostrará en la pantalla? - Me alegra que hayas preguntado al respecto. En la línea 25, hay una división por cero. Esto conduce a un error, una excepción. La máquina virtual Java creó el objeto ArithmeticException que contiene la información del error. Este objeto es una excepción. - Ocurrió una excepción dentro del método method1() .Esto resultó en la terminación inmediata del método. También conduciría a la terminación del método main , si no hubiera un bloque try-catch . - Si ocurre una excepción dentro del bloque try, se capturará en el bloque catch . El resto del código en el bloque try no se ejecutará, la ejecución del bloque catch comenzará inmediatamente. - No entiendo muy bien. - En otras palabras, este código funciona así:
  1. Si ocurre una excepción dentro del bloque try , el código de este bloque ya no se ejecuta, pero comienza la ejecución del bloque catch .
  2. Si no se produce ninguna excepción, el bloque try se ejecuta hasta el final y nunca se ejecuta catch .
- ¡Ejem! - Imagine que después de cada llamada al método verificamos si el método llamado terminó por sí mismo o debido a una excepción. Si hubo una excepción, JVM comienza a ejecutar la captura de bloque si está disponible y detecta una excepción. Si no hay un bloque catch, JVM finaliza el método actual. Luego comienza la misma verificación en el método que llamó al método actual. - Ahora creo que lo tengo. - Está bien. - ¿Y qué es esa excepción dentro del bloque catch? - Todas las excepciones son clases heredadas de la clase Exception. Podemos atrapar cualquiera de ellos especificando su clase en el campo catchbloque, o todos ellos a la vez especificando una Excepción de clase principal común. Luego, desde la variable e (esta variable almacena la referencia de un objeto de excepción) puede obtener toda la información necesaria sobre el error. - ¡Excelente! ¿Y si en mi método ocurren diferentes excepciones, puedo manejarlas de diferentes maneras? - Tienes que. Puede hacerlo así: Antiguo nivel 09 - 7- El bloque try puede contener varios bloques catch , cada uno de los cuales detectará excepciones de su tipo. - Umph. Bueno, lo tengo un poco. Por supuesto, no escribiré algo como esto yo mismo. Sin embargo, no me asustaré si encuentro ese código.

4 Elly, RuntimeException, lanza

Antiguo nivel 09 - 8- Decidí sacar otro tema hoy. En Java, todas las excepciones se dividen en dos tipos: controladas/verificadas y no controladas/no verificadas . Las excepciones marcadas deben ser capturadas, las no marcadas pueden ser capturadas pero eso no es obligatorio . - ¿Es posible lanzar excepciones en un código a propósito? - En su código, puede lanzar excepciones usted mismo. Incluso puede escribir sus propias excepciones. Pero profundizaremos en este agujero más tarde. Ahora aprendamos cómo trabajar con las excepciones lanzadas por la máquina virtual Java. - DE ACUERDO. - Si las excepciones ClassNotFoundException y FileNotFoundExceptionse lanzan (aparecen) en un método, el programador tiene que especificarlos en la firma de un método (cabecera de método). Tales excepciones están marcadas. Así es como suele verse: Antiguo nivel 09 - 9- Entonces, solo escribimos lanzamientos y enumeramos las excepciones separadas por comas. ¿Bien? ¿Es eso así? - Sí. Pero hay otra cosa interesante. Para compilar el siguiente ejemplo, el método que llama a method1() tiene que capturar estas excepciones o lanzarlas. Si desea lanzar una excepción marcada hacia adelante, debe especificarlo en el encabezado del método . - Una vez más, si en el método principal , desea llamar a un método que tiene en su frase de encabezado, arroja FileNotFoundException, …entonces tienes que hacer una de estas dos cosas:
  1. para capturar excepciones FileNotFoundException, ...
    Tendrá que envolver el código donde llama a un método peligroso con un bloque try-catch
  2. no capturar excepciones FileNotFoundException, …
Deberá agregar estas excepciones a la lista de lanzamientos de su método principal . - ¿Me das un ejemplo? - Mire aquí: Antiguo nivel 09 - 10- Este ejemplo no se compilará, porque el método main llama al método method1(), que arroja excepciones que deben detectarse. - Para compilar el ejemplo, debe agregar el manejo de excepciones al método main . Puedes hacer esto de dos maneras: Antiguo nivel 09 - 11- Y aquí lo atrapamos usando try-catch : Antiguo nivel 09 - 12- Cada vez es más claro, pero muy poco. - Mire el ejemplo a continuación: Antiguo nivel 09 - 13- Todavía hay una excepción: RuntimeException y las clases heredadas de ella.No es necesario atraparlos o lanzarlos. Estas son excepciones no verificadas. Estas excepciones se consideran difíciles de predecir, por lo que es casi imposible predecir su ocurrencia. Puede hacer lo mismo con ellos, pero no es necesario especificarlos en throws .

5 Risha, Rolling the call stack, cómo hacerlo en excepciones

- Me gustaría contarles un poco más sobre cómo funcionan las excepciones. El siguiente ejemplo explica que: Antiguo nivel 09 - 14- No lo entiendo. - De acuerdo. Voy a explicar lo que está pasando. - En el ejemplo de la izquierda, llamamos a varios métodos en orden de cadena. En method2() creamos y lanzamos específicamente una excepción (para iniciar un error). - El ejemplo de la derecha muestra lo que sucede. Mira el método2() . En eso se transforma la creación de una excepción: creamos un objeto de tipo RuntimeException , lo almacenamos en una excepción de variable especial e inmediatamente salimos del método – return . - En el método1 , después de la llamada del método2 hay un control,si hay una excepción o no; si hay una excepción, el método 1 finaliza inmediatamente. Esta verificación se realiza implícitamente después de llamar a cada (!) método Java. - ¡Guau! - Exactamente. - En la columna de la derecha en el método principal , escribí lo que sucede cuando el bloque try-catch detecta una excepción . Si no hubo excepción, el código continúa ejecutándose tal como se planeó. Si hubo una excepción del tipo especificado en catch , la manejamos. - ¿Y qué significan throw e instanceof ? - Mire la última línea a la izquierda y arroje nuevas RuntimeException(s). De esta manera creamos y lanzamos una excepción. Este es solo un ejemplo. No lo haremos hasta ahora. - Usando el comando « а instanceof B » en el bloque derecho comprobamos si el objeto a tiene el tipo B . Es decir, si el objeto almacenado en la excepción variable tiene el tipo RuntimeException . Es una expresión lógica. - Bueno, se está poniendo un poco más claro.

6 Diego, tarea de captura de excepción

- ¡Mira aquí! El tío Diego trajo pocas tareas para atraparte. Te deseo suerte. Creo que lo necesitarás. je. Antiguo nivel 09 - 15- ¡Hola, amigo! Aquí hay algunas tareas interesantes de captura de excepciones.
Tareas de captura
1 1. Excepción al operar con números
Captura la excepción que ocurre al ejecutar el código:
int a = 42 / 0;
Mostrar la excepción a la pantalla, especificando su tipo
2 2. Excepción al operar con cadenas
Captura la excepción que ocurre al ejecutar el código:
String s = null;
String m = s.toLowerCase();
Muestre la excepción a la pantalla, especificando su tipo.
3 3. Excepción al operar con arreglos
Captura la excepción que ocurre al ejecutar el código:
int[] m = new int[2];
m[8] = 5;
Muestre la excepción a la pantalla, especificando su tipo.
4 4. Excepción al operar con colecciones de listas
Captura la excepción que ocurre cuando ejecutas el código:
ArrayList<String> list = new ArrayList<String>();
Cadena s = lista.get(18);
Muestre la excepción a la pantalla, especificando su tipo.
5 5. Excepción al operar con colecciones de mapas
Captura la excepción que ocurre cuando ejecutas el código:
HashMap<String, String> map = new HashMap<String, String>(null);
map.put(nulo, nulo);
mapa.remove(null);
Muestre la excepción a la pantalla, especificando su tipo.
- Consejo: primero escriba un programa, luego vea qué excepción ocurre y luego cambie el código y capture esa excepción.

7 Risha, Cómo funciona la captura múltiple

Antiguo nivel 09 - 16- Ahora, algunas conferencias más interesantes. Me gusta mucho enseñar. - Quiero contarte cómo funciona una captura múltiple . En realidad es muy simple: cuando ocurre una excepción en el bloque try , la ejecución del programa se transfiere al primer catch . - Si el tipo especificado entre paréntesis de la captura de bloque es el mismo que el tipo del objeto de excepción, entonces la ejecución del código comienza dentro de {}. De lo contrario vamos a la siguiente captura . Allí se repite la comprobación. - Si no hay más bloques catch , pero la excepción no ha sido capturada, se lanza hacia adelante y el método actual se interrumpe. - Veo. Se ejecutará ese catch, cuyo tipo coincida con el tipo de excepción. - Si claro. En realidad, es un poco más complicado: el punto es que las clases se pueden heredar unas de otras. Si la clase «Vaca» se hereda de la clase «Animal», el objeto de tipo «Vaca» puede almacenarse no solo en una variable de tipo «Vaca», sino también en una variable de tipo «Animal» . - ¿Así que lo que? - Dado que todas las excepciones se heredan de las clases Exception o RuntimeException (que también se hereda de Exception ), todas pueden capturarse con los comandos catch (Exception e) o catch (RuntimeException e) . - ¿Así que lo que? - Esto significa que,primero, puede capturar cualquier excepción usando el comando catch(Exception e) . En segundo lugar, el orden de los bloques catch es importante. Ejemplos: - ArithmeticException resultante de la división por 0 se captura en la segunda captura. Antiguo nivel 09 - 17- En el siguiente ejemplo, ArithmeticException se captura en la primera captura , porque las clases de todas las excepciones se heredan de Exception. Entonces, Exception atrapa cualquier excepción . Antiguo nivel 09 - 18- En el siguiente ejemplo, la excepción ArithmeticException no se detecta, sino que se envía al método de llamada. Antiguo nivel 09 - 19- Bueno, ahora está más claro. Estas excepciones no son tan fáciles. - Sólo lo parece. De hecho, es una de las cosas más simples en Java. - Dudo si estar complacido o molesto por eso...

8 Diego, Múltiples tareas de captura de excepción

- ¡Hola, amigo! Ayer me emborraché y te compliqué demasiado las tareas, pero espero que no haya resentimientos de tu parte y los resuelvas todos. Es por tu propio bien. Aquí:
Tareas
1 1. Excepciones
Hay un método que arroja dos excepciones heredadas de Exception y las otras dos heredadas de RuntimeException : NullPointerException , ArithmeticException , FileNotFoundException y URISyntaxException .

Debe capturar NullPointerException y FileNotFoundException , pero no capturar ArithmeticException y URISyntaxException . ¿Cómo hacerlo?
2 2. Atrapar excepciones
Hay tres excepciones heredadas secuencialmente de Exception :
class Exception1 extends Exception
class Exception2 extends Exception1
class Exception3 extends Exception2
Hay un método, que se describe a continuación:
public static void method1() throws Exception1, Exception2, Exception3

Escribe una captura bloque para capturar las tres Exception1 , Exception2 y Exception3
3 3. Captura de excepciones selectivas
1. Averigüe qué excepciones lanza el método BEAN.methodThrowExceptions .
2. El método processExceptions() debe llamar al método BEAN.methodThrowExceptions y manejar las excepciones:
2.1. si se produce una excepción FileSystemException , regístrela llamando al método BEAN.log y envíe
2.2. si ocurre una excepción CharConversionException o cualquier otra IOException , simplemente regístrela llamando al método BEAN.log
3. Agregue la clase/tipo de la excepción que está reenviando en 2.1. al procesoExcepciones()firma del método.
4. Maneje la excepción restante en el método main() y regístrela. Use try..catch

Sugerencia:
si capturó la excepción MyException , que no deseaba capturar, puede lanzarla usando el siguiente código:
catch (MyException e) {
throw e;
}
4 4. Captura de excepciones verificadas
Maneja todas las excepciones verificadas en el método processExceptions() .
Debe mostrar en la pantalla cada excepción verificada que haya ocurrido.
Puede usar solo un intento de bloque .
5 5. Captura de excepciones no verificadas
Maneja todas las excepciones no verificadas en el método processExceptions() .
Debe mostrar en la pantalla un seguimiento de la pila de cada excepción ocurrida utilizando el método printStack() .
Puede usar solo un intento de bloque .

9 Profesor, Conferencia sobre excepciones

- Hoy tenemos un tema súper interesante: las excepciones. En ese momento, cuando los jóvenes científicos y programadores estaban profundamente entusiasmados con este tema... - Lo siento, debo ir al laboratorio. Aquí están las notas de la conferencia. Creo que lo descubrirás por ti mismo. Aquí: Excepciones de Java (documentación de Oracle) Manejo de excepciones en Java (punto T de Java) Java - Manejo de excepciones (punto de tutoriales) Manejo básico de excepciones de Java

10 julio

- Amigo, ¿qué te parece la lección de hoy? ¿Tu cerebro de positrones aún no ha funcionado? Las tareas de Diego son suficientes para desgastar a cualquiera. Tomemos un momento de cerveza y relájese. ¿Sigues de pie?

11 capitanas ardillas

- ¡Hola, soldado! - ¡Buenos días señor! - Tengo una noticia increíble para ti. Aquí tienes una comprobación rápida para reforzar tus habilidades. Hágalo todos los días y mejorará sus habilidades muy rápido. Las tareas están especialmente diseñadas para hacer en Intellij IDEA.
Tareas adicionales para hacer en Intellij Idea
1 1. División por cero
Cree un método public static void divisionByZero() , donde necesita dividir cualquier número por cero y mostrar en la pantalla el resultado de la división.
Envuelva la llamada al método divisionByZero() en un try..catch . Muestre en la pantalla el seguimiento de la pila de excepciones mediante el métodoException.printStackTrace () .
2 2. Cuenta regresiva de 10 a 0
Escriba un bucle para la cuenta regresiva de 10 a 0. Use Thread.sleep(100) para hacer un retraso;
Envuelva la llamada de sueño en un try..catch .
3 3. Envuelva un método en un try..catch
Lea números desde el teclado. Escriba un código para leer números del teclado en un método separado readData() .
Envuelva todo el cuerpo de este método (el código completo dentro del método readData() , excepto la declaración de la lista donde se almacenarán los números) en un try..catch .

Si el usuario ingresa algún texto en lugar de ingresar un número, el método tiene que detectar la excepción y mostrar en la pantalla todos los números ingresados ​​antes.
Mostrar números en la pantalla. Cada número debe estar en una nueva línea. El orden de los números debe ser tal como estaba en la entrada.
4 4. Convertidor de fecha
Leer desde el teclado una fecha en formato «08/18/2013»
Mostrar en pantalla esa fecha en forma de «AGO 18, 2013».
Usa los objetos Date y SimpleDateFormat .
5 5. Vocales y consonantes
Escriba un programa que lea líneas desde el teclado.
El programa debe mostrar en la pantalla dos cadenas:
1) la primera cadena debe contener vocales
2) la segunda cadena debe contener consonantes y signos de puntuación del texto ingresado.
Separe los caracteres por espacios.

Entrada de ejemplo:
Stop look listen
Salida de ejemplo:
oooie
stplklstn
6 6. El cuento de Caperucita Roja
1. Hay cinco clases: Caperucita Roja, abuela, empanada, leñador, lobo.
2. Cada clase tiene dos campos de tipo ArrayList : muertos y comidos.
3. Los objetos necesarios ya están creados (capucha, abuela,...).
4. Crea la relación correcta (quién comió y mató a quién) para obtener la lógica de «Caperucita Roja».
7 7. Mover modificaciones estáticas
Mueva modificadores estáticos para que el código compile.
8 8. Lista de arreglos de números
Crea una lista cuyos elementos sean arreglos de números. Agregue a la lista cinco matrices de objetos con una longitud de 5, 2, 4, 7, 0, respectivamente. Rellene matrices con cualquier dato y muéstrelos en la pantalla.
9 9. Diez gatos
Cree una clase Gato con un campo Nombre de cadena .
Cree un diccionario Map<String, Cat> , agregue 10 gatos en el modelo «Name» - «Cat».
Obtenga del Mapa un Conjunto de nombres y visualice el conjunto en la pantalla.
- Esas tareas eran para los verdes. Agregué tareas adicionales de mayor complejidad. Solo para top guns.
tareas de bonificación
1 1. El programa no se compila ni ejecuta. Arreglalo.
Tarea: El programa debe leer del teclado dos nombres de archivo y copiar el primer archivo en la ubicación especificada por el segundo nombre.
2 2. Agregar nueva funcionalidad al programa.
Tarea anterior: el programa debe leer del teclado dos nombres de archivo y copiar el primer archivo en la ubicación especificada por el segundo nombre.
Nueva tarea: el programa debe leer del teclado dos nombres de archivo y copiar el primer archivo en la ubicación especificada por el segundo nombre.

Si el archivo (que se va a copiar) con el nombre especificado no existe, el programa debe mostrar en pantalla el mensaje «El archivo no existe» y tratar de leer el nombre del archivo desde la consola una vez más antes de leer el archivo. nombre del segundo archivo (destino).
3 3. Algoritmo de aprendizaje y práctica.
Lea desde el teclado la lista de palabras y números. Muestra en pantalla las palabras en orden ascendente y los números en orden descendente.

Ejemplo de entrada:
Cereza
1
Frijol
3
Manzana
2
0
Sandía

Ejemplo de salida:
Manzana
3
Frijol
2
Cereza
1
0
Sandía
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION