首页 > 编程语言 >JavaSE基础知识分享(九)

JavaSE基础知识分享(九)

时间:2024-08-18 21:26:54浏览次数:8  
标签:list List 基础知识 static 集合 JavaSE 分享 异常 public

写在前面

今天继续将集合后面的部分,还会加一点JavaIO流的知识!

关于 Java 增强 for 循环和 Collections 类概述:

增强 for 循环

概述

增强 for 循环用于简化数组和 Collection 集合的遍历。它使代码更简洁,易于阅读。

格式

for (元素数据类型 变量 : 数组或者 Collection 集合) {
    // 使用变量,该变量就是元素
}

好处

  • 简化遍历代码
  • 避免使用迭代器时可能出现的复杂性

注意事项

  • 增强 for 循环的目标对象(数组或集合)需要进行 null 判断,以避免 NullPointerException

示例

假设有一个 List<String> 集合 list,遍历这个集合的传统 for 循环如下:

for (int i = 0; i < list.size(); i++) {
    String item = list.get(i);
    System.out.println(item);
}

使用增强 for 循环可以简化为:

for (String item : list) {
    System.out.println(item);
}

Collections

概述

Collections 是 Java 提供的一个工具类,用于对集合进行操作。它包含了许多静态成员方法,可以对集合进行各种操作。

静态成员方法

  • public static <T> void sort(List<T> list)
    List 进行排序。

  • public static <T> int binarySearch(List<?> list, T key)
    在排序的 List 中进行二分查找。

  • public static <T> T max(Collection<?> coll)
    返回集合中最大元素。

  • public static void reverse(List<?> list)
    反转 List 中元素的顺序。

  • public static void shuffle(List<?> list)
    随机打乱 List 中元素的顺序。

同步集合

将不安全的集合转换为线程安全的集合。

  • public static <T> Collection<T> synchronizedCollection(Collection<T> c)
    返回由指定集合支持的同步(线程安全)集合。

  • public static <T> List<T> synchronizedList(List<T> list)
    返回由指定列表支持的同步(线程安全)列表。

  • public static <K, V> Map<K, V> synchronizedMap(Map<K, V> m)
    返回由指定地图支持的同步(线程安全)映射。

  • public static <T> Set<T> synchronizedSet(Set<T> s)
    返回由指定集合支持的同步(线程安全)集。

关于Java 输入输出流和异常处理的概述:

输入输出流

概述

Java 提供了一系列类和接口来处理输入和输出操作。这些类主要分为字节流和字符流两大类。

字节流

  • InputStream: 所有字节输入流的基类。
  • OutputStream: 所有字节输出流的基类。
  • 常用类:
    • FileInputStream: 从文件中读取字节数据。
    • FileOutputStream: 向文件中写入字节数据.
    • BufferedInputStream: 带有缓冲区的输入流,提高效率。
    • BufferedOutputStream: 带有缓冲区的输出流,提高效率。

字符流

  • Reader: 所有字符输入流的基类。
  • Writer: 所有字符输出流的基类.
  • 常用类:
    • FileReader: 从文件中读取字符数据。
    • FileWriter: 向文件中写入字符数据。
    • BufferedReader: 带有缓冲区的字符输入流,通常用于读取文本行。
    • BufferedWriter: 带有缓冲区的字符输出流,通常用于写入文本行。

异常处理

概述

异常是指 Java 程序在编译或运行过程中遇到的不正常情况。异常处理机制用于处理这些情况,以避免程序崩溃。

Throwable

  • Error: 表示严重的错误,通常不需要应用程序去捕获或处理。
  • Exception: 表示程序运行过程中发生的异常情况,程序可以捕获和处理。

异常的分类

  • 编译时期异常: 需要在编译时处理(例如:IOException, SQLException)。这些异常必须用 try...catch 语句块处理,或者在方法签名中使用 throws 声明。
  • 运行时期异常 (RuntimeException): 不需要在编译时处理(例如:NullPointerException, ArrayIndexOutOfBoundsException)。这些异常可以在运行时被捕获,但不强制要求处理。

异常的处理

  • try...catch...finally:
    try {
        // 可能引发异常的代码
    } catch (ExceptionType e) {
        // 处理异常的代码
    } finally {
        // 无论是否发生异常,都会执行的代码
    }
    
  • throws:
    在方法定义上声明异常,表明该方法可能抛出异常,调用者需要处理或继续抛出。
    public void myMethod() throws IOException {
        // 方法体
    }
    
  • throw:
    在方法内部抛出异常。
    if (condition) {
        throw new CustomException("Custom exception message");
    }
    

自定义异常

自定义异常类可以扩展 ExceptionRuntimeException

public class CustomException extends Exception {
    public CustomException(String message) {
        super(message);
    }
}

好了今天的分享就结束了,之后我将继续分享IO流后面的内容!

标签:list,List,基础知识,static,集合,JavaSE,分享,异常,public
From: https://www.cnblogs.com/cjybigdatablog/p/18366128

相关文章

  • IC验证面试经验分享——UVM篇
    验证最需要会的技能树是什么?!那肯定是非UVM莫属了,趁着校招之际,准备IC面试的ICer赶快码住!IC验证面试经验分享UVM篇一、UVM验证平台组件二、UVM_component和uvm_object三、sequence启动方式四、seqence是怎么给到dut的?五、p_sequencer和m_sequencer的区别1)含义2)区别六、......
  • IC验证面试经验分享——Verilog篇
    面试官(高冷脸):说说离职原因?(内心os:看看你小子是不是也被裁了还是初生牛犊不知道当今环境的恶劣在这玩裸辞)我(已读乱回):如果可以,我想和它回到那天相遇,让时间停止那场面试,红线划过拒绝offer的按钮,我用尽全力。–改自歌曲《如果可以》(内心os:挥手错的才能和对的相拥)IC验证......
  • 黑马毕设分享《SpringBoot大学生体质测试管理系统》(源码+lw+部署文档+讲解等)
    文章目录1.前言黑马设计——专注大学生的项目实战开发,免费讲解,毕业答疑辅导黑马设计工作室简介:黑马设计是一家专注大学生的项目实战开发,免费讲解,毕业答疑辅导的工作室✅,创始人是硕士毕业于华南理工大学,工科专业,目前团队成员全职+兼职上百余人,运营线上店铺2家,与B站(IT实战,......
  • javaSE
    JDK的安装与卸载卸载首先在控制面版上卸载---》需要在环境变量上删除配置。安装直接下载install版的jdk直接安装即可配置环境变量(当前电脑在任何位置都能使用jdk中bin目录的命令)我的电脑--》属性--》高级属性设置--》环境变量--》path添加jdk安装目录中的bin文件路径C:\P......
  • javaSE面向对象
    面向对象思想编程学习面向对象内容的三条主线Java类及类的成员:(重点)属性、方法、构造器;(熟悉)代码块、内部类面向对象的特征:封装、继承、多态、(抽象)其他关键字的使用:this、super、package、import、static、final、interface、abstract等方法(对功能进行封装,实现代码的复用)方......
  • 【JavaSec】JDK动态代理初探
    JDK动态代理初探文章目录JDK动态代理初探静态代理动态代理静态代理用户接口:publicinterfaceIUser{voidshow();voidcreate();voidupdate();}用户实现类:/***实现类*/publicclassUserImplimplementsIUser{publicUserI......
  • 分享!! 如何自定义权限校验的注解并用AOP拦截实现权限校验
    CustomizepermissionverificationannotationandimplementitwithAOP详细步骤创建自定义注解自定义如下解释一下:@Target(ElementType.METHOD)//指定为method上使用的注解@Retention(RetentionPolicy.RUNTIME)//在运行时保留StringmustRole()default""//注......
  • Linux基础知识学习(一)
    一.简介Linux内核最初只是由芬兰人林纳斯·托瓦兹(LinusTorvalds)在赫尔辛基大学上学时出于个人爱好而编写的。Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX(可移植操作系统接口)和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。Linux能运......
  • 「OC」探索CALayer:基础知识与实用技巧简要介绍
    「OC」探索CALayer:基础知识与实用技巧简要介绍文章目录「OC」探索CALayer:基础知识与实用技巧简要介绍前言认识CALayerCALayer的相关属性UIView和CALayer区别联系创建UIView和CALayer的原因开始创建CALayer视图层级CALayers和Sublayersposition与anchorPoint(锚点)CGIm......
  • 广告联盟项目怎么赚钱?教程免费分享
    我认为很多行业就像一层窗户纸,捅破了大家都能听得懂,谁能在这个行业赚到钱,主要在于你能不能深入了解这个行业的运作逻辑,和你有没有强大的执行力,做到这两点,你不赚钱都难。广告联盟项目也一样,听懂了,做到了,才能得到一个好的结果。一、项目介绍广告联盟项目属于互联网上比较古老的......