自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Jersey出现404问题

目前在公司开发中遇到了Jersey导致404的问题, 明明接口存在但是请求就是NOT FOUND。

2024-03-13 15:26:57 125

原创 Go语言聊天室demo

【代码】Go语言聊天室demo。

2024-03-07 19:16:15 338

原创 Jackson序列化机制

Jackson序列化机制

2022-12-05 09:12:46 1577 1

原创 Java方法超时定位, Arthas性能诊断

出现如下所示,即为接口监听成功, 我们在调用接口之后,arthas会把方法的调用时间打印到控制台,前提是执行的接口一点得调用到arthas监听的方法。又经过一段时间的思考,我觉得深究一下,到底是接口中的哪个类的哪个方法造成了高耗时,请教过周围的大佬之后,大佬给推荐了一个很强大的JVM性能诊断工具。很清晰可以看到,绝大多数的耗时都集中在97.29%所在的方法上(1200ms是优化后的),而关于如何优化就是根据自己服务的特点,逐步分析。安装Arthas的jar包(提前建好目录)...

2022-08-09 22:01:29 598

原创 单向链表(Java实现)

package com.kk.test;import java.util.ArrayList;import java.util.List;public class Node { private int value; private Node nextNode; public Node() { } public Node(int value) { this.value = value; } public Node(i

2022-04-20 15:44:47 524

原创 SpringBoot动态注入bean (系统注入漏洞原理)

前有log4j高危漏洞,后有fastjson注入风险,可见即便是强大的中间件jar也不可避免的存在bug,今天花时间写了一个SpringBoot动态注入bean到容器中的demo,直接上代码这是一个暴漏出去的Controller,用来接收注入的bean。/** * 动态注入IocBean的Controller: 项目中使用有风险,需谨慎使用 */@RestControllerpublic class DynamicInjectionController { @PostMappi

2022-04-14 17:09:50 3963

原创 Java工具类,随机生成(姓名,年龄,性别,密码,邮箱,地址,)

package com.kk.random;import java.util.Arrays;import java.util.Random;/** * 生成随机信息: * */public class RandomInfo { //复习出现的几率(0--100) private static int surnameProbability = 5; private static Random random = new Random(); privat

2022-04-13 18:24:19 3368 1

原创 又是被Aop折磨的一天

最近项目中使用Aop来实现功能权限的限制,不同的用户有着不同的权限。所有需要权限检验的类都放在某个包下,即改包下的所有类都是需要权限校验的,但是新写的3个java文件的权限校验工作却没有生效。关于权限生效的流程是这样的,项目启动读取Mysql(哪些功能接口需要限制),...

2022-04-13 16:41:04 644

原创 leetcode746:最小花费爬楼梯(动态规划解析)

数组的每个下标作为一个阶梯,第 i 个阶梯对应着一个非负数的体力花费值 cost[i](下标从 0 开始)。每当你爬上一个阶梯你都要花费对应的体力值,一旦支付了相应的体力值,你就可以选择向上爬一个阶梯或者爬两个阶梯。请你找出达到楼层顶部的最低花费。在开始时,你可以选择从下标为 0 或 1 的元素作为初始阶梯。输入:cost = [10, 15, 20]输出:15解释:最低花费是从 cost[1] 开始,然后走两步即可到阶梯顶,一共花费 15 。输入:cost = [1, 100, 1, 1, 1

2021-11-21 16:12:54 121

原创 泛型的擦除与补偿

1.泛型擦除以ArrayList为例,ArrayList源码中具有泛型< E >,其中有这么一个方法 E elementData(int index) { return (E) elementData[index]; }可见elementData方法返回的是一个泛型对象E,我们用代码看一下,如下: public static void main(String[] args) throws Exception { ArrayList<Str

2021-11-19 20:05:37 601

原创 关于Mybatis的一级缓存整合Spring时失效(Mybatis的代理对象在使用时注入!!!)

总所周知Mybatis提供了一级缓存二级缓存,在执行同一个sql且参数都一致的条件下,Mybatis不会再去Mysql中查,而是直接从缓存中去取。刚刚做了次一级缓存的验证,但是问题来了,发现同一个请求,Mybatis却执行了2次sql,这不就是一级缓存失效了吗?临时搭了一个测试环境SpringBoot,其中有一个controller,service,mapper,entity,做简单了层次调用。在配置文件中开启打印sql,发现同一个接口的2次请求,sql语句却打印了2次,这无疑说明了mybatis走了

2021-10-04 17:44:40 117

原创 什么是GC垃圾?

一.何为垃圾?所谓垃圾对象,指在JVM内存不可以被再次使用的对象,这种对象没有了引用,我们在代码层面已经不能够再次调用到它;常见如匿名对象 new Object();该对象只是在这一条语句中起了作用,之后我们再也引用不到它,但是它仍占用着JVM的内存空间。那么如何判定一个对象到底是不是垃圾,常见的有2中标记算法:1.引用计数法:意为在每一个对象创建的时候,给它设置一个引用计数器,该对象每有一次引用,则让它的计数器+1;若该对象的计数器为0则毫无疑问就是垃圾。缺点:如A,B两个对象存在循环依赖,

2021-09-25 14:22:04 227

原创 何为ThreadLocal?

引用百度的一段介绍:ThreadLocal 是线程本地存储,在每个线程中都创建了一个 ThreadLocalMap 对象,每个线程可以访问自己内部 ThreadLocalMap 对象内的 value。为了验证ThreadLocal的使用,现手写的如下代码:public class Demo01 { private static ThreadLocal<Integer> threadLocal = new ThreadLocal<Integer>(){ p

2021-09-23 16:32:43 66

原创 TCP:为什么握手3次,挥手却4次?

众所周知,在网络主机数据的交互中普遍使用的是TCP协议进行传输,而tcp最著名的就是三次握手和四次挥手,并分别代表建立连接和断开连接,那为什么却差了一次,今天看博客突然大悟?3次握手一般连接的主动发起者是客户端,当用户访问某个域名后经过DNS解析,拿到目标IP和端口,发起TCP连接(C -> S)C -> S : 客户端向服务端发送报文,表示希望与服务器建立连接S -> C : 服务器接收到客户端的连接请求,并向客户端主机表示同意,此时服务器进入等待连接的状态C -> S

2021-09-17 14:55:13 363 1

原创 设计模式--适配器模式

适配器模式:将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作。通俗的说,将2个毫不相干的类,通过适配器可以调用目标类的方法。现模拟一个场景,电视机可以看电视,游戏机可以玩游戏,两者并没有直接的关系,需求是想让电视机也能够玩游戏,所有需要构造1个电视机的适配器出来。代码如下://电视机接口interface TV{ void show();}//普通电视机的实现类class TVClass implements TV{ publ

2021-09-07 09:03:21 57

原创 设计模式--原型模式

原型模式属于23种设计模式中创建型模式之一,指利用已有的对象实例,去构造(复制)一个一模一样的实例化对象,言简意赅。上代码:在这里插入代码片

2021-09-02 17:49:30 55

原创 设计模式--代理模式

代理模式即代理,相比于我们生活中各种中介代理,我们自己不熟悉的领域让他们代理去帮我们做,买车找中介找代理,我们只需要注重车的价格和舒适度等我们关心的问题,至于车是怎么造的那交给中介的和厂家去打交道。在Java面向对象的模型中,而代理模式在各种框架中均有所涉及,代理模式主要分为静态代理和动态代理,代理模式主要对某个类的某个核心方法进行增强,在开发版本的改动中保证其核心方法不改动1.静态代理背景:现在有一个人张三,张三想买车,于是他去联系代理的销售。。。。。。/** * 实体类 */class P

2021-08-19 14:18:37 86

原创 设计模式--单例模式

单例模式,即一个JVM内存中只存在某一个类的唯一实例对象,它具有全局唯一性,可以设置为全局共享的资源,避免操作多个对象模拟共享资源时引起的逻辑冲突。单例模式不对外声明构造器,需要将构造器私有化防止外部其他类调用,此外还需要对外暴露一个静态属性或静态方法向外部提高自己唯一单例对象。1.饿汉式单例饿汉式单例,即很饿,这个类一旦被加载他就需要这个实例,该实例对象在类加载的时候就创建,在多线程环境下也能保证安全。写法如下:/** * 饿汉式单例 */public class HungryMan {

2021-08-19 10:59:34 83

原创 若依封装SpringSecurity+JWT

公司用的是若依管理系统封装了SpringBoot,权限使用了SpringSecurity+JWT令牌机制,今天花时间研究了一下若依是如何对Security进行封装的。登录1.用户存在性验证首先将后台清了一下,访问系统登录的页面,发现控制台打印了如下SQL:16:10:13.119 [http-nio-8082-exec-15] DEBUG c.r.s.m.S.selectUserByUserName - [debug,159] - ==> Preparing: select u.user_i

2021-08-19 08:05:54 1674

原创 Mysql : list.size()=1, all elements are null

做查询时遇到一个Bug:list.size()=1, all elements are null原因:返回值为List类型的接口,通过Mybatis查询,使用左外连接查询Sql时,Sql结果映射到实体类时,实体类的所有字段的值全部未能匹配上,即所有属性值为null,导致该List中出现 list.size()=1,list.get(1)==null解决if (result.size()==1 & result.get(0)==null){ return new ArrayList<

2021-08-11 15:34:35 398

原创 Java菜鸟的初次实习经历

作为一个双非的准大四菜鸟,因为没有考研的打算,并且学过一段时间的Java技术,所以在大三下学期一直想着找一份实习的工作,在半个月前的15号,我也是正式入职,做起了Java开发,坐标郑州。公司不大,不是一家互联网公司,而是传统制造业公司的技术部门,因为公司规模不算小,所以成立一个技术部门开发属于自己的软件产品,但是技术部就很小了,整个部门的开发加起来不过10人左右。周围的前辈基本上都比我大,他们聊天我基本上也插不上话。公司技术用的就是SpringBoot+Vue,全栈用的都是若依管理系统的框架,前端Vue

2021-08-02 11:57:50 2364 5

转载 Linux常用命令

https://www.cnblogs.com/kingsonfu/p/9779117.html

2021-07-29 16:30:45 55

原创 Java数组是什么类型?

我们使用Java编程时时,经常会使用到数组,最常见的莫过于整形数组,对象数组,那数组到底是什么,今天我也是花了功夫查阅资料研究了一下。1.数组是什么?现有下面一段代码: int[] arr = {1,2,3,4,5}; System.out.println(arr.getClass()); System.out.println(arr.getClass().getSuperclass()); System.out.println(arr instanc

2021-07-13 11:32:13 1557 2

原创 OSI七层模型

OSI模型,即开放系统互连基本参考模型(OSI/RM),是国际标准组织(ISO)提出的一个试图使各种计算机在世界范围内互连为网络的标准框架,简称OSI。OSI将整个计算机网络通信体系分为7层:2台主机之间的通信,OSI数据传输过程:两主机通信的过程,从发送者(主机A)到接收者(主机B),属于从应用层 -> 物理层封装,然后传输到远端,再从物理层(主机B) -> 应用层解封装的过程。应用层:主机A向主机B发送数据,则该请求必定是由应用层的某一应用程序产生。这些程序在应用层需要有不同的接口

2021-07-10 12:03:27 246

原创 Mysql事务详解

1.什么是事务?是数据库操作的最小工作单元,是作为单个逻辑工作单元执行的一系列操作;这些操作作为一个整体一起向系统提交,要么都执行、要么都不执行;事务是一组不可再分割的操作集合(工作逻辑单元);2.事务的四大特性(ACID原则)A原子性 :事务是数据库的逻辑工作单位,事务中包含的各操作要么都做,要么都不做 .C一致性 :事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态.因此当数据库只包含成功事务提交的结果时,就说数据库处于一致性状态.如果数据库系统 运行中发生故障,有些事务尚未完

2021-06-29 21:47:55 72

原创 Leetcode算法之数独求解(Java)

题目如下:(链接:题目地址)编写一个程序,通过填充空格来解决数独问题。数独的解法需 遵循如下规则:数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。(请参考示例图)数独部分空格内已填入了数字,空白格用 ‘.’ 表示。//输入格式: [["5","3",".",".","7",".",".",".","."], ["6",".",".","1","9","5",".",".","."], [

2021-06-28 18:19:32 374

原创 @Autowired自动装配

@Autowired自动装配!!!在不使用xml配置文件时,@Autowired是我们使用最多的注解之一,关于该注解的原理如下:@Autowired原理:在启动springIoC时,容器自动装载了一个AutowiredAnnotationBeanPostProcessor后置处理器,当容器扫描到@Autowied、@Resource或@Inject时,就会在IoC容器自动查找需要的bean,并装配给该对象的属性。在使用@Autowired时,首先在容器中查询对应类型的bean    如果查询结果刚好

2021-06-17 14:01:11 1155

原创 Spring容器之依赖注入

提到Bean的加载,就不得不提一下依赖注入的问题。Spring提供4中依赖注入的方法:set注入,构造器注入,静态工厂注入,实例工厂注入。现有实体类Dog,有1个String属性dogName,还是有setter和getter方法,空参构造器和有参构造器,类的结构如下:public class Dog { private String dogName; public void setDogName(String dogName) { System.out.println

2021-06-17 13:40:20 187

原创 Spring中Bean的生命周期

Spring中关于Bean的生命周期今天回来复习了一下!1.普通对象的生命周期:现有一个普通pojo实体类Dogclass Dog { String name;}1).出生:对象的初始化,我们通过对象的构造器来初始化new一个新的对象,此时对象就存在于JVM的堆内存中;2).使用:对象的引用Dog dog = new Dog();此时dog指向Java堆区的Dog对象,我们可以调用该对象的成员方法,也就是该对象存在指向它的引用;当我们使用 dog = null或者指向另一个对象时

2021-06-16 22:25:27 101

原创 Java实习面试题

目前作为一名大三的在校生,过着百无聊赖日复一日的日子,于是萌生的实习的想法,想在暑假找一份工作锻炼着。于是开始海投简历,面对好多公司都不搭理我,但是毕竟基数大,终于有面试官开始联系我。我们是在电话里聊的,聊了大概40多分钟,到现在也过去不短了,凭着回忆,我把能想起来的面试题总结一下:1.你常见的Java关键字有哪些?这题答案想必在各位心中2.final关键字的用法修饰类表示不可继承,修饰方法不能被重写,修饰变量表示常量3.如果final修饰的成员属性(对象),那么该对象的值能不能变呢?能。fi

2021-06-13 17:13:52 1835 3

原创 SpringBoot项目下的mapper接口代理类无法注入Spring容器的Bug

准备做一个SpringCloud的测试,我随手建立了一个SpringBoot子工程,但是一下子Bug就出来了,找了1下午+1晚上的Bug,终于在晚上9.33解决了问题。话不多说,看代码首先是遇到的Bug:Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.apache.iba

2021-06-09 22:10:51 1614

原创 duboo+zookeeper的入门心得

duboo+zookeeper的入门心得经历了一下午的调试,duboo+zookeeper的入门helloworld程序终于可以跑起来了,实属难得!中间遇见好几个坑,我觉得我有必要记录并分享一下,也算是对dubbo和zk的一点整理。技术栈正如标题,基于dubbo的远程RPC调用,使用zookeeper注册中心,建立起SpringBoot项目集成。资源环境下载我就不多此一举了,只需要注意zk的版本即可,我此次用的就是zk:apache-zookeeper-3.5.9-bin1.项目搭建(Idea)在

2021-06-02 20:20:40 65

原创 Ngork内网穿透

n@TOC欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设计 ,将会带来全新的写作体验;在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;

2020-11-02 20:07:12 198

原创 Python 爬虫模拟登陆,破解滑块验证码

项目简介最近用了将近一周的时间,做了一个我也不知道有啥用的东西----Python爬虫(京东)。当然重点不是这,相信不少像我这样的菜鸟在用Python弄爬虫项目的时候,遇到最痛苦的就是被验证码拦在了门外,我也是花了好几天的时间去研究,终于解决了这一难关。技术selenium网上都是selenium是一个自动化测试的类库,其他的先不说,selenium用在爬虫上是真的般配,用selenium实现模拟的登陆,操作页面上的各种组件,完全代替了人工,简直神器啊,细节我就不说了,初学的小伙伴可以先去了解

2020-10-22 12:40:50 4440 4

原创 回顾我的编程之路(大三)

绪言今天是2020-9-16,随着秋季的开学,我也算是步入大三的学习阶段了,接触编程这么久了,虽然还是一个菜鸟,但是总想把自己的一些想法吐槽吐槽(大神可以略过了,哈哈),或者说是记录一下自己的学习历程,将来自己再回顾这个阶段的时候又是一片风景。我的经历** Java起步**来自双非本科院校(省内还算是排的上号)的一员,我开始接触编程算是大一的暑假才开始,大一的下学期学过一门C语言,不过那连入门都算不上,可以算是启蒙阶段吧。之后大一的暑假,学校组织了一些培训(有Java,Python等),培训内

2020-09-20 22:29:41 163

原创 分享搭建SSM时我遇到的坑

初衷关于ssm的搭建,csdn上有许多的博主前辈都有分享搭建的教程,大家很容易就可以找到,但是许多初学者在学习ssm时,尤其是第一次搭建的时候,经常会遇到一些教程之外的bug,这对我们这些初学者很不友好。我根据自己的项目搭建经历,在这分享一下我在搭建ssm时遇到并解决的那些深坑。Maven依赖引入的时候我遇到的就是Maven坐标依赖已经导入,但是idea一直爆红,始终下载失败,...

2020-09-08 21:08:38 242 1

原创 Maven项目管理

@Maven项目管理作为一位普通编程学者,以下分享一下自己学习过程中的心得和遇见的坑。Maven是当下企业级开发中通用的项目管理工具,可以通过java依赖自动导入和控制java项目中需要的jar包,免去了手动导入时存在的jar包冲突。而需要idea配置Maven首先需要本地下载安装Maven版本。下载Maven版本官网下载:https://maven.apache.org/选择自己的本地路径,直接Download即可,下载安装并无特殊。配置环境变量:(首先需要保证自己之前的jdk环境变量已经

2020-08-16 21:47:12 114

空空如也

空空如也

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

TA关注的人

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