- 博客(109)
- 资源 (1)
- 收藏
- 关注
原创 让idea允许循环依赖 java: Annotation processing is not supported for module cycles.
java: Annotation processing is not supported for module cycles.
2022-04-25 13:05:04
1309
2
原创 Python.exe下载太慢怎么办?
淘宝镜像下载:https://npm.taobao.org/mirrorsCtrl + F 找到Python:选择合适版本:下载64位:还有很多其他镜像下载:
2020-07-15 16:42:24
2018
2
原创 解决IDEA2020.1版本不兼容Lombok的问题
Lombok不兼容:解决办法:1、进入Lombok官网插件地址下载0.29-EAP版本2、打开Settings ——>Plugins3、选择刚刚下载好的zip包4、重启IDEA就搞定啦IDEA2020.1更新了什么?...
2020-04-11 00:22:01
6883
2
原创 IDEA 的 LeetCode 刷题插件 leetcode editor
1、安装2、配置(登录)若需改动模板要把这里打勾✔3、使用双击题目4、提交代码5、完成提交
2020-04-07 01:05:22
15147
原创 解决Redis超卖问题
当业务代码处理时间很长,像mysql慢查询等等,可以在try代码块中每隔10秒检查是否还持有锁,如果持有则延长锁的时间。
2020-04-01 00:31:05
1432
原创 Review学生作业管理系统
让后台立即响应前端,前端不等待处理过程描述:学生作业管理系统里面有一个邮件提醒的功能,如果不加以处理前端就会一直等待返回结果不会弹出发送成功的提示,直到邮件已经发送出去。1、使用try{}finally{}(会快一点)try{ return ApiResult.success("发送成功");}finally{ //发送邮件代码...}使用try{}finally{}语句,让tr...
2020-03-21 14:48:31
612
原创 SpringMVC传递JSON数据的方法
一 、使用application/x-www-form-urlencoded来传递数据Ajax的默认格式为:application/x-www-form-urlencoded,相当于(username=“admin”&password=123)来传递数据(这是GET请求的固定格式)前端代码:当Ajax以默认格式上传时,data数据直接使用JSON对象user,不用转换为JSON字符串...
2020-03-14 16:08:26
451
原创 三个线程交替打印ABC(Condition实现精确通知)
三个线程交替打印ABC:package pc;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;public class C { public static void...
2020-02-28 01:09:40
1651
原创 Java实现按名称、日期、大小对文件进行排序
按文件名称排序:public static void orderByName(String filePath) { File file = new File(filePath); File[] files = file.listFiles(); List<File> fileList = Arrays.asList(files); ...
2020-02-22 16:27:09
1166
原创 jvm监控工具(排查内存溢出和内存泄漏)
jmap查看内存信息或dump下内存详情其他的排查工具:jconsole java监视和管理控制台jconsole其实已经包含以下的所有指令,不过如果在没界面的Linux系统上就要用到下面的指令jps查看当前运行的java程序jstat -gcutil pid 间隔时间(毫秒)单位:内存的百分比s0:survivor0区,s1:survivor1区, E:eden区 ,O:...
2020-02-14 23:52:22
2296
原创 TCP三次握手和四次挥手
三次握手:刚开始客户端处于 closed 的状态,服务端处于 listen 状态。然后1、第一次握手:客户端给服务端发一个 SYN 报文,并指明客户端的初始化序列号seq=x。此时客户端处于 SYN_Send 状态。2、第二次握手:服务器收到客户端的 SYN 报文之后,会以自己的 SYN 报文作为应答,并且也是指定了自己的初始化序列号seq=y,同时会把客户端的 x + 1 作为 ACK 的...
2020-02-12 23:14:18
203
原创 Arrays.sort和Collection.sort分别使用什么排序来实现的
Arrays.sort是插入排序+快速排序+归并排序具不具备结构是指连续性好不好Collection.sort是合并排序+Timesortpublic static <T> void sort(T[] a, Comparator<? super T> c) { if (c == null) { sort(a); } else { ...
2020-02-05 23:15:11
1527
原创 hashmap的各种问题及答案
为什么初始容量要2指数次幂?HashMap<String, String> hashMap = new HashMap<>(13);roundUpToPowerOf2会把13强转为离13最近的16。threshold是扩容阈值16*0.75 = 12定位key放在哪里时:采用位运算(触发多次扩容时效率优势很大)h & (length -1) 要想定...
2020-02-05 14:52:41
469
原创 Volatile缓存可见性实现原理(JMM数据原子操作具体步骤)
Java内存模型:JMM数据原子操作:具体操作步骤:线程1:先把initFlag变量read读取出来,再load载入工作内存,use使用线程1执行代码!initFlag线程2:先把initFlag变量read读取出来,再load载入工作内存,use使用线程2执行代码initFlag=true,再assign重新赋值,store存储并写入主内存,write写入到主内存中的变量。线程1...
2020-02-02 23:26:36
884
1
原创 为什么InnoDB表必须有主键,并且推荐使用整型的自增主键?
innoDB索引文件和数据文件是在一起的frm:表结构;ibd:索引文件和数据文件问:为什么InnoDB表必须有主键。并且推荐使用整型的自增主键:1、如果设置了主键,那么InnoDB会选择主键作为聚集索引、如果没有显式定义主键,则InnoDB会选择第一个不包含有NULL值的唯一索引作为主键索引、如果也没有这样的唯一索引,则InnoDB会选择内置6字节长的ROWID作为隐含的聚集索引(RO...
2020-02-02 15:08:31
8306
4
原创 对象进入堆内存时,堆内存具体的分配和回收步骤
堆内存具体的分配和回收步骤:(1)进入Eden区, 区内存不够的时候就会触发MinorGC,对新生代区进行一次垃圾回收。(2)MinorGC会清除Eden区的游离对象(没有被GC Roots标记的对象),非垃圾对象(被GC Roots标记的对象)会被复制到SurvivorFrom区,这些对象的分代年龄为1(经历了1次GC)。(3)Eden内存不够又触发了MinorGC,MinorGC又会和...
2020-02-01 15:42:44
794
1
原创 MySQL性能优化步骤
一、SQL语句优化1、优化count每次分页操作都要获取一次count(),都需要扫描大量的行(意味着需要访问大量的数据)才能获得精确的结果,因此可以增加汇总表,或者redis缓存来专门记录该表对应的记录数,这样的话,就可以很轻松的实现汇总数据的查询,而且效率很高,但是这种统计并不能保证百分之百的准确。创建一张表用来记录日志表的总数据量:create table log_counter(...
2020-01-31 15:28:53
420
原创 我觉得idea最好看的编程字体:JetBrains Mono
JetBrains Mono的介绍和下载:https://www.jetbrains.com/lp/monoJetBrains今天推出了一种新字体,即JetBrains Mono,它是专为开发人员设计的。JetBrains表示:在当今的大部分时间里,我们作为开发人员都在看代码。我们一直在寻找最佳字体,以使我们更容易在屏幕上查看文本。但是,许多流行字体中的逻辑并不总是考虑到通读代码和阅读书本之...
2020-01-21 14:07:12
15319
1
原创 快速排序的实现及优化
1、分割操作单向扫描public class QuickSort { public int partition(int[] a, int left, int right) { int temp, pivot;//pivot存放主元 int i, j; pivot = a[right]; i = left; f...
2020-01-19 23:56:30
229
原创 为什么是get()和set()方法?
面向对象的三大特性之一:封装封装:将事物封装成一个类,减少耦合,隐藏细节。保留特定的接口与外界联系,当接口内部发生改变时,不会影响外部调用方。案例:package chapter02;public class FengZhuang { public static void main(String[] args) { Student student = new St...
2020-01-18 13:42:49
808
转载 String类12个常用的方法
https://blog.youkuaiyun.com/qq_25406669/article/details/79021911
2020-01-17 15:08:56
191
原创 Java模拟登录强智教务系统分析思路
1、打开强智教务系统登录页面,按F12打开开发者工具,分析一下可以看到是/jsxsd/xk/LoginToXk验证登录信息的可以看到account和passwd通过encodeInp函数变成encoded,即用户名和密码通过JS加密生成encoded返回给上面的网址就可以了打开source就可以找到用于JS加密算法的文件加上encodeInp方法:var keyStr = "ABC...
2020-01-16 00:28:48
1287
原创 Java OkHttp3的简单使用
OkHttp简介一个处理网络请求的开源项目,是安卓端最火热的轻量级框架,由移动支付Square公司贡献,用于替代HttpUrlConnection和Apache HttpClient。OkHttp的优势发送Get请求 /** * 同步get请求 */ public static void syncGet() throws Exception{ ...
2020-01-15 14:09:35
3466
原创 Java中访问修饰符public、private、protect、default范围
public:Java语言中访问限制最宽的修饰符,一般称之为“公共的”。被其修饰的类、属性以及方法不 仅可以跨类访问,而且允许跨包(package)访问。private: Java语言中对访问权限限制的最窄的修饰符,一般称之为“私有的”。被其修饰的类、属性以 及方法只能被该类的对象访问,其子类不能访问,更不能允许跨包访问。protect: 介于public 和 private 之间的一种访问...
2020-01-14 12:20:17
524
原创 java.lang.Math
1,Math类概述类包含用于执行基本数学运算的方法Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。Math所有类都是静态的。可以直接类名。调用。2,成员方法public static int abs(int a) //取绝对值public static double ceil(do...
2020-01-13 15:29:19
271
原创 各种排序原理
冒泡排序:冒泡排序(Bubble Sort)是一种简单的排序算法,它通过依次比较两个相邻的的元素,看两个元素是否满足大小关系要求,如果不满足则交换两个元素。每一次冒泡会让至少一个元素移动到它应该在的位置上,这样n次冒泡就完成了n个数据的排序工作。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。插入排序:插入排序(Insertion Sort)的原理是:将数组中的数据分为...
2020-01-13 01:29:13
1953
原创 链表的特点
1、高效的插入和删除2、低效的随机访问LinkedList和ArrayList的比较1:ArrayList的实现基于数组,LinkedList的实现基于双向链表2:对于随机访问,ArrayList优于LinkedList,ArrayList可以根据下标对元素进行随机访问。而LinkedList的每一个元素都依靠地址指针和它后一个元素连接在一起,在这种情况下,查找某个元素只能从链表头开始查询...
2020-01-10 23:40:58
13411
原创 数组的特点
1、高效的随机访问2、低效的插入和删除数组插入的优化方案:如果数组中的数据是有序的,我们在某个位置插入一个新的元素时,就必须按照刚才的方法搬移 k之后的数据。但是,如果数组中存储的数据并没有任何规律,数组只是被当作一个存储数据的集合。在这种情况下,如果要将某个数组插入到第 k个位置,为了避免大规模的数据搬移,我们还有一个简单的办法就是,直接将第 k 位的数据搬移到数组元素的最后,把新的元素直...
2020-01-10 23:17:32
326
原创 Java中ArrayList最大容量为什么是Integer.MAX_VALUE-8?
我们打开ArrayList的源码可以看到作者是有解析的:/***要分配的数组的最大大小。*一些vm在数组中保留一些头字。*尝试分配较大的数组可能会导致*OutOfMemory错误:请求的数组大小超过了虚拟机限制*/...
2020-01-10 11:03:15
3108
4
原创 浏览器无法打开摄像头
浏览器无法打开摄像头:解决办法:1、打开Windows设置搜索麦克风2、把允许应用访问你的麦克风开启摄像头就可以被浏览器打开啦:
2019-12-06 01:31:32
15313
原创 IDEA REST Client IDEA自带的接口调试工具
IDEA REST Client控制台从顶层工具栏依次Tools -> HTTP Client -> Test RESTFUL Web Service 打开后,IDEA REST Client控制台的界面如下样式:可以看到,这个控制台展示的功能区和postman已经没什么差别了,包括请求方式,请求参数和请求头的填充都已经包含了,特别说明下的是,如果请求的方式是Authorizat...
2019-11-29 23:33:22
1723
原创 体验使用node.js创建vue+Element-UI项目
首先去node.js官网下载系统对应的node.js版本。安装淘宝镜像npm install -g cnpm --registry=https://registry.npm.taobao.org安装完成之后,在命令行下,输入 node -v及npm -v检查node和npm(node自带npm)安装是否成功。安装最新版vue/clinpm i -g @vue/cli使用可视化界面创建项...
2019-11-29 23:04:24
516
原创 GitHub下载某分支的代码
1、查看分支名称2、打开想要存进的文件夹,右键Git Bash Here3、输入代码说明:-b 表示要从分支下载
2019-11-28 16:33:36
7617
2
原创 “http://127.0.0.1:8888' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header”
axios跨域问题:会一直报错:“http://127.0.0.1:8848’ has been blocked by CORS policy: No ‘Access-Control-Allow-Origin’ header”因为使用了前后端分离开发,跨域访问了,解决方案:需要配置springboot内置tomcat允许跨域访问。package com.lzhhuo.shop.config;...
2019-11-24 15:57:41
11315
原创 Property or field 'username' cannot be found on null
报错原因:username不能为空解决办法:原来的代码:<span th:text="${session.user.username}"></span>更改后代码:<span th:text="${session.user?.username}"></span>为什么加个?就可以解决因为这是一个thymeleaf判断对象是否为空的...
2019-11-22 23:23:06
4519
4
原创 inner join和left join还有right join的区别
1、inner joininner join 相当于 where u.id = a.id只有符合条件的才会显示出来例如:只有符合t_borrowing表里面有book.id才会显示出来所以只有不可借的书籍2、left join无论t_borrowing里有无book.id都会显示出来所以t_borrowing里没有book.id显示出可借3、right join同理于lef...
2019-11-22 15:43:45
564
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人