自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 利用socket建立简单的聊天室(其中体现多线程)

创建Client聊天室客户端类package socket;import java.io.*;import java.net.Socket;import java.util.Scanner;/** * 聊天室客户端 * */public class Client { /* javc.net.Socket套接字 Socket封装可TCP协议的通讯细节,使用它可以与远端计算机建立连接 并使用俩个流(一个输入,一个输出)完成与远端计算机的数据交互。

2021-07-03 16:06:00 309

原创 elemnt-ui的el-table在table中合并某个字段相同的项(vue3)

/ 只需要将 xxx 修改为自己需要合并的字段名即可。if (index === 0) {//想合并第几列写几。1、el-table添加span-method。//第一列需合并相同内容的判断条件。

2023-11-03 16:39:40 1142

原创 vue3单条数据轮播(亲测-比el-table轮播简单)

vue3单条数据轮播使用vue3-seamless-scroll组件

2023-09-01 12:03:47 522

原创 使用openssl生成pfx数字证书(亲测实战好用)

openssl生成pfx数字证书

2022-11-02 10:30:04 4959

原创 JWT令牌(Oauth2的令牌加密)

前言 通过我们创建Oauth2服务器,我们已经完成了利用Oauth2颁发和验证令牌 但是我们登录成功用户的信息仍然保存在了服务器内存中 其实就是我们看到的令牌是UUID作为的key,用户的信息是内存中的value 本质上是使用这个uuid获得内存中的用户 为了实现刚开始的目标,解放内存,我们需要使用JWT令牌什么是JWT令牌 JWT(Json Web Token)·是一种json格式,保存用户信...

2021-09-12 12:54:24 301

原创 什么是跨域?后端开发怎么实现跨域?

首先我们要先了解一个概念--同源策略。同源策略,它是由Netscape提出的一个著名的安全策略。现在所有支持JavaScript 的浏览器都会使用这个策略。所谓同源是指,域名,协议,端口相同。目的是出于安全考虑,防止js脚本随意调用其他网站的资源。所谓同源,就是当我们实现前后端分离的时候:我们做注册时当前网站源为:http://localhost:8080我们要访问的注册功能路径:http://localhost:9000当违反同源策略时,请求可以发送到控制器,但是客户端不能接收到控制器

2021-09-12 12:42:06 902

原创 授权服务器核心配置(Oauth)

配置大致分为3部分1.配置授权服务器的登录参数2.当前登录的客户端有哪些权限3.配置资源服务器的安全限制在security包中创建一个类做上面的配置AuthorizationServer(授权服务器类)@Configuration// 这个注解表示下面的类是配置Oauth2授权标准的核心类// Oauth2包含的控制器方法中会读取下面的配置,实施具体授权@EnableAuthorizationServerpublic class AuthorizationServer ex

2021-09-12 12:39:35 438

原创 微服务的会话保持

单点登录实现思想 微服务项目因为有多个服务器组成,遇到了会话保持问题在一个服务器上登录,能够让所有服务器知道当前用户的信息的解决方案就是单点登录单点登录的办法有很多,但是实现思路主要有两种1.Session共享2.Token令牌方法一:session共享原理:让用户的登录信息共享给所有模块,用户登录时共享session上图采用session实现单点登录:基本思路是将用户信息保存到Redis,哪个模块需要用户信息,从redis中取优点:安全性高...

2021-09-11 17:42:44 472

原创 手写一个二叉树的添加

public class MyTreeSet<T> { private Node root; private static class Node<T>{ T value; Node left; Node right; public Node(T e){ value=e; } public boolean addChild(T e){ .

2021-08-18 21:14:59 76

原创 关于HashCode()方法

hashCode() java为了实现散列表算法,在Object类定义了一个方法,此方法用途就是为散列表HashMap计算散列值hashCode()方法的默认值是java自动分配的串号注意:hashcode()的默认值网上很多不入流的说他是地址值,其实不是.hashCode()的建议; 在重写equals方法的时候,要一起重写hashCode();俩个对象的equals比较相等的时候,他们hashCode必须一样俩个对象equals比较不同的时候,hashCode()尽可能不同.*.

2021-08-18 20:38:20 195

原创 HaspMap原理 和性能分析(简单分析*干货*)

一,什么是HashMap? HashMap是map的最常用实现类,具有极佳的查询性能,根据Key找到value特别快. 二,何时使用? 凡是需要查询的时候,尽量使用hashmap(尽量不要使用for,因为降低性能) 三,原理分析 hashmap内部使用了数组下标找到数据特别快的特点,将数据储存到数组中,查找时候根据根据key快速计算出数组下标位置. 1,添加 根据key的hash...

2021-08-18 20:30:44 296

原创 java多线程机制

1.1 进程 进程是程序的一次动态执行过程,它对应了从代码加载,执行至执行完毕的一个完整过程,这个过程也是进程本身从产生、发展、至消亡的过程。1.2进程和线程 线程不是进程,但其行为很像进程,线程是比进程更小的执行单位,一个进程在执行过程中可以产生多个线程,生成多条执行线索,每条线索,即每个线程也有它自身的产生、存在和消亡的过程。...

2021-07-18 11:12:28 196

原创 使OM4J解析XML文档

package xml;import org.dom4j.Attribute;import org.dom4j.Document;import org.dom4j.Element;import org.dom4j.io.SAXReader;import java.util.List;/** * 使OM4J解析XML文档用D */public class ParseXmlDemo { public static void main(String[] args) { .

2021-07-13 20:16:40 84

原创 HTTP协议 超文本传输协议 由万维网制定(w3c)

HTTP协议 超文本传输协议 由万维网制定(w3c)是浏览器与服务器通讯的应用层协议,规定了浏览器与服务器之间的交互规则以及交互数据的格式信息等。HTTP协议对于客户端与服务端之间的交互规则有以下定义:要求浏览器与服务端之间必须遵循一问一答的规则,即:浏览器与服务端建立TCP连接后需要先发送一个请求(问)然后服务端接收到请求并予以处理后再发送响应(答)。注意,服务端永远不会主动给浏览器发送信息。HTTP要求浏览器与服务端的传输层协议必须是可靠的传输,因此是使用TCP协议作为传输层协议.

2021-07-08 21:02:52 514 1

原创 当线程调用sleep方法进入阻塞过程中的interrupt方法

public class SleepDemo2 { public static void main(String[] args) { Thread lin=new Thread(){ public void run(){ System.out.println("林:睡会吧........"); try { Thread.sleep(1000000); .

2021-07-07 20:45:13 292

原创 线程的优先级(详细)

/*** 线程的优先级* 线程分为10个优先级,分别用整数1——10表示,其中1为最低优先级,5为默认值,* 10为最高优先级* 优先级越高的线程获取CPU时间片的次数越多* 线程strsrt后就纳入到了线程调度器中统一管理,线程无权主动索取时间片* 只能被动分配,因此可以通过线程的优先级来最大程度的改善获取时间片的几率*/public class PoiorityDemo { public static void main(String[] args) { T.

2021-07-07 20:41:05 3625

原创 新循环(for):增强for循环

package Collection;import javax.swing.text.html.HTMLDocument;import java.util.ArrayList;import java.util.Collection;import java.util.Iterator;/** * JDK5推出一个新的特性:增强型for循环,也称为新循环 * 它使得我们可以使用相同的语法遍历集合或数组 * 语法: * for(元素类型 变量名:集合|数组){ * * } */pu.

2021-07-06 20:43:07 1714

原创 java中将数组转换为集合

数组的工具类Arrays提供了一个静态方法:arrList,可将一个数组转换为一个Listpublic class ArrayToListDemo { public static void main(String[] args) { String[] arr={"one","two","three","four","five"}; System.out.println("array:"+ Arrays.toString(arr)); ...

2021-07-06 19:00:10 2710

原创 java中将集合转换为数组

Collection提供了一个方法,toArray,可以将当前集合转换为一个数组public class CollectionToArrayDemo { public static void main(String[] args) { Collection<String> c=new ArrayList<>(); c.add("one"); c.add("two"); c.add("three");

2021-07-06 18:58:26 1054

原创 Collection接口,所有集合的顶级接口,里面规定了集合所必须具备的相关功能.

package Collection;import java.util.ArrayList;import java.util.Collection;/** * java集合框架 * java.until.Collection接口,所有集合的顶级接口,里面规定了集合所必须 * 具备的相关功能 * 集合和数组一样,可以保存一组元素,并且对于元素的操作都封装成了方法 * * 集合有多种实现类,实现了不同的数据结构。实际开发中我们可以结合实际需求 * 选取合适的数据结构来存储元素 * .

2021-07-06 18:55:50 205

原创 获取线程相关信息的一组方法

package thread;/** * 获取线程相关信息的一组方法 */public class ThreadInfoDemo { public static void main(String[] args) { //获取主线程 Thread main = Thread.currentThread(); String name = main.getName(); System.out.println(name); .

2021-07-03 16:11:44 53

原创 JAVA使用匿名内部类完成线程的俩种创建

package thread;/** * 使用匿名内部类完成线程的俩种创建 */public class ThreadDemo3 { public static void main(String[] args) { new Thread(){ public void run() { for (int i=0;i<10000;i++){ System.out.println.

2021-07-03 16:10:54 86

原创 JAVA多线程机制

/** * 多线程 * duoxianc可以并发执行多个代码片段,使得代码有机会“同时进行”。 * <p> * 线程的创建有俩种方式: * 1:继承Thread并重写run方法 */public class ThreadDemo1 { public static void main(String[] args) { Thread thread=new MyThead1(); Thread thread1=new MyThead2(); .

2021-07-03 16:00:41 115

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除