- 博客(57)
- 资源 (1)
- 收藏
- 关注
原创 代码生成工具类
setServiceName("%sService") // 设置生成的service接口的名字的首字母是否为I,加%s则不生成I。.setInclude(scanner("请输入表名(多个以英文逗号隔开):").split(",")).setModuleName(scanner("模块名"));//.setTablePrefix(tablePrefix) //表前缀。
2023-12-13 23:36:48
121
原创 记录仿钉钉审批流(将MySQL换成Oracle)走过的坑
这里在说说其他坑,如果只传输dingding.sql中的六张表到Oracle中,其他表等启动项目自动创建,但是这里依旧报错(如不能创建 ACT_GE_PROPERTY),网上找了很久也没找到解决方案(URL后面加参数nullCatalogMeansCurrent=true也没解决)如果是MySQL,插入时ID会自增,但是Oracle好像没有,这里我也不太清楚,我也很少使用Oracle。项目中也先用MySQL,启动项目,项目启动成功后,数据库中一共有38张表。这个项目作者引入的Oracle 驱动依赖版本为。
2023-11-29 11:45:34
1349
原创 奇怪,为什么ArrayList初始化容量大小为10?
看ArrayList源码时,无意中看到ArrayList的初始化容量大小为10,这就奇怪了!我们都知道ArrayList和HashMap底层都是基于数组的,但为什么ArrayList不像用HashMap那样用16作为初始容量大小,而是采用10呢?
2023-11-04 15:30:38
160
原创 Java 集合基础面试题(高频)
因为红黑树节点的大小是普通节点大小的两倍,所以为了节省内存空间不会直接只用红黑树,只有当节点到达一定数量才会转成红黑树,这里定义的是 8。为什么是 8 呢?这个其实 HashMap 注释上也有说的,和泊松分布有关系,这个大学应该都学过。简单翻译下就是在默认阈值是 0.75 的情况下,冲突节点长度为 8 的概率为 0.00000006,也就概率比较小(毕竟红黑树耗内存,且链表长度短点时遍历的还是很快的)。
2023-11-04 13:49:21
201
原创 C# 发送邮件
/ MessageSent事件里可以通过args参数,获得服务器的响应信息,以便于记录Log。// 1. 注册邮件发送成功之后的事件,比如记录log。// 添加附件,需带完整路径或者相对路径。// 2. 连接服务器。// 4. 发送邮件。// 邮件正文两种形式。// 添加收件人信息。// 1. 不带附件。
2023-11-02 13:32:14
789
原创 谷粒商城错误总结
6. P22:写完远程调用接口后,启动 GulimallMemberApplication 报 Error creating bean with name 'memberController'(参考:https://blog.csdn.net/youranswera/article/details/124663728)3.P17:用逆向工程生成代码时,注释 @RequiresPermissions("${moduleName}:${pathName}:list")(老师事后才讲,浪费很多时间)
2023-10-07 22:51:20
406
原创 Java虚拟机内存模型
4、方法信息包括方法名称名称、返回类型、方法参数、方法修饰符、方法字节码、操作数栈和方法帧栈的局部变量区大小以及异常表。相应的,方法的返回则表示栈帧的出栈操作。如果方法调用时,方法的参数和局部变量相对较多,那么栈帧中的局部变量表就会比较大,栈帧会膨胀以满足方法调用所需传递的信息。方法区也是 JVM 内存区中非常重要的一块内存区域,与堆空间类似,它也是被 JVM 中所有的线程共享的。Java虚拟机栈也是线程的私有空间,它和Java线程在同一时间创建,它保存方法的局部变量、部分结果,并参与方法的调用和返回。
2023-10-06 08:40:35
228
原创 火狐浏览器在看B站视频(全屏)和(退出全屏)时会黑一下屏幕
在地址栏下方的搜索栏中输入:“full-screen-api.transition-duration”,首选项中出现两项设置,分别双击并把数值修改为“0 0”(注意中间空格,原本默认是“200 200”)。PS:如果要关闭全屏提示,搜索“full-screen-api.warning.timeout”,把原本的“3000”改为"0"即可。在浏览器地址栏输入:“about:config”(不包含引号,下同) 并回车,然后点击“我知道了”,可以进入高级设置界面。全屏和退出全屏的动画就关闭了。
2023-03-15 22:13:25
2932
4
原创 c#调用excel模板页,然后套用模板页导出多个sheet
IAuditReportAppService层。AuditReportAppService层。DownloadExeclCommand层。Controller层。Excel表导出效果。
2023-03-10 15:02:22
673
原创 VMware 复制已有的虚拟机并修改IP地址
(注意:由于slave2是克隆出来的 因此它的ip和mac地址与原来的机器一模一样 ip地址可以直接修改成一个新的地址 但是mac地址不建议手动修改 而应该由系统自动生成具体操作方法如下)第三步:启动新克隆的虚拟机 修改主机名 如 hostname slave2。重启网卡(systemctl restart network)第二步:在VMware中右键要克隆的机器 选择管理-->克隆。第四步:修改克隆的虚拟机的ip地址和mac地址。视频链接(友情提示:请定位到12分钟处)再次查看IP(ip addr)
2023-02-13 12:11:45
4462
原创 Synchronized&CAS原理:
如果这个对象没被锁定,或者当前线程已经拥有了那个对象锁,把锁的计算器加1,相应的,在执行monitorexit指令时会将锁计算器就减1,当计算器为0时,锁就被释放了。悲观锁是将资源锁住,等一个之前获得锁的线程释放锁之后,下一个线程才可以访问。指令执行时,monitor的进入数减1,如果减1后进入数为0,那线程退出monitor,不再是这个monitor的所有者。1、如果monitor的进入数为0,则该线程进入monitor,然后将进入数设置为1,该线程即为monitor的所有者。
2023-01-23 15:46:07
516
原创 尚硅谷-分布式锁
在应用开发中,特别是web工程开发,通常都是并发编程,不是多进程就是多线程。这种场景下极易出现线程并发性安全问题,此时不得不使用锁来解决问题。在多线程高并发场景下,为了保证资源的线程安全问题,jdk为我们提供了synchronized关键字和ReentrantLock可重入锁,但是它们只能保证一个工程内的线程安全。在分布式集群、微服务、云原生横行的当下,如何保证不同进程、不同服务、不同机器的线程安全问题,jdk并没有给我们提供既有的解决方案。此时,我们就必须借助于相关技术手动实现了。目前主流的实现有以下方式
2023-01-21 00:35:21
1814
原创 学习JMM
协议很多intel 用MESI现代CPU的数据一致性实现 = 缓存锁(MESI …) + 总线锁读取缓存以cache line为基本单位,目前64bytes位于同一缓存行的两个不同数据,被两个不同CPU锁定,产生互相影响的伪共享问题伪共享问题:JUC/c_028_FalseSharing使用缓存行的对齐能够提高效率。
2023-01-21 00:31:48
668
原创 【尚硅谷】分布式锁全家桶
性能:一个sql > 悲观锁 > jvm锁 > 乐观锁如果追求极致性能、业务场景简单并且不需要记录数据前后变化的情况下。 优先选择:一个sql如果写并发量较低(多读),争抢不是很激烈的情况下优先选择:乐观锁如果写并发量较高,一般会经常冲突,此时选择乐观锁的话,会导致业务代码不间断的重试。 优先选择:mysql悲观锁不推荐jvm本地锁。Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。设计目的。
2023-01-21 00:27:50
1783
原创 学习马士兵教育 GC and Tuning
C语言申请内存:malloc freec/C++ 手动回收内存Java: new?忘记回收多次回收没有任何引用指向的一个对象或者多个对象(循环引用)根据需求进行JVM规划和预调优优化运行JVM运行环境(慢,卡顿)解决JVM运行过程中出现的各种问题(OOM)
2023-01-21 00:25:55
1361
原创 java面试简历
熟悉 JavaSE 基础知识,拥有面向对象分析和设计能力、熟悉集合类、反射等,具备良好的编程思想。熟悉Spring、SpringMVC、Mybatis、MybatisPlus等主流框架。熟悉JVM相关原理,包括垃圾回收算法及其垃圾收集器、类加载机制、常见的JVM调优参数。熟练使用IDEA、Postman、VSCode、Git、Jmeter等开发构建工具。熟悉Java并发编程,对java的锁机制、线程池机制、CAS等都有了解。熟悉Redis数据库,对持久化机制、缓存穿透、缓存雪崩有了解。
2023-01-19 19:55:11
116
原创 Spring三级缓存
理论上是可以的,因为一级缓存和二级缓存的区别在于存储的对象类型不一样,也就是说我可以在一个map中增加标识符来区分清楚成品对象和半成品对象,此时就需要在value上添加标识符,那么就相当于value上存储的对象要增加其他的属性.而在进行操作的时候,每次都要根据key获取到value,然后根据获取的标识符来判断是成品还是半成品,太麻烦了,代码非常不优雅,两个map可以轻松解决掉这个问题。可以,但是有前提条件:如果没有aop动态代理对象的存在可以直接使用二级缓存,但是有了aop相关的配置之后就不行了。
2023-01-18 23:02:08
1293
原创 .ziw文件打不开怎么办
把.ziw文件名后缀名改成.zip,然后解压解压成功之后生成的是html网页,直接点击index.html就可以在浏览器中打开文件了,里面的图片不要删除,它们是index.html网页要用的。
2022-12-05 16:33:32
1069
1
原创 黑马 Spring_day01
> * 掌握Spring相关概念> * 完成IOC/DI的入门案例编写> * 掌握IOC的相关配置与使用> * 掌握DI的相关配置与使用
2022-07-11 10:17:34
237
原创 SpringMVC_day02
今日内容前面我们已经把、和三个框架进行了学习,今天主要的内容就是把这三个框架整合在一起完成我们的业务功能开发,具体如何来整合,我们一步步来学习。(1) 创建工程(2)SSM整合[重点是各个配置的编写](3)功能模块[与具体的业务模块有关]掌握上述的知识点后,接下来,我们就可以按照上述的步骤一步步的来完成SSM的整合。可以使用Maven的骨架创建[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DtbTkgJM-1654127245174)(assets/1630561266760
2022-06-02 07:47:51
222
原创 SpringMVC_day01
今日内容SpringMVC是隶属于Spring框架的一部分,主要是用来进行Web开发,是对Servlet进行了封装。对于SpringMVC我们主要学习如下内容:SpringMVC是处于Web层的框架,所以其主要的作用就是用来接收前端发过来的请求和数据然后经过处理并将处理的结果响应给前端,所以如何处理请求和响应是SpringMVC中非常重要的一块内容。REST是一种软件架构风格,可以降低开发的复杂性,提高系统的可伸缩性,后期的应用也是非常广泛。SSM整合是把咱们所学习的SpringMVC+Spring+Myb
2022-06-02 07:47:06
166
原创 BaseServlet的抽取
// BaseServletpublic class BaseServlet extends HttpServlet { @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //1.获取请求路径 String uri = req.getRequestURI(); .
2022-05-25 21:18:57
122
原创 JdbcTemplate 中的query,queryForObje,queryForList,queryForMap方法
【query方法】返回结果是list,且list中元素必须是自定义bean private JdbcTemplate template = new JdbcTemplate(JDBCUtils.getDataSource()); @Override public List<Category> findAll() { String sql = "select * from tab_category"; return template.que
2022-05-17 15:13:22
688
使用NPOI在Word中添加超链接
2023-04-19
TA创建的收藏夹 TA关注的收藏夹
TA关注的人