- 博客(28)
- 收藏
- 关注
原创 java实现excel多级联动
现在有一个需求,抽取一个方法,入参是文件路径、导入的省市区数据、指定插入列 ,在本地导入一个Excel,在这个Excel的指定列插入三级联动(省市区)。
2022-11-22 10:18:55
4104
11
原创 java存储过程
day01 1、PLSQL编程 1.1 程序结构 存储过程优点:减少数据库和服务器网络交互,提高执行效率(将写到java程序中的代码抽到数据库) PLSQL不区分大小写,三个部分组成: //声明部分: DECLARE** -- 声明变量、游标(没有可省略) //可执行部分: BEGIN DBMS_output.put_line('hello world'); -- 打印语句 //异常部分:(没有的话可省略) END; 1.2 变量 1.2.1 普通变量 变量赋值的方式有两种: 1、直接赋值
2021-12-23 19:31:27
4669
原创 【2025高频核心】大厂java八股文总结
针对3-5年的候选者,面试官更多的是考察面试者的基础是否扎实,仅靠背诵的浅显八股文已经不够用!本篇博客中第一遍觉得看不懂难点的地方就是拉开八股文差距的地方,切记偷懒跳过。
2021-04-23 19:33:47
4469
原创 Java高并发编程
内存屏障就像是一个"壁垒",用于保证在这个"壁垒"之前和之后的操作顺序。在多线程编程中,如果没有内存屏障,处理器可能会根据自己的优化策略进行指令的重排序,这可能导致一些问题,比如一个线程修改了一个共享变量的值,但其他线程看不到这个修改。内存屏障就像是一个明确的标记点,它告诉处理器和编译器,在这个点之前的操作一定要先完成,然后才能继续执行后面的操作。这样可以确保操作的顺序和可见性,避免了因为指令重排而产生的问题。
2023-08-21 18:22:59
812
原创 Spring源码
总的来说,Spring的Bean相对于我们自己创建的对象具有更高的灵活性、可配置性和管理能力,通过Spring容器来管理和协调Bean对象,使我们能够更好地组织和管理应用程序的组件。基于接口的代理:如果目标Bean实现了至少一个接口,并且配置启用了接口代理(默认情况下是启用的),Spring会使用JDK动态代理来创建代理对象,并返回该代理对象。然而,如果目标Bean没有被声明为被代理的,或者没有配置任何切面或增强逻辑,Spring容器将直接返回原始的目标Bean对象,而非代理对象。
2023-07-18 15:32:00
692
原创 K8s从入门到实践
Kubernetes是一个帮助我们更轻松地管理和运行应用程序的工具。它会帮助我们自动地将应用程序分配到合适的服务器上,并确保它们一直在运行,还可以自动地增加或减少应用程序的数量,以适应流量的变化。还具有帮助应用程序进行负载均衡,管理和保护敏感数据,以及在不同的云平台上部署应用程序等。
2023-06-28 18:22:39
3185
原创 敏感词过滤算法DFA
敏感词过滤方案DFA全称为:Deterministic Finite Automaton,即确定有穷自动机。其特征为:有一个有限状态集合和一些从一个状态通向另一个状态的边,每条边上标记有一个符号,其中一个状态是初态,某些状态是终态。但不同于不确定的有限自动机,DFA中不会有从同一状态出发的两条边标志有相同的符号。敏感词:冰毒、大麻、大坏蛋 ......
2022-06-15 19:08:21
1007
原创 JVM常问面试题(二)
文章目录1、对象1.1 对象创建的6个过程1.2 对象头里面有哪些东西(大厂常问) 1、对象 1.1 对象创建的6个过程 1、加载类元信息(加载、链接、初始化); 2、为对象分配内存空间; 3、处理并发问题; 4、属性的默认初始化(零值初始化); 5、设置对象的对象头信息; 6、属性的显示初始化、代码块中初始化、构造器中初始化; 1.2 对象头里面有哪些东西(大厂常问) 包含两部分: 运行时元数据:hashCode、GC分代年龄、线程持有的锁、偏向线程ID、偏向时间戳; 类型指针:指向类元数据Inst
2022-04-26 23:45:46
842
原创 使用ThreadLocal统一处理token
package com.tanhua.server.utils; import com.tanhua.server.pojo.User; //统一处理token public class UserThreadLocal { private static ThreadLocal<User>LOCAL=new ThreadLocal<>(); public UserThreadLocal(){ } public static
2022-02-17 10:30:25
1893
2
原创 java自定义注解并使用
一、什么是注解? 注解:源代码的元数据,代码的标签 本质一:就是一个附属品,依赖其他元素存在(比如类、方法); 本质二:本身没有任何作用,在恰当的时候由外部程序解析产生作用(通过反射); 二、编写并使用自定义注解 自定义注解: package cn.fllday; import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Inherited; i
2022-01-25 17:08:48
752
原创 Nginx报错404
使用nginx作为后端统一路径的转发,原先地址可以正常访问,使用nginx进行统一路径转发时,postman报了如下错误: <html> <head> <title>404 Not Found</title> </head> <body> <center> <h1>404 Not Found</h1> </center> <hr> <center>
2022-01-20 16:12:06
23900
1
原创 项目散碎知识点总结
1、为什么使用单点登录? 以前实现登录注册是在同一个tomcat内部完成,我们现在的系统框架是每一个系统由一个团队进行维护,每个系统都单独部署一个tomcat,不能将用户的登录信息保存到session中(多个tomcat的session不能共享),所以我们需要一个单独的系统来维护用户的登录信息。 由上图可看出: 客户端需要需要通过SSO系统才能获取到token; 客户端请求服务系统时,服务系统需要对sso系统进行token验证; sso系统在整个系统架构中处于核心位置; ...
2022-01-07 10:57:07
1248
原创 多线程学习
多线程的实现方式: 1、继承Thread类,重写run方法 两个问题: 1)为什么要重写run方法?因为run()是用来封装被线程执行的代码 2)run()方法和start()方法的区别? run():封装线程执行的代码,直接调用,相当于普通方法的调用,并没有开启线程。 start():启动线程,然后由JVM调用此次线程的run()方法 2、实现Runnable接口,重写run()方法 3、实现Callable接口,重写call()方法,通过中介FutureTask来将获取结果 public class
2021-12-17 00:09:35
556
原创 Zookeeper分布式锁实现原理
Zookeeper分布式锁的代码实现很简单,Curator已帮助我们封装好,使用起来代码不超过5行。但当我们需要进行中高级程序员面试时,回答好Zookeeper分布式锁的实现原理可以大大提高我们的“加钱”分。 核心思想:当客户端想要获取锁,需要先创建节点,使用完锁,再删除该节点。 1、当客户端获取锁时,在lock节点下创建一个临时顺序节点。为什么是临时顺序? 1)临时: 如果我们的client1拿到了锁,宕机了锁就不会被释放,其他的client就会一直拿不到锁,临时节点即使宕机也会自动删除,所以不能是持久
2021-11-28 17:03:34
415
原创 Aliyun安装Zookeeper
这里是Linux下安装Zookeeper 一、Zookeeper依赖于jdk环境,所以先安装jdk 1)首先查看yum源里面的jdk yum list java* 2)选择jdk1.8并安装:yum install java-1.8.0-openjdk* -y 3)出现complete! 查看是否安装成功:java -version,如果成功,就会出现以下java1.8版本 二、下载zookeeper 1)下载zookeeper源码包 wget https://archive.apache.org/dist
2021-11-11 01:35:09
2590
原创 Oracle查询前几条数据的方法
在Oracle中实现select top N: 由于Oracle不支持select top 语句,所以在Oracle中经常是用order by 跟rownum 的组合来实现select top n的查询。 简单地说,实现方法如下所示: select 列名1 …列名n from ( select 列名1 …列名n from 表名 order by 列名1 ) where rownum <=N(抽出记录数) order by rownum asc 如:select id,name from (select
2021-08-04 09:04:15
6122
原创 java项目部署
项目部署_持续集成 关键词:jenkins、git、maven、docker 目标: 能够理解什么是持续集成 能够完成jenkins环境的搭建 能够完成jenkins插件的安装及配置 能够完成dockerfile的配置 能够完成项目的多环境部署 能够完成项目的部署与持续交付 1 持续集成 1.1 软件开发生命周期 软件开发生命周期又叫做SDLC(Software Development Life Cycle),它是集合了计划、开发、测试和部署过程的集合。如下图所示 : [外链图片转存失败,源站可能有防盗
2021-03-27 16:30:32
759
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅