java03

目录

一、Java 流(Stream)、文件(File)和IO

java流(Stream)

java文件操作

java io

二、java Scanner类

next()和nextline()区别:

三、java异常处理

 常见异常类型

throw/throws关键字

final异常:

通用异常

四、继承

继承的概念

supper关键字


package com.company;import java.io.*;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;
import java.util.stream.Collectors;
import java.util.stream.Stream;

Java 流(Stream)、文件(File)和IO

java流(Stream)

用于处理集合数据,Stream是一种可以执行一系列操作(过滤。映射。减少等)以处理数据的抽象

Stream
//创建Stream
class Streamtest01{public static void main(String[]args){//从集合创建StreamList<String> list= Arrays.asList();Stream<String>Stream=list.stream();//从数组创建StreamString[]array={"x","y","z"};Stream<String>stream2=Arrays.stream(array);// 使用Stream.of创建StreamStream<String> stream3 = java.util.stream.Stream.of("1", "2", "3");}
}
stream常见操作
class Streamtest02{public static void main(String[]args){List<Integer>number=Arrays.asList(1,2,3,4,5,6,7);//过滤偶数List<Integer>evennumber= (List<Integer>) number.stream().filter(n->n%2==0).collect(Collectors.toList());System.out.println(evennumber);//将数字平方List<Integer>Snumber=number.stream().map(n-> n * n).collect(Collectors.toList());System.out.println(Snumber);//计算总和int   sum=number.stream().reduce(0,Integer::sum);System.out.println(sum);}
}

java文件操作


java文件操作(file) java的java.io.file类用来表示文件和目录路径名,可以使用File类创建、删除、检查文件和目录的属性等

//创建文件和目录
class Filetest01{public static void main(String[]args){try{//创建文件File file=new File("exampie.txt");if(file.createNewFile()){System.out.println(file.getName());}else{System.out.println("file alread exists");}File file01=new File("www.txt");if(file01.createNewFile()){System.out.println(file01.getName());}else{System.out.println("创建失败");}//创建目录File diretory=new File("exampledir");if(diretory.mkdir()){System.out.println(diretory.getName());}else{System.out.println("创建失败");}} catch (Exception e) {e.printStackTrace();}}
}
//文件的读取和写入
class filerw{public static void main(String[]args){try{//写入文件FileWriter writer=new FileWriter("example.txt");writer.write("hello");writer.close();//读取文件FileReader reader=new FileReader("example.txt");int character;while((character=reader.read())!=-1){System.out.print((char) character);}reader.close();} catch (Exception e) {e.printStackTrace();}}}

java io


java io (输入输出)javaio库提供了多种输入输出流类,用于处理字节和字符数据,主要分为字节流和字符流两种

//字节流
//字节流用于处理8位字节数据,主要类是inputstream和outputstream以及其子类
class byteStream{
public static void main(String[]args)
{try{//写入字节文件FileOutputStream fos=new FileOutputStream("bytrFile.txt");String date="hello,b";fos.write(date.getBytes());fos.close();//读取字节文件FileInputStream fis=new FileInputStream("bytrFile.txt");int bytedate;while((bytedate=fis.read())!=-1){System.out.print((char)bytedate);}fis.close();} catch (Exception e) {System.out.println("错误");e.printStackTrace();}
}
}
//字符流
//字符流用于处理16位字符数据主要是reader和writer及其子类
class charstream{public static void main(String[]args){try{FileWriter writer=new FileWriter("charstream.txt");writer.write("hello,char");writer.close();FileReader reader=new FileReader("charstream.txt");int arr;while ((arr=reader.read())!=-1){System.out.print((char) arr);}} catch (Exception e) {System.out.println("失败");e.printStackTrace();}}
}


java Scanner类

我们可以通过scanner类来获取用户的输入。创建scanner类的基本语法:Scanner s=new scanner(System.in);
数据输入
class Scannertest01{public  static void main(String[]args){//使用next方法,空格之后的无法读取//从键盘接收数据Scanner scan=new Scanner(System.in);//next方式接收字符串System.out.println("next方式接收:");//判断是否还有输入if(scan.hasNext())//判断是否还有输入的数据{String str1=scan.next();//获取数据并将数据赋值给str1System.out.println(str1);}scan.close();//使用nextline方法//从键盘接收数据Scanner scan2=new Scanner(System.in);System.out.println("nextline方法接收");if(scan2.hasNextLine()){String str2=scan2.nextLine();System.out.println(str2);}scan2.close();
}

next()和nextline()区别:


next():1、一定要读取有效字符之后才可以结束输入
2、对输入有效字符之前的空白,会自动将其去掉
3、只有输入有效字符后才将其后边的空白当成分隔符或者结束符
4、不能得到带空格的字符串
nextline():1、以enter为结束符,也就是说返回回车键之前的所有字符
2、可以获得空白字符

java异常处理

 常见异常类型


经常出现的异常包含以下几大类:
因为用户发生的异常:
1、用户输入流非法数据
2、要打开的文件不存在
3、网络通信时连接中断,或者jvm内存溢出
因为物理错误引起的异常:
1、检查性异常
用try捕获
try {
    // 可能会抛出异常的代码
} catch (IOException e) {
    // 处理异常的代码
}
2、运行时异常
在编译时不强制性要求,通常是由程序中的错误引起的,这类异常可以原则处理,但并非强制性要求
3、错误
错误不是异常,而是脱离程序员控制的问题,错误在代码中通常被忽略,比如当栈溢出的时候,一个错误就发生了,它们在编译也检查不到
捕获异常:
使用try和catch关键字可以捕获异常,将代码放在可能出错的地方
代码块中的代码称为保护代码,catch语句包含要捕获异常类型的声明,
当保护代码中发生一个异常时,后面的catch就会被检查,如果异常发生在catch块中,异常会被传递到catch块,这和传递参数的方法是一样的

throw/throws关键字


用来处理异常,throw关键字用于在代码中抛出异常,throws关键字用于在方法声明中指定可能会抛出的异常类型
throw:
当代码执行到某一个条件下无法再继续执行时,可以使用throw关键字抛出异常,以告知调试者当前代码的执行状态
throws:
用于在方法声明中指定该方法可能抛出的异常,当方法内部抛出指定类型的异常时,该异常会被传力给调用该方法的代码,并且在该代码中处理异常


final异常:


final关键字用来创建在try代码块后面执行的代码块
无论是否发生异常,final代码块中的代码总是被执行
在final代码块中,可以运行清理类型等收尾善后性质的语句
final代码块出现在catch代码块最后
语法:
try{
  // 程序代码
}catch(异常类型1 异常的变量名1){
  // 程序代码
}catch(异常类型2 异常的变量名2){
  // 程序代码
}finally{
  // 程序代码
}
声明自定义异常
在java中可以自定义异常,编写自己的异常类时,需要记住以下几点:
所有异常都必须是throwable的子类
如果希望写一个检查性异常类,那么需要继承RuntimrException类
class MyException extends Exception{
}


通用异常


在java中定义了两种类型的异常和错误
JVM(java虚拟机)异常:由JVM抛出的异常或者错误
程序级异常:由程序或者API程序抛出的异常
异常处理的最佳实践
在合适的位置进行捕获,对异常进行适当的处理。以确保程序的稳定性和可靠性
避免过度捕获异常,应该尽量精准捕获特定类型的异常
使用final块来十方资源,比如关闭文件、数据库等,以保证数据的正常链接
有限处理受检异常,避免将受检异常转换为非受检异常

//如果num<0,抛出一个异常
class yicghang{public void checkNumber(int num) {if (num < 0) {throw new IllegalArgumentException("Number must be positive");}}
}
//try catch捕获异常class ExcepTest{public static void main(String args[]){try{int a[] = new int[2];System.out.println("Access element three :" + a[3]);}catch(ArrayIndexOutOfBoundsException e){System.out.println("Exception thrown  :" + e);}System.out.println("Out of the block");}
}


继承

继承的概念

继承就是子类继承父类的行为和特征,使子类对象具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为 类的继承格式 class 父类 { } class 子类 extends 父类 { } supper关键字 java继承的类型:单继承、多重继承、不同类型继承同一个类、多继承(java不支持多继承)

//开发动物类,其中动物分别为企鹅以及老鼠,要求如下:
//
//企鹅:属性(姓名,id),方法(吃,睡,自我介绍)
//老鼠:属性(姓名,id),方法(吃,睡,自我介绍)
class qie{private  String name;private  int id;public qie(String myname,int myid){name=myname;id=myid;}public void eat(){System.out.println(name+"吃");};public void sleep() {System.out.println(name + "睡");}public void introduction(){System.out.println("大家好!我是"+name);}}class mouse{private String name;private int id;public mouse(String myname,int myid){name=myname;id=myid;}public void eat(){System.out.println(name+"吃");};public void sleep() {System.out.println(name + "睡");}public void introduction(){System.out.println("大家好!我是"+name);}
}
class animal{private String name;private int id;public animal(String myname,int myid){name=myname;id=myid;}public void eat(){System.out.println(name+"吃");};public void sleep() {System.out.println(name + "睡");}public void introduction(){System.out.println("大家好!我是"+name);}
}
class qie1 extends animal{public qie1(String myname, int myid) {super(myname, myid);//调用父类的构造函数}class mouse02 extends animal{public mouse02(String myname, int myid) {super(myname, myid);}}
}


supper关键字


1、访问父类的成员变量使用
这对于在子类中有相同名字的成员变量时很有用,以便明确指定你想要访问的是父类的成员变量

2、调用父类的构造函数

class qie1 extends animal{public qie1(String myname, int myid) {super(myname, myid);//调用父类的构造函数}
3、调用父类中的方法    super.print()//父类的print()方法

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

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

相关文章

如何更改 Mac 上 Java 的默认版本?

优质博文&#xff1a;IT-BLOG-CN 第一次运行/usr/libexec/java_home -V将输出类似以下内容&#xff1a; Matching Java Virtual Machines (3): 1.8.0_05, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home 1.6.0_65-b14-4…

安装JKS格式证书

--千金易得 知己难求 本文介绍如何在Tomcat服务器配置JKS格式的SSL证书&#xff0c;具体包括下载和上传证书文件&#xff0c;在Tomcat上配置证书文件和证书密码等参数&#xff0c;以及安装证书后结果的验证。成功配置SSL证书后&#xff0c;您将能够通过HTTPS加密通道安全访问To…

音频检测电路 | 声音传感器模块 | 口哨开关 | Arduino

音频检测电路 | 声音传感器模块 | 口哨开关 | Arduino 案例分析电路设计1. **基本音频检测电路设计**电路结构:2. **灵敏度调节原理**方法:3. **非 MCU 控制的 LED 触发**设计步骤:4. **电路示例**5. **示意图(文本描述)**总结实验方法案例分析 一个硅胶娃娃,挤压或拍打…

Docker原理及实例

目录 一 Docker简介及部署方法 1.1 Docker简介 1.1.1 什么是docker&#xff1f; 1.1.2 docker在企业中的应用场景 1.1.3 docker与虚拟化的对比 1.1.4 docker的优势 2 部署docker 2.1 容器工作方法 2.2 部署第一个容器 2.2.1 配置软件仓库 2.2.2 安装docker-ce并启动服…

大模型LLM的Token相关问题:模型不同,token计算不同,gpt对token的计算,我们如何选择token及token评估模型

大模型LLM的Token相关问题&#xff1a;模型不同&#xff0c;token计算不同&#xff0c;gpt对token的计算&#xff0c;如何选择token及token评估模型 一、gpt系列模型中 一个token是多少二、在不同的语言模型中&#xff0c;token的大小会有所不同吗&#xff1f;三、在构建语言模…

Power BI数据可视化:让数据跳舞的秘密武器

目录 1. 什么是Power BI? 2. 数据可视化的重要性 2.1 数据的“面子” 2.2 省时省力 3. 如何使用Power BI数据可视化? 3.1 数据导入 3.2 数据清洗 3.3 创建可视化 3.3.1 条形图和柱状图 3.3.2 饼图 3.3.3 线图 3.4 设计和美化 3.5 分享和发布 4. 常见问题排忧解…

【经验分享】CANOPEN协议驱动移植(基于CANfestival源码架构)

【经验分享】CANOPEN协议驱动移植(基于CANfestival源码架构&#xff09; 前言一、CANOPEN整体实现原理二、CANOPEN驱动收发三、Timer定时器四、Object Dictionary对象字典五、CANOPEN应用层接口六、CANOPEN 驱动移植经验总结 前言 本次CANOPEN移植基于CANfestival开源代码&…

Python实现Http Server及Https Server

目录 一、Python实现Http Server 1、实现Http Server 2、通过浏览器测试Http Server 3、通过Python实现客户端测试Http Server 二、Python实现Https Server 1、利用HTTPServer实现一个简单的Https Server 2、SSL生成证书及密码 一、Python实现Http Server 1、实现Http …

SpringBoot中MyBatis使用自定义TypeHandler

&#x1f604; 19年之后由于某些原因断更了三年&#xff0c;23年重新扬帆起航&#xff0c;推出更多优质博文&#xff0c;希望大家多多支持&#xff5e; &#x1f337; 古之立大事者&#xff0c;不惟有超世之才&#xff0c;亦必有坚忍不拔之志 &#x1f390; 个人CSND主页——Mi…

Spring Boot Web开发实践:响应参数的使用方法、IOC、DI和Bean基本介绍

主要介绍了SpringBootWeb响应参数的基本使用和spring框架的控制反转&#xff08;IOC&#xff09;和依赖注入&#xff08;DI&#xff09;以及Bean对象的声明、扫描、注入&#xff01;&#xff01;&#xff01; 目录 前言 响应参数 分层解耦 三层架构 分层解耦 IOC & …

第15届蓝桥杯青少组Scratch初级组省赛真题试卷

第十五届蓝桥杯青少组省赛Scratch初级组真题试卷 题目总数&#xff1a;10 总分数&#xff1a;360 选择题 第 1 题 单选题 Scratch运行以下程序&#xff0c;角色会说( )? A.29 B.31 C.33 D.35 第 2 题 单选题 scratch运行下列哪个程序后&#xff0c;宇航…

前端window.blur() 和 window.focus() 防止切屏的基本知识

目录 前言1. 基本知识2. Demo3. 切屏失效 前言 在前端开发中&#xff0c;防止用户切屏&#xff08;即切换到其他浏览器标签或窗口&#xff09;通常可以使用 window.blur() 和 window.focus() 方法来实现 由于以下知识点比较简单&#xff0c;对此不长篇大论的概述 1. 基本知识…

RabbitMQ 集群与高可用性

目录 单节点与集群部署 1.1. 单节点部署 1.2. 集群部署 镜像队列 1.定义与工作原理 2. 配置镜像队列 3.应用场景 4. 优缺点 5. Java 示例 分布式部署 1. 分布式部署的主要目标 2. 典型架构设计 3. RabbitMQ 分布式部署的关键技术 4. 部署策略和实践 5. 分布式部署…

解决银河麒麟桌面操作系统V10(特别是2101版本)中无法通过interfaces设置网络

解决银河麒麟桌面操作系统V10&#xff08;特别是2101版本&#xff09;中无法通过interfaces设置网络 1、问题简述2、解决方案1. 尝试删除ppp文件、重启2. 使用NetworkManager &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 1、问题简述 在…

day44——C++对C的扩充

八、C对函数的扩充 8.1 函数重载&#xff08;overload&#xff09; 1> 概念 函数重载就是能够实现"一名多用"&#xff0c;是实现泛型编程的一种 泛型编程&#xff1a;试图以不变的代码&#xff0c;来实现可变的功能 2> 引入背景 程序员在写函数时&#x…

适用于 Visual Studio 的 C++ 万能头

您可以通过 star 我固定的 GitHub 存储库来支持我&#xff0c;谢谢&#xff01;以下是我的一些 GitHub 存储库&#xff0c;很有可能对您有用&#xff1a; Proxy Everything - Open Source (PE-OS) QR Generator - Open Source (QG-OS) 用于在 Visual Studio 上预编译的 C 包含…

k8s的组件以及安装

目录 概念 k8s的使用场景 k8s的特点 核心组件 master主组件 1.kube-apiserver 2.etcd 3.kube-controller-manager 控制器 4.kube-scheduler node从节点组件 1.kubelet 2.kube-proxy 3.docker 总结 k8s的核心概念 安装k8s 架构 安装步骤 实验&#xff1a;创…

Linux学习笔记(4)----Debian压力测试方法

使用命令行终端压力测试需要两个实用工具&#xff1a;s-tui和stress sudo apt install s-tui stress 安装完成后&#xff0c;在终端中启动 s-tui实用工具&#xff1a; s-tui 执行后如下图&#xff1a; 你可以使用鼠标或键盘箭头键浏览菜单&#xff0c;然后点击“压力选项(Str…

Leetcode Day14排序算法

动态git可以看 :https://leetcode.cn/problems/sort-an-array/solutions/179370/python-shi-xian-de-shi-da-jing-dian-pai-xu-suan-fa/ 选择排序 def selection_sort(nums):n len(nums)for i in range(n):for j in range(i, n):if nums[i] > nums[j]:nums[i], nums[j] …

甲基化组学全流程生信分析教程

甲基化组学全流程分析和可视化教程 读取数据目录下的idat文件的甲基化全流程一键分析 功能简介 甲基化分析模块可以实现甲基化芯片450K, 870kEPIC数据的自动读取&#xff0c;可以读取idat文件&#xff0c;也可以读取beta甲基化矩阵文件甲基化数据的缺失值插值甲基化数据的质…