- 博客(122)
- 收藏
- 关注
原创 浅谈一些锁的原理
在并发编程中,多个线程对同一资源进行操作,必然会出现资源竞争的情况,那么要保证线程间的对同一资源的访问,就需要一个信号来标志当前哪个线程可以使用该资源,在某一线程使用该资源期间,其他线程都不能对该资源进行操作,不然可能会出现无法预料的错误。那我们要使线程间对同一资源进行互斥操作,也就是需要锁住这个操作周期,保证同一时间只有一个线程能访问并使用该资源,我们就需要有一系列的操作来控制这个访问方式。也就是俗称的加锁处理。
2024-08-05 16:30:32
432
原创 springboot系列-自定义启动时狂拽酷炫的banner信息
基于springboot 2.6.6 jdk1.8。本篇短文只说明文本类型的banner打印。如果觉得有帮助希望能关注下公众号。如果觉得有帮助希望能关注下公众号。
2024-04-09 10:46:53
307
原创 排序时Collections.sort和Comparator区别
comparator是一个接口,使用其排序时,只需要实现其方法然后调用**list.sort(new Comparator())**即可;collections.sort其实也是用的comparator的compare方法,只是它可以传一个comparator的实现或者传Null;两者底层的排序都是用的Arrays类的方法。
2024-01-02 22:53:17
593
原创 C - 顺序线性表简单实现
#include<stdio.h>#include<stdlib.h>#define DEFAULT_SIZE 1typedef struct { int * data; int length; int max_size;}seqList;//初始化线性表void init_list(seqList *list);//添加一个元素到尾部int add_to_tail(seqList *list,int el);//打印线性表所有元素v
2021-03-30 23:09:48
169
原创 macbook使用homebrew安装第三方组件
nginx安装#安装brew install nginx#启动brew services start nginx浏览器打开http://localhost:8080,看到nginx欢迎界面表示安装启动成功#停止brew services stop nginx#重启brew services restart nginx#刷新(重载)配置文件nginx -s reload配置文件地址/usr/local/etc/nginx/nginx.conf...
2020-06-14 10:12:39
456
转载 mac安装homebrew
执行如下命令/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"安装过程出问题解决办法
2020-06-14 10:03:19
298
原创 leetcode-100.相同的树
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/same-tree给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。示例 1:输入: 1 1 / \ / \ 2 3 2 3 ...
2020-04-18 14:39:42
197
原创 leetcode-88.合并两个有序数组
给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。示例:...
2020-04-15 23:37:45
180
原创 leetcode-83.删除有序链表中重复的元素
ListNode* deleteDuplicates(ListNode* head) { if(!head) return head; ListNode *p = head; while(p->next){ if(p->val == p->next->val){ p->next = p-&...
2020-04-15 22:37:26
275
原创 leetcode-21.合并两个有序链表
#include<iostream>using namespace std;struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {}};ListNode* mergeTwoLists(ListNode* l1, ListNode* l2);int main...
2020-04-14 23:44:49
133
原创 C++-单向链表
实现链表的增删改查ownlinklist.cpp#include<iostream>#include "include/ownlinklist.h"#include <cstdlib>using namespace std;node* init(){ return new node;}node* get_elment(node *_list,in...
2020-04-13 00:53:22
153
原创 java-把list按制定条数划分为多份
public class Main { public static void main(String[] args) { List<String> ids = new ArrayList<>(); for(int i = 0;i < 2009; i++){ ids.add(String.valueOf(i...
2020-03-23 23:13:23
450
原创 mybatis+oracle/mysql批量操作
mysql数据库连接字符串要加上 allowMultiQueries=truespring.datasource.url=jdbc:mysql://ip?useUnicode=true&characterEncoding=utf8&allowMultiQueries=trueoracle以;分号作为分隔符的循环操作时,加上open='begin' close=';end...
2020-03-06 10:55:10
287
转载 log4j2.xml详解
阿豪聊干货 原文地址 一、背景 最近由于项目的需要,我们把log4j 1.x的版本全部迁移成log4j 2.x 的版本,那随之而来的slf4j整合log4j的配置(使用Slf4j集成Log4j2构建项目日志系统的完美解决方案)以及log4j2配置文件的详解,就需要我们来好好聊一聊了。本文就专门来讲解下log4j2.xml配置文件的各项标签的意义。二、配置全解 1...
2020-02-20 10:48:26
519
原创 leetcode-167.两数之和 II - 输入有序数组
题目描述给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。说明:返回的下标值(index1 和 index2)不是从零开始的。你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。示例:输入: numbers = [2, 7, 11, 15...
2019-12-20 18:10:56
142
原创 C-合并两个递增数组
给出两个递增的整数数组,合并他们后,新数组也是个递增数组#include<stdio.h>int main(){ int a[5] = {1,4,7,9,11}; int b[5] = {2,3,5,8,12}; int c[10]; int i = 0,j = 0,k=0; int a_len = sizeof(a)/sizeof(a[...
2019-12-10 20:59:35
623
原创 C#-递归处理权限/菜单树形数据
前端应该有很多控件可以递归菜单表数据 但是自己在后端也可以把数据封装成树形结构的数据数据结构 public class T_ADC_Permission : BaseModel { public string Id { get; set; } public string Code { get; set; } public string N...
2019-09-06 17:31:55
1476
原创 wordpress显示无文章的分类
在当前应用主题下的functions.php里添加add_filter( 'widget_categories_args', 'wpdx_show_empty_cats' );function wpdx_show_empty_cats($cat_args) { $cat_args['hide_empty'] = 0; return $cat_args;}...
2019-07-08 15:37:57
700
原创 sqlserver 分页
ALTER PROCEDURE [dbo].[page_depart](@index int,@size int)ASBEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; --定义起始行,把所有行查出来(...
2019-06-27 18:16:02
158
原创 sqlserver 递归查询
参考博客 https://www.cnblogs.com/tangchun/p/10307734.htmlMenu表with temp(Id,Name,Pid)as( select Id,Name,Pid from menu where id=1 union all select m.Id,m.Name,m.Pid from menu m inner join temp t o...
2019-06-27 16:54:47
1762
原创 利用tcp协议实现简易web服务器
public static void main(String[] args) throws IOException{ // write your code here ServerSocket ss = new ServerSocket(80); Socket s = null; while((s = ss.accept())!=null){ ...
2019-06-05 13:57:50
877
原创 html自定义(隐式)属性例子
<!DOCTYPE html><html><head> <meta charset="utf-8" /> <title></title> <script src="../s/jquery-3.3.1.js"></script> <script> ...
2019-05-29 23:58:13
419
原创 c#-接口
由于c#没有多继承,所以用接口可以实现多继承 interface IWoman { void GetSon(); }interface IMan { void Publish(); } class Program : IMan,IWoman { static void Main(string[] ...
2019-05-26 22:57:47
131
原创 C#-构造函数
如果有了新的构造函数就不能调用默认的构造函数了 class Student { public Student(String str) { Console.WriteLine(str); } public Student() { Console.WriteLine("默认构造函数"); ...
2019-05-26 22:54:32
135
原创 单例模式
懒汉式public class Single { private static Single s = null; private String str; public String getStr() { return str; } public void setStr(String str) { this.str = ...
2019-05-14 09:46:57
127
原创 如何保证多个线程按一定顺序执行
假设现在有三个线程t1、t2和t3让t2在t1完成后执行,t3在t2完成后执行自定义Thread类public class Thread extends java.lang.Thread { private String str ; private int time; public Thread(String str,int time){ this...
2019-05-13 14:32:19
3354
原创 简单消息队列的实现
分布式消息中间件实践在消息队列的完整使用场景中至少包含三个角色:消息处理中心:负责消息的接收、存储、转发等生产者: 负责产生和发送消息到消息处理中心负责从消息处理中心获取消息,并进行相应的处理先看消息处理中心的代码:处理中心类 Broker.javaimport java.util.concurrent.ArrayBlockingQueue;public class Brok...
2019-05-09 23:21:05
4703
原创 清晰明了的了解java监听器的原理
这里有张图描述的得很清晰,没找到图的原作者就厚着脸借来用下了Java 最新的事件处理方法是基于授权事件模型事件源生成事件并将其发送至一个或多个监听器监听器简单地等待,直到它收到一个事件。一旦事件被接受,监听器将处理这些事件,然后返回。事件:在授权事件模型中,事件是一个描述事件源状态改变的对象 。通过鼠标、键盘与 GUI 界面直接或间接交互都会生成事件。 如:按下一个按钮、通过键盘输入一...
2019-05-09 12:05:47
269
原创 IntelliJ IDEA安装Scala
安装确保电脑上已经安装了Java8 JDK(jdk版本必须是1.8.x)安装IntelliJ IDEA安装Scala插件Preferences->Plugins 搜索Scala 选择从 JetBrains Plugin Repository安装插件,然后install新建项目File->New->Project在左边面板中选择Scala,右边面板中选择IDE...
2019-05-08 11:04:00
1147
原创 关于传递list类型的参数的问题
java中除了基础的数据类型是值传递外,其它类型都是对象,也就是引用类型(地址传递),这个就不多说了今天遇到一个问题,就是在多次添加同一个list对象到另一个list里的时候,为什么会添加多少次list对象,外面这层list的大小就有多少呢,都是相同的地址!!!这段代码先把一个list作为参数传递到另一个list类型的add函数中public class Main{ public s...
2019-05-06 22:00:06
12027
1
原创 LeetCode-118. 杨辉三角
给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。在杨辉三角中,每个数是它左上方和右上方的数的和。示例class Solution { public List<List<Integer>> generate(int numRows) { List<List<Integer>> list = new Array...
2019-04-27 17:01:16
158
原创 android获取应用的包名、md5值、sha1值、版本、icon、名称
由于在创建高德API的key的时候,用jdk生成的sha1值高德通不过,然后发现网上的工具要么不能用要么就看着不放心下载,加之csdn上的工具积分太贵了,所以自己动手写了个思路:获取所有的app信息,分别对每个app进行计算签名值github地址-------https://github.com/tiantianchiji/sha1.git荣耀Lite10测试通过。需要.apk文件的话告...
2019-04-26 17:15:37
2294
原创 androidstudio上传项目到github
mac版本prefercences->github选择Auth Type:Password填入github的账号密码后点Test测试返回success就连接成功了然后点下下面的Ok然后选择菜单的vcs -> import into version control -> share project on github由于我已经提交过了所有没有截图接着会弹...
2019-04-26 16:40:34
346
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人