自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 使用Visual Studio本地debug调试时报错IISExpress错误

IIS Express提示端口被占用

2024-07-02 18:17:26 121

原创 使用JenKins自动化部署新专案报错cs0246

通过JenKins自动化部署时,报错找不到引用:cs0246:The type or namespace name ‘NPOI’ could not bd found (are you missing a using directive or an assembly reference?)

2024-03-25 18:18:32 162

原创 TRUNC() 函数的使用

TRUNC()函数的截断用法

2023-06-12 14:08:54 2501

原创 分库分表使用场景&如何实现

分库分表使用场景

2022-08-14 22:23:09 316 1

原创 Spring相关

1、IOC的理解(what、why、how)?Spring如何解决循环依赖问题?IOC即控制反转,由用户管理转换为框架管理,由框架去创建对象,放在IOC container中,通过依赖注入的方式实现IOC(理解为IOC是思想,DI是实现方式)IOC配置的三种方式:XML配置,Java配置以及注解DI的三种方式:构造方法注入,setter注入以及基于注解的注入循环依赖问题即:A->B->A,通过三级缓存可解决此问题参考资料:Spring解决循环依赖问题2、AOP的理解(what、why

2022-05-22 11:32:59 161

原创 05/15

Q1:ForkJoinPool的理解是Java7加入的线程池,是jvm提供的用于并行执行的任务框架。通过将大任务分成若干小任务去并行执行再合并得到最终结果。(广泛应用在Java8的stream中)涉及到分治算法和工作窃取算法。工作窃取算法:重复利用工作线程的计算能力,减少线程由于获取不到线程任务而造成的空闲浪费。在forkjoinpool中,工作任务的队列都采用双端队列Deque容器。(通常队列采用尾插法,在队头消费以实现FIFO,而为了实现工作窃取,一般会改成LIFO,实现窃取其他线程的任务是,从队

2022-05-15 08:00:00 134

原创 线程池有哪几种?分别有哪些特点

常见的6中线程池上述的线程池都会实现这个基类:ExecutorService参考资料

2022-05-08 18:36:13 201

原创 Synchronized底层如何实现?锁升级过程

1、Synchronized底层是通过monitor对象来实现的。通过motitorenter和monitorexit方法来实现锁的开启和释放2、锁升级过程Java早期,synchronized属于重量级锁,因为在切换线程时实现用户态到核心态的转换,需要较长时间,时间成本较高。在jdk1.6之后,从JVM层面对synchronized进行了较大优化,引入了偏向锁、轻量级锁。(锁可以升级但不能降级,但偏向锁可以可以被重置为无所状态)偏向锁升级过程:1、Load-and-test,也就是简单判断一下当前

2022-05-08 17:24:52 242

原创 Synchronized和Reetrantlock的区别

相同点1、都是用来协调多线程中的共享对象、变量的访问2、都是可重入锁,即同一线程可多次获得同一锁3、都保证了可见性和互斥性不同点1、底层实现:synchronized是Java的关键字,由JVM提供。而ReetrantLock是JDK1.5之后提供的API层面的2、是否可手动释放:synchronized自动释放,ReetrantLock通过lock和unlock配合try和finally实现3、是否可中断:synchronized只有再发生异常时可中断;而ReetrantLock可通过try

2022-05-08 16:23:04 818

原创 ConcurrentHashMap的put源码分析

public V put(K key, V value) { return this.putVal(key, value, false); } final V putVal(K key, V value, boolean onlyIfAbsent) { if (key != null && value != null) { int hash = spread(key.hashCode()); i

2022-04-23 17:40:18 358

原创 Java內存模型(Java Memory Model)

Q1:什麼是JMM?在特定的操作協議下,對內存或高速緩存進行讀寫訪問的過程抽象。(在JVM中,對內存/高速緩存的讀寫過程進行抽象,抽象成一個特定模型)Q2:它用來解決什麼問題?為了實現跨平台特性。(屏蔽各種硬件和操作系統的內存訪問差異,達到跨平台內存訪問一致的效果。)Q3:它是怎麼解決這類問題的?...

2022-04-23 17:29:23 181

原创 Java运行时数据区的组成、类加载过程以及对Java中的GC理解

Java运行时数据区的组成Java运行时数据区可以分为(5个):方法区、虚拟机栈、本地方法区、堆、程序计数器其中:线程私有:虚拟机栈、本地方法区、程序计数器线程共享:方法区、堆各组成的详细介绍参考资料如下参考资料1:https://blog.csdn.net/zuzhiang/article/details/118456471参考资料2:https://www.jb51.net/article/218556.htm类加载过程首先Java源文件通过编译器的javac指令转换为二进制的字节

2022-04-17 08:00:00 841

原创 LeetCode-有效的括号

有效的括号思路:有效的括号,涉及到成对元素,要想到使用栈Stack,这里使用Java中Stack的子类Deque。要定义规则什么才是有效的括号,这里使用Map结构定义有效的键值对。涉及到的有stack.peek()栈顶元素、stack.size()栈内元素个数、stack.push()添加元素、stack.pop()从栈顶移除元素、map.containsKey()、map.get()Javaclass Solution { public boolean isValid(String s) {

2022-04-16 22:56:58 498

原创 设计模式之装饰器模式&代理模式

設計模式裝飾器模式&代理模式的比較一、定義裝飾器模式:在不改變原有對象的基礎上,動態的給原有對象增加一些職責/功能。(屬於對象結構型模式)代理模式:提供一個代理來控制對原有對象的訪問。代理對象作為訪問對象和目標對象之間的中介。(理解為律師/中介)二、類圖比較抽象接口public interface Sourceable{void method();}實現類public class Source implements Sourceable {void method(){Sys

2022-04-13 22:22:55 314

原创 创建一个对象的详细流程?(JVM相关)

创建一个对象的详细流程?(JVM相关):检查类加载->分配内存->初始化->设置对象头->执行构造函数

2022-04-10 19:41:56 271

原创 LeetCode

一直不太懂什么是算法时间复杂度? - 简书,要好好理解一下https://baijiahao.baidu.com/s?id=1700279574407263893&wfr=spider&for=pc简单Q1、两数之和https://leetcode-cn.com/problems/two-sum/class Solution { public int[] twoSum(int[] nums, int target) { int[] res

2022-04-10 19:03:49 415

原创 操作表单form的js相关

操作表单form的js相关动态添加下拉框选项(2种)//js创建元素,var ele = document.createElement(‘select’);//给目标元素添加下拉框选项//选项一般为后台传过来的值//下面这行代码通常放在forEach循环中ele.options.add(new Option(string,value));给下拉框选项设置只读属性(4种)点击表单元素触发模态框并传值...

2021-05-24 17:05:57 81

原创 原生js实现ajax请求

原声js实现ajax请求面试前查缺补漏,记录一下var Ajax = {//在原声js中使用XMLHttpRequest对象实现 get:function(url,fn){ var xhr = new XMLHttpRequest(); //.open(method,url,async) xhr.open(‘get’,url,true); xhr.onreadystatechange = function(){ if(xhr.readyState = 4 &&

2021-05-22 14:44:58 113

原创 LeetCode算法题之字符串求和

C#MVC中如何用下拉框读取数据库,我是下面这么写的但是提示“需要有物件参考才可使用非静态方法属性等”在view界面在BaseData中如下在这里插入代码片...

2021-05-13 23:23:50 100

空空如也

空空如也

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

TA关注的人

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