java学习day016

news2024/9/22 7:32:19

API

1.Number

数字格式化 : # 任意数字,0-9任意单个数字 , 千分位 . 小数点 0 补位

//四位小数
DecimalFormat df = new DecimalFormat("###,###.####");
System.out.println(df.format(1234567.312));//1,234,567.312
//四位小数,不够补0
df = new DecimalFormat("###,###.0000");
System.out.println(df.format(1234567.312));//1,234,567.312

更高精度 : BigDecimal,适合做财务相关软件

//整数
BigInteger b1 = new BigInteger("12312413");
System.out.println(b1);     
//小数        
BigDecimal v = new BigDecimal(4.3);
System.out.println(v);
​
BigDecimal v1 = new BigDecimal(20);
BigDecimal v2 = new BigDecimal(10);
//+
BigDecimal result = v1.add(v2);
System.out.println(result);//30
// -
result = v1.subtract(v2);
System.out.println(result);//10
//*
result = v1.multiply(v2);
System.out.println(result);//200
//l
result = v1.divide(v2);
System.out.println(result);//2
// %
result = v1.remainder(v2);
System.out.println(result);//0

异常机制

一.之前遇到的异常

  • 下标越界异常(指针超范围)
  • 空指针异常(指向null)
  • 类型转换异常(类型不一样)
  • 堆/栈内存溢出(递归)
  • 数字格式化异常(不是纯数字字符串转换)

二. 是什么

        异常就是错误的一种描述
        异常是java中专门响应错误的一种机制,能够有效的处理异常,并使得异常成为程序中的一部分,能够更有力的增强程序鲁棒性更易于调试
        发生异常的原因有很多 :

  1. 用户输入了非法数据
  2. 要找的文件不存在
  3. 网络通信中断
  4. JVM溢出

       功能和目的 : 出现错误后,会终止程序生命周期执行,此时引入异常后,能够保证程序不会终止,并且还能够把错误信息,进行描迷反馈

三.继承体系

四.Execption

4.1 是什么

  • exception作为所有异常类的父类(分为RuntimeException和IOException)

    • RuntimeException : 运行时异常,一般是由于程序员粗心导致,比如空指针,比如 下标越界, 程序员完全可以通过if判断来解决这个问题

    • IOException : 编译时异常,一般需要我们重点学习,另外编译时异常是我们在编码中就需要处理的,如果不处理,不能运行

4.2 常用方法

getMessage() : 获取错误信息 一般反馈给客户查看

printStackTrace() : 打印错误追踪栈帧 一般给程序员查看,用来修改代码

4.3 try

4.3.1 第一种用法(单个异常)

try {
    // 可能会抛出异常的代码
} catch (IOException e) {
    // 处理异常的代码
}

4.3.2 第二种用法(多个异常)

一个catch捕捉一个异常

try中可以有多个异常,但是只会有一个异常发生(前面的异常发生后结束try中代码后面的异常不会执行) catch可以捕捉多个异常,但是从上到下必须是从子类到父类,或者是没有继承关系

try{
   // 程序代码
}catch(异常类型1 异常的变量名1){
  // 程序代码
}catch(异常类型2 异常的变量名2){
  // 程序代码
}catch(异常类型3 异常的变量名3){
  // 程序代码
}

4.3.3 第三种用法

1.7新特性 一个catch可以捕捉多个异常,多个异常使用|隔开,但是异常之间必须是没有哦继承关系,如果有继承关系则直接写父类即可

try{
   // 程序代码
}catch(异常类型1  | 异常类型2 异常的变量名){
  // 程序代码
}

4.3.4 第四种用法

java7 新特性 自动关闭资源

//传统写法
try{
    高风险代码
}catch(异常代码){
    异常处理代码;
}finally{
    关闭资源代码
}
try(打开资源代码){
    高风险代码
}catch(异常类型 异常的变量名){
    处理异常代码;
}

4.4 throws

4.4.1 第一种用法

  • 只是把问题抛出,不会处理问题,只是一种提醒机制

  • 当我们调用的方法抛出异常, 要么我们处理异常, 要么也抛出

  • throws 可以抛出多个异常,用多个逗号隔开无所谓先后顺序,也无所谓是否继承

方法 throws 异常类型{
    代码
} 

4.4.2 第二种用法

抛出多个异常,使用逗号隔开 无所谓先后顺序,也无所谓继承关系

方法 throws 异常类型1,异常类型2,异常类型3{
    代码
 }

4.4.3 注意-方法覆写

  • 不能比原方法拥有更宽泛的异常 子类覆写的方法,可以不抛出异常

  • 要么和父类方法抛出的异常一样 要么是父类方法抛出异常类的子类 要么不抛出,把异常处理 不能是父类方法抛出异常类的父类

4.5 Finally

4.5.1 是什么

必须执行的语句块,不能单独使用,需要和 try 或者 try...catch... 一起使用
只有一种情况不执行 : System.exit(0) 退出JVM虚拟机

4.5.2 使用

try{
  // 程序代码
}catch(异常类型1 异常的变量名1){
  // 程序代码
}catch(异常类型2 异常的变量名2){
  // 程序代码
}finally{
  // 程序代码
}

4.5.3 注意事项

  • 不能单独使用

  • 除了关闭虚拟机以外,finally一定会执行

4.5.4应用案例

4.6 自定义异常

4.6.1 定义语法

  1. 创建一个异常类继承一个已有的异常类,─般继承Exception即可
  2. 如果是运行时异常,则继承RuntimeException
  3. 提供无参构造及有参构造
public class 异常类类名 extends Exception{
    public 异常类类名(){
    }
    public 异常类类名(String msg){
        super(msg)
    }
}

五.Error

主要描述的是一些系统内部错误,比如我们之前碰到的栈内存溢出 OOM(内存溢出)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1990293.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CPU内部结构窥探·「7」--ARMv8架构中的缓存机制

浅析ARMv8架构中的缓存机制 在现代计算机体系结构中,缓存(Cache)是提高系统性能的关键组件之一。对于ARMv8架构来说,缓存的设计和管理至关重要。本文将详细介绍ARMv8架构中的缓存机制,包括其结构、工作原理、缓存一致…

高精度加法c++

题目描述 计算ab的值,a,b皆为不超过240位的正整数。 输入 两个正整数,每行一个 输出 一个数,代表两个整数的和 样例输入 111111111111111111111111111111111111 222222222222222222222222222222222222 样例输出 3333333333333333333…

渗透--ubuntuan安装nginx、php部署 -- sql注入

ubuntuan安装nginx以及php部署 ​ 1.安装依赖包 方法一: rootzbn-virtual-machine:~# apt-get install gcc libpcre3 libpcre3-dev zliblg zliblg-dev openssl libssl-dev方法二: rootzbn:/# apt install gcc rootzbn:/# apt install libpcre3 libpcre3…

2017-架构师案例(九)

某软件企业受该省教育部门委托建设高校数字化教育教学资源共享平台,实现以众筹众创的方式组织省内普通高校联合开展教育教学资源内容建设,实现全省优质教学资源整合和共享。该资源共享平台的主要功能模块包括: (1)统一身份认证模块:提供统一的认证入口&…

微信小程序--详情实现日期选择期(年月日)

案例&#xff1a; html: <view class"huanhang"><view class"fontBold">发起时间&#xff1a;</view><view class"fontBold"> <picker class"getBusTime" mode"date" data-namesa"staDa…

aop时什么,用时统计怎么开发

spring aop,作用&#xff1a;可以对service层代码进行监听&#xff0c;统计每个方法用时 aop是什么&#xff1a;面向切面编程&#xff08;aop开发出来的代码&#xff09; 用在哪里&#xff1a;&#xff08;压测/提效&#xff09; 1.controller层方法用时不用统计,核心都在服务…

Vue+Vite+Element Plus基础操作

Vue.js 是一个流行的前端框架&#xff0c;‌而 Vite 是一个快速构建前端应用的新型开发服务器和构建工具&#xff0c;‌两者结合可以显著提升开发效率和体验。‌ Vue.js 是一个用于构建用户界面的渐进式框架&#xff0c;‌它易于上手且功能强大。‌Vue 的核心库只关注视图层&a…

前端构建工具|vite快速入门

认识vite vite组成部分 Vite是一种新型前端构建工具&#xff0c;能够显著提升前端开发体验。它主要由两部分组成&#xff1a; 一个开发服务器&#xff0c;它基于 原生 ES 模块 提供了 丰富的内建功能&#xff0c;如速度快到惊人的 模块热更新&#xff08;HMR&#xff09;。一…

DERPNSTINK: 1-打靶渗透【附代码】(权限提升)

DerpNStink 靶机下载地址&#xff1a; https://www.vulnhub.com/entry/derpnstink-1,221/#downloadhttps://www.vulnhub.com/entry/derpnstink-1,221/#download 1. 主机发现端口扫描目录扫描操作系统等信息收集 1.1. 主机发现 nmap -sn 192.168.7.0/24|grep -B 2 08:00:27…

Rabbit高级特性 - 消息重试机制(两种实现)

文章目录 消息重试机制概述实现方式一&#xff1a;基于消息手动确认机制&#xff0c;返回 nack 实现配置文件交换机、队列、绑定生产者接口消费者演示和结论 实现方式二&#xff1a;基于重试配置实现配置文件交换机、队列、绑定生产者接口消费者演示和结论 消息重试机制 概述 …

对深度学习神经网络做了小改进,效果提升明显,可以发论文吗?

小改了深度学习神经网络某一层&#xff0c;效果提升显著&#xff0c;可以发顶会吗&#xff1f; 结论就是&#xff0c;当然可以发&#xff0c;只是能不能发出高质量论文&#xff0c;中稿顶会&#xff0c;还得看你这个小改进的具体情况还有你讲故事的能力。 先说改进的具体情况…

国家统计局中国主要城市面板数据(1990-2023年)

数据说明&#xff1a;数据来源于国家统计局&#xff0c;指标包含&#xff1a;城市、年份、第三产业增加值、第一产业增加值 地区生产总值、第二产业增加值、年末户籍人口、城镇非私营单位在岗职工平均工资 房地产开发投资额、房地产开发住宅投资额、房地产开发办公楼投资额、房…

什么是股指期权与股指期货的套利策略?

沪深300股指期权和沪深300股指期货就像是孪生兄弟&#xff0c;它们不仅到期时间一样&#xff0c;结算价格也一样&#xff0c;而且都是现金结算。这意味着&#xff0c;如果你用期权的方式“造”出一个期货来&#xff0c;跟市场上真实交易的期货&#xff0c;在到期那天&#xff0…

Eclipse 首选项(Preferences)

设置首选项 该对话框可通过框架管理但是其他插件可以设置其他页面来管理首选项的配置。 我们可以通过 Window 菜单选择 Preferences 菜单项来开启该对话框。 首选项页面有多个分类组成。你可以在左侧菜单中展开各个节点来查看首选项的配置。 左上角的输入框可以快速查找首选…

#子传父父传子props和emits #封装的table #vue3

#子传父&父传子props和emits #封装的table #vue3 父组件&#xff1a;emits defineEmits props 子组件&#xff1a; 子组件 <template><el-table v-bind"$attrs" ref"innerTableRef" v-loading"loading" border :data"tabl…

鸿蒙HarmonyOS开发:如何灵活运用动画效果提升用户体验

文章目录 一、动画概述1、动画的目的 二、显式动画 (animateTo)1、接口2、参数3、AnimateParam对象说明4、示例5、效果 三、属性动画 (animation)1、接口2、参数3、AnimateParam对象说明4、系统可动画属性4、示例5、效果 一、动画概述 动画的原理是在一个时间段内&#xff0c;…

QT使用ui文件创建窗口

目录 带ui文件 添加状态栏 资源文件的使用 添加文件资源 使用文件资源 带ui文件 编辑 添加状态栏 MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow) {ui->setupUi(this);// 添加状态栏ui->statusbar->addWidget(new QLab…

codeforces查看题解

文章目录 1. 步骤一&#xff1a;右键单击箭头指向位置&#xff0c;根据提示打开链接2. 步骤二&#xff1a;左键单击箭头指向位置3. 结果&#xff1a;红线上方是参考代码&#xff0c;下方是测试样例4. 补充&#xff1a;① 右边这个方框可以筛选想要查看代码的状态(Accepted、Wro…

AI在医学领域:残差扩散模型预测特发性肺纤维化 (IPF)

关键词&#xff1a; IPF 进展预测、残差扩散模型、临床信息 特发性肺纤维化&#xff08;Idiopathic Pulmonary Fibrosis&#xff0c;IPF&#xff09;是一种严重且不可逆的肺部疾病&#xff0c;它会导致肺部组织出现瘢痕和增厚&#xff0c;从而引起呼吸困难。。及时对IPF进行治…

Unity入门4——常用接口

C#中常用类和接口 DateTime&#xff1a;表示某个时刻 DateTime.Now&#xff1a;拿到系统当前时间DtaTime.TimeOfDay&#xff1a;获取此实例当天的时间 Quaternion&#xff1a;用来旋转&#xff0c;采用四元数&#xff0c;由w&#xff08;实部&#xff09;和x,y,z&#xff08;虚…