随笔分类 - java_基础
摘要:在工作中有可能遇到多台机器远程通信的情况,如果要将机器A中的某个java对象传输到机器B上面,需要将这个java对象转换为字节序列然后进行传输。将对象转换为字节序列的过程叫做序列化,反之叫做反序列化。 一个对象如果支持序列化,需要实现Serializable的接口,这个接口中没有任何方法,实现该接口
阅读全文
摘要:问题:从键盘接收一个路径,将这个路径下的所有文件和文件夹的名字按照层级打印。例如: 分析:获取路径File对象中的File数组遍历数组,取得File对象打印文件或文件夹的名字如果是一个文件夹的话,使用递归重复上面的操作 代码:
阅读全文
摘要:文件过滤器FilenameFilter JDK中提供了一个FilenameFilter的接口用来实现文件过滤功能,可以使用这个文件过滤器来实现上一节中的问题。 File类中有一个带参数的list方法 上面的方法中接收FilenameFilter对象,FilenameFilter是一个接口,里面有一个
阅读全文
摘要:使用File类创建文件夹 File类在java.io包下,看名字应该可以猜到,这个类是跟文件夹操作有关,下面使用File类中的方法在硬盘中创建文件夹。 注意:如果没有写盘符路径,默认在项目路径里面创建 使用File类重命名和删除文件 public boolean renameTo(File dest
阅读全文
摘要:字符编码简介 计算机中存储的数据都是二进制的数字,我们看到的文字信息是将二进制转换之后显示的,两者之间存在编码与解码的过程,其互相转换必须遵循某种规则,即编码和解码都遵循同一种规则才能将文字信息正常显示,如果编码跟解码使用了不同的规则,就会出现乱码的情况。之前接触过的ASCII编码,这个主要是用来显
阅读全文
摘要:设计模式简介 什么是设计模式?设计模式是可以重复利用的解决方案。软件开发的先驱或者前辈们将之前在开发中遇到的问题进行总结并给出了解决方案,后辈在遇到这些问题之后直接使用这些方案即可解决问题。比如盖高楼,都是先挖地基,然后再盖,如果先盖楼后挖地基,可能盖不了几层,楼就倒了。 装饰者设计模式 使用场景:
阅读全文
摘要:字符流FileReader 字符流FileReader主要用来读取字符的IO流,使用字符流读取文本文件可以解决乱码问题。 使用缓冲流BufferedReader可以一次读取一行的文字: 字符流FileWriter 使用FileWriter可以解决写出文本文件中文乱码的问题 使用BufferedWri
阅读全文
摘要:写出中文 向txt文件中写出中文,通过下面代码的演示,因为一个中文占2个字节,所以按照字节写出中文时会出现乱码的情况。 读取中文 从txt文件中读取文件,下面代码也出现了乱码问题
阅读全文
摘要:简单文件加密 通过输入流将文件读取到内存里面之后,可以对这些数据做一些处理,之后再将数据写出到硬盘里面从而达到加密的效果。 文件解密 上面的加密操作就是在写出数据之前对数据进行异或操作,利用对一个数进行两次异或的结果就是他本身这个特点,将待解密的图片读取到内存里面,然后再进行异或操作写出即可。
阅读全文
摘要:绝对路径和相对路径 绝对路径:指文件在硬盘上真正存在的路径,比如:D:\Java\HelloWorld.java,这个指的是在电脑的d盘下的Java文件夹里面有个HelloWorld.java文件 相对路径:指某个文件的路径和别的文件的路径关系,比如在d盘里面有个两个文件,路径分别是:D:\Java
阅读全文
摘要:使用IO流进行文件拷贝 需求:在项目的根目录里面创建一个java.txt的文件,然后将这个文件拷贝到file文件夹里面并且重命名为good.txt文件先以流的方式将java.txt文件读取到内存中,然后再以流的方式将内存中的内容写出到硬盘里面 使用缓冲流进行文件拷贝 Java中提供了Buffered
阅读全文
摘要:IO流概述 IO流的主要作用是用来处理设备之间的数据传输,例如可以使用IO流将一台电脑硬盘里面的照片传输到另一台电脑上面,即将照片转换为字节,然后将字节传到另一台电脑上面,另一台电脑接收后,可以将这些字节还原为照片。 IO流的分类 按照流向分类: 输入流(InputStream和Reader):从硬
阅读全文
摘要:Collection List(存取有序,有索引,可以重复) ArrayList底层是数组实现的,线程不安全,查找和修改快,增和删比较慢 LinkedList底层是链表实现的,线程不安全,增和删比较快,查找和修改比较慢 Vector底层是数组实现的,线程安全的,无论增删改查都慢 如果查找和修改多,用
阅读全文
摘要:Collections工具类简介 就像数组中的Arrays工具类一样,在集合里面也有跟Arrays类似的工具类Collections
阅读全文
摘要:Map接口概述 除了Collection之外,常用的集合还有Map接口,里面常用的实现类图如下: map中的元素是以键-值的方式存在的,通过键可以获取到值,键是不可以重复的,跟地图比较像,通过一个坐标就可以找到具体的位置。 Map的遍历 方式一:Map中的keySet()返回的是一个包含所有键的Se
阅读全文
摘要:使用TreeSet存储Integer对象 TreeSet的特点是可以对存放进去的元素进行排序。 使用TreeSet存储自定义类型对象 这里还是存储之前定义的Person对象,需要实现Comparable接口并且重写compareTo方法,先根据name的字典顺序排序,然后再根据年龄进行排序。 测试类
阅读全文
摘要:LinkedHashSet简介 通过LinkedHashSet的名字就可以看出,他的底层使用了链表的数据结构,因此LinkedHashSet的特点是读取元素的顺序跟存入元素的顺序是一致的,并且元素不能重复。 练习 1.生成10个1~20之间的整数,并且这些整数不能重复2.将List中的元素进行去重
阅读全文
摘要:HashCode方法的作用 在HashSet中的元素是不能重复的,jvm可以通过equals方法来判断两个对象是否相同,假设自定义一个Person类里面有10个成员变量,每调用一次equals方法需要做10次if判断分别比较这10个成员变量是否相等,如果想HashSet中存放100个对象,那就会做1
阅读全文
摘要:Set的特点 Set里面存储的元素不能重复,没有索引,存取顺序不一致。 向HashSet中添加自定义的Person对象 测试类 通过上面代码可以发现打印结果中并没有去除Person中name和age相同的对象,而且equals方法也没有被调用。重写一下Person中的hashcode方法,让ecli
阅读全文
摘要:可变参数 在定义方法的时候不确定该定义多少个参数时,可以使用可变参数来定义,这样方法的参数个数会根据调用者来确定。注意:如果一个方法有可变参数,并且有多个参数,那么,可变参数肯定是最后一个。格式: 例: 数组和集合相互转化 集合转数组: 数组转集合,注意转换后的集合不能调用其add方法向里面添加数据
阅读全文