JAVA要点_3

字符串池:1.字符串池位于堆内存中一小块空间,用来保存若干个字符串的地址值;

                  2.字符串池当中不会出现重复字符串对应的地址,来保证字符串不重复;

                  3.直接双引号的字符串默认在池中,而new出来的均不在池中。

String str1 = "abc";
String str2 = "abc";
System.out.println(str1 == str2);//true,都在池中,均为指向"abc"的同一地址
char[] arr = {'a', 'b', 'c'};
String str3 = new String(arr);
String str4 = new String(arr);
System.out.println(str3 == str4);//false,new的不在池中,地址不同
System.out.println(str1 == str3);//false

                  注意:a) 对字符串内容比较,要使用equals方法(具有对称性);

                             b) 俩个字符串比较当中,有一个是常量,尽量将常量写在前面。

String str = null;
System.out.println("abc".equals(str));//false,正常运行
System.out.println(str.equals("abc"));//报错NullPointerException,str无对象,没有成员方法

!!!字符串内容不会改变,新的字符串都是新创建的,改变的只是地址!!!


ArrayList类:ArrayList <泛型> 集合名 = new ArrayList <> ( );

                       泛型只能是引用类型包装类(Integer,Character······)

ArrayList<String> list = new ArrayList<>();
list.add("hello");//添加元素
list.get(0);//获取hello,索引
list.size();//获取集合大小,1

IO流:

//import java.io.FileWriter包下
FileWriter fw = new FileWriter("File.txt");//File.txt文件创建在package包下的路径
fw.writer("hello");//写入
fw.close();//关闭

 注意:1.若文件不存在则创建,若已存在,则覆盖原来内容;

            2.不想覆盖原来内容,构造方法应使用new FileWriter("File.txt", true);

//import java.io.FileReader包下
FileReader fr = new FileReader("File.txt");//读取
int ch = fr.read();//读取一个字符,返回的是ASCII值
fr.close();
======================================================================
//读取字符数组
FileReader fr = new FileReader("File.txt");//若文件内容为hello
char[] buf = new char[2];//一次读取2个字符的缓存数组
int len;//读取的有效数字
while((len = fr.read(buf)) != -1){
    String str = new String(buf, 0, len);//从buf数组下标0开始的len个字符
    System.out.println(str);//he, ll, o
}
fr.close();

为减少硬盘的性能消耗,提高效率,输入输出流还可以加缓冲区:

FileWriter fw = new FileWriter("File.txt");
BufferedWriter bw = new BufferedWriter(fw);//先写入最大8192个字节存入缓冲区,存满后转移至硬盘中
bw.writer("hello");
bw.close();
===========================================================================================
FileReader fr = new FileReader("File.txt");
BufferedReader br = new BufferedReader(fr);//先从硬盘读取最大8192个字节至缓冲区,按需读取
int ch = br.read();
br.close();

眼高手低,重在练习!!!

JAVA要点_2 \Leftarrow                                                                                                \Rightarrow JAVA要点_4

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值