Java基础
文章平均质量分 77
Java基础笔记。博主在学习过程中总结、整理的超详细、干货笔记。分享给大家,共同学习。关注博主、订阅专栏不迷路!
行走的程序喵
我是“行走的程序喵”,一个热爱编程的技术达人。我的编程之路起源于大学时期,尽管我的专业并非计算机,但出于对技术的热爱和对未来的追求,我开始了自学编程的旅程。
经过多年的努力和不懈的探索,我成功掌握了Web前端和Java后端开发的核心技能,并在实际项目中取得了丰硕的成果。我热衷于分享我的学习经验和技术见解,希望能为更多的人提供帮助和启发。
欢迎来到我的博客,让我们一起探索编程的奇妙世界,共同成长,共享技术的乐趣!
展开
-
Java小白学习手册 - SE(更新完毕,建议收藏,感谢点赞、分享~)
学习Java没有捷径,无论是看视频学习、还是通过各种学习网站、官方文档来学习,唯一能让你成为大神的办法就是多思考、多练习、整理学习笔记。我将学习过程中的笔记整理到不同的专栏中,分享到CSDN与各位小伙伴共同学习。你可以将它作为一个知识手册进行查询,也可以作为面试前的复习资料。原创 2021-07-29 22:17:59 · 1457 阅读 · 44 评论 -
28-Java中的注解【干货笔记】
注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明。原创 2021-08-10 15:08:26 · 248 阅读 · 2 评论 -
27-Java中的反射【干货笔记】
Java的反射(reflection)机制是指在程序的运行状态中,可以构造任意一个类的对象,可以了解任意一个对象所属的类,可以了解任意一个类的成员变量和方法,可以调用任意一个对象的属性和方法。这种动态获取程序信息以及动态调用对象的功能称为Java语言的反射机制。反射被视为动态语言的关键。原创 2021-08-10 14:57:23 · 265 阅读 · 3 评论 -
26-Java中的JUnit单元测试【干货笔记】
JUnit是一个Java语言的单元测试框架。它由Kent Beck和Erich Gamma建立,逐渐成为源于Kent Beck的sUnit的xUnit家族中最为成功的一个。 JUnit有它自己的JUnit扩展生态圈。多数Java的开发环境都已经集成了JUnit作为单元测试的工具。JUnit是由 Erich Gamma 和 Kent Beck 编写的一个回归测试框架(regression testing framework)。Junit测试是程序员测试,即所谓白盒测试,因为程序员知道被测试的软件如何原创 2021-08-10 14:50:37 · 253 阅读 · 0 评论 -
25-Java中的函数式接口【干货笔记】
有且仅有一个抽象方法的接口。适用于函数式编程场景的接口。而Java中的函数式编程体现就是Lambda,所以函数式接口就是可 以适用于Lambda使用的接口。从应用层面来讲,Java中的Lambda可以被当做是匿名内部类的“语法糖”,但是二者在原理上是不同的。原创 2021-08-10 14:44:17 · 254 阅读 · 2 评论 -
24-Java网络编程【干货笔记】
网络编程最主要的工作就是在发送端把信息通过规定好的协议进行组装包,在接收端按照规定好的协议把包进行解析,从而提取出对应的信息,达到通信的目的。中间最主要的就是数据包的组装,数据包的过滤,数据包的捕获,数据包的分析,最后再做一些处理,代码、开发工具、数据库、服务器架设和网页设计这5部分都要接触。原创 2021-08-10 14:30:55 · 209 阅读 · 0 评论 -
23-Java中的IO流【干货笔记】
流是一种抽象概念,它代表了数据的无结构化传递。按照流的方式进行输入输出,数据被当成无结构的字节序列或字符序列。从流中取得数据的操作称为提取操作,而向流中添加数据的操作称为插入操作。用来进行输入输出操作的流就称为IO流。换句话说,IO流就是以流的方式进行输入输出。原创 2021-08-10 14:18:01 · 235 阅读 · 0 评论 -
22-Java中的Stream流【干货笔记】
在C++,C#,java等编程语言中,有一个stream这个类,所有的I/O都以这个“流”类为基础的,包括我们要认识的文件I/O。Java中的Stream(流)是一个来自数据源的元素队列。原创 2021-08-09 20:31:42 · 285 阅读 · 0 评论 -
21-Java中的Lambda表达式【干货笔记】
Lambda 表达式(lambda expression)是一个匿名函数,Lambda表达式基于数学中的λ演算得名,直接对应于其中的lambda抽象(lambda abstraction),是一个匿名函数,即没有函数名的函数。Lambda表达式可以表示闭包(注意和数学传统意义上的不同)。原创 2021-08-09 20:24:27 · 239 阅读 · 0 评论 -
20-Java多线程【干货笔记】
多线程(multithreading),是指从软件或者硬件上实现多个线程并发执行的技术。具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程,进而提升整体处理性能。具有这种能力的系统包括对称多处理机、多核心处理器以及芯片级多处理或同时多线程处理器。在一个程序中,这些独立运行的程序片段叫作“线程”(Thread),利用它编程的概念就叫作“多线程处理” 。原创 2021-08-09 19:47:58 · 263 阅读 · 0 评论 -
19-Java中的异常【干货笔记】
程序在执行过程中,出现的非正常的情况,最终会导致JVM的非正常停止。在Java等面向对象的编程语言中,异常本身是一个类,产生异常就是创建异常对象并抛出了一个异常对象。Java处 理异常的方式是中断处理。【注意】异常指的并不是语法错误,语法错误则编译不能通过,不会产生字节码文件,根本不能运行。原创 2021-08-08 16:53:43 · 310 阅读 · 4 评论 -
18-Java中常用的数据结构【干货笔记】
数据结构(data structure)是带有结构特性的数据元素的集合,它研究的是数据的逻辑结构和数据的物理结构以及它们之间的相互关系,并对这种结构定义相适应的运算,设计出相应的算法,并确保经过这些运算以后所得到的新结构仍保持原来的结构类型。简而言之,数据结构是相互之间存在一种或多种特定关系的数据元素的集合,即带“结构”的数据元素的集合。“结构”就是指数据元素之间存在的关系,分为逻辑结构和存储结构。原创 2021-08-08 16:38:46 · 235 阅读 · 2 评论 -
17-12-Java集合之泛型【干货笔记】
文章目录1、概念2、好处3、泛型的定义与使用3.1、含有泛型的类3.2、含有泛型的方法3.3、含有泛型的接口4、泛型通配符5、通配符高级使用--受限泛型5.1、泛型的上限5.2、泛型的下限集合中可以存放任意对象,只要把对象存储集合后,那么他们都会被提升为Object类型。当取出每一个对象,并且进行相应的操作,则必须进行类型转换。程序在运行时可能会发生java.lang.ClassCastException异常。Collection虽然可以存储各种对象,但实际上通常Collection只存储同一类型对象原创 2021-07-29 18:36:54 · 260 阅读 · 3 评论 -
17-11-Java集合之Iterator迭代器【干货笔记】
文章目录1、Iterator接口2、迭代器的实现原理3、增强for循环java.util.Iterator:用于迭代访问(即遍历) Collection 中的元 素,因此 Iterator 对象也被称为迭代器。1、Iterator接口迭代:即Collection集合元素的通用获取方式。在取元素之前先要判断集合中有没有元素,如果有,就把这个 元素取出来,继续在判断,如果还有就再取出出来。一直把集合中的所有元素全部取出。这种取出方式专业 术语称为迭代。Collection集合获取迭代器的方法p原创 2021-07-29 18:35:47 · 243 阅读 · 0 评论 -
17-10-Java集合之JDK9对集合的优化【干货笔记】
Java 9,添加了几种集合工厂方法,更方便创建少量元素的集合、map实例。新的List、Set、Map的静态工厂方法可 以更方便地创建集合的不可变实例。of(E... e) :List、Set、Map的静态方法,添加元素。【注意】只适用于List、Set、Map接口;返回值是一个不能改变的集合(不能再调用add()、put()方法);Set、Map调用of()方法时,不能有重复元素。Set:UnSupportedOperationException不支持操作异常;Map:Illega.原创 2021-07-29 18:31:49 · 173 阅读 · 0 评论 -
17-9-Java集合之Collections【干货笔记】
文章目录1、常用方法2、Comparator接口比较器3、Comparable接口自然排序4、Comparable和Compatator区别java.utils.Collections:集合工具类,用来对集合进行操作。1、常用方法public static <T> boolean addAll(Collection<T> c, T... elements) :往集合中添加一些元素。public static void shuffle(List<?> list)原创 2021-07-29 18:30:39 · 225 阅读 · 0 评论 -
17-8-Java集合之HashTable【干货笔记】
文章目录1、子类Properties1.1、构造方法1.2、成员方法java.util.HashTable<K, V>:底层是哈希表。键和值都不能为null。同步(单线程,线程安全)。1、子类Propertiesjave.util.Properties:唯一一个和IO流结合的集合。表示了一个持久的属性集。Properties 可保存在流中或从流中加载。使用键值结构存储数据,每个键及其 对应值都是一个字符串。该类也被许多Java类使用,比如获取系统属性时, System.getPrope原创 2021-07-29 18:24:31 · 188 阅读 · 0 评论 -
17-7-Java集合之LinkedHashMap【干货笔记】
文章目录1、示例2、练习java.util.LinkedHashMap<K, V>:继承自HashMap。底层是哈希表 + 链表。元素有序。1、示例public class Student { private String name; private int age; public Student() { } public Student(String name, int age) { this.name = name;原创 2021-07-29 18:13:51 · 244 阅读 · 0 评论 -
17-6-Java集合之HashMap【干货笔记】
文章目录1、示例2、案例java.util.HashMap<K, V>:底层是数组+链表实现。如果用自定义对象作为key,要保证key唯一,则必须重写hashCode()和equals()方法。不能保证key的存取顺序一致。键可以为null。1、示例public class Student { private String name; private int age; public Student() { } public Student(S原创 2021-07-29 18:10:37 · 180 阅读 · 0 评论 -
17-5-Java集合之Map【干货笔记】
文章目录1、特点2、常用方法3、Map集合遍历键找值方式4、Entry键值对对象5、Map集合遍历键值对方式java.util.Map:现实生活中,我们常会看到这样的一种集合:IP地址与主机名,身份证号与个人,系统用户名与系统用户对象等, 这种一一对应的关系,就叫做映射。Java提供了专门的集合类用来存放这种对象关系的对象,即 java.util.Map接口。不同步(多线程,线程不安全)。1、特点双列集合,一个元素包含两个值,key和value;key和value的类型可以相同,也可以不同;原创 2021-07-29 18:07:40 · 189 阅读 · 0 评论 -
17-4-Java集合之Set【干货笔记】
文章目录1、特点2、子类2.1、HashSet2.2、LinkedHashSet2.3、TreeSetjava.util.Set:接口。没有对Collection接口进行功能扩充,但是比Collection接口更加严格。1、特点元素不允许重复;元素没有索引。2、子类2.1、HashSetjava.util.HashSet:底层是哈希表(HashMap支持)。元素无序。根据对象的哈希值来确定元素在集合中的存储位置,因此具有良好的存取和查找性能。保证元素唯一的方式依赖于 hashCode原创 2021-07-29 17:59:32 · 184 阅读 · 0 评论 -
17-3-Java集合之List【干货笔记】
文章目录1、特点2、常用方法3、子类3.1、ArrayList3.2、LinkedList3.3、Vectorjava.util.List:接口。1、特点元素存取有序;元素带索引,通过索引就可以精确的操作集合中的元素(与数组的索引是一个道理)。. 集合中可以有重复的元素,通过元素的equals方法,来比较是否为重复的元素。2、常用方法根据元素索引来操 作集合的特有方法:public void add(int index, E element) :将指定的元素,添加到该集合中的指定位置原创 2021-07-29 17:52:31 · 236 阅读 · 0 评论 -
17-2-Java集合之Collection【干货笔记】
文章目录1、Collection常用功能2、Collection案例java.util.Collection:单列集合的父接口,其中定义了操作单列集合(List、Set)的通用方法。1、Collection常用功能public boolean add(E e) :把给定的对象添加到当前集合中 。public void clear() :清空集合中所有的元素。public boolean remove(E e) :把给定的对象在当前集合中删除。public boolean contains(E原创 2021-07-29 17:40:20 · 205 阅读 · 0 评论 -
17-1-Java集合【干货笔记】
文章目录1、集合和数组的区别2、集合框架集合是java中提供的一种容器,可以用来存储多个数据。1、集合和数组的区别数组的长度是固定的。集合的长度是可变的。数组中存储的是同一类型的元素,可以存储基本数据类型值。集合存储的都是对象。而且对象的类型可以不 一致。在开发中一般当对象多的时候,使用集合进行存储。2、集合框架ArrayList:底层是数组实现,查询快,增上慢;LinkedList:底层是链表实现,查询慢,增删快;HashSet:底层是哈希表,红黑树实现;LinkedHashS原创 2021-07-29 17:34:39 · 211 阅读 · 2 评论 -
16-12-Java常用类之File【干货笔记】
文章目录1、静态成员变量2、构造方法3、常用成员方法3.1、获取功能3.2、判断功能3.3、创建/删除功能3.4、目录遍历4、FileFilter5、目录遍历案例java.io.File:类。是文件和目录路径名的抽象表示,主要用于文件和目录的创建、查找和删除等操作。用于:创建 文件/文件夹删除 文件/文件夹获取 文件/文件夹判断 文件/文件夹是否存在对文件夹进行遍历获取文件大小注意:File类和系统无关,任何系统都可以使用这个类中的方法。file:文件;directory:原创 2021-07-28 16:33:49 · 224 阅读 · 0 评论 -
16-11-Java常用类之包装类【干货笔记】
文章目录1、包装类1.1、基本数据类型对应的包装类型(java.lang包):2、装箱/拆箱3、自动装箱/自动拆箱4、基本类型与字符串之间的转换5、面试相关5.1、下面这段代码的输出结果是什么?5.2、下面这段代码的输出结果是什么?5.3、下面这段代码输出结果是什么?5.4、谈谈Integer i = new Integer(xxx)和Integer i =xxx;这两种方式的区别。5.5、下面程序的输出结果是什么?1、包装类java.lang包中。基本类型数据使用方便,效率高。但是没有对应方法操作它。原创 2021-07-28 16:32:34 · 209 阅读 · 0 评论 -
16-10-Java常用类之StringBuilder【干货笔记】
文章目录1、构造方法2、成员方法java.lang.StringBuild:可变字符序列,它是一个类似于 String 的字符串缓冲区(即容器),通过某些方法调用可以改变该序列的长度和内容。是一个容器,用数组存放字符串内容,默认16个字符空间,超过则自动扩容(占用空间少,执行效率高)。1、构造方法public StringBuilder() :构造一个空的StringBuilder容器。public StringBuilder(String str) :构造一个StringBuilder容器,并原创 2021-07-28 16:30:19 · 215 阅读 · 0 评论 -
16-9-Java常用类之System【干货笔记】
文章目录1、静态方法2、练习java.lang.System:提供了静态方法,获取与系统相关的的信息,或系统操作。1、静态方法public static long currentTimeMillis() :返回以毫秒为单位的当前时间public static void arrayCopy(Object src, int srcPos, Object dest, int destPos, int length) :将 数组中指定的数据拷贝到另一个数组中。数组的拷贝动作是系统级的,性能很高。参数原创 2021-07-28 16:28:54 · 176 阅读 · 0 评论 -
16-8-Java常用类之Date、DateFormat、Calendar【干货笔记】
文章目录1、Date1.1、构造方法1.2、成员方法2、DateFormat2.1、SimpleDateFormat2.2、构造方法2.3、格式规则2.4、成员方法2.5、练习3、Calendar3.1、静态方法3.2、静态成员变量3.3、成员方法1、Datejava.util.Date:表示特定的瞬间,精确到毫秒。1.1、构造方法public Date() :分配Date对象并初始化此对象,以表示分配它的时间(精确到毫秒)。当前时间。public Date(long date) :分配Dat原创 2021-07-28 16:26:46 · 238 阅读 · 0 评论 -
16-7-Java常用类之Object、Objects【干货笔记】
文章目录1、Object1.1、成员方法2、Objects2.1、静态方法1、Objectjava.lang.Object:是Java语言中的根类,即所有类的父类。它所描述的方法所有子类都可以使用。如果一个类没有特别指定父类,那么默认继承自Object类。1.1、成员方法public String toString() :返回该对象的字符串表示。该字符串内容就是对象的类型+@+内存地址值。如果不希望使用toString方法的默认行为,则可以对它进行覆盖重写。Scanner、ArrayLi原创 2021-07-28 16:25:10 · 205 阅读 · 0 评论 -
16-6-Java常用类之Math【干货笔记】
文章目录1、静态方法2、练习java.lang.Math:类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。类似这样的工具 类,其所有方法均为静态方法,并且不会创建对象。1、静态方法public static double abs(double a) :绝对值public static double ceil(double a) :向上取整,返回大于等于参数的最小的整数public static double floor(double a) :向下取整,返回小于等于参数最大原创 2021-07-28 16:07:42 · 199 阅读 · 1 评论 -
16-5-Java常用类之Arrays【干货笔记】
文章目录1、静态方法2、练习java.util.Arrays:此类包含用来操作数组的各种方法,比如排序和搜索等。其所有方法均为静态方法。1、静态方法public static String toString(数组) :返回指定数组内容的字符串表示形式public static void sort(s数组) :对数组进行排序【注】数值:默认按升序排列字符串:默认按字母升序排列自定义类型:需要 Comparable 和 Comparator 接口支持2、练习使用 Arrays 相关的原创 2021-07-28 15:43:50 · 196 阅读 · 1 评论 -
16-4-Java常用类之String【干货笔记】
文章目录1、特点2、注意3、构造方法4、成员方法4.1、判断功能4.2、获取功能4.3、转换功能4.4、分割功能5、练习5.1、拼接字符串5.2、统计字符个数java.lang.String:代表字符串。Java程序中所有的字符串文字(例如 “abc” )都可以被看作是实现此类的实例。底层是一个被final修饰的数组,是一个常量。1、特点字符串不变:字符串的值在创建后不能被更改。String s1 = "abc";s1 += "d";System.out.println(s1); //原创 2021-07-28 15:24:04 · 365 阅读 · 3 评论 -
16-3-Java常用类之ArrayList【干货笔记】
文章目录1、构造方法2、成员方法3、练习3.1、数值添加到集合3.2、对象添加到集合3.3、打印集合方法3.4、获取集合方法java.util.ArrayList:是大小可变的数组的实现,存储在内的数据称为元素。此类提供一些方法来操作内部存储 的元素。 ArrayList 中可不断添加元素,其大小也自动增长。<E> :表示一种指定的数据类型,叫做泛型。 E ,取自Element(元素)的首字母。在出现 E 的地方,使用一种引用数据类型将其替换即可,表示我们将存储哪种引用类型的元素。1、构造原创 2021-07-26 17:21:02 · 396 阅读 · 1 评论 -
16-2-Java常用类之Random【干货笔记】
文章目录1、构造方法2、成员方法3、练习3.1、生成3个10以内的随机数3.2、猜数字小游戏java.util.Random:生成伪随机数流。1、构造方法public Random():创建一个新的随机数生成器。2、成员方法public int nextInt():返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的 int 值。public int nextInt(int n):返回一个伪随机数,0~n(不包括n)之间均匀分布的int值。3、练习3.1、生成3个10以内的随机数原创 2021-07-26 17:16:03 · 217 阅读 · 1 评论 -
16-1-Java常用类之Scanner【干货笔记】
文章目录1、构造方法2、成员方法3、练习3.1、接收键盘录入的数据3.2、求和3.3、取最值java.util.Scanner:一个可以使用正则表达式来解析基本类型和字符串类型的文本扫描器。1、构造方法public Scanner(InputStream source) : 构造一个新的 Scanner ,它生成的值是从指定的输入流扫描的。2、成员方法public int nextInt() :将输入信息的下一个标记扫描为一个 int 值。public String next():查找并返回原创 2021-07-26 17:10:59 · 256 阅读 · 1 评论 -
15-Java枚举类详解【干货笔记】
文章目录1、定义2、语法3、使用3.1、普通用法3.2、枚举比较3.2.1、switch中使用3.2.2、if中使用3.3、枚举类型实现接口1、定义枚举类型是一个特殊的数据类型,能够为一个变量定义一组预定义的常量。枚举类型属于java类中的一种,可以拥有成员变量和方法。2、语法定义枚举类型使用 enum 关键字,它包括枚举项、私有构造方法、成员变量、成员方法。在枚举类中枚举项是就是这个类的对象,它会有自己的属性(变量和方法),所以在定义枚举项时可以调用构造方法,不调用的话直接默认为无参构造方法。p原创 2021-07-26 16:50:43 · 496 阅读 · 3 评论 -
14-Java权限修饰符及关键字详解【干货笔记】
文章目录访问权限修饰符publicprotecteddefaultprivate其他修饰符static类变量静态方法静态代码块final概述使用方式修饰类修饰方法修饰变量transient其他关键字thissuperinstanceof访问权限修饰符public公共的protected受保护的default默认的private私有的封装中的使用publicprotecteddefaultprivate同一个类中√√√√同一个包中(子类、无关类)原创 2021-07-13 15:31:49 · 399 阅读 · 11 评论 -
13-Java多态详解【干货笔记】
文章目录概述定义前提体现成员访问特点多态的优点引用类型转换向上转型向下转型为什么要转型转型的异常instanceof接口多态案例需求分析代码概述定义同一行为,具有多个不同的表现形式。前提继承或者实现(二选一);方法重写(不重写,则毫无意义);父类引用指向子类对象(格式体现)。体现Fu f = new Zi();f.method();成员访问特点成员方法:编译看左,运行看右成员变量:编译看左,运行看左多态的优点实际开发的过程中,父类类型作为方法形式参数,传递子类对象给方原创 2021-07-09 11:28:20 · 327 阅读 · 1 评论 -
12-Java的继承【干货笔记】
定义子类使用 extends 关键字继承父类的属性和行为,使子类对象具有与父类相同的属性和行为。子类可以直接访问父类中非私有的属性和行为。如果要访问父类的私有成员变量,则需要使用对应的getXxx和setXxx方法。优点提高代码的复用性;类与类之间产生了关系,是多态的前提。格式class 父类 { //}class 子类 extends 父类 { //}继承的特点Java只支持单继承,不支持多继承;Java支持多层继承(继承体系);子类和父类是一种相对的概念。一个原创 2021-06-23 17:35:40 · 299 阅读 · 2 评论