4.4java学习总结

包装类

java给出了一组包装类可以将基本数据类型包装成对象,分别为Byte、Short、Integer、Long、Float、Double、Character、Boolean,对应不同的基本数据类型。

基本数据类型

包装类

int

Integer

char

long

Character

Long

float

Float

double

Double

short

Short

byte

Byte

boolean

Boolean

其中只有int和char的包装类需要特殊记一下其它的包装类都是对应的基本数据类型的首字母大写得出来的.

java支持自动自动装箱,所以可以直接把基本数据类型的值直接赋给包装类.

集合

常用的集合:HashMap,ArrayList,LinkedList;

当要用数组保存的数据的数量未知时,就可以用集合来保存,集合会自动增加内存所以不会出现内存不够用的情况.

数组能保存基本数据类型和引用数据类型,集合比他广泛,集合能保存数据类型(对象),但不能保存引用数据类型,要注意的是当保存的是基本数据类型时会自动将它装箱变成对象.

集合分为两种,一种是单列集合,另一种是双列集合,双列集合与单列集合是一一对应的.

单列集合: 只保存一个值,访问通过下标来完成.

双列集合: 保存两个值(Key,Value),这样访问就可以通过用户指定的Key来找到对应的Value.

异常处理

package com.nsy.arrayClass;

import java.util.InputMismatchException;
import java.util.Scanner;

public class a9_Test_Input_01 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        /*
         * 当我们只写一个try{}的时候,会报错:
         *     Syntax error, insert "Finally" to complete TryStatement
         *     语法错误,插入“Finally”来完成Try块
         *
         * 总结: try不能单独存在,必须结合catch或finally来使用    (两个必须有一个)
         *     try块中没有异常,会执行finally(如果有)
         *  try块中有异常,会执行对应的catch块(如果有),try中异常发生点之后的代码将不会执行
         */
        try{
            //try块中放可能发生异常的代码。
            //如果执行完try且不发生异常,则接着去执行finally块和finally后面的代码(如果有的话)。
            //如果发生异常,则尝试去匹配catch块。异常点之后的代码不会运行

            //这行代码有可能出错
            int num1 = sc.nextInt(); //这行代码如果出现异常,那么后面的输出语句就不执行
            int num2 = sc.nextInt();
            System.out.println(num1+"\t"+num2);
            System.out.println(num1/num2);
            String str = null;
            System.out.println(str.charAt(0));

        }catch(InputMismatchException | NullPointerException e) {
            // catch(异常对象)    当异常发生了,catch就会捕获对应的异常
            // 每一个catch块用于捕获并处理一个特定的异常,或者这异常类型的子类。Java7中可以将多个异常声明在一个catch中。 catch(Exception1 | Exception2 | Exception3 e)
            // catch后面的括号定义了异常类型和异常参数。如果异常与之匹配且是最先匹配到的,则虚拟机将使用这个catch块来处理异常。
            // 在catch块中可以使用这个块的异常参数来获取异常的相关信息。异常参数是这个catch块中的局部变量,其它块不能访问。
            // 如果当前try块中发生的异常在后续的所有catch中都没捕获到,则先去执行finally,然后到这个函数的外部caller中去匹配异常处理器。
            // 如果try中没有发生异常,则所有的catch块将被忽略。
            System.out.println("catch块 - try里面发生了异常 - 空指针和输入不匹配异常都走这个Catch");
        }catch(java.lang.ArithmeticException e){
            e.getMessage();
            System.out.println("算数异常:除数不能为0");

        }catch(Exception e){
            System.out.println("程序发生未知异常");
        }finally {
            // finally块通常是可选的。
            // 无论异常是否发生,异常是否匹配被处理,finally都会执行。
            // 一个try至少要有一个catch块,否则, 至少要有1个finally块。但是finally不是用来处理异常的,finally不会捕获异常。
            // finally主要做一些清理工作,如流的关闭,数据库连接的关闭等。 
            System.out.println("finally块");
        }
        System.out.println("异常捕获之后的代码");
    }
}

学长写的有关集合和异常处理的博客:http://t.csdnimg.cn/sMfsk

接口

创造接口的目的是为了规范方法的格式(返回值,参数等).

1.接口用关键字interface来定义

格式: public interace 接口名{}

2.接口不能实例化(不能有对象)

3.类和接口之间是实现与被实现的关系,通过implements关键字来表示

格式: public class 类名 implements 接口1,接口2.........{ (重写接口里的方法) }

4.接口和接口之间可以继承(单继承或多继承)

格式: public interface 接口名 extends 接口1,接口2 {}

成员变量

只能是常量.

默认修饰符: public static final

构造方法

成员方法

只能是抽象方法.

默认修饰符: public abstract

用default定义的方法一般是不用被强制重写的,这样就方便了以后增加接口.

样例:
public interface Inter {
    public abstract void method();
    public default void show(){
        System.out.println("接口中的默认方法");
    }
}
public class wuyon implements Inter{       //在这个实现类中我们没有重写默认类
    @Override
    public void method() {
        System.out.println("重写后的方法");
    }
}
import java.util.*;
public class test{
    public static void main(String[] args) {
        wuyon a=new wuyon();
        a.show();
        a.method();
    }
}
运行结果

public class wuyon implements Inter{             //重写两个方法
    @Override
    public void method() {
        System.out.println("重写后的方法");
    }
    @Override
    public  void show() {
        System.out.println("重写后的默认方法");
    }
}
运行结果

强行在重写方法中加上default报错

用static修饰的方法无法被重写

只允许在本接口中被调用

接口的应用

类和接口的关系:

类可以在继承类的同时实现多个接口或只实现一个接口(如果多个接口有相同的方法,只要重写一遍).

接口和接口的关系:

继承关系,可以单继承,也可以多继承.(实现类要重写所有的抽象方法)

内部类

内部类是建立在类里面的类.

如:

public class dog{
    class body{
        public String name="身体";
    }
}

body为dog的内部类,dog为外部类.

内部类可以随意调用外部类的成员变量(包括私有变量).

外部类如果想要调用内部类的成员必须创建一个对象,通过对象来实现.

内部类的分类

内部类分为成员内部类,静态内部类,局部内部类,匿名内部类(重点).

成员内部类

写在成员位置,属于外部类的成员.

获取成员内部类对象的方式:

1.外部类编写方法,对外提供内部类对象(private)

2.直接创建

格式: 外部类名.内部类名 对象名 =外部类对象.内部类对象;

样例:Outer.Inner oi =new Outer().new Inner();

当内部变量与外部变量产生同名时正确的调用方法:

每一个内部类中都有一个隐藏的成员变量this用与保存外部类对象的地址

静态内部类

写在成员位置,属于外部类的成员,与成员内部类相似只是多了一个static进行修饰,可以说它是一种特殊的成员内部类.

获取静态内部类对象的方式:

直接创建:

格式 : 外部类名.内部类名 对象名 =new 外部类名.内部类名();

样例 : Outer.Inner oi =new Outer.Inner();

静态内部类只能访问外部类中的静态变量和静态方法,如果想要访问非静态的需要创建外部类的对象

调用非静态方法的格式: 先创建对象,用对象调用

调用静态方法的格式:外部类名.内部类名.方法名();

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

设计模式——抽象工厂模式02

如果是工厂模式是对同一类商品进行抽象然后生产。 那么抽象工厂模式是对工厂的抽象,每个工厂都能生产多种产品,不同工厂生产的商品性质相同,但外观,品牌会略有差异。 设计模式,一定要敲代码理解 商品抽象 public in…

Mysql安装(命令方式安装)

下载mysql压缩包 Mysql可以使用界面安装,也可以使用命令的方式安装,今天我们使用命令的方式安装mysql。首先下载mysql压缩包(下载地址:https://dev.mysql.com/downloads/mysql/),解压到你想要安装的目录。 …

hbuilderX创建的uniapp项目转移到vscode

场景:一直使用hbuilderX开发的朋友想转移到vscode获取更好的TypeScript支持,所以想把整个项目目录拖到vscode进行开发,但发现运行不了,提示没有package.json等,并且不能执行pnpm命令 首先,我们先来看一下h…

vivado 配置存储器器件编程2

为双 QSPI (x8) 器件创建配置存储器文件 您可使用 write_cfgmem Tcl 命令来为双 QSPI (x8) 器件生成 .mcs 镜像。此命令会将配置数据自动拆分为 2 个独立 的 .mcs 文件。 注释 : 为 SPIx8 生成 .mcs 时指定的大小即为这 2 个四通道闪存器件的总大小。…

专有钉钉微应用埋点以及本地调试埋点总结

最近在对接浙政钉&#xff0c;稳定性监控、通用采集 SDK、基础埋点、基础埋点&#xff0c;每次发布上去&#xff0c;工作人员那边反馈抓取不到信息 稳定性监控代码、通用采集 SDK index.html <!-- 流量稳定监控 S 关于埋点上线打开--><script src"https://wpk-…

动规训练3

一、按摩师 1、题目解析 简而言之就是&#xff0c;找到一个按摩师的预约总是长的最长方案&#xff0c;还有一个限制条件&#xff0c;选取的预约两两不相邻。 2、算法原理 a状态表示方程 小技巧&#xff1a;经验题目要求 dp[i]表示以这个节点为结尾&#xff0c;最长的预约时…

鸿蒙开发第一课-工具与HelloWorld

武汉数字人才实训基地 一、初始HarmonyOS以及DevEco Studio 2023年8月4日&#xff0c;HarmonyOS 4.0操作系统正式发布。华为鸿蒙Next&#xff08;HarmonyOS Next&#xff09;操作系统开发者预览版(Developer Preview)发布。超过7亿台设备搭载了HarmonyOS 系统 2024年&#xf…

tigramite教程(七)使用TIGRAMITE 进行条件独立性测试

文章目录 概述1 连续数值变量1.1 ParCorr 偏相关&#xff08;ParCorr类&#xff09;1.2 鲁棒偏相关&#xff08;RobustParCorr&#xff09;非线性检验1.3 GPDC1.4 CMIknn 2a. 分类/符号时间序列2b. 混合分类/连续时间序列多变量X和Y的测试 概述 这个表格概述了 X ⊥ Y ∣ Z X\…

挑选人力资源管理系统,专家推荐的6款必看!

在当今数字化时代&#xff0c;人力资源管理系统已成为企业高效运营和持续发展的重要工具。本文为您介绍的6款好用的人力资源管理系统有Zoho People、金蝶人力云、Workday、北森eHR、用友人力云、易路&#xff0c;帮助您找到最适合自己企业的解决方案。 一、Zoho People Zoho P…

汽车网络安全管理

汽车网络安全管理 我是穿拖鞋的汉子&#xff0c;魔都中坚持长期主义的汽车电子工程师。 老规矩&#xff0c;分享一段喜欢的文字&#xff0c;避免自己成为高知识低文化的工程师&#xff1a; 屏蔽力是信息过载时代一个人的特殊竞争力&#xff0c;任何消耗你的人和事&#xff0c…

《C++程序设计》阅读笔记【3-数组】

&#x1f308;个人主页&#xff1a;godspeed_lucip &#x1f525; 系列专栏&#xff1a;《C程序设计》阅读笔记 本文对应的PDF源文件请关注微信公众号程序员刘同学&#xff0c;回复C程序设计获取下载链接。 1 数组1.1 概述1.2 数组初始化1.2.1 概述1.2.2 字符数组的初始化1.2.…

流行的API架构学习

几种流行的API架构风格图 SOAP&#xff08;Simple Object Access Protocol&#xff09; 优点&#xff1a;SOAP 是一种基于 XML 的通信协议&#xff0c;具有良好的跨平台和跨语言支持。它提供了丰富的安全性和事务管理功能&#xff0c;并支持复杂的消息交换模式。 缺点&#xf…

buu刷题(2)

[护网杯 2018]easy_tornado web buuctf [护网杯 2018]easy_tornado1_[护网杯 2018]easy_tornado 1-CSDN博客 render是渲染HTML页面用到的函数 这应该是一个模板注入漏洞 访问/fllllllllllllag&#xff0c;自动跳到了这个页面&#xff0c;可以看到 url 上有个msgError, 尝试将…

力扣 904.水果成篮

题目&#xff1a; 题目理解&#xff1a;fruits里的每个数字表示一种类型水果&#xff0c;相同数字表示同种类型水果。 class Solution {public int totalFruit(int[] fruits) {// 用HashMap来表示篮子&#xff0c;key表示水果类型&#xff0c;value表示多少颗树Map<Intege…

工厂车间系统|基于springboot的工厂车间管理系统设计与实现(附项目源码+论文)

基于springboot工厂车间管理的设计与实现 一、摘要 社会发展日新月异&#xff0c;用计算机应用实现数据管理功能已经算是很完善的了&#xff0c;但是随着移动互联网的到来&#xff0c;处理信息不再受制于地理位置的限制&#xff0c;处理信息及时高效&#xff0c;备受人们的喜爱…

R语言数据操纵:如何构建子集

目录 向量的子集 矩阵的子集 数据框的子集 列表的子集 如何处理缺失值 向量化操作 构建子集的基本方法&#xff1a; 1.使用[]提取一个或多个类型相同的元素 2.使用[[]]从列表或者数据框中提取元素 3.使用$按名字从列表或数据框中提取元素 向量的子集 比如有一个向量…

uniapp:小程序腾讯地图程序文件qqmap-wx-jssdk.js 文件一直找不到无法导入

先看问题&#xff1a; 在使用腾讯地图api时无法导入到qqmap-wx-jssdk.js文件 解决方法&#xff1a;1、打开qqmap-wx-jssdk.js最后一行 然后导入&#xff1a;这里是我的路径位置&#xff0c;可以根据自己的路径位置进行更改导入 最后在生命周期函数中输出&#xff1a; 运行效果…

mybatis流式游标查询-导出DB大数据量查询OOM问题

问题场景 Mysql数据处理类型分以下三种 com.mysql.cj.protocol.a.result.ResultsetRowsStatic&#xff1a;普通查询&#xff0c;将结果集一次性全部拉取到内存 com.mysql.cj.protocol.a.result.ResultsetRowsCursor&#xff1a;游标查询&#xff0c;将结果集分批拉取到内存&…

【Python基础教程】5. 数

&#x1f388;个人主页&#xff1a;豌豆射手^ &#x1f389;欢迎 &#x1f44d;点赞✍评论⭐收藏 &#x1f917;收录专栏&#xff1a;python基础教程 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共同学习、…

文本处理语言awk基本语法

文章目录 运算符流程控制函数封装 awk语言初步 AWK 是一种强大的文本处理和数据解析工具&#xff0c;它支持丰富的运算符和流程控制语句。运算符方面&#xff0c;AWK 提供了基本的算术运算符&#xff08;, -, *, /, %, ^, **&#xff09;和赋值运算符&#xff08;, -, *, /, %…