JAVA高级
文章平均质量分 76
张三博客
资深编程工程师
展开
-
Java获取完整SSL证书链信息(包含完整证书链)
Java通过X509获取完整证书链信息包含受信任的和不受信任的证书,包含完整的证书使用者、签发者、签名算法公钥、证书版本、证书品牌等信息原创 2022-09-16 14:43:51 · 24414 阅读 · 5 评论 -
Apache ShardingSphere介绍和基本使用及分库分表(水平拆分、垂直拆分)理解和使用
分库从单个数据库拆分成多个数据库的过程,将数据散落在多个数据库中。分表从单张表拆分成多张表的过程,将数据散落在多张表内。原创 2022-07-18 17:20:04 · 2488 阅读 · 0 评论 -
Java多线程与并发编程
1.程序、进程与线程程序是静态的概念,windows下通常指exe文件进程是动态的概念,是程序在运行状态,进程说明程序在内存中的边界线程是进程内的一个"基本任务",每个线程都有自己的功能,是CPU分配与调度的基本单位...原创 2021-03-15 12:34:24 · 142 阅读 · 0 评论 -
初始RabbitMQ
1.Message Queue(MQ)消息队列(Message Queue),是一种跨进程的通信机制,用于上下游传递消息MQ作为消息中间件,最主要的作用系统之间的信息传递进行"解耦",MQ是数据可靠性的重要保障List item2.什么是RabbitMQRabbitMQ是全世界最火的开源消息代理服务器,在全世界拥有超过35000个项目部署在RabbitMQRabbitMQ支持几乎所有的操作系统与编程语言。Rabbit提供了高并发、高可用的成熟方案,支持多种消息协议,易于部署与使用。官原创 2021-03-04 14:58:39 · 187 阅读 · 1 评论 -
继承和聚合的区别在哪?
继承继承指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力,继承是类与类或者接口与接口之间最常见的关系;在Java中此类关系通过关键字extends明确标识,在设计时一般没有争议性。聚合聚合是关联关系的一种特例,他体现的是整体与部分、拥有的关系,即has-a的关系,此时整体与部分之间是可分离的,他们可以具有各自的生命周期,部分可以属于多个整体对象,也可以为多个整体对象共享;比如计算机与CPU、公司与员工的关系等;表现在代码层面,和关联关系是一致原创 2021-03-03 10:12:56 · 1579 阅读 · 0 评论 -
JAVA8新特性Stream的常用方法 以及lamda
package com.vqseo.utils;import org.assertj.core.util.Lists;import java.util.*;import java.util.regex.Pattern;import java.util.stream.Collectors;import java.util.stream.Stream;/** * @author ZhangSan_Plus * @version 1.0 * @className LambdaUtils.原创 2020-12-28 16:55:15 · 326 阅读 · 1 评论 -
如何保证API接口数据安全?
前后端分离的开发方式,我们以接口为标准来进行推动,定义好接口,各自开发自己的功能,最后进行联调整合。无论是开发原生的APP还是webapp还是PC端的软件,只要是前后端分离的模式,就避免不了调用后端提供的接口来进行业务交互。网页或者app,只要抓下包就可以清楚的知道这个请求获取到的数据,也可以伪造请求去获取或攻击服务器;也对爬虫工程师来说是一种福音,要抓你的数据简直轻而易举。那我们怎么去解决这些问题呢?接口签名我们先考虑一下接口数据被伪造,以及接口被重复调用的问题,要解决这个问题我们就要用到接口签名的原创 2020-08-27 20:18:02 · 1075 阅读 · 0 评论 -
你真的知道锁吗?你会使用锁吗?(死磕Synchronized底层实现)
多线程的东西很多,也很有意思,所以我最近的重心可能都是多线程的方向去靠了,不知道大家喜欢否?1.乐观锁&悲观锁1.1 场景我们正常去使用Synchronized一般都是用在下面这几种场景:修饰实例方法,对当前实例对象this加锁public class Synchronized { public synchronized void husband(){ }}修饰静态方法,对当前类的Class对象加锁public class Synchronized {.转载 2020-08-11 10:07:30 · 1730 阅读 · 0 评论 -
SpringBoot整合阿里云短信实战支持MQ+Redis 失效时间等等
具体那些需要怎么去申请key这些的我就不说了请百度 直接上代码1.POM依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-activemq</artifactId> </dependency> <dependenc原创 2020-07-15 08:54:47 · 376 阅读 · 0 评论 -
用程序员的方式祝大家端午安康
祝大家端午安康public static void main(String[] args) { String[]dw=new String[]{"祝","端","午","安","康"}; System.out.print(Ansi.ansi().eraseScreen().fg(Ansi.Color.CYAN).a(dw[0])); System.out.print(Ansi.ansi().eraseScreen().fg(Ansi.Color.MAGENT原创 2020-06-25 18:19:20 · 519 阅读 · 0 评论 -
高并发下为什么需要限流?
互联网项目与传统项目不同的互联网项目是暴露在互联网中,面向的是全体网民,这时候可能出现以下两种访问形式需要我们采取一些必要措施对我们的服务进行保护。1、大量正常用户高频访问导致服务器宕机2、恶意用户高频访问导致服务器宕机3、网页爬虫 ,对于这些情况我们需要对用户的访问进行限流访问...原创 2020-06-15 10:17:26 · 434 阅读 · 0 评论 -
动态代理技术适用的场景是什么?
java的动态代理是基于JDK中Proxy和InvocationHandler来实现的,InvocationHandler用于实现接口的方法和业务的增强,Proxy通过调用native方法在内存中生成字节码,从而生成指定接口的实现类和实例;动态代理技术适用于对系统进行无侵入性的增强的时候适用;...原创 2020-06-15 10:16:01 · 361 阅读 · 0 评论 -
Spring是如何处理Bean多线程下的并发问题的? ----- ThreadLocal
ThreadLocal天生为解决相同变量的访问冲突问题, 所以这个对于spring的默认单例bean的多线程访问是一个完美的解决方案。spring也确实是用了ThreadLocal来处理多线程下相同变量并发的线程安全问题。1. ThreadLocal的简介那么看看jdk是怎么说的:此类提供线程局部变量,这些变量与普通变量不同,每个线程都有自己的变量,通过ThreadLocal的get或者set方法访问,有独立初始化的变量副本。ThreadLocal实例通常是希望将状态与线程关联的类中的私有静态字段。2原创 2020-06-08 10:20:28 · 823 阅读 · 0 评论 -
Java类Calendar
Calendar类Calendar:它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。一、构造方法protected Calendar() :由于修饰符是protected,所以无法直接创建该对象。需要通过别的途径生成该对象。二、成员方法 Calendar类的成员方法static Calendar getInstance()使用默认时区和区域设置原创 2020-05-29 08:40:42 · 127 阅读 · 0 评论 -
MyBatis的原理及使用和框架概念的引入
MyBatis的学习1.什么是框架?1>什么是框架? 框架(Framework)是整个部分或系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;另一种定义认为,框架是可被应用开发者定制者的应用骨架。前者是从应用方面而后者是从目的方面给出的定义 简言而之,框架其实就是某种应用的半成品,就是一组组件,供你选用完成你自己的系统,简单的说就是使用别人搭好的舞台,你来做表演,而且,框架一般是成熟的不断升级的软件 使用框架的好处:框架封装了很多的细节,使开发者可以使用极简的方式实现功能大大提高开原创 2020-05-20 18:12:19 · 298 阅读 · 0 评论 -
SSM+shiro+redis+oracle等Maven坐标(线上)
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">原创 2020-05-20 18:08:05 · 498 阅读 · 0 评论 -
Java全文检索(Lucene)
全文检索(Lucene)1.数据的分类1>结构化数据 格式固定,长度固定,数据类型固定 如:数据库中的数据2>非结构化数据 word文档,pdf文档,邮件,html,txt 格式不固定,长度不固定,数据类型不固定2.数据的查询1>结构化数据的查询 SQL语句:结构化查询语言--查询结构化数据的方法(简单速度快)2>非结构化数据的查询 从文本文件中找出包含Spring单词的文件 1.目测 2.使用程序把文件读取到内存中然后匹配字符串(顺序扫描) 3原创 2020-05-19 13:46:14 · 1797 阅读 · 0 评论 -
传统BIO的缺点/NIO的设计理念 使用NIO实现并发Demo
传统BIO的缺点:在accept的时候会作出放弃CPU的操作 线程阻塞在socket.getInputStream.read();的时候会造成线程阻塞BIO想实现并发需要采用多线程的方式 但是多线程有很多缺点(最大的缺点:消耗程序资源)传统BIO服务器NetServer.class代码public class NetServer { static byte []bytes=new byte[1024]; public static void main(String[] a原创 2020-05-15 10:33:02 · 215 阅读 · 0 评论 -
使用fastJson 处理json字符串数据获取对象和集合等操作
Maven坐标:fastjson 具体的版本根据各人情况而定 但是个人介意还是采用使用量多的 <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.56</version> </dependency&g原创 2020-05-14 16:41:58 · 713 阅读 · 0 评论 -
JDK1.8新特性lambda表达式 官方文档
The interface Predicate<T> is an example of a generic interface. (For more information about generics, see the Generics (Updated) lesson.) Generic types (such as generic interfaces) specify one or more type parameters within angle brackets (<>). This inter原创 2020-05-11 17:46:23 · 927 阅读 · 0 评论 -
Lucene全文检索工具学习
1.什么是Lucene?概念:Lucene是一个基于Java开发全文检索工具包1>Lucene实现全文检索的流程1).创建索引获得文档:–原始文档:要基于哪些数据来进行检索,那么这些数据就是原始文档搜索引擎:使用爬虫获得原始文档站内搜索:数据库中的数据案例:直接使用IO流读取磁盘中的文件2).构建文档对象获取原始内容的目的是为了索引,在索引前需要将原始内容创建成文档(Dou...原创 2019-08-21 15:02:43 · 227 阅读 · 0 评论 -
解决Mavem项目创建过慢以及IDEA的常用快捷键
解决Mavem项目创建过慢以及IDEA的常用快捷键archetypeCataloginternalidea常用的快捷键Alt+回车 导入包,自动修正Ctrl+N 查找类Ctrl+Shift+N 查找文件Ctrl+Alt+L 格式化代码Ctrl+Alt+O 优化导入的类和包Alt+Insert 生成代码(如get,set方法,构造函数等)Ctrl+E或者A...原创 2019-08-21 15:04:40 · 137 阅读 · 0 评论 -
SSM项目搭建所需要的Maven坐标
SSM项目搭建所需要的Maven坐标 <!-- 统一管理jar包版本 --> <properties> <spring.version>5.0.2.RELEASE</spring.version> <slf4j.version>1.6.6</slf4j.version> <log4j.version>...原创 2019-08-21 15:06:31 · 523 阅读 · 0 评论 -
ORM的简述
-ORM的简述java学习交流Q群:10045770691.简介关于ORM的描述:对象映射关系(ORM)提供了概念性的,易于理解的模型化数据方法。ORM方法论基于三个核心原则;简单–以最基本的形式建模数据;传达性–数据库结构被任何人都能理解的语言文档化;精确性–基于数据模型创建正确标准化的结构。建模者通过收集来自那些熟悉应用程序但不熟悉建模者的人的信息开发模型。建模者必须能够用非技术企业...原创 2019-08-21 15:33:15 · 645 阅读 · 0 评论 -
Map集合的深入透析
Map集合的深入透析Java学习交流群:10045770691.Map集合的概述现实生活中,我们常会看到这样的一种集合:IP地址与主机名,身份证号与个人,系统用户名与系统用户对象等,这种一一对应的关系,就叫做映射。Java提供了专门的集合类用来存放这种对象关系的对象,即java.util.Map接口。我们通过查看Map接口描述,发现Map接口下的集合与Collection接口下的集合,它...原创 2019-08-21 15:57:22 · 224 阅读 · 0 评论