学习大数据,所必需的java基础(8)

文章目录

  • 字符缓冲流
    • 字符缓冲输出流 _Buffered和Writer
    • 字符缓冲输入流
    • 字符缓冲流练习
  • 转换流
    • 字符编码
    • 字符集
    • 转换流
    • 转换流_OutputStreamWriter
    • 序列流和反序列流的介绍
    • 序列化流_ObjectOutputStream
    • 反序列化_ObjectInputStream
    • 不想被序列化操作
    • 反序列化时出现的问题以及分析和解决
    • 扩展(经验值)
  • 打印流_PrintStream
    • PrintStream打印流基本使用
    • PrintStream打印流完成续写
  • Properties集合
    • Properties结合IO流使用方法
  • Commons-io 工具包
    • 添加第三方jar包
    • 工具包的使用
  • 网络结构
    • 服务器概念
    • 通信三要素

字符缓冲流

字符缓冲输出流 _Buffered和Writer

1.构造
BufferedWriter(Writer w)
Writer:抽象类,传递子类
2.方法:
和FileWriter一样
3.特有方法:
newLine() 换行

public class test01 {
    public static void main(String[] args) throws IOException {
        final BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter("D:\\Ajava\\buffwri.txt"));
        bufferedWriter.write("李云龙");
        bufferedWriter.newLine();  //换行
        bufferedWriter.write("丁伟");
        bufferedWriter.newLine();
        bufferedWriter.write("孔捷");
        bufferedWriter.newLine();
        bufferedWriter.write("消灭小日本");
        bufferedWriter.newLine();
        bufferedWriter.close();
    }
}

字符缓冲输入流

1.构造:
BufferedReader(Reader r)
Reader:抽象类,需要传递子类对象
2.方法:
和FileReader一样
3.特有方法:
String readLine() 一把读一整行内容

public class test02 {
    public static void main(String[] args) throws IOException {
        final BufferedReader bufferedReader = new BufferedReader(new FileReader("D:\\Ajava\\buffwri.txt"));
       /* System.out.println(bufferedReader.readLine());
        System.out.println(bufferedReader.readLine());
        System.out.println(bufferedReader.readLine());
        System.out.println(bufferedReader.readLine());
        System.out.println(bufferedReader.readLine());*/
        //bufferedReader.close();
        //定义一个字符串接收读出来的数据
        String line;
        while((line = bufferedReader.readLine())!=null){
            System.out.println(line);
        }
    }
}

字符缓冲流练习

将文件中的内容排好序,写到另一个写文件中
步骤
1.创建BufferedReader用于读取文件中的内容
2.创建BufferedWriter用于将排好序的内容写到新文件中
3.创建ArrayList集合,用于存储读过来的内容
4.边读,边存
5.利用Collections中的sort方法,对ArrayList和集合进行排序
6.遍历集合,变遍历,边写
7.关流

public class test03 {
    public static void main(String[] args) throws IOException {
        final BufferedReader bufferedReader = new BufferedReader(new FileReader("D:\\Ajava\\buffwri.txt"));
        final BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter("D:\\Ajava\\buffwriso.txt"));
        final ArrayList<String> list = new ArrayList<>();
        String line;
        while ((line = bufferedReader.readLine())!=null){
            list.add(line);
        }
        //利用Collections中的sort方法,对集合进行排序
        Collections.sort(list);
        //遍历集合,边遍历,边写
        for (String s : list) {
            bufferedWriter.write(s);
            bufferedWriter.newLine();
        }
        //关流
        bufferedReader.close();
        bufferedWriter.close();
    }
}

转换流

字符编码

计算机中储存的信息都是用二进制数表示的,而我们在屏幕上看到的数字,英文,标点符号,汉字等字符都是二进制数转换之后的结果。【按照某种规则,将字符存储到计算机中,称为”编码“】,反之,将存储在计算机中的二进制数按照某种规则解析显示出来,称为 解码
比如说,按照A规则存储,同样按照A规则解析,那么就能显示正确的文本f符号,反之按照A规则存储再按照B规则解析,就会出现乱码现象。
字符编码(Character Encoding):就是一套自然语言的字符和二进制数之间的对应规则

字符集

也叫编码表,是一个系统支持的所有字符的集合,包括各国家文字,符号标点,图形符号,数字等
计算机要准确的存储和识别各种字符集符号,需要进行字符编码
一套字符集必然至少有一套字符编码,常见的字符集有ASCII字符集,GBK字符集,Unicode字符集等
ASCII字符集

  • ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,用于显示现代英语,主要包括控制字符(回车键、退格、换行键等)和可显示字符(英文大小写字符、阿拉伯数字和西文符号)。
  • 基本的ASCII字符集,使用7位(bits)表示一个字符,共128字符。ASCII的扩展字符集使用8位(bits)表示一个字符,共256字符,方便支持欧洲常用字符。
    -ISO-8859-1字符集
  • 拉丁码表,别名Latin-1,用于显示欧洲使用的语言,包括荷兰、丹麦、德语、意大利语、西班牙语等。
  • ISO-8859-1使用单字节编码,兼容ASCII编码。
    GBxxx字符集
  • GB就是国标的意思,是为了显示中文而设计的一套字符集。
    GB2312:简体中文码表。一个小于127的字符的意义与原来相同。但两个大于127的字符连在一起时,就表示一个汉字,这样大约可以组合了包含7000多个简体汉字,此外数学符号、罗马希腊的字母、日文的假名们都编进去了,连在ASCII里本来就有的数字、标点、字母都统统重新编了两个字节长的编码,这就是常说的"全角"字符,而原来在127号以下的那些就叫"半角"字符了。
  • GBK:最常用的中文码表。是在GB2312标准基础上的扩展规范,使用了双字节编码方案,共收录了21003个汉字,完全兼容GB2312标准,同时支持繁体汉字以及日韩汉字等。
  • GB18030:最新的中文码表。收录汉字70244个,采用多字节编码,每个字可以由1个、2个或4个字节组成。支持中国国内少数民族的文字,同时支持繁体汉字以及日韩汉字等。
    Unicode字符集
  • Unicode编码系统为表达任意语言的任意字符而设计,是业界的一种标准,也称为统一码、标准万国码。
  • 它最多使用4个字节的数字来表达每个字母、符号,或者文字。有三种编码方案,UTF-8、UTF-16和UTF-32。最为常用的UTF-8编码。
  • UTF-8编码,可以用来表示Unicode标准中任何字符,它是电子邮件、网页及其他存储或传送文字的应用中,优先采用的编码。互联网工程工作小组(IETF)要求所有互联网协议都必须支持UTF-8编码。所以,我们开发Web应用,也要使用UTF-8编码。它使用一至四个字节为每个字符编码,编码规则:
    1. 128个US-ASCII字符,只需一个字节编码。
    2. 拉丁文等字符,需要二个字节编码。
    3. 大部分常用字(含中文),使用三个字节编码。
    4. 其他极少使用的Unicode辅助字符,使用四字节编码。
      注意:
      如何做到不乱码:编码和解码遵守一样的规则
      GBK中一个中文占2个字节
      UTF-8一个中文占3个字节

转换流

1.概述 字节流想字符流的桥梁
2.构造:InputStreamReader(InputStream in, String charsetName)
in:抽象类,传递子类对象
charsetName: 指定编码,不区分大小写
3.方法:和FileReader一样

public class test04 {
    public static void main(String[] args) throws IOException {
        final InputStreamReader inputStreamReader = new InputStreamReader(new FileInputStream("D:\\Ajava\\buffwri.txt"),"gbk");
        //一次读取一个字符
        int read = inputStreamReader.read();
        int read1 = inputStreamReader.read();
        System.out.println((char) read);
        System.out.println((char) read1);
        inputStreamReader.close();
    }
}

转换流_OutputStreamWriter

1.概述:字符流向字节流的桥梁
2.构造:
OutputStreamWriter(OutputStream out,String charsetName)
3.使用:和FileWriter一样
4.作用:可以按照指定编码存储数据

public class test05 {
    public static void main(String[] args) throws IOException {
        final OutputStreamWriter outputStreamWriter = new OutputStreamWriter(new FileOutputStream("D:\\Ajava\\bian.txt"),"gbk");
        outputStreamWriter.write("猪");
        outputStreamWriter.close();
    }
}

序列流和反序列流的介绍

作用:读写对象
将来我们new出来的对象中也携带了数据(属性值),我们可以将携带数据的对象存储到硬盘上,用的时候直接读出来
在这里插入图片描述

序列化流_ObjectOutputStream

1.作用:写对象
2.构造:
ObjectOutputStream(OutputStream out)
3.方法:
void writeObject(Object obj) ----- 写对象
4.注意:想要完成序列化操作
相要被序列化的对象实现Serializable接口

public class Person implements Serializable {
    private String name;
    private int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public Person() {
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}
public class test06 {
    public static void main(String[] args) throws IOException {
        final ObjectOutputStream objectOutputStream = new ObjectOutputStream(new FileOutputStream("D:\\Ajava\\person.txt"));
        Person p1 = new Person("李云龙",25);
        objectOutputStream.writeObject(p1);
        objectOutputStream.close();
    }
}

反序列化_ObjectInputStream

1.构造:
ObjectInputStream(InputStream in)
2.方法
Object readObject()

不想被序列化操作

如果有成员不想被序列化到文件中,将成员修饰成transient(瞬态关键字)的成员

反序列化时出现的问题以及分析和解决

1.问题描述:
当我们修改源代码以后,没有重新序列化,直接反序列化,会出现:序列号冲突问题(InvalidClassException)
2.解决:
将序列号定死
在这里插入图片描述

public class Person implements Serializable {
    public static final long serialVersionUTD = 42l;
    private String name;
    private int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public Person() {
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

扩展(经验值)

1.如果我们序列化多个对象以后,我们如何反序列化那?
注意:如果反序列化次数不合理,会出现EOFException(文件意外到达结尾异常)
2.解决
将多个对象放到一个集合中,我们序列化这个集合

public class test02 {
    public static void main(String[] args) throws IOException, ClassNotFoundException {
        //method01();
        method02();
    }
    public static void method01() throws IOException {
        final ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("D:\\Ajava\\per.txt"));
        ArrayList<Person> list = new ArrayList<>();
        list.add(new Person("李云龙",18));
        list.add(new Person("丁伟",30));
        list.add(new Person("孔捷",32));
        oos.writeObject(list);
        oos.close();
    }
    private static void method02() throws IOException, ClassNotFoundException {
        final ObjectInputStream ois = new ObjectInputStream(new FileInputStream("D:\\Ajava\\per.txt"));
        ArrayList<Person> list = (ArrayList<Person>) ois.readObject();
        for (Object o : list) {
            System.out.println(o);
        }
    }
}

打印流_PrintStream

PrintStream打印流基本使用

1.构造
PrintStream(String fileName)
2.方法:
println() 原样输出,自带换行功能
print() 原样输出。不带换行

public class test03 {
    public static void main(String[] args) throws FileNotFoundException {
        final PrintStream printStream = new PrintStream("D:\\Ajava\\print.txt");
        printStream.println("李云龙");
        printStream.println("孔捷");
        printStream.println("丁伟");
        printStream.println("魏大勇");
        printStream.close();
    }
}

拓展:
System类中的方法:
Static void setOut(PrintStram out) ---- 改变流向 ---- 将println从控制台上转移到指定的文件中
作用
配合日志文件使用

public static void method() throws FileNotFoundException {
        final PrintStream ps = new PrintStream("D:\\Ajava\\print.txt");
        System.setOut(ps);
        System.out.println("楚云飞");
        System.out.println("赵刚");
        System.out.println("段鹏");
        ps.close();
    }

PrintStream打印流完成续写

相关代码,只需要在路径上稍加改变,加入参数true即可

public static void method() throws FileNotFoundException {
        final PrintStream ps = new PrintStream(new FileOutputStream("D:\\Ajava\\print.txt",true));
        System.setOut(ps);
        System.out.println("楚云飞");
        System.out.println("赵刚");
        System.out.println("段鹏");
        ps.close();
    }

Properties集合

Properties结合IO流使用方法

方法:
void load(InputStream inStream) ----- 将流中的数据加载到Properties属性集中
使用场景:集合配置文件使用
注意:将来很多的”死数据“应该放到配置文件中,不应该放到源码中,我们可以通过解析配置文件,读取配置文件中的数据,去操作

1.在当前模块下创建一个xxx.properties的文件
2.在配置文件中写配置
a.每个配置都是key=value形式
b.没写完一个键值对需要换行写下一个键值对
c.不能有空格
d.key和value都是String类型,但是不要手动加上”“

public class test05 {
    public static void main(String[] args) throws IOException {
        final Properties properties = new Properties();
        final FileInputStream fileInputStream = new FileInputStream("D:\\Ajava\\properties.txt");
        properties.load(fileInputStream);
        System.out.println(properties.getProperty("username"));
        System.out.println(properties.getProperty("password"));
    }
}

Commons-io 工具包

IO技术开发中,代码量很大,而且代码的重复率较高。如果我们要遍历目录,拷贝目录就需要使用方法的递归调用,也增大了程序的复杂度。
Apache软件基金会,开发了IO技术的工具类 commonsIO 大大简化了IO开发

添加第三方jar包

1.Apache软件基金会属于第三方 (Oracle公司第一方,我们自己第二方,其他的都是第三方)我们要使用第三方开发好的工具,需要添加jar包。
2.什么是jar包:本身是一个压缩包,后缀名为.jar 里面存的都是class文件
3.导jar包
a.在当前模块下,创建文件夹,取名为lib或者libs
b.将要使用的jar包粘贴到jlib文件夹下
c,将jar包解压到当前模块下
对着lib或者具体的jar包右键---- add as library ---- level 选项选择 mdoule — name 栏会变空,不用管 — ok

工具包的使用

IOUtils类
静态方法:IOUtils.copy(InputStream in, OutputStream out) 传递字节流,实现文件复制
静态方法:IOUtils.closeQuietly(任意流对象)悄悄的释放资源,自动处理close() 方法抛出的异常

public class test06 {
    public static void main(String[] args) throws IOException {
        //传递字节流,实现文件复制
        IOUtils.copy(new FileInputStream("C:\\Users\\94863\\Pictures\\Saved Pictures\\huahua.jpg"),new FileOutputStream("C:\\Users\\94863\\Pictures\\Saved Pictures\\hua.jpg"));
    }
}
public class test07 {
    public static void main(String[] args) {
        FileWriter fw = null;
        try {
            fw = new FileWriter("D:\\Ajava\\writer.txt");
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            /*
            如果fw不等于null,证明new出来了
            所以我们需要close
            否则就不用关了
            * */
            if (fw!=null){
                try {
                    fw.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }finally {
                    IOUtils.closeQuietly(fw);
                }
            }
        }
    }
}

FileUtils类
静态方法:FileUtils.copyDirectoryToDirectory(File src.File dest)
传递File类型的目录,进行整个目录的复制,自动进行递归遍历
参数:
src:要复制的文件夹路径
dest:要将文件夹粘贴到哪里去
静态方法 writeStringToFile(File file,String str)写字符串到文本文件中
静态方法 String readFileToString(File file)读取文本文件,返回字符串

public class test08 {
    public static void main(String[] args) throws IOException {
        //进行整个目录的复制,目的进行递归遍历
        //FileUtils.copyDirectoryToDirectory(new File("D:\\Ajava"),new File("D:\\Bjava"));
        //写字符串到文本文件中
        //FileUtils.writeStringToFile(new File("D:\\Ajava\\uti.txt"),"李云龙");
        //读取文本文件,返回字符串
        System.out.println(FileUtils.readFileToString(new File("D:\\Ajava\\uti.txt")));
    }
}

网络结构

C/S结构 全称为Client/Server结构,是指客户端和服务器结构,常有程序有QQ、红蜘蛛、飞秋等软件
B/S结构 全称为Browser/Server结构,是指浏览器和服务器结构,常见浏览器有IE、谷歌、火狐等
两种结构各有优势,但是无论哪种架构,都离不开网络的支持,网络编程
就是在一定的协议下,实现两台计算机的通信的程序

服务器概念

服务器是安装了服务器软件的计算机
网络通信协议:两台计算机在做数据交互时要遵守的规则,协议会对数据的格式,速率等进行规定,只有遵守了整个协议,才能完成数据交互。
两台计算机想完成数据交互,需要遵守网络通信协议

通信三要素

[IP地址]
计算机的唯一标识,用于两台计算机之间的连接
a.概述:指互联网协议地址(Internet Protocol Address),俗称IP计算机的唯一标识
b.作用:可用于计算机和计算机之间的连接
c.IPV4 32位的二进制数,通常被分为4个字节,表示成a.b.c.d 的形式,例如192.168.65.100 。其中a、b、c、d都是0~255之间的十进制整数,那么最多可以表示42亿个。
IPV6:为了扩大地址空间,拟通过IPv6重新定义地址空间,采用128位地址长度,每16个字节一组,分成8组十六进制数,表示成ABCD:EF01:2345:6789:ABCD:EF01:2345:6789->号称能给地球上的每一粒沙子分配一个IP地址
d.查看ip的命令:测试是否能连接其他计算机的命令:ping ip地址
e:特殊的网址:代表的是本机地址,到了哪里都不会变,代表自己
127.0.0.1 localhost localhost:端口号/项目名/资源
[协议]
TCP:面向连接协议
需要先确认连接,才能进行数据交互
三次握手:
- 第一次握手,客户端向服务器端发出连接请求,等待服务器确认。
- 第二次握手,服务器端向客户端回送一个响应,通知客户端收到了连接请求。
- 第三次握手,客户端再次向服务器端发送确认信息,确认连接
好处:数据安全,能给数据的传输提供一个安全的传输环境
坏处:效率低
UDP:面向无连接协议
好处:效率高
坏处:传输的数据不安全,容易丢失数据包
[端口号]
每一个应用程序的唯一标识
用两个字节表示的整数,它的取值范围是0~65535。
其中,0~1023之间的端口号用于一些知名的网络服务和应用,
普通的应用程序需要使用1024以上的端口号。如果端口号被另外一个服务或应用所占用,
会导致当前程序启动失败
TCP的三次握手 和四次握手
三次握手:
第一次握手,客户端向服务器端发出连接请求,等待服务器确认。
第二次握手,服务器端向客户端回送一个响应,通知客户端收到了连接请求。
第三次握手,客户端再次向服务器端发送确认信息,确认连接。
四次挥手:
第一次挥手:客户端向服务器端提出结束连接,让服务器做最后的准备工作。此时,客户端处于半关闭状态,即表示不再向服务器发送数据了,但是还可以接受数据。
第二次挥手:服务器接收到客户端释放连接的请求后,会将最后的数据发给客户端。并告知上层的应用进程不再接收数据。
第三次挥手:服务器发送完数据后,会给客户端发送一个释放连接的报文。那么客户端接收后就知道可以正式释放连接了。
第四次挥手:客户端接收到服务器最后的释放连接报文后,要回复一个彻底断开的报文。这样服务器收到后才会彻底释放连接。这里客户端,发送完最后的报文后,会等待2MSL,因为有可能服务器没有收到最后的报文,那么服务器迟迟没收到,就会再次给客户端发送释放连接的报文,此时客户端在等待时间范围内接收到,会重新发送最后的报文,并重新计时。如果等待2MSL后,没有收到,那么彻底断开。

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

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

相关文章

低代码平台,面向业务or技术?

低代码开发平台是一种新兴的技术趋势&#xff0c;它为企业提供了快速、高效地开发应用程序的方法。随着数字化转型的加速&#xff0c;越来越多的企业开始关注低代码开发平台&#xff0c;并在实际应用中取得了一定的成果。 作为使用者来说&#xff0c;面对市场上形形色色的低代…

力扣hot100:438.找到字符串中所有字母异位词(滑动窗口)

26个字符&#xff0c;我复制怎么了&#xff1f;26个字符我比较个数怎么了&#xff1f; 顶多时间复杂度*26 本题用固定窗口大小的滑动窗口每次比较包含26个元素的数组次数&#xff0c;最容易写。 动态窗口大小哈希表存数值&#xff08;双指针差值&#xff09;难想难写。 一、动态…

【随笔】yt-dlp使用cookie完成身份认证 python yt-dlp库常用参数

文章目录 一、提取cookies1.1 不提取出来1.2 提取为单独文件1.2 使用cookies 二、yt-dlp 用法&#xff08;python库&#xff09;基本参数视频参数播放列表参数高级参数 以前用yt-dlp做的软件&#xff1a; 但是部分网站需要在登录状态才能获取更高格式的内容。 比如&#xff…

dolphinscheduler试用(一)(边用边修bug。。。。create tenant error)

&#xff08;作者&#xff1a;陈玓玏&#xff09; 前提&#xff1a;部署好了dolphinscheduler&#xff0c;部署篇见https://blog.csdn.net/weixin_39750084/article/details/136306890?spm1001.2014.3001.5501 官方文档见&#xff1a;https://dolphinscheduler.apache.org/…

数据结构(二)——线性表

二、线性表 2.1线性表的定义和基本操作 2.1.1 线性表的基本概念 线性表&#xff1a;是具有相同数据类型的 n 个数据元素的有限序列。(Eg:所有的整数按递增次序排列&#xff0c;不是顺序表&#xff0c;因为所有的整数是无限的)其中n为表长&#xff0c;当n0时线性表是一个空表…

将ppt里的视频导出来

将ppt的后缀从pptx改为zip 找到【media】里面有存放图片和音频以及视频&#xff0c;看文件名后缀可以找到&#xff0c;mp4的即为视频&#xff0c;直接复制粘贴到桌面即可。 关闭压缩软件把ppt后缀改回&#xff0c;不影响ppt正常使用。

2023年全球AI服务器市场占有率

关注卢松松&#xff0c;会经常给你分享一些我的经验和观点。 AI服务器是高端产品&#xff0c;全球都缺高端AI芯片&#xff0c;最近集邦咨询发布了2023 年全球 AI 服务器市场占有率的市场报告。 排名第一的是浪潮&#xff0c;第二名是戴尔、第三名是HPE(慧与也跟惠普有关)、第…

各种业务场景调用API代理的API接口教程

API代理的API接口在各种业务场景中具有广泛的应用&#xff0c;本文将介绍哪些业务场景可以使用API代理的API接口&#xff0c;并提供详细的调用教程和代码演示&#xff0c;同时&#xff0c;我们还将讨论在不同场景下使用API代理的API接口所带来的好处。 哪些业务场景可以使用API…

Qt ini配置文件

ini文件用于保存用户的设置操作&#xff0c;下列以背景颜色设置为例子 暂时默认设置为白色背景 这段代码放置在主窗口的构造函数中&#xff0c;用于初始化读取ini文件 QString color;QSettings *set new QSettings("color.ini",QSettings::IniFormat);set->begi…

泰迪智能科技-2024年高校大数据人才培养探索模式

随着数字经济的高速发展&#xff0c;对于大数据人才的需求日益增长。产业数字化和数字产业化之间的关系&#xff0c;已经成为推动社会发展的关键。为此&#xff0c;高校及产业界需要紧密配合&#xff0c;以培养出符合时代需求的大数据人才。 数字产业化与产业数字化高速发…

C++_程序流程结构_跳转语句_break

break 作用 用于跳出选择结构或循环结构 break使用的时机 出现在switch条件语句中&#xff0c;作用是终止case并跳出switch出现在循环语句中&#xff0c;作用是跳出当前的循环语句出现在嵌套循环中&#xff0c;跳出最近的内层循环语句 示例1 示例2 示例3

入门指南:使用uni-app构建跨平台应用

入门指南&#xff1a;使用uni-app构建跨平台应用 &#x1f31f; 前言 欢迎来到我的小天地&#xff0c;这里是我记录技术点滴、分享学习心得的地方。&#x1f4da; &#x1f6e0;️ 技能清单 编程语言&#xff1a;Java、C、C、Python、Go前端技术&#xff1a;Jquery、Vue.js、R…

【MySQL】数据库的操作(1)

【MySQL】数据库的操作&#xff08;1&#xff09; 目录 【MySQL】数据库的操作&#xff08;1&#xff09;创建数据库数据库的编码集和校验集查看系统默认字符集以及校验规则查看数据库支持的字符集查看数据库支持的字符集校验规则校验规则对数据库的影响数据库的删除 数据库的备…

【Leetcode每日一题】 前缀和 - 和为 K 的子数组(难度⭐)(29)

1. 题目解析 题目链接&#xff1a;560. 和为 K 的子数组 这个问题的理解其实相当简单&#xff0c;只需看一下示例&#xff0c;基本就能明白其含义了。 核心在于计算题目所给数组是否存在连续子数组和为指定值&#xff0c;存在返回连续子数组个数即可&#xff0c;不存在返回0即…

C++基础2:C++基本数据类型和控制结构

此专栏为移动机器人知识体系下的编程语言中的 C {\rm C} C从入门到深入的专栏&#xff0c;参考书籍&#xff1a;《深入浅出 C {\rm C} C》(马晓锐)和《从 C {\rm C} C到 C {\rm C} C精通面向对象编程》(曾凡锋等)。 2.C基本数据类型和控制结构 2.1 C基本数据类型 程序是由算法…

HarmonyOS NEXT应用开发——Navigation开发 页面切换场景范例

简介 在应用开发时&#xff0c;我们常常遇到&#xff0c;需要在应用内多页面跳转场景时中使用Navigation导航组件做统一的页面跳转管理&#xff0c;它提供了一系列属性方法来设置页面的标题栏、工具栏以及菜单栏的各种展示样式。除此之外还拥有动态加载&#xff0c;navPathSta…

2024年最新Android大厂面试笔试题分享,大厂面试题汇总

随着互联网的发展&#xff0c;大众对程序员这个职业有了更多的了解&#xff0c;除了高薪工资之外&#xff0c;压力太大&#xff0c;黑白颠倒&#xff0c;作息不规律等等&#xff0c;也是身为一个程序员必须经历的事情。 大部分程序员都是安静的、稳重的&#xff0c;有什么问题…

算法简单试题

一、选择题 01.一个算法应该是( B ). A.程序 B.问题求解步骤的描述 C.要满足五个基本特性 D.A和C 02&#xff0e;某算法的时间复杂度为O(n)&#xff0c;则表示该…

探索AntDB:数据驱动时代的引擎

AntDB的发展道路一直如一条平稳而高效的航线&#xff0c;其升级过程始终是经过细致策划与多方验证。每一次的版本更新&#xff0c;都蕴含着团队的心血和智慧&#xff0c;保障系统的稳定与性能。AntDB在高速发展的同时&#xff0c;始终不忘稳扎稳打&#xff0c;为用户提供最优质…

基于java的宠物常规护理知识管理系统

项目源码&#xff1a;https://gitee.com/oklongmm/biye2 在设计一个宠物常规护理知识管理系统时&#xff0c;我们需要考虑系统的可扩展性&#xff0c;易用性和稳定性。以下是系统设计的功能模块&#xff1a; 一、用户模块&#xff1a; 1. 注册与登录&#xff1a;用户可以通过…