自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 hibernate缓存相关问题排查

该问题无法稳定复现,而且由于对hibernate基本不了解,定位和排查也是比较困难。排查问题还是得大胆猜想,仔细验证,问题总能定位的。今天又学到了!

2023-05-08 16:15:41 779

原创 Java类加载器

类加载器虚拟机设计团队将类加载阶段中“通过一个类的全限定名来获取描述此类的二进制字节流”这个动作放到Java虚拟机外部实现,以便让应用程序自己决定如何获取所需要的类。实现这个动作的代码模块叫做**“类加载器”**。对于任意一个类,都需要由加载它的类加载器和这个类本身一同确定其在JAva虚拟机中的唯一性:比较两个类是否“相等”,只有在这两个类是由同一个类加载器加载的前提下才有意义。类加载器种类...

2020-02-11 21:21:37 156

原创 java虚拟机类加载机制

类加载机制一 类加载时机类从被加载到虚拟机内存中开始,到卸载出内存为止,生命周期包括:其中,加载、验证、准备、初始化和卸载这五个步骤的顺序是确定的,解析阶段则在某些情况下可以在初始化后再开始,这是为了支持Java的动态绑定。对于初始化阶段,虚拟机规范则严格规定有且只有五种情况必须立即对类进行初始化:遇到new、getstatic、putstatic或invokestatic这4条字节...

2020-02-11 20:41:20 137

原创 linux服务器安装nginx

安装nginx购买阿里云服务器使用ssh远程连接 ssh 用户名@服务器ip安装PCRE pcre-devel 和Zlib等缺少的依赖包PCRE(Perl Compatible Regular Expressions) 是一个Perl库,包括 perl 兼容的正则表达式库。nginx 的 http 模块使用 pcre 来解析正则表达式,所以需要在 linux 上安装 pcre 库...

2020-02-06 19:08:52 134

原创 进制转化编程题

题一:求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。使用短路求值原理。expression1 || expression2,或的短路。expression1为真时,则全部为真,expression2不再计算。expression1 && expression2,逻辑与的短路。expr...

2020-02-05 23:17:04 220

原创 和为S的连续正数序列:滑动窗口

编程题:输出所有和为S的连续正数序列。序列内按照从小至大的顺序,序列间按照开始数字从小到大的顺序。一开始只想到了最粗暴的穷举解法:因为S/2后,数字相加一定大于S,所以循环只到S/2为止:public ArrayList<ArrayList<Integer> > FindContinuousSequence(int sum) { ArrayList&l...

2020-02-04 22:17:57 82

转载 TCP的三次握手与四次挥手

TCP的概述TCP把连接作为最基本的对象,每一条TCP连接都有两个端点,这种断点我们叫作套接字(socket),它的定义为端口号拼接到IP地址即构成了套接字,例如,若IP地址为192.3.4.16 而端口号为80,那么得到的套接字为192.3.4.16:80。TCP报文首部源端口和目的端口,各占2个字节,分别写入源端口和目的端口;序号,占4个字节,TCP连接中传送的字节流中的每个字节都按...

2020-02-03 22:42:48 62

原创 Java类文件结构

概述Sun公司以及其他虚拟机提供商发布了许多可以运行在各种不同平台上的虚拟机,这些虚拟机都可以载入和执行同一种平台无关的字节码,从而实现“一词编写,到处运行”。这些虚拟机和平台统一使用的程序存储格式就是字节码(ByteCode)。代码编译的结果从本地机器码转变为字节码。实现语言无关性的基础是虚拟机和字节码存储格式,Java虚拟机不和任何语言绑定,只和“Class文件”这种特定的二进制文件格式...

2020-02-03 11:34:17 140

原创 IO多路复用

IO多路复用**IO复用:**复用即公用某个“介质”来尽可能多的做同一类(性质)的事,那IO复用的“介质”是什么呢?为此我们首先来看看服务器编程的模型,客户端发来的请求服务端会产生一个进程来对其进行服务,每当来一个客户请求就产生一个进程来服务,然而进程不可能无限制的产生,因此为了解决大量客户端访问的问题,引入了IO复用技术,即:一个进程可以同时对多个客户请求进行服务。也就是说IO复用的“介质”是...

2020-01-13 20:42:48 154

原创 IO模型

IO模型blocking IO 阻塞IOnonblocking IO 非阻塞IOIO multiplexing IO多路复用signal driven IO 信号驱动IOasynchronous IO 异步IO由于signal driven IO(信号驱动IO)在实际中并不常用,所以主要介绍其余四种IO Model。...

2020-01-13 17:46:40 104

原创 二叉树的遍历

二叉树的遍历深度遍历广度遍历(层次遍历)这种遍历方式也就是一层一层遍历。上图遍历为ABCDEFG。使用队列的数据结构帮助遍历,先将根结点加入队列。只要队列不空,就将队列的首个元素弹出。再将该元素的左右结点加入队列。这样就实现了按照层次顺序加入队列。例如:首先将A加入队列,此时队列:A;然后将A弹出,把A的左右结点B和C加入队列,此时队列:BC;紧接着将B弹出,把B的左右结点D...

2019-11-07 21:26:21 253

原创 双指针法去除重复数字整理

之前做题时也遇到过双指针解法,比如:需要多层循环嵌套时,可以采用双指针法来减少复杂度。得到链表倒数第n个元素时,可以使用快慢指针优化算法,只要快指针比慢指针快n就可以。最近做了几道去除数组或链表中重复数字的题目,包括去掉所有重复数字,每个重复数字保留一个,每个重复数字保留两个等等。LeetCode26: Remove Duplicates from Sorted ArrayLeetC...

2019-10-24 20:37:09 765

原创 Leetcode415:Add Strings和Leetcode43: Multiply Strings

Leetcode415:Add Strings题目描述:Add Strings字符串相加StringBuilder的使用解题过程不仅仅是简单的加法运算,题目要求中说明字符串长度<5100,比模拟人工加法多了字符串的处理,同时类似于大数运算。 public String addStrings(String num1, String num2) { if (num1....

2019-10-14 12:10:17 139 1

原创 Leetcode18:4Sum

Leetcode18:4Sum题目描述:4Sum简而言之,找出数组中和为指定值的四个数,且不能有重复。双指针解题过程其实此题之前还有三数和,与指定值最相近的三数和,这两题大同小异。这一四数和,其实也差不多,有了前面题目的铺垫,第一想法就是用双指针的方法。自己的想法是,设定了两个双指针,初始为l1=0,r1=nums.length-1; l2=l1+1,r2=r1-1;然后先进行内部双指...

2019-10-10 21:33:09 74

原创 面向对象的原则

程序设计原则单一职责原则(SRP)就一个类而言,应该仅有一个引起它变化的原因。开放封闭原则软件实体(类、模块、函数等)应该可以扩展,但是不可修改。也就是对于扩展是开放等,对于更改是封闭等。面对需求,对程序的改动是通过增加新代码进行的,而不是更改现有的代码。无论模块多么“封闭”,都会存在一些无法对之封闭的变化。既然不可能完全封闭,设计人员必须对他设计对模块应该对哪种变化封闭做出选择。必须...

2019-10-05 21:54:59 129 1

原创 Leetcode62和Leetcode63:Unique Paths

Leetcode62:Unique PathsLeetcode63:Unique Paths II题目描述:Unique Paths简而言之,只能朝右走或朝下走,计算网格中从左上角走到右下角一共有多少种走法。题目描述:Unique Paths II简而言之,只能朝右走或朝下走,这次网格离可能会布置一些障碍,此时网格中从左上角走到右下角一共有多少种走法。采用动态规划解题过程Uniqu...

2019-09-25 21:05:31 85

原创 Leetcode15:3Sum

Leetcode15:3Sum题目描述:3Sum简而言之,找出数组中和为0的三个数,且不能有重复。可以使用双指针的方法降低多重循环的时间复杂度。解题过程最简单的方法自然是暴力循环,先确定一个再确定后两个。但是该方法复杂度太高,而且无法通过,时间超过限制。public List<List<Integer>> threeSum(int[] nums) { ...

2019-09-25 12:16:48 96 1

原创 Leetcode12:Integer to Roman

Leetcode12:Integer to Roman

2019-09-24 16:08:00 92

原创 Leetcode11:Container With Most Water

Leetcode11 Container With Most WaterContainer With Most WaterThe above vertical lines are represented by array [1,8,6,2,5,4,8,3,7]. In this case, the max area of water (blue section) the container ...

2019-09-22 15:47:11 94

原创 LeetCode 3:Longest Substring Without Repeating Characters

滑动窗口方法滑动窗口例题滑动窗口滑动窗口是数组/字符串问题中常用的抽象概念。 窗口通常是在数组/字符串中由开始和结束索引定义的一系列元素的集合。例题LeetCode 3:无重复字符的最长子串使用 HashSet 作为滑动窗口, 将字符存储在当前窗口 [i, j)最初 j = i)中。 然后我们向右侧滑动索引 j,如果它不在 HashSet 中,也就是当前窗口没有重复字符时,继续滑动 ,也...

2019-09-18 11:49:24 129

原创 Mac系统下Fabric开发环境搭建

Mac系统下Fabric开发环境搭建Go的安装安装配置环境变量Docker的安装Docker compose安装Fabric源码下载Fabric Docker镜像下载启动Fabric网络并完成Chaincode测试Go的安装安装直接使用homebrew安装输入:brew install go配置环境变量打开终端输入cd ~进入用户主目录;输入ls -all命令查看是否存在.bas...

2018-10-12 20:24:25 3599 2

空空如也

空空如也

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

TA关注的人

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