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{       //在这个实现类中我们没有重写默认类@Overridepublic 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{             //重写两个方法@Overridepublic void method() {System.out.println("重写后的方法");}@Overridepublic  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();

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

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

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

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

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

相关文章

【python实战】--提取所有目录下所有Excel文件指定列数据

系列文章目录 文章目录 系列文章目录前言一、问题描述二、python代码1.引入库 总结 前言 一、问题描述 需要提取指定路径下所有excel文件中指定一列数据,汇总到新文件,(逐列汇总) 二、python代码 1.引入库 代码如下&#xff08…

UE4_X光效果设置_法线图影响透明度

UE4_X光效果设置_法线图影响透明度 2019-03-22 13:37 Exponentin 设置轮廓光扩散度 baseReflectFactionIn 设置内部黑色的亮度值。nromal,连接应用一张法线图,Lerp两色插值,给两个数值,制造一个渐变。 法线图影响透明度&#xf…

在一套Dockerfile中完成编译和运行环境部署

大纲 解释型语言编译环境解释环境编译型语言编译环境运行环境 方法编译环境安装系统安装编译依赖下载代码特殊处理(可以忽略)编译准备(可以忽略)编译打包依赖(编译结果) 运行环境安装操作系统安装运行时依赖…

Leetcode 39. 组合总和

心路历程: 这道题就差把回溯算法写在题面上了,其实这道题如果不是要遍历所有的可能情况,而是求某个最大最小值的话,就是一道经典的完全背包问题了。 这道题有一个注意的点,就是如何通过‘控制候选集合’来实现‘不重复…

Android java基础_类的继承_android 类继承(2)

运行结果:rootubuntu:/home/topeet/guyilian# javac Ext2.java rootubuntu:/home/topeet/guyilian# java Ext2 10 ustc **子类继承父类的方法和属性都可以进行覆写,我们在子类覆写父类的printInfo方法。**class Person { private int age; public void …

AI技术在金融领域/银行业的应用和风险

前言 随着科技的不断发展,人工智能(AI)技术已经在各行各业得到了广泛的应用,其中包括银行业。银行业作为经济的重要组成部分,一直在不断地探索和应用新技术,以提升服务效率、风险管理和客户体验。然而&…

SpringBoot + Vue + Nginx前后端分离项目本地部署(Win)

SpringBoot Vue Nginx前后端分离项目本地部署步骤 本地部署所需步骤 将后端打包好的jar文件和前端生成的静态资源文件放入同一目录启动Spring Boot应用配置Nginx并重启访问 http://your_domain 查看部署效果 前端Vue项目部署 将写好的vue代码的目录下运行 npm run build …

【MATLAB源码-第32期】基于matlab的通信及雷达中常用伪随机码m序列的仿真。

操作环境: MATLAB 2022a 1、算法描述 M序列,也称为最大长度序列或者伪随机序列,是一种特殊的二进制序列。它的特点是在有限的长度内,尽管它是伪随机的,但它会在特定的周期内不重复地循环。 在数学上,M序…

设计模式——建造者模式03

工厂模式注重直接生产一个对象,而建造者模式 注重一个复杂对象是如何组成的(过程),在生产每个组件时,满足单一原则,实现了业务拆分。 设计模式,一定要敲代码理解 组件抽象 public interface …

腾讯云4核8G服务器多少钱?4C8G可以干啥?

腾讯云4核8G服务器多少钱?腾讯云4核8G轻量应用服务器12M带宽租用价格646元15个月,活动页面 txybk.com/go/txy 活动链接打开如下图所示: 腾讯云4核8G服务器优惠价格 这台4核8G服务器是轻量应用服务器,详细配置为:轻量4核…

JRT简化开发环境

JRT是完全前后端分离的项目,实际工程是逻辑上完全前后端分离,代码层级和工程是不离的。这样就可以做到一键启动,同时又有分离的好处。开始页面后缀都沿用aspx,最开始考虑过修改后缀为html,当时觉得搞aspx也不错&#x…

Mysql安装(命令方式安装)

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

算法实验二 矩阵最小路径和 LIS

算法实验课二 矩阵最小路径和 leetcode裸题 最小路径和 给定一个包含非负整数的 *m* x *n* 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。 说明:每次只能向下或者向右移动一步。 示例 1: 输入&…

算法 - 符号表-上

🏠个人主页:尘觉主页 文章目录 算法 - 符号表前言初级实现1. 链表实现无序符号表2. 二分查找实现有序符号表 二叉查找树1. get()2. put()3. 分析4. floor()5. rank()6. min()7. deleteMin()8. delete()9. keys()10. 分析 算法 - 符号表 前言 符号表&am…

intellij idea 使用git撤销(取消)commit

git撤销(取消) 未 push的 commit Git,选择分支后,右键 Undo Commit ,会把这个 commit 撤销。 git撤销(取消) 已经 push 的 commit 备份分支内容: 选中分支, 新建 分支,避免后续因为操作不当,导…

iOS-App:App Store新的审核政策,在应用隐私清单中声明和解释使用特定API的原因

App Store新的审核政策,在应用隐私清单中声明和解释使用特定API的原因 设备/引擎:Mac(11.6)/Mac Mini 开发工具:终端 开发需求:苹果官方邮件通知, App Store新的审核政策,在应用隐…

【Java笔记】多线程0:JVM线程是用户态还是内核态?Java 线程与OS线程的联系

文章目录 JVM线程是用户态线程还是内核态线程什么是用户态线程与内核态线程绿色线程绿色线程的缺点 线程映射稍微回顾下线程映射模型JVM线程映射 线程状态操作系统的线程状态JVM的线程状态JVM线程与OS线程的状态关系 Reference 今天复盘一下Java中,JVM线程与实际操作…

CCIE-08-BGP-Listen

目录 实验条件网络拓朴实验目的 开始配置配置动态路由协议配置BGP检查邻居配置 实验条件 网络拓朴 实验目的 将R1配置成Listen状态,自动接收来自其它路由器的建邻居请求、建立邻居 开始配置 配置动态路由协议 这里用EIGRP来配置,保证网络的可达性&a…

替代 Redis 和 Memcached:25 倍吞吐量! | 开源日报 No.213

dragonflydb/dragonfly Stars: 22.4k License: NOASSERTION Dragonfly 是一个内存数据存储,适用于现代应用工作负载,可替代 Redis 和 Memcached。与传统的内存数据存储相比,Dragonfly 提供了 25 倍的吞吐量、更高的缓存命中率和更低尾部延…

基于springboot的粮仓管理系统

文章目录 项目介绍主要功能截图:部分代码展示设计总结项目获取方式 🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 &…