![](https://img-blog.csdnimg.cn/20190927151132530.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
JAVA学习记录
文章平均质量分 63
大处着眼,小处着手
老板娘来碗面
这个作者很懒,什么都没留下…
展开
-
input显示当前选择的图片
input显示当前选择的图片原创 2022-06-29 20:08:32 · 611 阅读 · 0 评论 -
IO流(学习Java第24天)(字符缓冲流、打印流、对象序列化和反序列化、Commons IO)
目录一、字符缓冲流二、打印流概述三、对象序列化和反序列化四、Commons IO一、字符缓冲流构造方法 public BufferedReader(Reader in) :创建一个 新的缓冲输入流。 public BufferedWriter(Writer out): 创建一个新的缓冲输出流。 // 创建字符缓冲输入流BufferedReader br = new BufferedReader(new FileReader("br.txt"));// 创建字符缓冲..原创 2022-02-27 18:39:53 · 364 阅读 · 0 评论 -
IO流(学习Java第24天)(转换流OutputStreamWriter、转换流InputStreamReader、字符流便捷类)
目录一、转换流OutputStreamWriter二.转换流InputStreamReader三.字符流便捷类一、转换流OutputStreamWriterjava.io.OutputStreamwriter类,继承Writer类,他是字符输出流,只能操作文本文件,不能操作其他类型文件。OutputStreamwriter是字符流通向字节流的桥梁(字符流转成字节流),使用指定的字符集将字符编码为字节。它的字符集可以由名称指定,也可以接受平台的默认字符集。OutputStrea原创 2022-02-22 20:40:01 · 1810 阅读 · 0 评论 -
字符编码和字符集(学习Java第24天)
目录一.字符编码二.字符集三.String类中编码和解码的方法一.字符编码计算机中储存的信息都是用二进制数表示的,而我们在屏幕上看到的数字、英文、标点符号、汉字等字符是二进制数转换之后的结果。按照某种规则,将字符存储到计算机中,称为编码 。反之,将存储在计算机中的二进制数按照某种规则解析显示出来,称为解码 。比如说,按照A规则存储,同样按照A规则解析,那么就能显示正确的文本f符号。反之,按照A规则存储,再按照B规则解析,就会导致乱码现象。编码: 字符转换为字节。解码:字节转.原创 2022-02-22 20:23:26 · 68 阅读 · 0 评论 -
IO流(学习Java第24天)(字节流、IO流中的异常处理、文件复制、字节缓冲流)
目录一.IO流概述二.IO的分类三.字节流四.IO流中的异常处理五.文件复制七.字节缓冲流一.IO流概述生活中,你肯定经历过这样的场景。当你编辑一个文本文件,忘记了ctrl+s ,可能文件就白白编辑了。当你电脑上插入一个U盘,可以把一个视频,拷贝到你的电脑硬盘里。那么数据都是在哪些设备上的呢?U盘、内存、硬盘、外接设备等等。我们把这种数据的传输,可以看做是一种数据的流动,按照流动的方向,以内存为基准,分为输入input和输出output,即流向内存是输入流,流出内存的原创 2022-02-22 20:18:29 · 462 阅读 · 0 评论 -
IO流(学习Java第23天)(方法递归)
目录一.方法递归概述二.需求:遍历目录中所有的内容三.递归实现阶乘运算四.目录遍历搜索java文件一.方法递归概述指在当前方法内调用自己的这种现象 特点:功能的计算主体明确,计算中的参数每次是变化 注意事项: 不能是死递归,方法不停的进栈,不会出去,内存满了,溢出 递归一定要有出口,能结束;但是如果进栈的方法过多也不可以 public static void a(){ a();}二.需求:遍历目录中所有的内容public class De..原创 2022-02-21 20:43:24 · 305 阅读 · 0 评论 -
IO流(学习Java第23天)(File类)
目录一.File类概述二.File类的静态成员变量三.File类的构造方法三.File类的获取方法四.File类的创建和删除功能六.File类目录遍历方法七.File类的文件过滤器一.File类概述java.io.File 文件和目录路径名的抽象表示形式;主要用于文件和目录的创建、查找和删除等操作。File类将文件,文件夹和路径封装成了对象,提供大量的方法来操作这些对象。文件:存储实际数据的容器,File 目录:文件夹,Directory 路径:文件或者目录在原创 2022-02-21 20:30:12 · 246 阅读 · 0 评论 -
线程补充(Lock锁、死锁、线程状态)
目录Lock锁死锁线程状态 Lock锁 java.util.concurrent.locks.Lock机制提供了比synchronized代码块和synchronized方法更广泛的锁定操作,同步代码块/同步方法具有的功能Lock都有,除此之外更强大,更体现面向对象。 Lock锁也称同步锁,加锁与释放锁方法化了 接口实现类:java.util.locks.lock.ReentrantLock public void lock() :加同步锁。 public void原创 2022-02-18 20:23:58 · 514 阅读 · 0 评论 -
线程2(学习Java第22天)(等待唤醒机制、线程池、Timer定时器)
目录一.等待唤醒机制二.线程池三.Timer定时器一.等待唤醒机制等待唤醒机制这是多个线程间的一种协作机制。就好比在公司里你和你的同事们,你们可能存在在晋升时的竞争,但更多时候你们更多是一起合作以完成某些任务。就是在一个线程进行了规定操作后,就进入无限等待状态(ait()),调用notfiy()方法唤醒其他线程来执行,其他线程执行完后,进入无限等待,唤醒等待线程执行,依次类推.... 如果需要,可以使用 notifyAll()来唤醒所有的等待线程。wait/notify..原创 2022-02-18 20:11:03 · 447 阅读 · 0 评论 -
线程(学习Java第21天)(多线程的两种实现方式、线程安全synchronized、线程同步)
目录一.多线程概念二.线程的创建-继承方式三.线程的创建-实现方式四.线程安全五.线程同步一.多线程概念线程与进程进程:是指一个内存中运行的应用程序,每个进程都有一个独立的内存空间;进程也是程序的一次执行过程,是系统运行程序的基本单位;系统运行一个程序即是一个进程从创建、运行到消亡的过程。线程:是进程中的一个执行单元,负责当前进程中程序的执行,一个进程中至少有一个线程。一个进程中是可以有多个线程的,这个应用程序也可以称之为多线程程序。进程与线程的区别 进程:有原创 2022-02-17 21:24:40 · 385 阅读 · 0 评论 -
异常(学习java第20天)
目录一.异常概述二.异常体系三.异常产生过程分析四.异常处理方式--捕获异常Throwable类的异常信息方法多个catch并行catch合并五.异常处理方式--抛出异常六.编译异常和运行异常七.finally代码块尽量: 不要在异常处理中,使用return注意: finally只有一种情况下不执行finally代码之前,System.exit(0)八.自定义异常九.子父类异常问题一.异常概述异常,就是不正常的意思。在生活中...原创 2022-02-16 19:54:00 · 287 阅读 · 0 评论 -
Map集合(学习Java第19天)(Map集合中的常用方法、Map集合的两种遍历方式、简化遍历、HashMap集合、Properties集合)
目录一.Map集合概述二.Map集合中常用的方法三.Map集合遍历--键找值四.Map集合遍历--键值对五.简化遍历六.HashMap集合八.Properties集合九.练习一.Map集合概述现实生活中,我们常会看到这样的一种集合:IP地址与主机名,身份证号与个人,系统用户名与系统用户对象等,这种一一对应的关系,就叫做映射。Java提供了专门的集合类用来存放这种对象关系的对象,即java.util.Ma接口。我们通过查看Map接口描述,发现Map接口下的集合.原创 2022-02-15 20:44:36 · 517 阅读 · 0 评论 -
Set集合(学习Java第18天)(HashSet集合、LinkedHashSet集合、TreeSet集合)
目录一.Set接口概述二.HashSet集合三.HashSet集合存储数据的结构(哈希表)四.HashSet存储自定义类型元素五.LinkedHashSet集合六.TreeSet集合一.Set接口概述Set接口:也称Set集合,但凡是实现了Set接口的类都叫做Set集合 特点:元素无索引,元素存取无序,元素不可重复(唯一) 实现类: HashSet集合:元素无索引,元素存取无序,元素不可重复(唯一) LinkedHashSet集合:元素无索引,元素存取有序,元.原创 2022-02-14 20:31:59 · 431 阅读 · 0 评论 -
Collections工具类的使用(学习Java第18天)
目录一.Collections工具类概述二.public static void shuffle(List list) :打乱集合顺序。三.public static void sort(List list):将集合中元素按照默认规则排序。四.public static void sort(List list,Comparator com ):将集合中元素按照指定规则排序。五.可变参数一.Collections工具类概述java.utils.Collections是集合工..原创 2022-02-14 20:09:59 · 171 阅读 · 0 评论 -
原来泛型如此简单学习Java第18天)
目录一.泛型的概述二.定义和使用含有泛型的类三.定义和使用含有泛型的方法四.定义和使用含有泛型的接口五.泛型通配符一.泛型的概述在前面学习集合时,我们都知道集合中是可以存放任意对象的,只要把对象存储集合后,那么这时他们都会被提升成Object类型。当我们在取出每一个对象,并且进行相应的操作,这时必须采用类型转换。//集合使用泛型:使用泛型在编译期直接对类型做出了控制,只能存储泛型定义的数据 Collection<String> c2=new原创 2022-02-14 19:59:19 · 142 阅读 · 0 评论 -
集合(学习Java第17天)
目录一、对象数组数组的弊端二、Collection集合1、概述集合和数组既然都是容器,它们有什么区别呢?2、集合类的继承体系3、Collection接口方法三、迭代器1、Iterator接口遍历集合的三种方法;1、普通for循环2.增强for循环(foreach)3、使用iterator迭代器进行遍历2、迭代器的实现原理3、迭代器的源码分析4、并发修改异常四、List集合1、List接口特点2、List接口特有方发(带有索.原创 2022-01-12 21:23:57 · 241 阅读 · 0 评论 -
常用API之包装类的使用(学习Java第16天)
目录包装类的概述Integer类概述Integer类构造方法及静态方法装箱与拆箱装箱与拆箱的概述自动装箱与自动拆箱基本类型与字符串之间的转换基本类型转换为StringString转换成基本类型包装类的概述Java提供了两个类型系统,基本类型与引用类型,使用基本类型在于效率,然而很多情况,会创建对象使用,因为对象可以做更多的功能,如果想要我们的基本类型像对象一样操作,就可以使用基本类型对应的包装类,如下:示例:Integer类概述包装一个对象中的原创 2022-01-11 20:20:06 · 94 阅读 · 0 评论 -
常用API之Arrays类的使用(学习Java第16天)
Arrays类概述 java.util.Arrays类:该类包含用于操作数组的各种方法(如排序和搜索)Arrays类常用方法public static void main(String[] args) { int[] arr = {432, 53, 6, 323, 765, 7, 254, 37, 698, 97, 64, 7}; //将数组排序 Arrays.sort(arr); //打印数组 System.out.println(Arrays.to原创 2022-01-11 20:10:40 · 142 阅读 · 0 评论 -
常用API之BigDecimal类的使用(学习Java第16天)
BigDecimal类的概述使用基本类型做浮点数运算精度问题看程序说结果:public static void main(String[] args) { // 小数运算精度问题: System.out.println(0.09 + 0.01); // 期望:0.10 很遗憾,结果并不是期望值,而是一个无限趋近期望值的小数 System.out.println(1.0 - 0.32); // 期望:0.68 很遗憾,结果并不原创 2022-01-11 20:08:29 · 589 阅读 · 0 评论 -
常用API之BigInteger类的使用(学习java第16天)
BigInteger类的概述java.math.BigInteger 类,不可变的任意精度的整数。如果运算中,数据的范围超过了long类型后,可以使用BigInteger类实现,该类的计算整数是不限制长度的。BigInteger类成员方法BigInteger类提供了对很大的整数进行加add、减subtract、乘multiply、除divide的方法,注意:都是与另一个BigInteger对象进行运算。public class Test { public static void原创 2022-01-11 20:02:48 · 239 阅读 · 0 评论 -
常用API之System类的使用(学习Java第15天)
System类的概述java.lang.System类中提供了大量的静态方法,可以获取与系统相关的信息或系统级操作System类的常用方法public static void exit(int status) 终止当前运行的Java虚拟机,非零表示异常终止public static long currentTimeMillis() 返回当前时间距离标准基准时间的毫秒值static void arraycopy(Object src, int srcPos, Object dest, int d原创 2022-01-10 21:12:56 · 203 阅读 · 0 评论 -
常用API之Math类的使用(学习Java第15天)
Math类的概述 java.lang.Math(类): Math类包含执行基本数字运算的方法。 它不能创建对象,它的构造方法被“私有”了。因为他内部都是“静态方法”,通过“类名”直接调用即可。 Math类的常用方法public static int abs(int a) 获取参数a的绝对值:public static double ceil(double a) 向上取整 例如:3.14 向上取整4.0public static double floor(double a) ...原创 2022-01-10 21:10:58 · 229 阅读 · 0 评论 -
常用API之Calendar日历类的使用(学习Java第15天)
Calendar类的概述 java.util.Calendar类表示一个“日历类”,可以进行日期运算。它是一个抽象类,不能创建对象,我们可以使用它的子类:java.util.GregorianCalendar类。 有两种方式可以获取GregorianCalendar对象: 直接创建GregorianCalendar对象; 通过Calendar的静态方法getInstance()方法获取GregorianCalendar对象 Calendar类的常用方法原创 2022-01-10 21:07:53 · 378 阅读 · 0 评论 -
常用API之DateFormat类(学习java第15天)
DateFormat类的概述java.text.DateFormat 是日期/时间格式化子类的抽象类,我们通过这个类可以帮我们完成日期和文本之间的转换,也就是可以在Date对象与String对象之间进行来回转换。 格式化:按照指定的格式,把Date对象转换为String对象。 解析:按照指定的格式,把String对象转换为Date对象。 由于DateFormat为抽象类,不能直接使用,所以需要常用的子类java.text.SimpleDateFormat。这个类需要一个模式(格式).原创 2022-01-10 21:02:36 · 112 阅读 · 0 评论 -
常用API之Date类(学习Java第15天)
Date类目录Date类的概述Date类中的构造方法Date类中的常用方法Date类的概述java.util.Date类 表示一个日期和时间,内部精确到毫秒。Date类中的构造方法继续查阅Date类的描述,发现Date拥有多个构造函数,只是部分已经过时,我们重点看以下两个构造函数 public Date():从运行程序的此时此刻到时间原点经历的毫秒值,转换成Date对象,分配Date对象并初始化此对象,以表示分配它的时间(精确到毫秒)。 public Da原创 2022-01-10 20:51:02 · 359 阅读 · 0 评论 -
常用api之StringBuilder类(学习Java第14天)
目录字符串拼接问题StringBuilder类概述StringBuilder类的常用构造方法StringBuilder类拼接和反转,插入方法StringBuilder和String相互转换字符串拼接问题由于String类的对象内容不可改变,所以每当进行字符串拼接时,总是会在内存中创建一个新的对象。例如:public class StringDemo { public static void main(String[] args) { String原创 2022-01-10 20:35:21 · 138 阅读 · 0 评论 -
常用api之String类(学习Java第13天)
目录一.String类概述二.String类的不可变性三.创建字符串对象两种方式的区别四、常用string方法介绍1、==比较运算符2、equals方法3、equalsIgnoreCase方法4、concat();把两个字符串拼接起来,获取一个新的字符串5、★length();获取字符串的长度(其实就是获取字符串中 字符的个数6、★charAt(); 根据给定的索引,获取对应位置的字符7、★indexOf(); 获取指定的字符 在字...原创 2022-01-10 20:23:09 · 604 阅读 · 0 评论 -
常用API之Object类(学习Java第12天)
目录Object类tringtoS()方法toString()方法的重写equals方法Object类Object类是Java语言中的根类,即所有类的父类。它中描述的所有方法子类都可以使用。所有类在创建对象的时候,最终找的父类就是Object。 Obejct类:java.lang包下的类:使用的时候不需要导包 类Object是类层次结构的根类,每个类都使用Object类作为超类,所有对象(包括数组)都实现这个类的方法Java中所有类都直接或者间接的继承Object类,都可原创 2022-01-05 20:47:56 · 221 阅读 · 0 评论 -
内部类、匿名内部类、权限修饰符(学习Java第11天)
一.内部类概述 将一个类A定义在另一个类B里面,里面的那个类A就称为内部类**,B则称为外部类。 格式class 外部类 { class 内部类{ }}访问特点 内部类可以直接访问外部类的成员,包括私有成员。 外部类要访问内部类的成员,必须要建立内部类的对象。 创建内部类对象格式外部类名.内部类名 对象名 = new 外部类型().new 内部类型();PS:内部类仍然是一个独立的类,在编译之后会内部类会被编译成独立的.class文件,但是前面原创 2022-01-05 20:42:14 · 59 阅读 · 0 评论 -
面向对象之多态(学习java第十天)
一、概述多态是同一个行为具有多个不同表现形式或形态的能力。多态就是同一个接口,使用不同的实例而执行不同操作。多态性是对象多种表现形式的体现。同一个事件发生在不同的对象上会产生不同的结果。多态的前提条件继承或者实现【二选一】方法的重写【意义体现:不重写,无意义】父类(接口)引用指向子类对象【格式体现)】父类类型 变量名 = new 子类对象;变量名.方法名();Fu f = new Zi();f.method();二、多态中成员访问特点成员变量:编译看左边原创 2022-01-02 13:37:12 · 277 阅读 · 0 评论 -
接口(学习java第九天)
一、接口引入抽象类中定义的是该继承体系的共性功能。(是不是的关系)广义的角度,接口的本质是契约,标准,规范。就像我们的法律一样。制定好后大家都要遵守狭义的角度,接口,是Java语言中一种引用类型,更多的体现在对行为的抽象,所以接口的内部主要就是定义方法,包含常量,抽象方法(JDK 7及以前),默认方法和静态方法(JDK 8),私有方法(jdk9)。接口中定义的是该继承体系的扩展功能。(能不能的关系)二.接口的定义和使用接口的定义,它与定义类方式相似,但是使用 interface关键.原创 2022-01-02 13:26:03 · 340 阅读 · 0 评论 -
final关键字和static关键字(学习java第八天)
目录一.final关键字final关键字概述1、修饰类的格式2、修饰方法的格式3 、修饰变量(1)显示初始化(2)构造方法初始化二.static关键字1、 静态修饰是对象的共享数据2、静态的调用问题3、静态不能直接访问非静态4、静态代码块*1.局部代码块:方法中*2.构造代码块:写在类中,创建对象的时候运行*3.静态代码块:写在类中 static{}一.final关键字final关键字概述final:不可改变。用于修饰...原创 2022-01-02 11:39:32 · 326 阅读 · 0 评论 -
抽象类(学习java第七天)
目录一 .abstract关键字1、抽象方法2、抽象类3、抽象类的使用4、抽象类存在的意义二、注意事项一 .abstract关键字1、抽象方法使用abstract关键字修饰方法,该方法就成了抽象方法,抽象方法只包含一个方法名,而没有方法体定义格式修饰符 abstract 返回值类型 方法名(参数列表) 代码举例public abstract void run();2、抽象类如果一个类包含抽象方法,那么,该类必须是抽象方法定义格式原创 2022-01-02 11:14:19 · 109 阅读 · 0 评论 -
面向对象之继承(学习java第六天)
继承的概述继承是面向对象三大特征之一,在Java中指的是一个类可以继承自另一个类,被继承的类叫做父类,继承其他类的类叫做子类;继承后,子类自动拥有父类可继承的属性和方法,还可以在子类中重新定义这些属性和方法,子类也可以追加其他属性和其他方法。继承的格式格式:public class 子类名 extends 父类名{ }范例:public class Zi extends Fu{ }Fu:是父类,也被称为基类,超类Zi:是子类,也被称为派生类继承中,子类的特点子类自动拥有父类可原创 2021-12-30 20:16:43 · 1445 阅读 · 0 评论 -
构造方法和制作标准类javaBean(学习java第五天)
构造方法是一种特殊的方法,主要是完成对象的创建和对象数据的初始化 构造方法的特点 构造方法的方法名就是类名 构造方法没有没有返回值类型,连void都没有 使用new来调用构造方法 构造方法和set方法的区别 构造方法用来创建对象,并给对象的属性赋初始值,只能赋值一次 set方法用来给对象的属性赋值,可以赋值多次 当我们需要修改属性的值时,可以使用set方法对属性重新赋值 构造方法的注意事项 构造方法的创建 如果没有定义构造方法,系统将给出一个...原创 2021-12-30 20:04:23 · 229 阅读 · 0 评论 -
面向对象之封装(This关键字)(学习Java第四天)
封装是面向对象思想的特征之一。面向对象共有三个特征:封装,继承,多态封装的好处提高代码的复用性隐藏了实现细节,还要对外提供可以访问的方式,便于调用者的使用提高了安全性由于属性使用了private关键字修饰,在其他类中无法直接访问,所以得提供公共的访问方式,我们把这种方法叫做set和get方法,idea快捷键为 Alt+Insertthis关键字可以在成员变量名前面加上this.来区别成员变量和局部变量...原创 2021-12-30 19:57:54 · 151 阅读 · 0 评论 -
成员变量和局部变量的区别(学习Java第三天)
中位置不同 成员变量(类中方法外) 局部变量(方法内部或方法声明上) 内存中位置不同 成员变量(堆内存) 局部变量(栈内存) 作用域不同: 成员变量,作用范围是整个类 局部变量,方法内,语句内 生命周期不同 成员变量(随着对象的存在而存在,随着对象的消失而消失) 局部变量(随着方法的调用而存在,随着方法的调用完毕而消失) 初始化值不同 成员变量(有默认初始化值) 局部变量(没有默认初始化值,必须先定义,赋值才能使用) ...原创 2021-12-30 19:50:52 · 163 阅读 · 0 评论 -
理解面向对象(学习Java第三天)
一、理解面向过程和面向对象编程思想 面向过程:注重的是步骤,必须清除每一个步骤,按照步骤一步一步去实现 面向对象:注重的是对象,无须清除每一个步骤,只需要使用对象调用行为来完成需求 二、类的概述和组成 类是用来描述现实生活中的事物,是一类具有共同属性和行为的事物的统称 类的组成 属性:成员变量 行为:成员方法 三、对象的概述 对象是类的实例,并具备该类的事物的属性和行为 对象的属性是有具体值的 对象的行为其实就是可以使用的功能/行为 创建对象原创 2021-12-30 19:49:39 · 69 阅读 · 0 评论 -
方法和方法重载(学习Java第二天)
一.方法概述 什么是方法 方法(method):就是一段具有独立功能的代码块,不调用就不执行 注意事项 方法必须先创建才可以使用,该过程称为方法定义 方法创建后并不是直接运行的,需要手动使用后才执行,该过程称为方法调用 方法必须先定义后调用,否则程序将报错 二.带参数方法的定义和调用三.带返回值方法的定义和调用我们经常会根据一个方法产出的结果,来去组织另外一段代码逻辑,为了拿到这个方法产生的结果,就需要带有返回值的方法...原创 2021-12-29 20:10:57 · 68 阅读 · 0 评论 -
数组(学习Java第二天)
一.数组概述和定义格式说明1.数组概述数组:数组是存储同一种数据类型多个元素的集合。也可以看成是一个容器。数组既可以存储基本数据类型,也可以存储引用数据类型。数组本身是引用数据类型。2.数组的定义格式格式一 数据类型[ ] 变量名 范例:int[ ] arr 定义了一个int类型的数组,数组名是arr 格式二 数据类型 变量名[ ] 范例:int arr[ ] 定义了一个int类型的变量,变量名是arr数组 二.数组初始化之动态初始化...原创 2021-12-29 19:59:31 · 63 阅读 · 0 评论