心得: 我是一名正在自学的java的即将毕业的大学生 总结笔记是为了让自己更好的理解和加深印象。可能不是那么美观,自己可以看懂就好 所有的文档和源代码都开源在GitHub: https://github.com/kun213/DailyCode上了。希望我们可以一起加油,一起学习,一起交流。
代码举例:
/** * static int abs(int a)返回参数的绝对值 * 正数的绝对值是他自己 * 负数的绝对值是去掉符号 */ public static void method_1(){ int i = Math.abs(-5); System.out.println(i); }常用方法
BigDecimal类的加法减法乘法与BigInteger类相同,不在重复。
BigDecimal类实现精确的浮点数除法运算,如果两个浮点除法计算后是无限循环,那么就会抛出异常。
除法运算方法:
BigDecimal divide(BigDecimal divisor,int scale,int roundingMode) divesor:此 BigDecimal 要除以的值。scale:保留的位数roundingMode:舍入方式 舍入方式:BigDecimal类提供静态的成员变量来表示舍入的方式 BigDecimal.ROUND_UP 向上加1。BigDecimal.ROUND_DOWN 直接舍去。BigDecimal.ROUND_HALF_UP 四舍五入。 public static void main(String[] args){ BigDecimal big1 = new BigDecimal("5.25"); BigDecimal big2 = new BigDecimal("3.25"); //加法计算 BigDecimal add = big1.add(big2); System.out.println("求和:"+add); //减法计算 BigDecimal sub = big1.subtract(big2); System.out.println("求差:"+sub); //乘法计算 BigDecimal mul = big1.multiply(big2); System.out.println("乘法:"+mul); //除法计算 BigDecimal div = big1.divide(big2,2,BigDecimal.ROUND_HALF_UP); System.out.println(div); }基本类型与对应的包装类对象之间,来回转换的过程称为”装箱“与”拆箱“:
装箱:从基本类型转换为对应的包装类对象。拆箱:从包装类对象转换为对应的基本类型。用Integer与 int为例:(看懂代码即可)
基本数值---->包装对象
Integer i = new Integer(4);//使用构造函数函数 Integer iii = Integer.valueOf(4);//使用包装类中的valueOf方法包装对象---->基本数值
int num = i.intValue();由于我们经常要做基本类型与包装类之间的转换,从Java 5(JDK 1.5)开始,基本类型与包装类的装箱、拆箱动作可以自动完成。例如:
* 自动装箱 : 基本数据类型自动转成对象 * 自动拆箱 : 对象自动转成基本数据类型 Integer i = 4;//自动装箱。相当于Integer i = Integer.valueOf(4); i = i + 5;//等号右边:将i对象转成基本数值(自动拆箱) i.intValue() + 5; //加法运算完成后,再次装箱,把基本数值转成对象。代码举例:
public static void main(String[] args) { int i = Integer.parseInt("100"); System.out.println(i+5); //字符串转变成基本类型 Integer integer = new Integer("200"); int j = integer.intValue(); System.out.println(j+5); }越界异常:IndexOutOfBoundsException 空指针异常:NullPointerException 类型强制转换异常:ClassCastException 无效参数异常:IllegalArgumentException
try…catch的方式就是捕获异常
格式:
try{ 被检测的代码 可能出现异常的代码 }catch(异常类的类名 变量名){ 异常处理的方式 //记录日志/打印异常信息/继续抛出异常 } /** * try: 关键字 是尝试的意思,一旦出现异常 * catch : 关键字 抓住异常, 捕获,进行处理 * 异常的处理方式: 有catch抓住异常,就叫做处理了 * 处理方式任意: 变量,new 对象,调用方法,判断,循环 */代码示例:
public static void main(String[] args) { int[] arr = {1,2,3}; try { int i = getArray(arr); System.out.println(i); }catch (Exception ex){ //调用Throwable类方法 //public String getMessage():获取异常的描述信息,原因(提示给用户的时候,就提示错误原因。 String message = ex.getMessage(); System.out.println("message="+message);// 5 //public String toString():获取异常的类型和异常描述信息(不用)。 String str = ex.toString(); System.out.println("str="+str);//java.lang.ArrayIndexOutOfBoundsException: 5 //public void printStackTrace():打印异常的跟踪栈信息并输出到控制台。(常用) ex.printStackTrace();//异常信息: 异常类名,越界索引,程序出现的行数 (主力) } System.out.println("程序结束"); } public static int getArray(int[] arr){ return arr[5]; }thow: 在方法内部抛出异常对象
只能写在方法里面,throw new 异常对象()
throws: 在方法定义上使用,告知调用者有异常
throws只能写在方法定义后,throws 写异常类名
示例说明:
/*需求: * 定义方法,计算正方形面积 (整数) */ public static void main(String[] args) { try { int area = getArea(5); System.out.println("面积是:" + area); }catch (Exception ex){ System.out.println("边长不存在"); } } /** * 边长未知数,定义在参数上 * 用户调用方法时,传递 * 用户传递0或者负数 * 使用异常技术,手动抛出异常 * 关键字 throw new的异常对象() * * getArea()方法: 传递错误的参数,导致不能计算 * 方法的内部会抛出异常的对象, 对于调用者main,看的到你方法中有异常吗,NO * getArea()方法,告诉调用者,我有异常!! * * 关键字 throws 在方法的定义上标明出,我有异常,需要调用者进行处理 * throws关键字后面写异常类的名字 */ public static int getArea(int a)throws Exception{ if(a <= 0) //无法计算,使用异常提示用户,手动抛出异常 throw new Exception(); return a * a; } }这是我的公众号,希望大家可以关注,让我们一起做最好的自我。 我也会把我自学视频分享在上面,供大家一起学习。
