Revisión de JAVA del manejo de excepciones, clases comunes y tipos de enumeración

1. Anormal

Inserte la descripción de la imagen aquí

Inserte la descripción de la imagen aquí

1. Clasificación de anomalías

Inserte la descripción de la imagen aquí
Excepción de puntero nulo (IndexOutBoundsException), excepción de conversión de tipo de datos (NumberFormatException)

2. Capturar y gestionar excepciones

Inserte la descripción de la imagen aquí

3. Mecanismo de interrupción anormal

Inserte la descripción de la imagen aquí

4. Finalmente bloque de código

Inserte la descripción de la imagen aquí
Las siguientes circunstancias especiales. El bloque finalmente no se ejecutará:
① Se genera una excepción en el bloque de código finalmente;
② System.exit () se usa en el código anterior para salir del programa;
③ El hilo donde se encuentra el programa muere;
Inserte la descripción de la imagen aquí

5. Use la palabra clave throws para lanzar una excepción (1)

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

6. Use la palabra clave throws para lanzar una excepción (2)

Inserte la descripción de la imagen aquí

7. ¿Cuál es la diferencia entre la palabra clave throws y la palabra clave throw?

①Throws se usa después de la declaración del método, lo que significa que se lanza una excepción, que es manejada por el llamador del método, y el throw se usa en el cuerpo del método para crear una excepción, que es manejada por la declaración en el cuerpo del método;
②Throws es una declaración de que este método arrojará este tipo Exception, para que su llamador sepa capturar esta excepción, y throw arroje directamente una instancia de excepción;
③throws representa una posibilidad de excepciones, y estas excepciones pueden no necesariamente generarse, pero si usa throw, debe ser Producirá algún tipo de anomalía;

8. El principio de uso anormal

① No sobreutilice las excepciones; ② No utilice bloques try-catch demasiado grandes; ③ Evite el uso de catch (Excepción e); ④ No ignore las excepciones detectadas y trate las excepciones a tiempo. ⑤ Si la clase padre arroja múltiples Excepción, el método de reemplazo debe lanzar la misma excepción o una subclase de excepción y no puede lanzar una nueva excepción;

Dos, clases de Java de uso común y tipos de enumeración

1. ¿Por qué Java proporciona clases de empaquetado?

Por lo tanto, Java es un lenguaje de programación orientado a objetos Para tratar los tipos de datos básicos como objetos, Java proporciona el concepto de clases de empaquetado;
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

2. Clase entera

Inserte la descripción de la imagen aquí

public class Demo {
    
    
	public static void main(String[] args) {
    
    
		int num = Integer.parseInt("456"); // 将字符串转换为int类型
		Integer iNum = Integer.valueOf("456"); // 通过构造函数创建一个Integer对象
		System.out.println("int数据与Integer对象的比较:" + iNum.equals(num));
		String str2 = Integer.toBinaryString(num); // 获取数字的二进制表示
		String str3 = Integer.toHexString(num); // 获取数字的十六进制表示
		String str4 = Integer.toOctalString(num); // 获取数字的八进制表示
		String str5 = Integer.toString(num, 15); // 获取数字的十五进制表示
		System.out.println("456的二进制表示为:" + str2);
		System.out.println("456的十六进制表示为:" + str3);
		System.out.println("456的八进制表示为:" + str4);
		System.out.println("456的十五进制表示为:" + str5);
	}
}

2. Clase entera [la clase abstracta no puede crear objetos de instancia directamente]

Inserte la descripción de la imagen aquí

3. Clase de matemáticas

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

public class ExponentFunction {
    
    
	public static void main(String[] args) {
    
    
		System.out.println("e的平方:" + Math.exp(2)); // 取e的2次方
		System.out.println("以e为底数,2的对数:" + Math.log(2)); // 取以e为底2的对数
		System.out.println("以10为底数,2的对数:" + Math.log10(2)); // 取以10为底2的对数
		System.out.println("4的算术平方根:" + Math.sqrt(4)); // 取4的平方根
		System.out.println("8的立方根:" + Math.cbrt(8)); // 取8的立方根
		System.out.println("2的平方:" + Math.pow(2, 2)); // 取2的2次方
	}
}

Inserte la descripción de la imagen aquí

5. Clase aleatoria

Inserte la descripción de la imagen aquí
Caso de WeChat agarre sobres rojos:

import java.util.Random;
import java.util.Scanner;


public class RedBags {
    
     // 创建一个RedBags类
	public static void main(String[] args) {
    
    
		System.out.println("—————————模拟微信抢红包—————————\n");
		Scanner sc = new Scanner(System.in); // 控制台输入
		System.out.print("请输入要装入红包的总金额(元):");
		double total = sc.nextDouble(); // 输入“红包的总金额”
		System.out.print("请输入红包的个数(个):");
		int bagsnum = sc.nextInt(); // 输入“红包的个数”
		double min = 0.01; // 初始化“红包的最小金额”
		Random random = new Random(); // 创建随机数对象random
		if (total / bagsnum == 0.01) {
    
     // 红包总金额与个数的商为0.01时
			for (int i = 1; i < bagsnum; i++) {
    
    
				double money = min; // 让每个包中的金额均为最小金额0.01
				total -= money; // 红包中的剩余金额
				System.out.println("第" + i + "个红包:" + String.format("%.2f", money) + "元");
			}
		} else if (total / bagsnum < 0.01) {
    
     // 红包总金额与个数的商小于0.01时
			System.out.println("要保证每个人都能分到1分钱哦!");
			return; // 不再执行第22行以下的代码,例如第46行
		} else {
    
    
			for (int i = 1; i < bagsnum; i++) {
    
     // 设置“循环”
				/*
				 * 本次红包可用最大金额 = 可分配金额 - (红包总数 * 已发出的红包数) * 红包的最小金额
				 */
				double max = total - (bagsnum - i) * min;
				double bound = max - min; // 设置随机金额的取值范围
				/*
				 * 据随机金额的取值范围,随机生成红包金额。 由于nextInt(int
				 * bound)只能用整型做参数,所以先将bound乘100(小数点向右挪两位)
				 * 获取到一个整数后,将这个整数除100(小数点向左挪两位) 并转换成与金额相同的浮点类型
				 */
				double safe = (double) random.nextInt((int) (bound * 100)) / 100;
				double money = safe + min; // 最后加上红包的最小金额,以防safe出现0值
				total = total - money; // 替换total的值
				System.out.println("第" + i + "个红包:" + String.format("%.2f", money) + "元");
			}
		}
		// 输出剩余金额
		System.out.println("第" + bagsnum + "个红包:" + String.format("%.2f", total) + "元");
		sc.close(); // 关闭控制台输入
	}
}

6, clase de fecha

Inserte la descripción de la imagen aquí

import java.util.Date;

public class DateTest {
    
    
	public static void main(String[] args) {
    
    
		Date date = new Date(); // 创建现在的日期
		long value = date.getTime(); // 获得毫秒数
		System.out.println("当前日期、时间:" + date);
		System.out.println("从基准时间到当前时间所经过的毫秒数为:" + value);
	}
}

7, clase DateFormat

Inserte la descripción de la imagen aquí

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

public class DateFormatTest {
    
    
	public static void main(String[] args) {
    
    
		// 创建日期
		Date date = new Date();
		// 创建不同的日期格式
		DateFormat df1 = DateFormat.getInstance();
		DateFormat df2 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss EE");
		DateFormat df3 = new SimpleDateFormat("yyyy年MM月dd日 hh时mm分ss秒 EE", Locale.CHINA);
		DateFormat df4 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss EE", Locale.US);
		DateFormat df5 = new SimpleDateFormat("yyyy-MM-dd");
		DateFormat df6 = new SimpleDateFormat("yyyy年MM月dd日");
		// 将日期按照不同格式进行输出
		System.out.println("-------将日期时间按照不同格式进行输出------");
		System.out.println("按照Java默认的日期格式: " + df1.format(date));
		System.out.println("按照Java默认的日期格式: " + df1.format(date));
		System.out.println("按照指定格式 yyyy-MM-dd hh:mm:ss EE,系统默认区域:" + df2.format(date));
		System.out.println("按照指定格式 yyyy年MM月dd日 hh时mm分ss秒 EE,区域为中国 : " + df3.format(date));
		System.out.println("按照指定格式 yyyy-MM-dd hh:mm:ss EE,区域为美国: " + df4.format(date));
		System.out.println("按照指定格式 yyyy-MM-dd: " + df5.format(date));
		System.out.println("按照指定格式 yyyy年MM月dd日: " + df6.format(date));
	}
}

8. Tipo de enumeración

Los tipos de enumeración se utilizan a menudo para establecer constantes
Dado que un tipo de enumeración es un tipo de datos y se considera una colección de una serie de constantes con nombre, se le asigna la función de verificar el tipo de datos cuando se compila el programa.
Inserte la descripción de la imagen aquí
Las ventajas de utilizar tipos enumerados:
①El parámetro pasado debe ser del tipo definido por nosotros;
②Se pasa el valor específico;
③Se evita el problema de que dos constantes son iguales al mismo valor;

Supongo que te gusta

Origin blog.csdn.net/javaScript1997/article/details/108988315
Recomendado
Clasificación