java02

news2025/1/18 6:50:36

泛型

泛型:编译时检查类型是不是正确,减少类型转换造成的错误。

           代码复用性提升。 

1.泛型类

T是类型形参,创建对象时传入类型实参。

如果不指定类型,按照object类型处理。不支持基本数据类型。

class Student<T>{

private T age;

}

2.泛型类的子类

如果泛型类的子类也是泛型类,子类的泛型标志必须包含父类的标志。

例如 父类:Class Parent<T>{},子类:class Child<T,K> extends Parent<T>{}

如果泛型类的子类不是泛型类,子类要明确父类的泛型类型

例如:父类:Class Parent<T>{},子类:class Child extends Parent<String>{}

3.泛型接口

实现类不是泛型类,接口要明确数据类型。

例如:接口:Interface Imp<T> 实现:class Appl implements Imp<String>

实现类是泛型类,实现类包含接口的泛型。

例如:接口:Interface Imp<T> 实现:class Appl<K,T> implements Imp<T>

4.泛型方法

注意格式:public <T,K,V>  T test(K k,V v){}和泛型类的成员方法不同的是有泛型列表。

泛型类的成员方法不能是静态方法,泛型方法可以是静态方法。(static修饰)

5.泛型通配符"?"

为什么要有泛型通配符

根据多态,传递的参数是类型的子类也可以,但是在泛型中不遵守继承。

如果指定泛型是object?由于泛型不支持继承多态

这时候就需要使用泛型通配符?表示可以传递任何类型。

泛型通配符的下界 : ?super 实参类型

泛型通配符的上界 : ? extend 实参类型

6.泛型编译的类型擦除

反射使用泛型,省去类型转换。

io流

流使用完要调用close方法关闭资源

File类

new File(String 路径)

exists()判断文件是否存在 isFile()是不是文件对象,isDirectory()是不是文件夹

getName()获取文件名 length()获取文件长度 lastModified()最后修改的时间

getPath()获取路径 getAbsolutePath绝对路径

mkdir()创建文件,只能创建一级文件 mkdirs()创建文件夹 delete()删除文件

遍历:list()获取子文件名 listFileds()获取子文件对象

 字节流

输入流读取文件

new FileInputStream()输入流构造器,可以传递文件对象,也可以传递路径作为参数。

read()读取一个字节,返回读到的数据,当没有的时候返回-1

read(byte[])读取数组大小的字节,类似一个桶,返回每次读的长度。没有了返回-1.

存在覆盖问题。

public class Input {
    public static void main(String[] args) throws IOException {
         InputStream is1=new FileInputStream("D:\\javacode2\\工作区2\\learnSF\\src\\main\\java\\test.txt");
        InputStream is2 = new FileInputStream(new File("D:\\javacode2\\工作区2\\learnSF\\src\\main\\java\\test.txt"));
        int read1=0;
       while (read1!=-1){
           read1=is1.read();
           if(read1==-1){
               break;
           }
            System.out.print((char) read1);
       }
        System.out.println();
        System.out.println("==================");
        byte[] buffer=new byte[3];
        int len2=0;
       while (len2!=-1)
        {  len2= is2.read(buffer);
        if(len2==-1){
            break;
        }
            String s= new String(buffer,0,len2);
            System.out.print(s);
        }
        is1.close();
        is2.close();
//        ReadAllStream  jdk9之后才有
    }
}

一下子把文件内容全读出来:readallstream方法,内部实现就是创建一个足够大的byte数组当桶。如果目标文件过大,同样也会报错。

字符流

package IOStream;


import java.io.*;

public class Filerw {
    public static void main(String[] args) throws IOException {
        //字节输入流
        Reader is=new FileReader("D:\\javacode2\\工作区2\\learnSF\\src\\main\\java\\test2");
        Reader is2=new FileReader("D:\\javacode2\\工作区2\\learnSF\\src\\main\\java\\test2");
        //read()一个一个字符读  read(char[]) 一桶一桶读
        int a;
        while ((a=is.read())!=-1){
            System.out.print((char) a);
        }
      ///
        char [] b=new char[3];
        int len;
        while ((len=is2.read(b))!=-1){
            System.out.print(new String(b,0,len));
        }
        is.close();
        is2.close();
        //字节输出流,要关闭流。因为java是写到内存的缓冲器,如果不关闭就不会将缓冲器的内容写到硬盘
        Writer w1=new FileWriter("D:\\javacode2\\工作区2\\learnSF\\src\\main\\java\\hhh1.txt");
        //以追加的形式写
        Writer w2=new FileWriter("D:\\javacode2\\工作区2\\learnSF\\src\\main\\java\\hhh1.txt",true);
        //write(int) write(String) write(String,off,len) write(char[]) write(char[],off,len)
        w1.write("nihhhh");
        w1.write("\r\n");
       char[] c={'n','h','f','g','f','胡','金'};
        w2.write(c);
        //一定要关闭流
        w1.close();
        w2.close();
    }
}

缓冲流

包装基本的字符、字节输入输出流

原来是将内存的数据直接写到硬盘中,多次系统调用,性能不好,现在在内存中增加了缓冲池,8KB,缓存池满了再和硬盘交互,减少系统调用,性能更好。

//    BufferedInputStream  包装fileinputstream 需要fileinputstream 做构造器参数
//    BufferedOutputStream 包装fileoutputstream 需要fileoutputstream 做构造器参数
//    BufferedWriter       包装filewrite 需要filewrite做构造器参数。
 换行方法:对象.newLine()
//    BufferedReader       包装fileread 需要fileread做构造器参数

转换流

utf-8每个汉字三个字节,GBK每个汉字两个字节

如果代码编码和读取文件编码不同,会乱码。

转换流的构造器需要字节流或者字节流的子类。

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

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

相关文章

【C++】 类的新成员:static成员和类的好朋友:友元

欢迎来到CILMY23的博客 &#x1f3c6;本篇主题为&#xff1a; 类的新成员&#xff1a;static成员和类的好朋友&#xff1a;友元 &#x1f3c6;个人主页&#xff1a;CILMY23-CSDN博客 &#x1f3c6;系列专栏&#xff1a;Python | C | C语言 | 数据结构与算法 | 贪心算法 | Li…

【数据分析面试】43.寻找给小费最多的客人(Python:字典用法)

题目&#xff1a; 寻找给小费最多的客人 &#xff08;Python) 给定两个非空列表user_ids和tips&#xff0c;编写一个名为most_tips的函数&#xff0c;用于找到给小费最多的客户。 示例&#xff1a; 输入&#xff1a; user_ids [103, 105, 105, 107, 106, 103, 102, 108, 1…

利用香港多IP服务器优化网站访问速度的关键策略?

利用香港多IP服务器优化网站访问速度的关键策略? 随着数字化时代的不断发展&#xff0c;网站的全球访问速度成为企业吸引用户、提升竞争力的重要因素。特别对于跨国企业而言&#xff0c;如何确保全球用户都能享受到稳定快速的访问体验显得尤为重要。在这一背景下&#xff0c;…

MySQL文档_下载

可能需要&#xff1a;MySQL下载–》更新版本–》迁移数据库到MySQL 以下都不重要【只要确定好需要安装版本&#xff0c;找到对应的版本下载&#xff0c;安装&#xff0c;设置即可】 下载、安装&#xff1a; Determine whether MySQL runs and is supported on your platform…

【TOP-CCF】影响因子8.0-9.0,仅4天见刊!1区,国人友好,稳定检索32年

本周投稿推荐 SSCI • 2区社科类&#xff0c;3.0-4.0&#xff08;社科均可&#xff09; EI • 计算机工程类&#xff08;接收广&#xff0c;录用极快&#xff09; SCI&EI • 4区生物医学类&#xff0c;1.5-2.0&#xff08;录用率99%&#xff09; • 1区工程类&#…

在线caj转换成pdf免费吗?caj变成pdf很容易!点进来!

在数字化阅读日益盛行的今天&#xff0c;各种电子文献格式层出不穷&#xff0c;其中CAJ和PDF无疑是两种最为常见的格式。CAJ是中国知网推出的一种专用全文阅读格式&#xff0c;而PDF则因其跨平台、不易被修改的特性&#xff0c;受到了广大读者的青睐。因此&#xff0c;将CAJ格式…

C语言中的混合运算

1 混合运算 类型强制转换场景 整型数进行除法运算时&#xff0c;如果运算结果为小数&#xff0c;那么存储浮点数时一定要进行强制转换。例子&#xff1a; #include <stdio.h> //运算强制转换 int main(void) {int i5;//整型float ji/2;//这里做的是整型运算&#xff0…

clion设置中文和背景图片以及破解

1.效果如下 2.下载最新版clion window下的clion下载 第一个exe和第二个zip都行&#xff0c;推荐exe具体安装不解释&#xff0c;请参考其他教程 3.汉化 英语观看不方便&#xff0c;可以使用插件汉化。在设置》插件&#xff08;plugins&#xff09;>Marketplace下的Chine…

EFCore_创建项目

添加依赖 Microsoft.EntityFrameworkCore Microsoft.EntityFrameworkCore.Tools(Migration工具) 根据使用的DB添加对应依赖&#xff1a; SQL Server&#xff1a;Microsoft.EntityFrameworkCore.SqlServer 添加该依赖时可不添加Microsoft.EntityFrameworkCore&#xff0c;该依…

肺部营养“救星”,让每次呼吸更自由

​#肺科营养#朗格力#班古营养#复合营养素#肺部营养# 正常的健康人,每天自由幸福的呼吸。但是对于肺病患者来说,特别是慢阻肺人群,每一次呼吸都可能是一场挑战,每一口气都显得弥足珍贵。 肺病患者号称沉默的“呼吸杀手”,它虽然沉默,但不代表它没能力,除了引起肺功能下降,氧气…

工业无风扇计算机的优点

无风扇计算机往往采用紧凑且密封的外形&#xff0c;使其坚固耐用&#xff0c;使其能够在需要现场工程师进行维护之前承受恶劣的环境数年。机载移动部件较少或没有移动部件会降低组件无法按预期运行的可能性&#xff0c;或者更糟糕的是发生故障和损坏。采用工业组件和较低的散热…

rabbitmq交换机,死信队列的简单例子

假设我们有一个场景&#xff0c;生产者有消息发到某个直连交换机&#xff0c;这个交换机上有两个队列分别存储两种类型的消息&#xff0c;但是与这两个队列相连的消费者太不争气了&#xff0c;处理消息有点慢&#xff0c;我们想5秒钟这个消息在队列中还没有被消费的话&#xff…

初识java——javaSE(4)类与对象

文章目录 前言一 类与对象1.1 面向过程与面向对象思想的区别&#xff1a;1.2 类的定义1.3 类的实例化——对象通过创建对象&#xff0c;调用对象中的成员变量与方法 1.4 this关键字this的作用一&#xff1a;this 的作用二构造方法&#xff1a;对象创建的两步方法的重载 this的作…

基础ArkTS组件:输入框,开关,评分条(HarmonyOS学习第三课【3.3】)

输入框组件 ArkUI开发框架提供了 2 种类型的输入框&#xff1a; TextInput 和 TextArea &#xff0c;前者只支持单行输入&#xff0c;后者支持多行输入&#xff0c;下面我们分别做下介绍。 TextInput 子组件 无 接口 TextInput(value?:{placeholder?: ResourceStr, tex…

Echarts结课之小杨总结版

Echarts结课之小杨总结版 前言基础回顾框架sale框架代码&#xff1a; user框架基础代码&#xff1a; inventory框架基础代码&#xff1a; total框架基础代码&#xff1a; 基础设置1.标题(Title)2.图例(Legend)实现 3.工具提示(Tooltip)实现 4.X轴(X Axis) 和 Y轴(Y Axis)5.数据…

架构设计入门(Redis架构模式分析)

目录 架构为啥要设计Redis 支持的四种架构模式单机模式性能分析优点缺点 主从复制&#xff08;读写分离&#xff09;结构性能分析优点缺点适用场景 哨兵模式结构优点缺点应用场景 集群模式可用性和可扩展性分析单机模式主从模式哨兵模式集群模式 总结 本文主要以 Redis 为例&am…

【Python |基础入门】入门必备知识(基础各方面全覆盖)

✨✨谢谢大家捧场&#xff0c;祝屏幕前的小伙伴们每天都有好运相伴左右&#xff0c;一定要天天开心哦&#xff01;✨✨ &#x1f388;&#x1f388;作者主页&#xff1a; &#x1f388;丠丠64-CSDN博客&#x1f388; ✨✨ 帅哥美女们&#xff0c;我们共同加油&#xff01;一起…

Linux —— 线程控制

Linux —— 线程控制 创建多个线程线程的优缺点优点缺点 pthread_self进程和线程的关系pthread_exit 线程等待pthread_ join线程的返回值线程分离pthread_detach 线程取消pthread_cancel pthread_t 的理解 我们今天接着来学习线程&#xff1a; 创建多个线程 我们可以结合以前…

图搜索算法-最短路径算法-贝尔曼-福特算法

相关文章&#xff1a; 数据结构–图的概念 图搜索算法 - 深度优先搜索法&#xff08;DFS&#xff09; 图搜索算法 - 广度优先搜索法&#xff08;BFS&#xff09; 图搜索算法 - 拓扑排序 图搜索算法-最短路径算法-戴克斯特拉算法 贝尔曼-福特算法&#xff08;Bellman-Ford&#…

树莓派 4B putty远程连接登录显示拒绝访问,密码修改

putty显示拒绝访问 可能是树莓派的ip没有找到正确的 在下载系统镜像的时候&#xff0c;会提示设置wifi 这里设置的WiFi和密码需记住&#xff0c;主机名也需记住 可以在手机打开热点&#xff08;将热点的账号和密码改为跟你设置的wifi一样的&#xff09; 可以在手机后台查看…