![](https://img-blog.csdnimg.cn/20200407175958658.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java基础
文章平均质量分 88
详细介绍了Java的基础知识
bfhonor
没有天生的高手,更没有永远的菜鸟。
展开
-
Java之反射基础详解
反射机制:是指在运行时去获取一个类的变量和方法信息。然后通过获取到的信息来创建对象,调用方法。<hr/><img src='https://img-blog.csdnimg.cn/2021052720305568.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ0MDk2Njcw,size_16,color_FFFFFF,t_70'>原创 2021-05-27 20:22:20 · 185 阅读 · 0 评论 -
Java之类加载器基础详解
一、类加载器(一)类加载当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过类的加载,类的连接,类的初始化这三个步骤来对类进行初始化。如果不出现意外情况,JVM将会连续完成这三个步骤,所以有时也把这三个步骤统称为类加载或者类初始化1. 类的加载①、就是指将class文件读入内存,并为之创建一个 java.lang.Class 对象②、任何类被使用时,系统都会为之建立一个 java.lang.Class 对象2. 类的连接①、验证阶段:用于检验被加载的类是否有正确的内部结构,原创 2021-05-27 20:07:28 · 98 阅读 · 0 评论 -
Java之Stream流的基础讲解
一、Stream流(1)体验需求:按照下面的要求完成集合的创建和遍历①、创建一个集合,存储多个字符串元素②、把集合中所有以"张"开头的元素存储到一个新的集合③、把"张"开头的集合中的长度为3的元素存储到一个新的集合④、遍历上一步得到的集合import java.util.ArrayList;public class StreamDemo { public static void main(String[] args) { //创建一个集合,存储多个字符串元素原创 2021-05-25 20:51:50 · 167 阅读 · 0 评论 -
Java方法引用的详细讲解
使用Lambda的时,我们拿参数做操作方法引用,是通过方法引用来使用已经存在的方案</hr><img src='https://img-blog.csdnimg.cn/20210524092553361.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ0MDk2Njcw,size_16,color_FFFFFF,t_70'>原创 2021-05-24 09:29:31 · 4608 阅读 · 2 评论 -
让你秒懂的Lambda表达式超级详细讲解
<font color='red'>面向对象思想强调“必须通过对象的形式来做事情”</font>,函数式思想则尽量忽略面向对象的复杂语法:“强调做什么,而不是以什么形式去做”而我们要学习的Lambda表达式就是函数式思想的体现<hr><img src='https://img-blog.csdnimg.cn/2021050716101367.png'><img src ='https://img-blog.csdnimg.cn/20210507161150974.png'>原创 2021-05-20 17:37:27 · 61689 阅读 · 15 评论 -
函数式接口的相关概念以及常用的函数式接口(Supplier、Consumer、Predicate、Function)
函数式接口(一)、函数式接口的概念函数式接口在Java中是指:有且仅有一个抽象方法的接口。函数式接口,即适用于函数式编程场景的接口。而Java中的函数式编程体现就是Lambda,所以函数式接口就是可以适用于Lambda使用的接口。只有确保接口中有且仅有一个抽象方法,Java中的Lambda才能顺利地进行推导。如何检测一个接口是不是函数式接口呢?①、@FunctionalInterface②、放在接口定义的上方:如果接口是函数式接口,编译通过;如果不是,编译失败。//定义一个函数式接口@F原创 2021-05-03 21:19:42 · 622 阅读 · 0 评论 -
final关键字概念及其四种用法、四种权限修饰符的优先级以及内部类的相关概念
final关键字代表最终、不可改变的。常见的四种用法:①、可以用来修饰一个类。②、可以用来修饰一个方法。③、还可以用来修饰一个局部变量。④、还可以用来修饰一个成员变量。(1)、修饰一个类当final关键字用来修饰一个类的时候,格式如下:public final class 类名称 { //...}含义:当前这个类不能有任何的子类。 不能使用一个final类来作为父类。注意:一个如果是final的,那么其中所有的成员方法都无法进行覆盖重写。(2)、修饰一个方法当final关键原创 2020-11-30 17:12:41 · 382 阅读 · 0 评论 -
Java正则表达式(Regular Expresssion)
Java正则表达式正则表达式定义了字符串得模式。正则表达式可以用来搜索、编辑或处理文本正则表达式并不仅限于某一种语言,但是在每一种语言中有细微的差别。正则表达式 实例一个字符串其实就是一个简单的正则表达式,例如Hello World正则表达式匹配"Hello World"字符串。.(点号)也是一个正则表达式,它可以匹配任何一个字符如:"a"或"1"。正则表达式描述this is text匹配字符串"this is text"this\s+is\s+text原创 2020-11-05 20:03:25 · 239 阅读 · 0 评论 -
TCP通信程序练习
TCP通信程序练习练习1【服务器给出反馈】客户端:发送数据,接收服务器反馈服务器:接收数据,给出反馈package itheima_01;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.Socket;/** * 客户端:发送数据,接收服务器反馈 */public class ClientDemo { public原创 2020-09-22 23:10:30 · 376 阅读 · 0 评论 -
网络编程概念、UDP通信程序和TCP通信程序的通信原理及实现程序
一、网络编程入门1.1 网络编程计算机网络:是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。网络编程:在网络通信协议下,实现网络互连的不同计算机运行的程序间可以进行数据交换。1.2 网络编程三要素①、IP地址:要想让网络中的计算机能够互相通信,必须为每台计算机指定一个标识号,通过这个标识号来指定要接收数据的计算机和识别发送的计算机,而IP地址就是这个标识号。也原创 2020-09-22 22:55:40 · 818 阅读 · 0 评论 -
《石头迷阵》游戏业务数据设计、游戏功能制作、游戏界面绘制
JFrame类就是用来表示窗体的类import javax.swing.*;public class App { public static void main(String[] args) { //1.启动主界面 JFrame jFrame = new JFrame(); //2.设置主界面的大小 jFrame.setSize(514,595); //3.给主界面设置一个标题 jFrame.setT原创 2020-08-21 21:30:39 · 631 阅读 · 0 评论 -
转换流的相关概念和常用方法、序列化和反序列化的相关用法、打印流的概述及使用方法【转换文本编码案例、序列化集合案例】
第二章 转换流2.1 字符编码和字符集字符编码计算机中储存的信息都是用二进制数表示的,而我们在屏幕上看到的数字、英文、标点符号、汉字等字符是二进制数转换之后的结果。按照某种规则,将字符存储到计算机中,称为编码 。反之,将存储在计算机中的二进制数按照某种规则解析显示出来,称为解码 。比如说,按照A规则存储,同样按照A规则解析,那么就能显示正确的文本符号。反之,按照A规则存储,再按照B规则解析,就会导致乱码现象。编码:字符(能看懂的)–字节(看不懂的)解码:字节(看不懂的)–>字符(能看懂的)原创 2020-08-10 19:10:14 · 232 阅读 · 0 评论 -
缓冲流的相关概述以及常用的缓冲输出流、输入流的用法【文本排序案例的实现】
缓冲流、转换流、序列化流第一章 缓冲流都是在基本的流对象基础之上创建而来的,相当于是对基本流对象的一种增强。1.1 概述缓冲流,也叫高效流,是对4个基本的FileXxx 流的增强,所以也是4个流,按照数据类型分类:字节缓冲流:BufferedInputStream,BufferedOutputStream字符缓冲流:BufferedReader,BufferedWriter缓冲流的基本原理,是在创建流对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,减少系统IO次数,从而提高读原创 2020-08-07 09:24:50 · 542 阅读 · 0 评论 -
字符流的相关概念和相关方法的使用、IO异常的处理以及Properties属性集
第三章 字符流当使用字节流读取文本文件时,可能会有一个小问题。就是遇到中文字符时,可能不会显示完整的字符,那是因为一个中文字符可能占用多个字节存储。所以Java提供一些字符流类,以字符为单位读写数据,专门用于处理文本文件。3.1 字符输入流【Reader】java.io.Reader抽象类是表示用于读取字符流的所有类的超类,可以读取字符信息到内存中。它定义了字符输入流的基本共性功能方法。public void close() :关闭此流并释放与此流相关联的任何系统资源。public int re原创 2020-08-05 22:28:47 · 245 阅读 · 0 评论 -
IO概述、字节流的相关概念以及常用方法【通过字节流实现文件复制案例】
第一章 IO概述1.1 什么是IO生活中,你肯定经历过这样的场景。当你编辑一个文本文件,忘记了ctrl+s ,可能文件就白白编辑了。当你电脑上插入一个U盘,可以把一个视频,拷贝到你的电脑硬盘里。那么数据都是在哪些设备上的呢?键盘、内存、硬盘、外接设备等等。我们把这种数据的传输,可以看做是一种数据的流动,按照流动的方向,以内存为基准,分为输入input 和输出output ,即流向内存是输入流,流出内存的输出流。Java中I/O操作主要是指使用java.io包下的内容,进行输入、输出操作。输入也叫做读原创 2020-08-02 19:37:41 · 531 阅读 · 0 评论 -
File类和递归的相关概念及用法【文件搜索案例的实现】
第一章 File类1.1 概述java.io.File 类是文件和目录路径名的抽象表示,主要用于文件和目录的创建、查找和删除等操作。Java把电脑中的文件和文件夹(目录)封装为了一个File类,我们可以使用File类对文件和文件夹进行操作。File类是一个与系统无关的类,任何操作系统都可以使用这个类中的方法。1.2 静态的成员变量static String pathSeparator:与系统有关的路径分隔符,为了方便,它被表示为一个字符串static char pathSeparatorCh原创 2020-07-31 14:56:23 · 173 阅读 · 0 评论 -
Java线程池的概念及实现、Lambda表达式相关概念和用法
线程池:其实就是一个容纳多个线程的容器,其中的线程可以反复使用,省去了频繁创建线程对象的操作,无需反复创建线程而消耗过多资源。由于线程池中有很多操作都是与优化资源相关的,我们在这里就不多赘述。我们通过一张图来了解线程池的工作原理:合理利用线程池能够带来三个好处:降低资源消耗。减少了创建和销毁线程的次数,每个工作线程都可以被重复利用,可执行多个任务。提高响应速度。当任务到达时,任务可以不需要的等到线程创建就能立即执行。原创 2020-07-23 22:22:52 · 193 阅读 · 0 评论 -
Java线程状态概述与等待唤醒机制
线程状态概述当线程被创建并启动以后,它既不是一启动就进入了执行状态,也不是一直处于执行状态。在线程的生命周期中,有几种状态呢?在API中 java.lang.Thread.State 这个枚举中给出了六种线程状态:线程状态异常状态发生条件NEW(新建)线程刚被创建,但是并未启动。还没调用start方法。Runnable(可运行)线程可以在java虚拟机中运行的状态,可能正在运行自己代码,也可能没有,这取决于操作系统处理。Blocked(锁阻塞)当一个线程试图获取一个原创 2020-07-23 15:11:56 · 212 阅读 · 0 评论 -
Java实现根据卖票案例分析线程安全原理以及解决线程安全的三种方法
如果有多个线程在同时运行,而这些线程可能会同时运行这段代码。程序每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的。我们通过一个案例,演示线程的安全问题:电影院要卖票,我们模拟电影院的卖票过程。假设要播放的电影是 “葫芦娃大战奥特曼”,本次电影的座位共100个(本场电影只能卖100张票)。原创 2020-07-20 19:17:08 · 529 阅读 · 0 评论 -
多线程的相关概念以及如何创建多线程
进程:是指一个内存中运行的应用程序,每个进程都有一个独立的内存空间,一个应用程序可以同时运行多个进程;进程也是程序的一次执行过程,是系统运行程序的基本单位;系统运行一个程序即是一个进程从创建、运行到消亡的过程。线程:线程是进程中的一个执行单元,负责当前进程中程序的执行,一个进程中至少有一个线程。一个进程中是可以有多个线程的,这个应用程序也可以称之为多线程程序。原创 2020-07-20 12:09:12 · 209 阅读 · 0 评论 -
Map集合【集合特点、常用方法、集合遍历方式】以及其子类HashMap、LinkedHashMap集合的相关用法
第一章 Map集合1.1 概述Collection中的集合,元素是孤立存在的,向集合中存储元素采用一个个元素的方式存储。Map中的集合,元素是成对存在的。每个元素由键与值两部分组成,通过键可以找对所对应的值。Collection中的集合称为单列集合,Map中的集合称为双列集合。需要注意的是,Map中的集合不能包含重复的键,值可以重复;每个键只能对应一个值。(1)、Map集合的特点:Map集合是一个双列集合,一个元素包含两个值(一个key,一个value)。Map集合中的元素,key和v原创 2020-07-15 17:24:14 · 307 阅读 · 0 评论 -
Java之方法的定义、调用和重载
一、 方法概述1、 方法的概念(理解)方法(method) 是将具有独立功能的代码块组织成为一个整体,使其具有特殊功能的代码集注意:方法必须先创建才可以使用,该过程成为方法定义方法创建后并不是直接可以运行的,需要手动使用后,才执行,该过程成为方法调用2.1、方法的定义和调用,无参数方法定义和调用(掌握)定义格式:public static void 方法名 ( ) { // 方法体;}范例:public static void isEvenNumber( ) { //原创 2020-07-13 22:17:55 · 433 阅读 · 0 评论 -
Java实现数据类型转换、任意进制转换及运算
第一章 数据类型转换Java程序中要求参与的计算的数据,必须要保证数据类型的一致性,如果数据类型不一致将发生类型的转换。1.1 自动转换一个int类型变量和一个 byte 类型变量进行加法运算, 结果会是什么数据类型?int i = 1;byte b = 2运算结果,变量的类型将是int类型,这就是出现了数据类型的自动类型转换现象。自动转换:将取值范围小的类型 自动提升为取值范围大的类型 。public static void main(String[] args) { int i原创 2020-07-12 16:22:26 · 1216 阅读 · 1 评论 -
数据结构之Collections集合
第五章 Collections2.1 常用功能java.utils.Collections是集合工具类,用来对集合进行操作。部分方法如下:public static <T> boolean addAll(Collection<T> c, T... elements):往集合中添加一些元素。public static void shuffle(List<?> list) 打乱顺序:打乱集合顺序。public static <T> void so原创 2020-07-09 20:57:50 · 262 阅读 · 0 评论 -
恋上数据结构之【常见的数据结构、List集合及其子类、Set集合及其子类】
第一章 数据结构1.1 数据结构有什么用?当你用着java里面的容器类很爽的时候,你有没有想过,怎么ArrayList就像一个无限扩充的数组,也好像链表之类的。好用吗?好用,这就是数据结构的用处,只不过你在不知不觉中使用了。现实世界的存储,我们使用的工具和建模。每种数据结构有自己的优点和缺点,想想如果Google的数据用的是数组的存储,我们还能方便地查询到所需要的数据吗?而算法,在这么多的数据中如何做到最快的插入,查找,删除,也是在追求更快。我们java是面向对象的语言,就好似自动档轿车,C语言好似原创 2020-07-06 22:48:42 · 304 阅读 · 0 评论 -
Java集合之Collection集合、泛型 【集合综合案例:赌神、赌侠、赌神斗地主】
第一章 Collection集合1.1 集合概述集合:集合是java中提供的一种容器,可以用来存储多个数据。集合和数组既然都是容器,它们有啥区别呢?数组的长度是固定的。集合的长度是可变的。数组中存储的是同一类型的元素,可以存储基本数据类型值。集合存储的都是对象。而且对象的类型可以不一致。在开发中一般当对象多的时候,使用集合进行存储。1.2 集合框架集合按照其存储结构可以分为两大类,分别是单列集合java.util.Collection和双列集合java.util.Map,Coll原创 2020-07-04 22:44:48 · 366 阅读 · 0 评论 -
常见API整理【Object类、日期时间类、System类、StringBuilder类、包装类】
第一章 Object类1.1 概述java.lang.Object类是Java语言中的根类,即所有类的父类。它中描述的所有方法子类都可以使用。在对象实例化的时候,最终找的父类就是Object。如果一个类没有特别指定父类, 那么默认则继承自Object类。例如:public class MyClass /*extends Object*/ { // ...}根据JDK源代码及Object类的API文档,Object类当中包含的方法有11个。今天我们主要学习其中的2个:public原创 2020-07-02 22:49:55 · 616 阅读 · 0 评论 -
Java接口的相关概念及其常用方法
Java接口接口就是多个类的公共规范。接口是一种引用数据类型,其中最重要的内容就是其中,抽象方法。定义接口格式public interface 接口名称{ //接口内容}备注:换成了关键字interface之后,编译生成的字节码文件仍然是:.java ---> .class。如果是Java 7,那么接口中可以包含的内容有:①、常量。②、抽象方法。如果是Java 8,还可以额外包含有:③、默认方法。④、静态方法。如果是Java 9,还可以额外包含有:⑤、私有方法。在任何版本的原创 2020-11-21 11:50:14 · 357 阅读 · 0 评论 -
Java抽象类、抽象方法的相关知识以及【发红包案例的分析与实现】
抽象类的概念通过下面的两个例子,我们可以看出子类【正方形、三角形和圆形】都可以根据具体的图像计算面积的方法,但是对于其父类【图形】我们并不知道其具体的描述,因此不能计算面级的方法;再通过右边的猫吃鱼、狗吃骨头,进而描述动物吃东西的方法;如果父类当中的方法不确定如何进行{ }方法体的实现,那么这就应该是一个抽象的方法。抽象方法和抽象类的格式抽象方法:就是加上abstract关键字,然后去掉大括号,直接分号结束。抽象类:抽象方法所在的类,必须是抽象类才行。在class之前写上abstract即原创 2020-06-19 22:46:02 · 210 阅读 · 0 评论 -
Java面向对象三大特征之一 —— 继承的相关概念
(一)、概念:继承:就是子类继承父类的属性和行为,使得子类对象具有与父类相同的属性、相同的行为。子类可以直接访问父类中的非私有的属性和行为.多个类可以称为子类,单独那一个类称为父类、超类(superclass)或者基类。继承描述的是事物之间的所属关系,这种关系是:is-a 的关系。(二)、继承的格式通过extends关键字,可以声明一个子类继承另外一个父类,定义格式如下:class 父类 { ...}class 子类 extends 父类 { ...}继承演示,代码如下:原创 2020-06-06 22:40:54 · 287 阅读 · 0 评论 -
常见API整理【static关键字、数组工具类Arrays、Math类】
常见API整理【static关键字、数组工具类Arrays、Math类】(一)、static关键字1. 静态static关键字概述2. 定义和使用格式3. 静态方法4. 调用格式5. 静态static的内存图6. 静态代码块(二)、数组工具类Arrays(三)、Math类1. 基本运算方法(一)、static关键字1. 静态static关键字概述2. 定义和使用格式当 static 修饰成员变量时,该变量称为类变量。该类的每个对象都共享同一个类变量的值。任何对象都可以更改该类变量的值,但也可以在原创 2020-06-04 22:32:52 · 237 阅读 · 0 评论 -
常见API整理【Scanner类、匿名对象、Random类、ArrayList集合以及String类】
Scanner类引用类型使用步骤导包使用import关键字导包,在类的所有代码之前导包,引入要使用的类型,java.lang包下的所有类无需导入。import 包名.类名;创建对象使用该类的构造方法,创建一个该类的对象。 格式:数据类型 变量名 = new 数据类型(参数列表);调用方法调用该类的成员方法,完成指定功能。 格式:变量名.方法名();2.3 Scanner使用步骤查看类java.util.Scanner:该类需要import导入后使用。查看构造方法publ原创 2020-06-02 22:06:55 · 191 阅读 · 0 评论 -
Java面向对象三大特征之一 —— 封装性
Java面向对象三大特征之一 —— 封装性(一)、封装概述1.1 概述面向对象编程语言是对客观世界的模拟,客观世界里成员变量都是隐藏在对象内部的,外界无法直接操作和修改。封装可以被认为是一个保护屏障,防止该类的代码和数据被其他类随意访问。要访问该类的数据,必须通过指定的方式。适当的封装可以让代码更容易理解与维护,也加强了代码的安全性。1.2 原则将属性隐藏起来,若需要访问某个属性,提供公共方法对其访问。(二)、封装的步骤使用 private关键字来修饰成员变量。对需要访问的成员变量,提供对原创 2020-05-24 20:58:17 · 493 阅读 · 0 评论 -
Java面项对象编程思想
一、面向对象思想(一)、面向对象思想概述1.1 概述Java语言是一种面向对象的程序设计语言,而面向对象思想是一种程序设计思想,我们在面向对象思想的指引下,使用Java语言去设计、开发计算机程序。 这里的对象泛指现实中一切事物,每种事物都具备自己的属性和行为。面向对象思想就是在计算机程序设计过程中,参照现实中事物,将事物的属性特征、行为特征抽象出来,描述成计算机事件的设计思想。 它区别于面向过程思想,强调的是通过调用对象的行为来实现功能,而不是自己一步一步的去操作实现。1.2 举例面向过程:当需要原创 2020-05-23 22:47:29 · 389 阅读 · 0 评论 -
无法识别服务器时区值或表示多个时区。如果要利用时区支持,则必须配置服务器或JDBC驱动程序
线程“main”java.sql.sql Exception中的异常:无法识别服务器时区值“øúúúúúúúúú戆戆戆戆戆”或表示多个时区。如果要利用时区支持,则必须配置服务器或JDBC驱动程序(通过serverTimezone配置属性)以使用更具体的时区值。在连接mysql的JDBC的url后面加上服务器的时区:serverTimezone=UTCjdbc:mysql://localho...原创 2020-04-06 19:54:15 · 2834 阅读 · 6 评论 -
Java线程基础
一、进程与线程进程是指运行中的应用程序,每个进程都有自己独立的地址空间(内存空间),比如用户点击桌面的IE浏览器,就启动了一个进程,操作系统就会为该进程分配独立的地址空间。当用户再次点击左面的IE浏览器,又启动了一个进程,操作系统将为新的进程分配新的独立的地址空间。目前操作系统都支持多进程。用户每启动一个进程,操作系统就会为该进程分配一个独立的内存空间。请注意是独立的内存空间。线程是...原创 2020-02-25 21:40:43 · 173 阅读 · 0 评论 -
Java笔记(缓冲流、对象流等)
字符集字符 文字和符号总称(Character) 不同国家的数字和符号是一样的 字母 不同国家的文字 中文 日文 韩文 计算机最早产生是按照英语单词 单个字符设计的 字母 数字 符号-----1字节 8bit 256 如果计算机想要处理除了上述字母符号以外的其他字符---比如中文2字节 需要将中文进行字符编码----->拆分 和 组合 拆分合...原创 2020-02-20 19:37:14 · 349 阅读 · 0 评论 -
Java之字符型文件流
知识回顾字节型文件流FileInputStreamFileOutputStream 1.所在的包java.io 2.各自继承关系 InputStream/OutputStream 3.构造方法 利用file对象构建 new FileInputStream(file); new OutputStream(file,true); 利用string对象构建 new...原创 2020-02-18 23:28:02 · 268 阅读 · 2 评论 -
Java(IO之File类)
IO之File类I/O相关 输入/输出 流(数据流动)数据流动的方向 读数据(输入Input) 写数据(输出output)文件流 字符流 对象流 网络流....1.什么叫文件一种电脑的存储形式文件有不同的格式 .txt .doc .ppt .mp4 .jpg .rar ...文件夹?(不算文件)----目录路径(是为了找到不同文件的一...原创 2020-02-15 21:28:19 · 275 阅读 · 3 评论 -
Java-IO之File类
IO之File类I/O相关 输入/输出 流(数据流动)数据流动的方向 读数据(输入Input) 写数据(输出output)文件流 字符流 对象流 网络流....1.什么叫文件一种电脑的存储形式文件有不同的格式 .txt .doc .ppt .mp4 .jpg .rar ...文件夹?----目录路径File----->与电脑上...原创 2020-01-28 12:26:55 · 104 阅读 · 0 评论