Yang's Blog

Yang's Blog

IO流(缓冲流、转换流、序列化流、打印流、压缩流)
发表于2024-07-28|JavaJavaSE
1. 缓冲流昨天学习了基本的一些流,作为IO流的入门,今天我们要见识一些更强大的流。比如能够高效读写的缓冲流,能够转换编码的转换流,能够持久化存储对象的序列化流等等。这些功能更为强大的流,都是在基本的流对象基础之上创建而来的,就像穿上铠甲的武士一样,相当于是对基本流对象的一种增强。 1.1 概述缓冲流,也叫高效流,是对4个基本的FileXxx 流的增强,所以也是4个流,按照数据类型分类: 字节缓冲流:BufferedInputStream,BufferedOutputStream 字符缓冲流:BufferedReader,BufferedWriter 缓冲流的基本原理,是在创建流对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,减少系统IO次数,从而提高读写的效率。 1.2 字节缓冲流构造方法 public BufferedInputStream(InputStream in) :创建一个 新的缓冲输入流。 public BufferedOutputStream(OutputStream out): 创建一个新的缓冲输出流。 构造举例,代码如下: 123...
IO流(字节流、字符流)
发表于2024-07-28|JavaJavaSE
1. IO概述1.1 什么是IO生活中,你肯定经历过这样的场景。当你编辑一个文本文件,忘记了ctrl+s ,可能文件就白白编辑了。当你电脑上插入一个U盘,可以把一个视频,拷贝到你的电脑硬盘里。那么数据都是在哪些设备上的呢?键盘、内存、硬盘、外接设备等等。 我们把这种数据的传输,可以看做是一种数据的流动,按照流动的方向,以内存为基准,分为输入input 和输出output ,即流向内存是输入流,流出内存的输出流。 Java中I/O操作主要是指使用java.io包下的内容,进行输入、输出操作。输入也叫做读取数据,输出也叫做作写出数据。 1.2 IO的分类根据数据的流向分为:输入流和输出流。 输入流 :把数据从其他设备上读取到内存中的流。 输出流 :把数据从内存 中写出到其他设备上的流。 格局数据的类型分为:字节流和字符流。 字节流 :以字节为单位,读写数据的流。 字符流 :以字符为单位,读写数据的流。 1.3 IO的流向说明图解 1.4 顶级父类们 输入流 输出流 字节流 字节输入流InputStream 字节输出流OutputStream 字...
File
发表于2024-07-28|JavaJavaSE
1. File类1.1 概述java.io.File 类是文件和目录路径名的抽象表示,主要用于文件和目录的创建、查找和删除等操作。 1.2 构造方法 public File(String pathname) :通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例。 public File(String parent, String child) :从父路径名字符串和子路径名字符串创建新的 File实例。 public File(File parent, String child) :从父抽象路径名和子路径名字符串创建新的 File实例。 构造举例,代码如下: 1234567891011121314151617// 文件路径名String pathname = "D:\\aaa.txt";File file1 = new File(pathname); // 文件路径名String pathname2 = "D:\\aaa\\bbb.txt";File file2 = new File(pathname2);...
异常
发表于2024-07-28|JavaJavaSE
1. 异常1.1 异常概念异常,就是不正常的意思。在生活中:医生说,你的身体某个部位有异常,该部位和正常相比有点不同,该部位的功能将受影响.在程序中的意思就是: 异常 :指的是程序在执行过程中,出现的非正常的情况,最终会导致JVM的非正常停止。 在Java等面向对象的编程语言中,异常本身是一个类,产生异常就是创建异常对象并抛出了一个异常对象。Java处理异常的方式是中断处理。 异常指的并不是语法错误,语法错了,编译不通过,不会产生字节码文件,根本不能运行. 1.2 异常体系异常机制其实是帮助我们找到程序中的问题,异常的根类是java.lang.Throwable,其下有两个子类:java.lang.Error与java.lang.Exception,平常所说的异常指java.lang.Exception。 Throwable体系: Error:严重错误Error,无法通过处理的错误,只能事先避免,好比绝症。 Exception:表示异常,异常产生后程序员可以通过代码的方式纠正,使程序继续运行,是必须要处理的。好比感冒、阑尾炎。 Throwable中的常用方法: ...
Stream流、方法引用
发表于2024-07-28|JavaJavaSE
1.不可变集合1.1 什么是不可变集合​ 是一个长度不可变,内容也无法修改的集合 1.2 使用场景​ 如果某个数据不能被修改,把它防御性地拷贝到不可变集合中是个很好的实践。 ​ 当集合对象被不可信的库调用时,不可变形式是安全的。 简单理解: ​ 不想让别人修改集合中的内容 比如说: 1,斗地主的54张牌,是不能添加,不能删除,不能修改的 2,斗地主的打牌规则:单张,对子,三张,顺子等,也是不能修改的 3,用代码获取的操作系统硬件信息,也是不能被修改的 1.3 不可变集合分类 不可变的list集合 不可变的set集合 不可变的map集合 1.4 不可变的list集合123456789101112131415161718192021222324252627282930313233343536373839404142public class ImmutableDemo1 { public static void main(String[] args) { /* 创建不可变的List集合 "...
集合-Map
发表于2024-07-28|JavaJavaSE
1.Map集合1.1Map集合概述和特点【理解】 Map集合概述 1interface Map<K,V> K:键的类型;V:值的类型 Map集合的特点 双列集合,一个键对应一个值 键不可以重复,值可以重复 Map集合的基本使用 123456789101112131415public class MapDemo01 { public static void main(String[] args) { //创建集合对象 Map<String,String> map = new HashMap<String,String>(); //V put(K key, V value) 将指定的值与该映射中的指定键相关联 map.put("itheima001","林青霞"); map.put("itheima002","张曼玉"); map.put(&quo...
日期时间
发表于2024-07-27|JavaJavaSE
第一章 Date类1.1 Date概述java.util.Date`类 表示特定的瞬间,精确到毫秒。 继续查阅Date类的描述,发现Date拥有多个构造函数,只是部分已经过时,我们重点看以下两个构造函数 public Date():从运行程序的此时此刻到时间原点经历的毫秒值,转换成Date对象,分配Date对象并初始化此对象,以表示分配它的时间(精确到毫秒)。 public Date(long date):将指定参数的毫秒值date,转换成Date对象,分配Date对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即1970年1月1日00:00:00 GMT)以来的指定毫秒数。 tips: 由于中国处于东八区(GMT+08:00)是比世界协调时间/格林尼治时间(GMT)快8小时的时区,当格林尼治标准时间为0:00时,东八区的标准时间为08:00。 简单来说:使用无参构造,可以自动设置当前系统时间的毫秒时刻;指定long类型的构造参数,可以自定义毫秒时刻。例如: 12345678910import java.util.Date;p...
正则表达式
发表于2024-07-27|JavaJavaSE
正则表达式1.1 正则表达式的概念及演示 在Java中,我们经常需要验证一些字符串,例如:年龄必须是2位的数字、用户名必须是8位长度而且只能包含大小写字母、数字等。正则表达式就是用来验证各种字符串的规则。它内部描述了一些规则,我们可以验证用户输入的字符串是否匹配这个规则。 先看一个不使用正则表达式验证的例子:下面的程序让用户输入一个QQ号码,我们要验证: QQ号码必须是5–15位长度 而且必须全部是数字 而且首位不能为0 123456789101112131415161718192021222324252627282930313233343536373839package com.itheima.a08regexdemo;public class RegexDemo1 { public static void main(String[] args) { /* 假如现在要求校验一个qq号码是否正确。 规则:6位及20位之内,日不能在开头,必须全部是数字。 先使用目前所学知识完成校验需...
Redis实战-附近商户、用户签到、UV统计
发表于2024-07-25|JavaRedis
10、附近商户10.1、附近商户-GEO数据结构的基本用法GEO就是Geolocation的简写形式,代表地理坐标。Redis在3.2版本中加入了对GEO的支持,允许存储地理坐标信息,帮助我们根据经纬度来检索数据。常见的命令有: GEOADD:添加一个地理空间信息,包含:经度(longitude)、纬度(latitude)、值(member) GEODIST:计算指定的两个点之间的距离并返回 GEOHASH:将指定member的坐标转为hash字符串形式并返回 GEOPOS:返回指定member的坐标 GEORADIUS:指定圆心、半径,找到该圆内包含的所有member,并按照与圆心之间的距离排序后返回。6.以后已废弃 GEOSEARCH:在指定范围内搜索member,并按照与指定点之间的距离排序后返回。范围可以是圆形或矩形。6.2.新功能 GEOSEARCHSTORE:与GEOSEARCH功能一致,不过可以把结果存储到一个指定的key。 6.2.新功能 10.2、 附近商户-导入店铺数据到GEO具体场景说明: 当我们点击美食之后,会出现一系列的商家,商家中可...
Redis实战-达人探店、好友关注
发表于2024-07-25|JavaRedis
8、达人探店8.1、达人探店-发布探店笔记发布探店笔记 探店笔记类似点评网站的评价,往往是图文结合。对应的表有两个:tb_blog:探店笔记表,包含笔记中的标题、文字、图片等tb_blog_comments:其他用户对探店笔记的评价 具体发布流程 上传接口 1234567891011121314151617181920212223@Slf4j@RestController@RequestMapping("upload")public class UploadController { @PostMapping("blog") public Result uploadImage(@RequestParam("file") MultipartFile image) { try { // 获取原始文件名称 String originalFilename = image.getOriginalFilename(); ...
1…78910
avatar
Yang
萌新打怪升级中......
文章
91
标签
204
分类
18
Follow Me
公告
This is my Blog
最新文章
FastAPI RBAC权限管理系统实战2026-06-10
FastAPI项目实战2026-05-31
SQLAlchemy2.0全面实战2026-05-28
FastAPI异步编程与高级特性2026-05-28
FastAPI核心基础2026-05-28
分类
  • Git1
  • Java73
    • Docker1
    • ES3
    • JavaSE17
    • LangChain4J5
    • Linux1
    • Mybatis3
标签
读写分离 故障转移 特征工程 ndarray 缓冲流 Validation HttpMessageConverter WorkQueues 序列化流 Redis入门 会话记忆 面向对象 高阶API AOF 模板方法模式 通知 Lua脚本 分页插件 MarkDown RESTful Stream流 反射 RequestMapping 建造者模式 倒排索引 极大似然估计 策略模式 TCP 欧氏距离 IntSet 抽象工厂模式 bean作用域 类加载器 BigKey 依赖注入 master 声明式事务 set session 增量同步
归档
  • 六月 2026 1
  • 五月 2026 5
  • 四月 2026 9
  • 一月 2026 5
  • 十月 2025 2
  • 九月 2025 2
  • 七月 2025 1
  • 六月 2025 1
网站信息
文章数目 :
91
本站访客数 :
本站总浏览量 :
最后更新时间 :
© 2025 - 2026 By Yang框架 Hexo 7.3.0|主题 Butterfly 5.5.5-b1