Java基础—Day20—String、File类、IO流-part1

Java基础—Day20

今日内容:
  1. String & StringBuilder &StringBuffffer
  2. File
  3. IO - part1

1.String

要求:
  1. 常用方法,必须熟练掌握
  2. 涉及到的面试,要能答出一二

1.1 使用层面

练习:

自己键盘输入或者给定一个文件名 / 邮箱,判断其是否符合规范:
 
小练习 1. 判断 .java 文件是否符合命名规范,条件 : 23.w.java -> 23-w-java
必须以 .java 结尾 ;
文件名不能为空 至少这种格式 1.java
不能包含 @ 这种特殊符号
符合规范后,将字符串用 . 切割,切割后,使用 - 将结果重新整合起来,并打印输出
 
小练习 2 :简单判断邮箱是否合法 12334@qq.com 1111@qqq.com.cn9
最后一个 @ 后面,必须有 . ,至少 1 , 且第一个 . 前面至少 2 个字符 ;
邮箱名至少 3 个字符;
邮箱名不能以 @ 开头 @1111@qqq.com.cn ×
 

1.2 理论层面

  1. 字面量赋值和new赋值,如何存
    字面量赋值,是放在常量池,在jdk8之后,将常量池这个区域放到堆中去了JDK8之前,它是单独的区域!!!在常量池中的数据,主要是共享!!共享单车那个指定区域就是一个池!!!资源共享、方便维护和管理,资源需要你去创建、维护?!!! ----》 有很多池化思想!

    new的方式:必然要在堆中开辟一个区域!!

    小面试题: String str = "123";和String str3 = new String("123"); 的比较!!!!String str3 = new String("123"); 有可能1个也有可能2个!!!!
  2. 字符串中如何存储值的?使用的是 private final char value[ ] ,所以我们又称字符串是不可变的,它的不可变体现在数组的地址不可变!!! str+= ,前面一直这么写,实际上走的是 SB ,走SB的拼接
  3. 字面量赋值跟构造方法赋值的区别?
  4. 常量拼接跟变量拼接有什么区别?

    常量在池,变量在堆!!
     
    String str5 = str0 + "3" ; 是变量跟常量拼接,断点跟进去看到的效果是进入 StringBuilder中,在这个SB 中完成拼接操作!!发现 SB 中的 char[] value ; 说明地址值可以修改!!拼接完之后,将新的结果赋值给新变量的!!!

2.两个SB

若要经常进行字符串的拼接,即要修改字符串的值,我们使用两个 SB 去实现!!!
 
两个 SB 有啥区别呢?


StringBuilder StringBuffer

1. 联系:
  • 都是可变字符串;
  • 使用方式,即方法调用,几乎一样
2. 在多线程情况下,建议使用 StringBuffer


3.File

操作文件或文件夹,使用 Java 去完成文件或文件夹的管理!!!!都用一个类 File
 
这个就是一个使用层面,你的方法熟不熟!!!!
 
需求:创建一个文件夹,在这个文件中下创建文件夹或者文件,查看该文件夹或者文件的一些信息!比
如文件夹:名称、路径【相对路径和绝对,在 windows 下,绝对就是带盘符】、大小 ......
 


test:

4.IO

字节流:InputStream、OutputStream
 
字符流:Reader、Writer

上述四个 抽象基类 ,我们学习 IO 流就是研究上述四个基类的具体实现类如何使用!!!!!
 
输入和输出,对应的就是我们的读和写!!!
  • 从内存的这个角度看:打开文件----》输入保存文件----》输出
  • 操作的单位:字节流--操作任意类型的文件【文本文件+二进制文件】、字符流

作业

1.过滤敏感字符

输入一个身份证号,判断长度是否合法 18 位【搞个 6 位测试】,出生年份,必须在 [1910,2028] 范围之间,将出生的日期0923 替换成 **** ,否则给出对应的提示信息 ,先打印出替换后的,再逆序输出原串
 

 

 

2.统计字符个数

需求:键盘录入一个字符串,统计字符串中大小写字母及数字字符个数,若拿到其他字符则提示: 该字符”+ 除了上述之外其他的字符 +“ 非法 ” ,toCharArray
 


 

3.文件复制-1

使用字节输入流和输出流,实现大视频的复制,计算耗时,一次读写一个字节!!!!

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值