自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 资源 (1)
  • 收藏
  • 关注

原创 CA、ukey、java对接登录

7、提示用户需要输入pin码(pin码为ukey的密码,相当于用户身份的密码,只有ukey和Pin嘛同时在手里才能确定身份,大大提高了安全性,即使Pin码泄露,没有拿到ukey也无法登录,或者即使丢了ukey不知道Pin码同样不能登录)8、客户端使用Pin码对服务器返回的随机数进行签名,签名过程会验证Pin码的正确性,Pin码错误将无法进行签名,也就无法登录,Pin码正确后将会使用加密锁内部的私钥对随机数进行签名。9、Pin码验证正确并成功签名后,将用户信息和签名后的数据传到服务器。

2024-05-09 14:52:47 754 1

原创 java实现模板导出

基于excel模板写入数据并导出。

2024-03-15 14:27:52 377

原创 工作中常用的六种设计模式

Spring IoC容器负责创建对象实例,并确保在整个应用中,针对同一个Bean的ID,只实例化一次对象。在Spring中,HandlerInterceptor和HandlerInterceptorAdapter等类在处理请求拦截时,采用的就是责任链模式。一个请求会按照定义的拦截器顺序,逐个被处理,直到找到对应的处理器或者遍历完所有的拦截器。规定:软件中的对象(类、模块、函数等等)应该对于扩展是开放的,但是对于修改是封闭的。换句话说,一个实体是允许在不改变它的源代码的前提下变更它的行为。

2024-03-06 09:30:48 550

原创 MyBatis

MyBatis 是一个开源的持久层框架,最初是作为 Apache的 iBatis 项目开发的。MyBatis 提供了定制化 SQL、存储过程和高级映射的功能,它简化了 JDBC 代码的使用,避免了手动设置参数和获取结果集的需求。用户可以通过简单的 XML 或注解来配置和映射原始数据,实现接口和 Java 对象(POJO)到数据库记录的映射。总之,MyBatis 是一个优秀的持久层框架,它通过封装 JDBC 操作数据库的过程,简化了开发人员的工作,提高了开发效率和数据库访问的灵活性。

2024-03-04 14:02:31 337

原创 SpringBoot自动配置 工作原理 优点

1、@EnableAutoConfiguration 这个注解会"猜"你将如何配置 spring,前提是你已经添加了 jar 依赖项,如果 spring-boot-starter-web 已经添加 Tomcat 和 SpringMVC,这个注释就会自动假设您在开发一个 web 应用程序并添加相应的 spring 配置,会自动去 maven中读取每个 starter 中的 spring.factories 文件,该文件里配置了所有需要被创建spring 容器中 bean。1、减少开发、测试时间和努力。

2023-08-21 15:21:28 94

原创 常见的数据结构

2.1 常见的数据结构有哪些?1.数组:数组是最常用的数据结构,数组的特点是 长度固定, 可以用下标索引, 并且所有的元素的类型都是一致的。数组常用的场景有:从数据库里读取雇员的信息存储为EmployeeDetail[ ];把一个字符串转换并存储到一个字节数组中便于操作和处理等等。尽量把数组封装在一个类里,防止数据被错误的操作弄乱。另外,这一点也适合其他的数据结构。2.列表:列表和数组很相似,只不过它的 大小可以改变。 列表一般都是 通过一个固定大小的数组来 实现的,并且 会在需要的时候 自动调整大

2021-06-09 17:48:13 388 1

原创 java中什么是反射

反射在 Java 中的反射机制是指 在运行状态中,对于任意一个类都能够知道这个类所有的属性和方法;并且对于任意一个对象,都能够调用它的任意一个方法;这种动态获取信息以及动态调用对象方法的功能成为 Java 语言的反射机制...

2021-06-09 17:39:19 207 1

原创 线程,线程池,jdk相关知识大全

什么是线程?线程和进程的区别?线程:是进程的一个实体,是 cpu 调度和分派的基本单位,是比进程更小的可以独立运行的基本单位。进程: :具有一定独立功能的程序关于某个数据集合上的一次运行活动,是操作系统进行资源分配和调度的一个独 立单位。特点 :线程的划分尺度小于进程,这使多线程程序拥有高并发性,进程在运行时各自内存单元相互独立,线程之间 内存共享,这使多线程编程可以拥有更好的性能和用户体验注意:多线程编程对于其它程序是不友好的,占据大量 cpu 资源。创建线程有几种方式1.继承 Thre

2021-04-12 17:30:27 162

原创 在公司环境执行rm -rf /* 是什么感觉!怎么办!!!

我把线上服务器的数据干掉了!就在前几天我在公司的服务器上不小心讲rm -rf ./* 写成了rm -rf /*,导致公司服务器崩溃,数据丢失,好在那个不是生产环境,但还是把我吓了一跳,整个人都懵了,手都在颤抖,我相信经过这一次,下次绝对不可能在犯这样的错了。...

2021-04-12 17:20:41 688

原创 java发展史

java起源对于计算机语言的发展史,业界一般认为:B语言导致了C语言的诞生,C语言演变出了C++语言,而C++语言将让位于Java语言。要想更好地了解Java语言,就必须了解它产生的原因、推动它发展的动力,以及它对其他语言的继承。像以前其他成功的计算机语言一样,Java继承了其他语言的先进原理,同时又因其独特的环境要求而提出了一些创新性的概念。在这本书的其他各章中,将从实用的角度,对Java语言、库及应用程序进行包括语法在内的详细介绍。在本章里,我们将介绍Java语言产生的背景、发展过程,以及使它变得如此

2021-02-05 16:22:46 1771 2

原创 什么是redis缓存雪崩和缓存穿透、缓存预热、缓存降级、击穿

缓存雪崩我们可以简单的理解为:由于原有缓存失效,新缓存还没有存入到redis的期间比方说:我们设置缓存时采用了相同的过期时间,在同一时刻出现大面积的缓存过期,所有原本应该访问缓存的请求都去查询数据库了,而对数据库CPU和内存造成巨大压力,严重的会造成数据库宕机。从而形成一系列连锁反应,造成整个系统崩溃。解决办法:加最多的解决方案就是锁,或者队列的方式来保证不会有大量的线程对数据库一次性进行读写,从而避免失效时大量的并发请求落到底层存储系统上。还有一个简单方案就是缓存失效时间分散开,不设置固定的实效时间

2020-10-24 09:25:47 210

原创 面试录音总结

HashMap和Hashtable的区别这两个都是是Map接口下的实现类,我们开发的时候经常用的是HashMap虽然HashMap不是线程安全的但是他的存储效率比较高,Hashtable是线程安全的我们看过他底层的put方法前面加的关键字,但是他的效率太低,我们开发很少用Hashmap的底层实现原理Hashmap底层是通过数组和链表联合实现的,当我们创建hashmap时会先创建一个数组,当我们用put方法存数据时,先根据key的hashcode值计算出hash值,然后用这个哈希值确定在数组中的位置,再

2020-10-11 19:31:28 1136

原创 如何保证RabbilMQ消息可靠传输?

生产者丢失消息:RabbitMQ提供transaction和confirm模式来确保消息不丢失。transaction模式:发送消息是开启事务,如果消息发送异常则进行回滚,如果发送成功则进行提交。confirm模式:发布的消息会获得以个唯一的ID一但消息被发送到所匹配的队列之后RabbitMQ就会发送一个ACK给生产者,让生产者知道消息已经到达目的对列了。如果rabbitMQ能处理给消息会返回一个Nack消息。消息队列丢失消息:一般会持久化磁盘配置,这个持久化可以和confirm机制配合使用,在消息持

2020-10-11 18:57:16 179

原创 如何保证nginx高可用

因为nginx是我们所有项目的入口,必须要保证nginx的高可用,这里一般都用的nginx集群,并同时加入了keepalive来做的双机热备处理,通过请求一个vip(virtual ip:虚拟ip)来达到请求真实IP地址的功能,而VIP能够在一台机器发生故障时候,自动漂移到另外一台机器上,从来达到了高可用的功能...

2020-09-27 15:32:23 807 1

原创 什么是动静分离,为什么要动静分离

这个我理解的来说就是把前端静态资源和后台请求分离开,主要就是为了提升静态资源的访问速度,一般前后端分离的项目用的居多,分离之后,我们可以把静态资源放入cdn中去,可以实现用户的就近访问,同时还提供了更大的带宽。...

2020-09-27 15:31:47 1972

原创 nginx如何处理http请求

Nginx这块的处理时结合多进程机制和异步机制 ,异步机制使用的是异步非阻塞方式 首先呢是多进程机制每当服务器收到一个客户端请求时,就有服务器主进程 ( master process )生成一个 子进程( worker process )出来和客户端建立连接进行交互,直到连接断开,该子进程就结束了。使用进程的好处是各个进程之间相互独立,不需要加锁,减少了使用锁对象能造成影响,同时降低编程的复杂度,降低开发成本。接着呢就是采用独立的进程,可以让进程互相之间不会影响 ,如果一个进程发生异常退出时,其它进程正常工

2020-09-27 15:29:08 428

原创 介绍一下nginx

Nginx 是一个高性能的 HTTP 和反向代理服务器,具有反向代理和负载均衡以及动静分离等功能我先来说说反向代理功能吧反向代理是指以代理服务器来接受用户的请求,然后将请求,分发给内部网络上的服务器,并将从服务器上得到的结果返回给用户,此时代理服务器对外就表现为一个反向代理服务器。 反向代理总结就一句话就是:代理端代理的是服务端。反向代理的话,只需要配置对应的server模块就行了,里面配置上server_name和对应监听的端口,然后在配置location路径转发规则就行,当然也可以配置代理静态资源再来说

2020-09-27 15:28:16 158

原创 Redis

什么是 Redis?是一个开源的使用 ANSI C 语言编写、支持网络、可基于内存亦可持久化的日志型、高性能的 Key-Value 数据库,并提供多种语言的 API。Redis 的存储结构有哪些String,字符串,是 redis 的最基本的类型,一个 key 对应一个 value。是二进制安全的,最大能存储 512MB。Hash,散列,是一个键值(key=>value)对集合。string 类型的 field 和value 的映射表,特别适合用于存储对象。每个 hash 可以存储 232

2020-09-21 20:40:02 344

原创 Spring框架的理解,以及AOP、IOC、MVC的相关知识点

1. Spring 框架的理解?Spring 是一个轻量级的 IoC 和 AOP 容器框架。是为 Java 应用程序提供基础性服务的一套框架,目的是用于简化企业应用程序的开发,它使得开发者只需要关心业务需求。常见的配置方式有三种:基于 XML 的配置、基于注解的配置、基于 Java 的配置。主要由以下几个模块组成:Spring Core:核心类库,提供 IOC 服务;Spring Context:提供框架式的 Bean 访问方式Spring AOP:AOP 服务;Spring DAO:对 JDBC 的抽象

2020-09-21 07:15:00 227

原创 MyBatis概念、优缺点、分页、多对多、缓存、接口调用试题整理

1 、什么是 Mybatis ?(1)Mybatis 是一个半 ORM(对象关系映射)框架,它内部封装了 JDBC,开发时只需要关注 SQL 语句本身,不需要花费精力去处理加载驱动、创建连接、创建 statement等繁杂的过程。程序员直接编写原生态 sql,可以严格控制 sql 执行性能,灵活度高。(2)MyBatis 可以使用 XML 或注解来配置和映射原生信息,将 POJO 映射成数据库中的记录,避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。(3)通过 xml 文件或注解的

2020-09-20 18:52:17 296

原创 ElasticSearch话术

1、介绍一下ElasticSearch,以及在项目中的应用​Java开发的基于lucene分布式全文搜索引擎。基于restful Web接口。在检索领域相当优秀,在我们项目中主要是负责检索商品信息。商品信息构成是比较复杂的,并且数据量巨大,至少会有几十万,如果使用mysql做检索,效率会非常低,并且对5/mysql造成很大的压力。在使用过程中主要需要做几件事:1、Es服务的安装,中文分词器使用IK分词器,这个主要是运维负责;2、在项目中集成springDataElasticSearch框架,用来操作

2020-09-18 21:28:22 327

转载 面试问题总结

痛定思痛,项目敲的够多的了,今天开始,决定突击一下面试题,我觉得只要面试题背的好,面试应该就没啥问题了!所谓对症下药,我想应该就是如此吧!根据我最近几次的面试经验,大概总结了十九项我认为比较重要的知识模块!题目篇一、Java基础1、JDK 和 JRE 有什么区别?2、== 和 equals 的区别是什么?3、两个对象的 hashCode()相同,则 equals()也一定为 true,对吗?4、final 在 java 中有什么作用?5、java 中的 Math.round(-1.5) 等于多少?

2020-09-17 20:10:45 221

原创 Springboot 框架整理,即入门案例

1、什么是 Spring Boot?SpringBoot是Spring项目中的一个子工程,与我们所熟知的Spring-framework 同属于spring的产品,是用来简化 spring 初始搭建和开发过程使用特定的方式进行配置,创建了独立的 spring 引用程序 main 方法运行。同时SpringBoot中镶入了 Tomcat 无需部署 war 包直接打成 jar 包 nohup java -jar – & 启动就好,简化了 maven 的配置,自动配置 spring 添加对应的 star

2020-09-17 20:04:37 1019 1

原创 报错总结

idea如果强行将IDE自动生成的isSuccess()方法修改成getSuccess(),需要在get,set 方法前面加上Is还有就是在就行增删给的时候他们的注解要区分1.查询的时候2.添加的时候3.修改的时候4.删除的时候此外根据它的请求方式来改变它的注解方式...

2020-09-15 16:58:23 162 1

原创 Oss的代码实现

依赖:代码实现controller层

2020-09-11 19:19:15 558 1

原创 Mybatis 框架,定义,优缺点,适用场合,以及运用大全

1 、什么是 Mybatis ?(1)Mybatis 是一个半 ORM(对象关系映射)框架,它内部封装了 JDBC,开发时只需要关注 SQL 语句本身,不需要花费精力去处理加载驱动、创建连接、创建 statement等繁杂的过程。程序员直接编写原生态 sql,可以严格控制 sql 执行性能,灵活度高。(2)MyBatis 可以使用 XML 或注解来配置和映射原生信息,将 POJO 映射成数据库中的记录,避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。(3)通过 xml 文件或注解的

2020-09-10 20:38:42 2289 1

原创 知识点总结

标题3.3 在 java 中 wait 和 sleep 方法的不同?最大的不同是在等待时 wait 会释放锁,而 sleep 一直持有锁。wait 通常被用于线程间交互,sleep 通常被用于暂停执行。3.4 同步锁与死锁同步锁:当多个线程同时访问同一个数据时,很容易出现问题。为了避免这种情况出现,我们要保证线程同步互斥,就是指并发执行的多个线程,在同一时间内只允许一个线程访问共享数据。 Java 中可以使用 synchronized 关键字来取得一个对象的同步锁。死锁:死锁就是多个线程同时被阻塞,它

2020-09-09 21:34:06 157 1

原创 java面试常见问题,知识点

知识点总结标题6HashMap,HashTable,ConcurrentHashMap之间的区别,及性能对比?从性能上看:ConcurrentHashMap(线程安全)>HashMap>HashTable(线程安全)HashMap和HashTable区别有:1、HashMap是非线程安全的,允许有null值和null键,效率高,不是同步的,适合单线程环境2,HashTable是线程安全的,不允许有null值和null键,效率低,是同步的,适合多线程环境HashTable和Concur

2020-09-07 20:38:40 96

idea快捷命令大全.txt

IDEA 全称 IntelliJ IDEA,是java编程语言开发的集成环境。IntelliJ在业界被公认为最好的java开发工具,尤其在智能代码助手、代码自动提示、重构、JavaEE支持、各类版本工具(git、svn等)、JUnit、CVS整合、代码分析、 创新的GUI设计等方面的功能可以说是超常的。如果需要的话可以下载哟

2020-09-09

空空如也

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

TA关注的人

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