
Java基础
文章平均质量分 62
b15735105314
这个作者很懒,什么都没留下…
展开
-
Java 基础 —— 集合框架
一、集合框架介绍二、集合框架的主要接口1、Iterable接口实现该接口允许对象成为“foreach”语句的目标,即该集合对象允许迭代。 类集接口Collection是Iterable的子接口,所以所有类集对象可以迭代访问,而Map不行。 方法: Iterator<T> iterator() 功能:返回一个在一组T类型的元素上进行迭代的迭代器。2、迭代器是实现了Iterator/ListIterator接口的类的对象,可以通过遍历...原创 2021-07-14 21:51:47 · 282 阅读 · 1 评论 -
设计模式——策略模式
定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。本模式使得算法可独立于使用它的客户而变化。转载 2021-06-04 17:53:03 · 139 阅读 · 0 评论 -
Java 集合 —— Collections及其常用API
Collection是JDK提供的集合框架中的接口。原创 2021-05-29 00:24:16 · 669 阅读 · 1 评论 -
Java 集合——Set
一、Set概念二、HashSet三、TreeSet原创 2021-05-26 22:14:22 · 259 阅读 · 2 评论 -
Java 集合 —— Map
一、HashMap二、HashMap的原理三、TreeMap比较相等时会替换当前值原创 2021-05-25 23:13:42 · 445 阅读 · 6 评论 -
Java ——Java8 四大核心函数式接口
简单了解了函数式接口,接着我们就来看看Java8 的四大核心函数式接口吧!一、消费型接口: 基本格式Consumer<T>接受一个输入参数并且无返回值。方法调用:void accept(T t);使用示例:@Testpublic void testConsumer() { handle(6, (x) -> System.out.println(x + 2));}public void handle(int value, Consumer&转载 2021-05-12 22:49:30 · 345 阅读 · 0 评论 -
Java —— 函数式接口与Lambda表达式、方法引用
一、函数式接口函数式接口就是只定义一个抽象方法的接口(不包含默认方法和静态方法),如下:public interface EatInterface { void eat();}上面接口添加默认方法和静态方法后还是函数式接口:public interface EatInterface { void eat(); default void eatApple(){ System.out.println("吃苹果"); } stat.原创 2021-05-08 23:01:22 · 243 阅读 · 1 评论 -
Java —— 接口的静态方法和默认方法
在jdk8之前,interface之中可以定义变量和方法,变量必须是public、static、final的,方法必须是public、abstract的。由于这些修饰符都是默认的,所以在JDK8之前,下面的写法都是等价的。public interface JDK8BeforeInterface { public static final int field1 = 0; int field2 = 0; public abstract void method1(int a)转载 2021-05-08 16:28:15 · 291 阅读 · 0 评论 -
Java IO —— 对象序列化之transient 关键字
上一篇中我们讲述了对象的序列化与对象的输入输出流,这一篇章我们讲述对象序列化的transient 关键字。一、transient关键字transient关键字可以使被修饰的属性,将不会被Java默认的方式序列化和反序列化,如果要对transient关键字修饰的属性进行序列化和反序列化,需要在类中实现writeObject方法和readObject方法。package com.bxp.serializer;import java.io.Serializable;public class.转载 2021-04-26 10:51:12 · 190 阅读 · 0 评论 -
Java IO——对象的序列化与反序列化
一、对象的序列化概念与作用 - 把对象转换为字节序列的过程称为对象的序列化。 - 把字节序列恢复为对象的过程称为对象的反序列化。对象的序列化主要有两种用途: 1) 把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中; 2) 在网络上传送对象的字节序列。二、对象序列化的实现1、要序列化的类必须实现 Serializable 接口。实现 Serializable 接口后,如果用户没有自己声明一个serialVersionUID,接口会默认生成一个serial...转载 2021-04-25 20:57:42 · 219 阅读 · 0 评论 -
Java IO——PrintWriter类详解
1.java.io.PrintWriter是java中很常见的一个类,该类可用来创建一个文件并向文本文件写入数据。可以理解为java中的文件输出,java中的文件输入则是java.io.File。2.常用的构造方法:提供了很多构造方法,包括直接对文件写操作的PrintWriter(String fileName)PrintWriter(File file)以上两种构造方法都是按照系统默认字符集对指定文件进行写操作的PrintWriter(String fileName,String c转载 2021-04-25 13:51:42 · 4857 阅读 · 0 评论 -
Java IO——字符流
字符流操作的是文本文件,操作其他的例如mp3之类的文件就没什么意义,非文本文件只能是用字节流进行读写。原创 2021-04-25 11:13:47 · 196 阅读 · 1 评论 -
Java IO——flush()方法
首先先看一段代码:out.flush();out.close()这在我以前的代码里有所体现,但是只知道这是清空缓冲区的作用,但是不知道具体什么是缓冲区,以及为什么要清空他,所以今天学习了一下,我简单举个例子你们就知道了:首先,咱们设想要给鱼缸换水,所以需要一个水泵,水泵是连接鱼缸和下水道的,咱们的任务就是将鱼缸里面水全抽干,这时,我们就可以把水管当做缓冲区。如果咱们一见鱼缸里面水抽干了就立马关了水泵,这时会发现水管里还有来不及通过水泵流向下水道的残留水,我们可以把抽水当做读数据,排水当做写转载 2021-04-22 14:03:16 · 304 阅读 · 0 评论 -
Java IO——BufferedInputStream 和 BufferedOutputStream
输入输出一个数值型的数据,和输出一个数值型的字符串是完全不一样的,输出数值型是,将数值的字节码完全输出,输出数值型的字符串时是以字符串的方式输出(取决于输出的编码方式)...原创 2021-04-22 13:55:11 · 304 阅读 · 0 评论 -
Java IO——DataInputStream和DataOutputStream
DataInputStream和DataOutputStream是Java提供的数据输入、输出流。两个类的构造方法如下:public DataInputStream(InputStream in);public DataOutputStream(OutputStream out)从上面的构造方法我们可以看出,创建对象时,需要传入字节流对象,之所以这样是因为DataInputStream和DataOutputStream的实现使用的是装饰模式。装饰模式:https://blog.csd原创 2021-04-21 22:47:21 · 986 阅读 · 0 评论 -
Java IO——FileInputStream和FileOutputStream
注意:写代码是不要忘记加close() 和 flush()方法。一、FileInputStream输入方法详解FileInputStream输入流一共有3个读方法:int read()从该输入流读取一个字节的数据。该方法读取的是字节但返回int型,这是为了方便直观查看。如果没有读取到任何内容,即读到了文件末尾,那么该方法会返回 -1。int read(byte[] b)从该输入流读取最多 b.length个字节的数据到字节数组中返回读入缓冲区(字节数组)的总字节数,若到达文件末尾,则原创 2021-04-21 16:28:15 · 313 阅读 · 0 评论 -
Java 基础——赋值语句的返回值
赋值表达式的“返回值”就是左侧的值,即右侧的结果,。示例1:int a = 0;System.out.println(a = 9); // 输出结果是9示例2: int a = 0; if((a = 9) == 9){ System.out.println("复制表达式返回结果等于9"); } else { System.out.println("复制表达式返回结果不等于9");原创 2021-04-21 10:33:35 · 2226 阅读 · 0 评论 -
Java IO——RandomAccessFile类详解
一、RandomAccessFile介绍RandomAccessFile支持对文件的读取和写入随机访问(其他的输入流或者输出流只能进行一种操作,要么输入,要么输出)。RandomAccessFile把随机访问的文件对象看作存储在文件系统中的一个大型 byte 数组,然后通过指向该 byte 数组的光标或索引(即:文件指针 FilePointer)在该数组任意位置读取或写入任意数据。输入操作从文件指针开始读取字节(以字节为单位进行读取),并随着对字节的读取而前移此文件指针。如果RandomAccessFi转载 2021-04-14 20:51:15 · 19073 阅读 · 0 评论 -
Java IO —— File的详解
File类用来表示文件或者目录,可以获取或者操作文件的相关属性(文件名、文件大小、文件权限等),但是File类不能读取(或者写入)文件内容。文件分隔符:不同的操作系统,文件的分隔符也不一样,有的是'/',有的是‘\’或者‘\\’,但是写程序的时候不能把所有情况都写上,所以我们使用File.separator就能解决这个问题,File.separator会根据系统的情况,选择相应的文件分隔符。本篇文章为了方便阅读,未使用File.separator,直接使用普通字符串。File类封装...转载 2021-04-12 23:32:02 · 239 阅读 · 0 评论 -
switch语句使用枚举类型
枚举类如下/** * 保证金操作原因类型 */public enum ReasonEnum { REASON1(1,"保证金-缴存"), REASON2(2,"保证金-解冻"), REASON3(3,"保证金-解冻(退款锁定)"), REASON4(4,"保证金-缴存(退款锁定)"), REASON5(5,"保证金-解冻(维权锁定)"), REASON6(6,"保证金-缴存(维权锁定)"), REASON7(7,"保证金-扣除补缴"),转载 2021-04-12 17:21:40 · 1801 阅读 · 0 评论 -
Java迭代器(iterator详解以及和for循环的区别)
前言:迭代器是一种模式、详细可见其设计模式,可以使得序列类型的数据结构的遍历行为与被遍历的对象分离,即我们无需关心该序列的底层结构是什么样子的。只要拿到这个对象,使用迭代器就可以遍历这个对象的内部。Iterable:实现这个接口的集合对象支持迭代,是可以迭代的。实现了这个可以配合foreach使用~Iterator:迭代器,提供迭代机制的对象,具体如何迭代是这个Iterator接口规范的。//Iterable JDK源码//可以通过成员内部类,方法内部类,甚至匿名内部类去实现Itera.转载 2021-04-10 00:07:07 · 598 阅读 · 0 评论 -
Java的Arrays类详解
简介Arrays 是在java.util包下的一个工具类,里面定义了对数组的一些操作方法。包含用来操作数组(比如排序和搜索)的各种方法。 包含一个允许将数组作为列表来查看的静态工厂。转载 2021-04-09 10:54:20 · 1600 阅读 · 0 评论 -
Java IO——文件编码
当你的字节序列是某种编码时,这个时候想把字节序列变成字符串,也需要这种编码方式,否则会出现乱码。文本文件,就是字节序列,可以是人一遍码的字节序列,如果我们在中文机器上直接创建文本文件,那么该文本文件只认识ANSI编码。...原创 2021-04-07 20:46:07 · 351 阅读 · 0 评论 -
Java——程序控制台输出时中文乱码
问题:程序运行时,控制台输出中文乱码(当前项目中并不是所有的Java文件输出都乱码,只有部分文件输出乱码)原因:出现这个问题的原因是文件的编码格式和项目的编码格式不一样导致的,只要把乱码的文件(只在运行输出时乱码,代码编写时是正常的)。解决方案:1、方案1以idea工具为例file -> settings -> Editor -> File Encodings找到乱码文件后,将乱码文件的编码格式改为和项目的编码格式一样的。2、方案2file -&g.原创 2021-03-31 15:32:10 · 6895 阅读 · 0 评论 -
instanceof用法详解以及注意事项
instanceofinstanceof是Java的一个保留关键字,左边是对象,右边是类,返回类型是Boolean类型。它的具体作用是测试左边的对象是否是右边类或者该类的子类创建的实例对象,是,则返回true,否则返回false。instanceof使用注意事项先有继承关系,再有instanceof的使用。 当该测试对象创建时右边的声明类型和左边的类其中的任意一个跟测试类必须得是继承树的同一分支或存在继承关系,否则编译器会报错。instanceof使用示例public class Ap转载 2021-03-26 00:19:00 · 4954 阅读 · 0 评论 -
元注解与自定义注解
在jdk1.5引进了注解的,有许多框架都使用了注解,例如spring,hibernate.现将其简单介绍一下元注解:注解的注解,即java为注解开发特准备的注解。在java中有四种元注解一、元注解1.@Target表示该注解用于什么地方public enum ElementType { /** 类,接口(包括注解类型)或enum声明 */ TYPE, /** 域声明(包括 enum 实例) */ FIELD, /** 方法声明 */原创 2021-03-26 00:11:23 · 223 阅读 · 0 评论 -
Java实现base64加密
Java中Base64编码的方式有3中,这里我们只介绍Java8 自带的一种方式:Java 8的java.util套件中,新增了Base64的类别,可以用来处理Base64的编码与解码,用法如下:final Base64.Decoder decoder = Base64.getDecoder();final Base64.Encoder encoder = Base64.getEncoder();final String text = "字串文字";final byte[] textByte转载 2021-03-22 20:58:08 · 335 阅读 · 0 评论