- 博客(19)
- 收藏
- 关注
原创 使用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
266
原创 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
182
原创 05/15
Q1:ForkJoinPool的理解是Java7加入的线程池,是jvm提供的用于并行执行的任务框架。通过将大任务分成若干小任务去并行执行再合并得到最终结果。(广泛应用在Java8的stream中)涉及到分治算法和工作窃取算法。工作窃取算法:重复利用工作线程的计算能力,减少线程由于获取不到线程任务而造成的空闲浪费。在forkjoinpool中,工作任务的队列都采用双端队列Deque容器。(通常队列采用尾插法,在队头消费以实现FIFO,而为了实现工作窃取,一般会改成LIFO,实现窃取其他线程的任务是,从队
2022-05-15 08:00:00
165
原创 Synchronized底层如何实现?锁升级过程
1、Synchronized底层是通过monitor对象来实现的。通过motitorenter和monitorexit方法来实现锁的开启和释放2、锁升级过程Java早期,synchronized属于重量级锁,因为在切换线程时实现用户态到核心态的转换,需要较长时间,时间成本较高。在jdk1.6之后,从JVM层面对synchronized进行了较大优化,引入了偏向锁、轻量级锁。(锁可以升级但不能降级,但偏向锁可以可以被重置为无所状态)偏向锁升级过程:1、Load-and-test,也就是简单判断一下当前
2022-05-08 17:24:52
278
原创 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
864
原创 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
412
原创 Java內存模型(Java Memory Model)
Q1:什麼是JMM?在特定的操作協議下,對內存或高速緩存進行讀寫訪問的過程抽象。(在JVM中,對內存/高速緩存的讀寫過程進行抽象,抽象成一個特定模型)Q2:它用來解決什麼問題?為了實現跨平台特性。(屏蔽各種硬件和操作系統的內存訪問差異,達到跨平台內存訪問一致的效果。)Q3:它是怎麼解決這類問題的?...
2022-04-23 17:29:23
218
原创 Java运行时数据区的组成、类加载过程以及对Java中的GC理解
Java运行时数据区的组成Java运行时数据区可以分为(5个):方法区、虚拟机栈、本地方法区、堆、程序计数器其中:线程私有:虚拟机栈、本地方法区、程序计数器线程共享:方法区、堆各组成的详细介绍参考资料如下参考资料1:https://blog.youkuaiyun.com/zuzhiang/article/details/118456471参考资料2:https://www.jb51.net/article/218556.htm类加载过程首先Java源文件通过编译器的javac指令转换为二进制的字节
2022-04-17 08:00:00
882
原创 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
536
原创 设计模式之装饰器模式&代理模式
設計模式裝飾器模式&代理模式的比較一、定義裝飾器模式:在不改變原有對象的基礎上,動態的給原有對象增加一些職責/功能。(屬於對象結構型模式)代理模式:提供一個代理來控制對原有對象的訪問。代理對象作為訪問對象和目標對象之間的中介。(理解為律師/中介)二、類圖比較抽象接口public interface Sourceable{void method();}實現類public class Source implements Sourceable {void method(){Sys
2022-04-13 22:22:55
356
原创 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
446
原创 操作表单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
112
原创 原生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
142
原创 LeetCode算法题之字符串求和
C#MVC中如何用下拉框读取数据库,我是下面这么写的但是提示“需要有物件参考才可使用非静态方法属性等”在view界面在BaseData中如下在这里插入代码片...
2021-05-13 23:23:50
136
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人