
java基础
文章平均质量分 76
一只胡说八道的猴子
共勉!!高处见!
展开
-
Future模式与异步回调模式
写再前面Future模式与异步回调模式二者十分相似又存在区别,所以将两个和在一起进行总结。Future模式什么是Future模式长篇大论用生活中的例子来打个比喻,就像叫外卖。比如在午休之前我们可以提前叫外卖,只需要点好食物,下个单。然后我们可以继续工作。到了中午下班的时候外卖也就到了,然后就可以吃个午餐,再美滋滋的睡个午觉。而如果你在下班的时候才叫外卖,那就只能坐在那里干等着外卖小哥,最后拿到外卖吃完午饭,午休时间也差不多结束了。Future 模式是高并发设计与开发过程中常见的设计模式,原创 2021-11-09 22:04:32 · 2503 阅读 · 2 评论 -
跨域请求剖析
什么是跨域请求在 HTML 中,<a>, <form>, <img>, <script>, <iframe>, <link> 等标签以及 Ajax 都可以指向一个资源地址,而所谓的跨域请求就是指:当前发起请求的域与该请求指向的资源所在的域不一样。这里的域指的是这样的一个概念:我们认为若协议 + 域名 + 端口号均相同,那么就是同域。举个例子:假如一个域名为aaa.cn的网站,它发起一个资源路径为aaa.cn/books/getBoo原创 2021-08-13 18:30:43 · 178 阅读 · 0 评论 -
Stream流
流基础知识什么是流是一组有序的数据序列,将数据从一个地方带到另一个地方。 。根据数据流向的不同,可以分为输入(Input)流和输出(Output)流两种。流的作用Java 中流的定义是“源中支持聚合操作的一系列元素”。流从诸如集合,数组或I / O资源之类的源中消耗。流支持功能编程语言的通用操作,例如映射,过滤,缩小,查找,排序等。什么是输入流与输出流Java 程序通过流来完成输入/输出,所有的输入/输出以流的形式处理。因此要了解 I/O 系统,首先要理解输入/输出流的概念。输入就是将数据从各原创 2021-08-13 12:07:07 · 975 阅读 · 0 评论 -
@PathVarible详解
@PathVarible@PathVariable是spring3.0的一个新功能:接收请求路径中占位符的值语法:@PathVariable("xxx")通过 @PathVariable 可以将URL中占位符参数{xxx}绑定到处理器类的方法形参中@PathVariable(“xxx“) @RequestMapping(value=”user/{id}/{name}”)请求路径:http://localhost:8080/hello/show5/1/james测试环境:环境:jdk1.8原创 2021-08-10 19:58:19 · 2486 阅读 · 0 评论 -
快速初始化java数组的所有值
如何初始化java数组,,使用for循环? 当然也可以不过这里介绍一个更加简单的方式Arrays.fill(arr, value); 实际上,即使没有提供这个方法,也有两个思路:初始化一个默认的数组,每次使用System.arrayCopy().可以使用增长式初始化,开始初始化一个,然后使用ystem.arrayCopy().以倍数增长。...原创 2021-03-31 20:54:21 · 501 阅读 · 0 评论 -
Spring Cloud微服务学习系列8 序列化与反序列化
序列化与反序列化序列化和反序列化作为Java里一个较为基础的知识点,大家心里也有那么几句要说的,但我相信很多小伙伴掌握的也就是那么几句而已,如果再深究问一下Java如何实现序列化和反序列化的,就可能不知所措了!遥记当年也被问了这一个问题,自信满满的说了一大堆,什么是序列化、什么是反序列化、什么场景的时候才会用到等,然后面试官说:那你能说一下序列化和反序列化底层是如何实现的吗?一脸懵逼,然后回家等通知!一、基本概念1、什么是序列化和反序列化(1)Java序列化是指把Java对象转换为字节序列的过程,而原创 2021-03-02 13:06:23 · 1733 阅读 · 3 评论 -
完整的卸载Jdk java环境教程
完整的卸载Jdk java环境教程之前我一直用的都是jdk1.9但是最近写项目的时候发现jdk1.9存在许多漏洞,于是我想重新装个jdk1.8,然后我就入坑了,我发现怎么装也装不上,经过不断的查阅文章,终于将jdk给完全的卸载并重新安装了解决方案如下1.正常卸载jdk,把这两个卸载掉接下来的操作如果找不到所对应的文件夹则说明在第一步的时候已经自动卸载了,不用再进行操作1.输入这个路径 C:\WINDOWS\System32,删除该路径下的java.exe javaw.exe javaw原创 2020-09-26 15:43:04 · 2240 阅读 · 3 评论 -
java Spring系列之 配置文件的操作 +Bean的生命周期+不同数据类型的注入简析+注入的原理详解+配置文件中不同标签体的使用方式
Spring系列之 配置文件的操作**Spring配置文件的作用Spring配置文件是用于Spring工厂进行Bean生产,依赖关系注入,Bean实例分发的图纸,他类似于人类的大脑,我们必须掌握这张图纸的使用方法,才能进行相关的操作,灵活运用这张图纸准确的表达自己的意图。运筹帷幄,决胜千里。Spring的配置文件是一个或多个标准的xml文档,applicationContext.xml文件是默认的配置文件,当容器启动找不到配置文件时,就会尝试加载这个配置文件。未使用Spring前程序的开发步骤这里原创 2020-09-16 16:05:28 · 325 阅读 · 0 评论 -
Java Redis系列1 关系型数据库与非关系型数据库的优缺点及概念
Java Redis系列1 关系型数据库与非关系型数据库的优缺点及概念在学习redis之前我们先来学习两个概念,即什么是关系型数据库什么是非关系型数据库,二者的区别是什么,二者的关系又是什么?**关系型数据库**关系型数据库,是指采用了关系模型来组织数据的数据库,其以行和列的形式存储数据,以便于用户理解,关系型数据库这一系列的行和列被称为表,一组表组成了数据库。用户通过查询来检索数据库中的数据,而查询是一个用于限定数据库中某些区域的执行代码。关系模型可以简单理解为二维表格模型,而一个关系型数据原创 2020-08-09 10:56:12 · 1130 阅读 · 0 评论 -
JAVA JDBC Template的使用
JAVA JDBC Template的使用什么是Template?Spring框架对JDBC的简单封装。提供了一个JDBCTemplate对象简化JDBC的开发Template使用步骤导入jar包创建JdbcTemplate对象。依赖于数据源DataSource* JdbcTemplate template = new JdbcTemplate(ds);调用JdbcTemplate的方法来完成CRUD的操作* update():执行DML语句。增、删、改语句* queryFor原创 2020-07-28 11:12:39 · 591 阅读 · 0 评论 -
java JDBC系列1 JDBC类的简析与JDBC的基础操作
java JDBC系列1 JDBC类的简析与JDBC的基础操作什么是JDBC?概念:JAVA Database Connectivity Javas数据库连接,Java语言操作数据库接口,然后由各个数据库厂商去实现这个接口,提供数据库驱动java包,我们可以使用这套接口,真正执行的是jar驱动包中的实习类使用一张图让大家更为直观的理解:coder就是写这套接口的程序员JDBC的使用步骤1.导入驱动jar包2.注册驱动3.获取数据库连接对象4.定义sql执行语句5.获取sql语句执行原创 2020-07-27 10:23:59 · 185 阅读 · 0 评论 -
Java反射
Java反射反射:框架设计的灵魂框架:半成品,可以在框架的基础上进行软件开发,简化编码反射:将类的各个组成部分封装为其他的对象,这就是反射机制好处:1.可以在程序的运行过程中,操作这些对象2.可以解耦,提高程序的可拓展性下面我们用一张图来讲述java的反射机制由图可见将类的各个组成部分封装为一个个对象,成员变量封装为field对象,构造方法封装为con对象,成员方法封装围为method对象获取Clss对象的三种方式Class.forName(“全类名”):将字节码文件加载进内存,返回C原创 2020-07-23 17:16:16 · 115 阅读 · 0 评论 -
Java实现一个简单的文件上传案例
Java实现一个简单的文件上传案例实现流程:1.客户端从硬盘读取文件数据到程序中2.客户端输出流,写出文件到服务端3.服务端输出流,读取文件数据到服务端中4.输出流,写出文件数据到服务器硬盘中下面上代码上传单个文件服务器端package FileUpload;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.net.ServerSock原创 2020-07-21 21:25:47 · 627 阅读 · 0 评论 -
Java中的TCP通信程序
Java中的TCP通信程序TCP可以实现两台计算机之间的数据交互通信的两端,要严格区分客户端与服务端两端通信时的步骤:1.服务端程序,需要事先启动,等待客户端连接2.客户端主动连接服务器端,才能成功通信,服务器端不可以主动链接客户端在java中两个类用于实现TCP通信程序:客户端: java.net.Socket 类表示。创建 Socket 对象,向服务端发出连接请求,服务端响应请求,两者建 立连接开始通信。服务端: java.net.ServerSocket 类表示。创建 ServerSo原创 2020-07-21 13:47:46 · 411 阅读 · 0 评论 -
java 网络通信协议 (三次握手+协议的概述+TCP+UDP+IP)
java 网络通信协议 (三次握手+协议的概述)首先我们先来了解两种软件协议:1 c/s结构:全称Client/Server结构,是指客户端与服务器的结构,就像qq,微信等软件,通过客户端与服务器交互2.B/S结构:全称Browser/Server,即浏览器与服务器结构,如火狐,谷歌等等,通过浏览器与服务器交互这两种架构各有千秋,但都离不开网络的支持,网络编程就是在一定协议下,实现两台计算机通信的程序网络通信协议网络通信协议:是计算机在交互过程中必须尊守的规则,只有遵守这些规则计算机之间才可原创 2020-07-21 10:39:32 · 658 阅读 · 0 评论 -
java 缓冲流+原理图解
java 缓冲流什么是java缓冲流?缓冲流也叫高效流,是对四个基本的FileXxx流的增强,按照数据类型分类:字节缓冲流 :BufferedInputStream,BufferedOutputStream字符缓冲流:BufferedReader,BufferedWriter基本原理:是在创建流对象的时候,会创建一个内置默认大小的缓冲区数组,减少系统IO次数,从而提高读写效率原理图解这里用一段比喻你们可能会更加好理解一个京东的快递小哥,开始器自行车送快递,一趟只能送一个,但是后来好老原创 2020-07-19 13:49:45 · 3824 阅读 · 0 评论 -
Java Properties集合基础解析
Java Properties集合基础解析本期学习的properties集合是项目中经常用到的操作什么是Properties集合?java.util.Properties集合继承于Hashtable,来表示一个持久的属性集,他使用键值结构存储数据,每个键及其对应的值都是一个字符串,该类被许多java类使用,比如获取系统属性时,System.getProperties,方法就是返回一个Properties对象properties集合是唯一一个与IO流相结合的集合可以使用Properties集合中的方原创 2020-07-19 10:56:22 · 266 阅读 · 0 评论 -
Java 字节流 字符流 io流
Java 字符流 字节流1. 首先我们先来了解一个概念什么是io流流是一种抽象概念,他代表了数据的无结构化传递,按照流的方式进行输入输出,数据被当成无结构的字节序或字符序列,从流中取得数据的操作称为提取操作,而从流中添加数据的操作称为插入操作,用来进行输入输出操作的流称为lo流,换句话说,io就是以流的方式经行输入输出就拿我们生活中的自来水厂举例,我们每个人家里喝的水都是自来水厂来的,自来水厂又是通过水源地来的水是通过水管来的那么这个水就可以理解为io流Java中的IO操作主要是指使用java原创 2020-07-18 14:57:11 · 170 阅读 · 0 评论 -
File 类基础解析3 文件过滤器优化
File类基础解析3 文件过滤器优化什么是文件过滤器?java.io.FileFilter 是一个接口,是File的过滤器。 该接口的对象可以传递给File类的 listFiles(FileFilter) 作为参数, 接口中只有一个方法boolean accept(File pathname) :测试pathname是否应该包含在当前File目录中,符合则返回true简单的分析接口作为参数,需要传递子类对象,重写其中方法。我们选择匿名内部类方式,比较简单。accept 方法,参数为File,原创 2020-07-16 20:36:45 · 180 阅读 · 0 评论 -
Java File类基础解析 使用递归来遍历目录 2
Java File类基础解析 使用递归来遍历目录的代码 2package File;import java.io.File;public class Main { public static void main(String[] args) { //要遍历的文件夹的根目录 String rootpath="D:\\test"; File file = new File(rootpath); printDir(file);原创 2020-07-16 19:49:33 · 135 阅读 · 0 评论 -
Java File类基础解析 1
Java File类基础解析 1File类的构造方法public File(String pathname) :通过给定的路径名字符转换为抽象路径名来创建新的File实例 String path = new String("D:\\a.text"); File file = new File(path);public File(String parent,String child) :从父路径字符串和子路路径字符串来创建新的File实例 String parentpath =原创 2020-07-16 19:35:50 · 130 阅读 · 0 评论 -
Java Lambda表达式
Java Lambda表达式原创 2020-07-16 09:48:00 · 254 阅读 · 0 评论 -
Java中多线程的使用(超级超级详细)线程池 7
Java中多线程的使用(超级超级详细)线程池 7什么是线程池?线程池是一个容纳多个线程的容器,线程池中的线程可以重复使用,无需反复创建线程而消耗过多的资源*使用多线程的好处:1.降低消耗,减少了创建和销毁线程的次数,每个线程都可以重复利用,可执行多个任务2.提高响应速度,任务可以不需要等到线程创建就可以立即执行3.提高线程的可管理性,根据系统的承受能力,调整线程池中工作线程的数目,防止消耗过多的内存,导致服务器死机线程池的使用线程池的顶级接口是java.util.concurrent.原创 2020-07-15 22:00:13 · 133 阅读 · 0 评论 -
Java中多线程的使用(超级超级详细)线程安全+线程锁原理解析+保证线程安全的三种方式 (同步代码块+同步方法+lock锁) 5
Java中多线程的使用(超级超级详细)线程安全+保证线程安全的三种方式 (同步代码块+同步方法+lock锁) 5当我们使用多线程访问同一个资源时,且多个线程对资源有写的 操作就容易出现线程安全问题,java为了解决线程安全问题引入了同步机制来解决,即在一个线程使用公共代码块的时候另一个线程不可以使用下面我用一个抢票的案例来给大家讲解保证线程安全的几种方式首先我们先来看看没有使用锁的情况下出现的情况package ThreadSafe;public class ThreadSafe impleme原创 2020-07-15 20:09:27 · 469 阅读 · 0 评论 -
Java中多线程的使用(超级超级详细)线程安全原理解析 4
Java中多线程的使用(超级超级详细)线程安全 4什么是线程安全?有多个线程在同时运行,这些线程可能会运行相同的代码,程序运行的每次结果和单线程运行的结果是一样的,而且其他变量的值也和预期的值一样,这就是线程安全我们下面来用一段代码来演示线程不安全的情况,下面用车站卖票来举例package ThreadSafe;public class Main { public static void main(String[] args) { //使用同一个对象 Threa原创 2020-07-15 17:19:37 · 299 阅读 · 0 评论 -
Java中多线程的使用(超级超级详细) Thead类的使用 3
Java中多线程的使用(超级超级详细) Thead类的使用 3下面我们先来介绍一些基本方法构造方法public Thread() :分配一个新的线程对象。public Thread(String name) :分配一个指定名字的新的线程对象。public Thread(Runnable target) :分配一个带有指定目标新的线程对象。public Thread(Runnable target,String name) :分配一个带有指定目标新的线程对象并指定名字。常用方法public S原创 2020-07-15 13:46:27 · 327 阅读 · 0 评论 -
Java中多线程的使用(超级超级详细)+多线程的实现原理 2
Java中多线程的使用(超级超级详细)+多线程的实现原理+线程的创建方式+同步代码块1.多线程的实现原理先上代码,通过代码加图的方式来解说public class Main { public static void main(String[] args) { MyThread myThread = new MyThread("one"); myThread.start(); int i=20; for (int i1 = i; i原创 2020-07-14 18:34:45 · 160 阅读 · 0 评论 -
Java多线程原理+基础知识(超级超级详细)+(并发与并行)+(进程与线程)1
Java多线程我们先来了解两个概念!!!!1.什么是并发与并行2.什么是进程与线程1.什么是并发与并行1.1并行:两个事情在同一时刻发生1.2并发:两个事情在同一时间段内发生并发与并行的区别:1.并行是指两个或者多个事件在同一时刻发生;而并发是指两个或多个事件在同一时间间隔发生。2.并行是不同实体上的多个事件,并发是多个实体的不同事件3.并行是多个处理器同时处理多个任务,并发是一个处理器“同时“处理多个任务并发的同时是指宏观上的同时:在同一时刻只能有一条指令执行,但多个进程指令被原创 2020-07-14 07:44:11 · 199 阅读 · 0 评论 -
Java异常基础+原理解析+自定义异常
Java异常基础+原理解析1.什么是异常呀?程序中的异常就好比人生病了,即再程序的运行过程中。出现非正常的情况,导致jvm非正常终止终止异常的体系:异常的的根类为java.lang.Throwable 下面有两个子类 java.lang.Error和java.lang.Exception平常说的异常通常是值java.lang.ExceptionError:好比绝症,比如说吃了含笑半步颠等毒药,无药可治的病,这种错误在java中无法通过处理,只可以先处理Exception:表示异常,异常产生后程序原创 2020-07-09 19:48:28 · 346 阅读 · 0 评论 -
Java StringBuilder方法
Java StringBuilder方法String中字符串的内容是不可变的(因为字符串底层是一个用final修饰的数组),变的是栈中引用对象的地址值,这就导致我们重新给字符串赋值时,就会在内存中再产生一个新的字符串,导致了内存的浪费在API中对String类有这样的描述:字符串是常量,它们的值在创建后不能被更改.为了解决这个问题java引入了StringBuilder数组什么是StringBuilder?它是一个类似于 String 的字符串缓冲区,通过某些方法调用可以改变该序列的长度和内容。原创 2020-07-08 19:37:00 · 424 阅读 · 0 评论 -
System类的currentTimeMillis()和arraycopy()方法
System类的currentTimeMillis()和arraycopy()方法java.lang.System`类中提供了大量的静态方法,本文介绍currentTimeMillis()方法和arraycopy()方法currentTimeMillis()方法public static long currentTimeMillis()获取当前系统时间与1970年01月01日00:00点之间的毫秒差值我们可以用这个方法来判断一个方法的运行时间,下面的代码以打印一个数组为例import java.原创 2020-07-08 19:11:30 · 235 阅读 · 0 评论 -
Object与Objects的equals方法源码解析
Object与Objects的equals方法源码解析**java.lang.Object类是Java语言中的根类,即所有类的父类。它中描述的所有方法子类都可以使用。在对象实例化的时候,最终找的父类就是Object。 如果一个类没有特别指定父类, 那么默认则继承自Object类 今天我们来讲讲equals方法1.public boolean equals(Object obj)`:指示其他某个对象是否与此对象“相等”。2.调用成员方法equals并指定参数为另一个对象,则可以判断这两个对象是否是相同的原创 2020-07-08 14:26:57 · 1328 阅读 · 0 评论 -
当class,interface作为成员变量
当class,interface作为成员变量再实际开发中,引用类作为成员变量是十分普遍的,我们可以在理解基本类型的使用方式基础上,进一步 去掌握引用类型的使用方式。基本类型可以作为成员变量、作为方法的参数、作为方法的返回值,那么当然引用类 型也是可以的。本文介绍class,interface作为成员变量,其实和基本数据类型相差无几直接上代码吧class作为成员变量public class A { private B b; public void shuchu(){ Sy原创 2020-07-08 13:38:39 · 787 阅读 · 0 评论 -
Java内部类详解
Java内部类详解什么是Java内部类,就是一个类定义在另一个类里面。俄罗斯套娃晓得伐??在这里A就是外部类B就是内部类public class A { class B{ }}为什么使用内部类,内部类的作用是什么?比如下图是一辆汽车,我们在描述这个汽车的时候,肯定会定义一个Car类,但是汽车的内部有发动机,车轮等等部件,而发动机内部又有许多部件,这时我们就需要使用内部类,即在汽车类内再放一个发动机类外部类与内部类的访问1.内部类可以直接访问外部类的成员,包括私有的因为你在这原创 2020-07-08 13:00:51 · 148 阅读 · 0 评论 -
java修饰符
java修饰符在Java中提供了四种访问权限,使用不同的访问权限修饰符修饰时,被修饰的内容会有不同的访问权限,public:公共的。protected:受保护的default:默认的private:私有的不加修饰符,默认为default...原创 2020-07-07 23:12:36 · 99 阅读 · 0 评论 -
Java final关键字
final关键字为了避免子类随意更改继承父类的的情况,java提供final关键字来修饰不可变的内容final: 不可改变。可以用于修饰类、方法和变量。类:被修饰的类,不能被继承。方法:被修饰的方法,不能被重写。变量:被修饰的变量,不能被重新赋值。修饰类 final class 类名 { }被final修饰的类不可以被继承,江湖人称太监类,即没有子类目的供我们使用,不让我们更改其内容修饰方法格式修饰符 final 返回值类型 方法名(参数列表){ //方法体 }不能被继承修饰原创 2020-07-07 23:08:47 · 118 阅读 · 0 评论 -
Java多态
Java多态java有四大基本特性:多态,封装,继承,抽象,这四大特性就好比四大金刚,很重要在我前面的文章中我已经介绍了封装,继承,多态,今天我来讲讲多态什么是多态?多态就是指一个事物有不同表现形式。比如水有固态,液态,气态三种形态,我首先是个人,然后我也是一名程序员Java中多态的实现格式父类类型 对象名=new 子类名称();注:父类类型:指子类对象继承的父类类型,或者实现的父接口类型。//Audi继承自Car类Car audi=new Audi()多态中成员的变量使用口诀:原创 2020-07-07 21:39:04 · 395 阅读 · 2 评论 -
Java接口详解
Java接口详解1.什么是接口?类封装了成员变量,成员方法和构造方法接口是一种引用数据类型,接口内部主要封装了方法,构造方法(jdk7及以前),默认方法和静态方法(jdk8),私有方法(jdk9)接口的定义与类的定义很相识,不过接口是使用interface来定义,他也会被编译成.class文件,但是一定要明确他和类是不同的,接口是另一种引用数据类型(引用数据类型:数组,类,接口。)这就是一个接口public interface Example {//抽象方法//静态方法(jdk8)//默认原创 2020-07-07 20:10:38 · 194 阅读 · 0 评论 -
java抽象类
java抽象类为什么使用抽象类父类中的方法,被它的子类们重写,子类各自的实现都不尽相同。那么父类的方法声明和方法主体,只有声明还有 意义,而方法主体则没有存在的意义了。我们把没有方法主体的方法称为抽象方法。Java语法规定,包含抽象方法 的类就是抽象类。如图猫和都继承自动物类,但是他们对eat()的实现方法不同...原创 2020-07-07 11:05:29 · 151 阅读 · 0 评论 -
java继承(super,this)
java继承1.1什么是继承?这里的继承我们可以同生活中的继承遗产来理解,长辈去世,子辈继承老一被留下的东西,在老一辈的基础上进行奋斗,其实继承的基本意思和这个也差不多不扯皮了我们来正经的说说什么是继承。继承:多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要 继承那一个类即可下面我们用一张动物世界的图来带领大家更好的理解继承继承的叫子类,而被继承叫交超类,父类或基类...原创 2020-07-07 10:13:34 · 533 阅读 · 0 评论