自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(83)
  • 资源 (1)
  • 问答 (2)
  • 收藏
  • 关注

原创 【学习笔记】微信支付相关接口实现--个人笔记线上直接用的那种笔记

微信支付

2023-03-13 13:56:34 644 1

原创 【工具类】中国汉字根据拼音转字母,封装好的工具类,拿走即用

汉字转拼音

2023-03-07 15:38:50 213

原创 【Stream流】Java8 Stream 详解

相信Java8的Stream大家都已听说过了,但是可能大家不会用或者用的不熟,文章将带大家从零开始使用,循序渐进,带你走向Stream的巅峰。

2022-07-15 13:59:00 318

原创 【多线程】主线程等待子线程执行完毕在执行并获取执行结果的方式记录(有注解代码无坑)

适配小白,解释详细

2022-06-09 14:32:12 267

原创 【工具类】分别使用stream流,双重for循环,递归将list集合转化为树形结构

创建返回实体类@Datapublic class Node { private String id; private String name; private String pid; private List<Node> children; public Node(String id, String name, String pid) { this.id = id; this.name = name;

2022-04-15 13:55:53 1247

原创 【学习笔记】Linux 命令万字解析(超详细)

Linux 基础命令命令行提示符进入命令行环境以后,用户会看到 Shell 的提示符。提示符往往是一串前缀,最后以一个美元符号 $ 结尾,用户可以在这个符号后面输入各种命令。执行一个简单的命令 pwd :[root@lndsnx ~]# pwd/root命令解析:root:表示用户名;lndsnx:表示主机名;~:表示目前所在目录为家目录,其中 root 用户的家目录是 /root 普通用户的家目录在 /home 下;#:指示你所具有的权限( root 用户为 # ,普通用户为 $

2022-03-30 15:43:28 2335

原创 【设计模式】学习笔记---单例模式

概述学习设计模式,死记硬背是没用的,还要从实践中理解日常应用中,设计模式从来都不是单个设计模式独立使用的。在实际应用中,通常多个设计模式混合使用,你中有我,我中有你。下图完整地描述了设计模式之间的混用关系,希望对大家有所帮助。单例模式单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方

2022-03-17 10:38:13 536 1

原创 【MaxCompute】学习笔记常用查询sql

SELECT 查询命令格式SELECT [ALL | DISTINCT] select_expr, select_expr, ...FROM table_reference[WHERE where_condition][GROUP BY col_list][ORDER BY order_condition][LIMIT number]注意:[GROUP BY col_list]:必须写列的完整表达式,不可用列的 column-alias。[LIMIT number]的 number

2021-12-24 17:23:30 1200

原创 【MaxCompute】学习笔记操作表sql

创建表命令格式:# 建表CREATE TABLE [IF NOT EXISTS] table_name [(col_name data_type [COMMENT col_comment], ...)] [COMMENT table_comment] [PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)] [AS select_statement] # 复制表 CREATE TABLE [IF NOT EXIS

2021-12-23 14:39:39 1648

原创 【MaxCompute】学习笔记基础说明

MaxCompute说明MaxCompute 适用于数据量大(TB级别),实时性要求不高的场合,它的每个作业的准备,提交等阶段要花费数秒时间,因此要求每秒处理几千至数万笔事务的业务是不能用 MaxCompute 完成的,这种情况请用 Tablestore。MaxCompute 采用的是类似于 SQL 的语法,可以看作是标准 SQL 的一个子集,但不能因此简单的把 MaxCompute 等价成一个数据库,它在很多方面并不具备数据库的特征,如事务、主键约束。数据存储单元在 MaxCompute 中,所有

2021-12-22 14:55:29 496

原创 【MYSQL】分组之后获取每组最新的数据

记录一次有点麻烦的sql可以直接复制拿去测试,一开始我也百度来着,发现要么没法满足我的需求,要么就连看下去的欲望都没有建表测试demo:CREATE TABLE `p_test` ( `id` varchar(32) NOT NULL COMMENT '主键ID', `project_code` varchar(32) DEFAULT NULL COMMENT '项目编号', `collect_month` varchar(10) DEFAULT NULL COMMENT '月份',

2021-08-30 14:26:23 1036

原创 【MySQL】MySQL开发注意事项与SQL性能优化步骤

MySQL简介地表最流行数据库名副其实什么是MySQL?世界上应用最广泛且灵活的开源关系数据库MySQL 是应用最广泛的开源关系数据库,是许多常见网站,应用程序和商业产品使用的主要关系数据存储,MySQL 有20多年的社区开发和支持历史,是一种可靠,稳定而安全的基于SQL的数据库管理系统,MySQL数据库适用于各种使用案例,包括任务关键型应用程序,动态网站以及用于软件,硬件和设备的嵌入式数据库MySQL特点易安装:支持rpm等包安装,支持解压安装,支持编译安装,docker部署易扩

2020-11-27 17:15:10 485 1

原创 【多线程】线程池拒绝策略详解与自定义拒绝策略

线程池的拒绝策略ThreadPoolExecutor内部有实现4个拒绝策略,默认为AbortPolicy策略CallerRunsPolicy:由调用execute方法提交任务的线程来执行这个任务AbortPolicy:抛出异常RejectedExecutionException拒绝提交任务DiscardPolicy:直接抛弃任务,不做任何处理DiscardOldestPolicy:去除任务队列中的第一个任务,重新提交线程池中,有三个重要的参数,决定影响了拒绝策略:corePoolSize -

2020-11-09 16:45:37 3546 1

原创 【多线程】ThreadPoolExecutor类源码解析----续(二进制相关运算)

前言在之前阅读 ThreadPoolExecutor 源码的时候,发现代码里用到了一些二进制相关的位运算之类的代码,看起来有些费劲了,所以现在大概总结了一些笔记,二进制这东西吧,不难,就跟数学一样,知道规律,计算公式,就贼简单,就是二进制转十进制这种自己算起来比较费劲但现在又不是考试,所以我选择计算器!!!!二进制计算机采用二进制原因:首先,二进位计数制仅用两个数码。0和1,所以,任何具有二个不同稳定状态的元件都可用来表示数的某一位。而在实际上具有两种明显稳定状态的元件很多。例如,氖灯的亮和熄;

2020-11-05 14:40:52 188

原创 【多线程】ThreadPoolExecutor类万字源码解析(注解超级详细)

线程池线程池初始化时是没有创建线程的,线程池里的线程的初始化与其他线程一样,但是在完成任务以后,该线程不会自行销毁,而是以挂起的状态返回到线程池。直到应用程序再次向线程池发出请求时,线程池里挂起的线程就会再度激活执行任务。这样既节省了建立线程所造成的性能损耗,也可以让多个任务反复重用同一线程,从而在应用程序生存期内节约大量开销public ThreadPoolExecutor( // 线程池核心线程数 int corePoolSize, // 线程池最大数 int ma

2020-11-04 16:29:09 257

原创 【多线程】ThreadPoolExecutor 类的使用详解

ThreadPoolExecutor 构造方法ThreadPoolExecutor共4个构造方法:咱们直接看参数最多的7个参数分别代表:public ThreadPoolExecutor( // 线程池核心线程数 int corePoolSize, // 线程池最大数 int maximumPoolSize, // 空闲线程存活时间 long keepAliveTime, // 时间单位 TimeUnit unit, /

2020-11-03 18:56:38 8057

原创 【多线程】Synchronized及实现原理

Synchronized的基本使用Synchronized是Java中解决并发问题的一种最常用的方法,也是最简单的一种方法。Synchronized的作用主要有三个:确保线程互斥的访问同步代码保证共享变量的修改能够及时可见有效解决重排序问题。从语法上讲,Synchronized总共有三种用法:修饰普通方法修饰静态方法修饰代码块接下来我就通过几个例子程序来说明一下这三种使用方式(为了便于比较,三段代码除了Synchronized的使用方式不同以外,其他基本保持一致)。没有同步的情

2020-11-03 15:21:56 139

原创 【资源】各种基础入门教程附下载地址

下载地址参考文档下载地址目录收集不易,既然来了,不妨点个关注,点个赞吧!!!

2020-11-03 11:33:21 167

原创 【多线程】学习记录七种主线程等待子线程结束之后在执行的方法

最近遇到一个问题需要主线程等待所有的子线程结束,才能开始执行,统计所有的子线程执行结果,返回,网上翻阅各种资料,最后记录一下,找到七种方案第一种:while循环对于“等待所有的子线程结束”的问题,最开始想到的是使用while循环进行轮询: //开始计时 String start = getTheTimeInMilliseconds(); System.out.println("start = " + start); Thread t = n

2020-10-19 15:28:05 1191

原创 【问题】定时任务整理笔记附问题求大佬解答!!!!

定时任务怎么样避免并发,意思是同一个任务当第一个执行完了,第二才执行,不是一到了间隔时间,不管第一个是否执行完成,第二个就开始执行。下面小弟整理的笔记@Scheduled注解是spring boot提供的用于定时任务控制的注解,主要用于控制任务在某个指定时间执行,或者每隔一段时间执行,注意需要配合@EnableScheduling使用,配置@Scheduled主要有三种配置执行时间的方式:cron,fixedRate,fixedDelaycroncron是@Scheduled的一个参数,是一个字符串

2020-09-22 16:58:59 238

原创 【Spring框架家族】mybatis generator代码自动生成(看得上眼直接拿去用即可)

小工具,直接上代码,有大佬看的上,拿去复制改改相关参数就好基于idea上使用的pom文件 <build> <plugins> <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</ar

2020-09-11 17:33:39 125

原创 【面试题】你知道为什么HashMap是线程不安全的吗?

我们都知道HashMap是线程不安全的,在多线程环境中不建议使用,但是其线程不安全主要体现在什么地方呢,本文将对该问题进行解密。jdk1.7中的HashMap在jdk1.8中对HashMap做了很多优化,这里先分析在jdk1.7中的问题,相信大家都知道在jdk1.7多线程环境下HashMap容易出现死循环,这里我们先用代码来模拟出现死循环的情况:public class HashMapTest { public static void main(String[] args) {

2020-09-09 10:33:06 609

原创 【面试题】hashCode() 和 equals() 之间的关系

前言关于 hashCode 和 equals 的处理,遵循如下规则:只要重写 equals,就必须重写 hashCode因为 Set 存储的是不重复的对象,依据 hashCode 和 equals 进行判断,所以 Set 存储的对象必须重写这两个方法如果自定义对象做为 Map 的键,那么必须重写 hashCode 和 equals说明:String 重写了 hashCode 和 equals 方法,所以我们可以非常愉快的使用 String 对象作为 key 来使用介绍equals() 的作

2020-09-07 17:07:08 689

原创 【面试题】Redis中是如何实现分布式锁的

分布式锁常见的三种实现方式:数据库乐观锁;基于Redis的分布式锁;基于ZooKeeper的分布式锁。Redis的分布式锁Redis要实现分布式锁,以下条件应该得到满足互斥性:在任意时刻,只有一个客户端能持有锁。不能死锁:客户端在持有锁的期间崩溃而没有主动解锁,也能保证后续其他客户端能加锁。容错性:只要大部分的Redis节点正常运行,客户端就可以加锁和解锁。实现可以直接通过 set key value px milliseconds nx 命令实现加锁, 通过Lua脚本实现解锁。

2020-09-07 11:30:48 336

原创 【工具类】JAVA POI 代码导出表格的两种办法(代码全注释,小白也不怕)

讲点废话,吐个槽最近有个要求,表格导出,之前也搞过,但觉得每次都到处找太麻烦了,有些大佬,展示部分代码,看着挺多个类,复制粘贴运行就报错,一检查,少个关键类,没办法跑,要么就是标注个什么什么大全,下载打钱,虽然白嫖不好,毕竟别人学习总结成果,但我爽啊,一直白嫖一直爽,咱自己翻了点资料,总结了一下导出表格大概也就两种情况标准表格如果导出的这种表格,那么就是很简单的事,上代码准备pom文件 <dependency> <groupId>o

2020-08-26 16:44:03 418

原创 【面试题】使用 HashMap 还是 TreeMap

基本介绍TreeMap<K,V>的Key值是要求实现java.lang.Comparable,所以迭代的时候TreeMap默认是按照Key值升序排序的;TreeMap的实现是基于红黑树结构。适用于按自然顺序或自定义顺序遍历键(key)。HashMap<K,V>的Key值实现散列hashCode(),分布是散列的、均匀的,不支持排序;数据结构主要是桶(数组),链表或红黑树。适用于在Map中插入、删除和定位元素。结论如果你需要得到一个有序的结果时就应该使用TreeMap(因为Ha

2020-08-21 10:05:11 195

原创 【面试题】Spring框架中Bean的生命周期

生命周期1、实例化一个Bean--也就是我们常说的new一个对象;2、按照Spring上下文对实例化的Bean进行配置--也就是IOC注入;3、如果这个Bean已经实现了BeanNameAware接口,会调用它实现的setBeanName(String)方法,此处传递的就是Spring配置文件中Bean的id值4、如果这个Bean已经实现了BeanFactoryAware接口,会调用它实现的setBeanFactory(setBeanFactory(BeanFactory)传递的是Spring工厂自

2020-08-20 10:11:38 659

原创 【Linux系统】Linux命令之文件管理

ls命令 – 显示指定工作目录下的内容及属性信息ls 命令是Linux下最常用的指令之一。ls命令为英文单词 list 的缩写,正如英文单词 list 的意思,其功能是列出指定目录下的内容及其相关属性信息。默认状态下,ls命令会列出当前目录的内容。而带上参数后,我们可以用ls做更多的事情。作为最基础同时又是使用频率很高的命令,我们很有必要搞清楚ls命令的用法,那么接下来一起看看吧!语法格式: ls [选项] [文件]常用参数介绍-a显示所有文件及目录 (包括以“.”开头的隐藏文

2020-08-19 10:40:17 178

原创 【面试题】Spring,SpringMVC,SpringBoot,SpringCloud有什么区别和联系?

介绍Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。基础版本只有 2 MB 左右的大小,Spring使你能够编写更干净、更可管理、并且更易于测试的代码。SpringMVC 是一种基于 Java 的实现 MVC 设计模型的请求驱动类型的轻量级 Web 框架,Spring MVC是Spring的一个模块。通过Dispatcher Servlet, ModelAndView 和 View Resolver,开发web应用变得很容易。主要针对的是网站应用程序或者服务开发——URL路由

2020-08-19 09:49:47 177

原创 【JVM调优】JVM内存管理&调优浅谈

什么是JVMJava Virtual Machine,Java虚拟机Java虚拟机有自己完善的硬件架构,如处理器、堆栈等,还具有相应的指令系统。Java虚拟机本质上就是一个程序,当它在命令行上启动的时候,就开始执行保存在某字节码文件中的指令。Java语言的可移植性正是建立在Java虚拟机的基础上。任何平台只要装有针对于该平台的Java虚拟机,字节码文件(.class)就可以在该平台上运行。这就是“一次编译,多次运行”。Java虚拟机不仅是一种跨平台的软件,而且是一种新的网络计算平台。该平台包括许多相

2020-07-17 16:23:38 367

原创 【Fiddler抓包】Fiddler高级用法-抓取手机app数据包Fiddler5中文汉化版

Andriod配置方法1)确保手机和Fiddler所在主机在同一个局域网中2)获取Fiddler所在主机的ip地址,通过cmd命令进入命令编辑器,输入ipconfig -all,找到IPv4地址,记下该地址3)对手机所连接的无线网络进行设置,点击WLAN,长按与Fiddler所在主机在同一个局域网的wifi,长按点击【修改网络】,选中【显示高级选项】,代理设置为手动,输入代理服务器的主机名和端口后保存。代理服务器的主机名即上面中的IPv4地址,端口为Fiddler上配置的端口(默认为8888),可以到

2020-06-16 17:30:08 2169

原创 【Fiddler抓包】Fiddler基础用法-基于Fiddler5中文汉化版

Fiddler基础知识Fiddler是强大的抓包工具,它的原理是以web代理服务器的形式进行工作的,使用的代理地址是:127.0.0.1,端口默认为8888,我们也可以通过设置进行修改。代理就是在客户端和服务器之间设置一道关卡,客户端先将请求数据发送出去后,代理服务器会将数据包进行拦截,代理服务器再冒充客户端发送数据到服务器;同理,服务器将响应数据返回,代理服务器也会将数据拦截,再返回给客户端。Fiddler可以抓取支持http代理的任意程序的数据包,如果要抓取https会话,要先安装证书

2020-06-16 16:48:04 6818 2

原创 【HTTP协议】HTTP状态码列表大全

HTTP状态码当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求。当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含HTTP状态码的信息头(server header)用以响应浏览器的请求。HTTP状态码的英文为HTTP Status Code。下面是常见的HTTP状态码:200 - 请求成功301 - 资源(网页等)被永久转移到其它URL404 - 请求的资源(网页等)不存在500 - 内部服务器错误HTTP状态码分类HTTP状态码由三个十进制数字组成,第一个十

2020-06-16 15:41:19 262

原创 【HTTP协议】超详细的HTTP协议详解

基本介绍HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generation of HTTP)的建议已经提出。HTTP协议的主要特点可概括如下:支持客户/服务器模式。简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST

2020-06-16 15:16:54 2888

原创 【插件】IDEA中个人觉得最好的插件,附简单使用方法(持续更新)

插件安装官方安装: File -> Settings -> Plugins -> Browse Repositories… 输入 xxxx 安装下载Jar 安装: File -> Settings -> Plugins -> Install plugin from disk… 选中 xxxxx.jar 安装下载jar去插件库 https://plugins.jetbrains.com/Lombok:代码注解插件@Setter :注解在类或字段,注解在类时为所

2020-06-11 11:13:44 1549

原创 【源码解析】HashMap源码跟进(红黑树的实现)

HashMap中红黑树的定义和它内部的方法 static final class TreeNode<K,V> extends LinkedHashMap.Entry<K,V> { TreeNode<K,V> parent; //父亲节点 red-black tree links TreeNode<...

2020-04-25 23:03:41 297

原创 【理论】红黑树的实现原理

红黑树红黑树(Red Black Tree) 是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构,典型的用途是实现关联数组。红黑树是在1972年由Rudolf Bayer发明的,当时被称为平衡二叉B树(symmetric binary B-trees)。后来,在1978年被 Leo J. Guibas 和 Robert Sedgewick 修改为如今的“红黑树”。红黑树是一种特化的A...

2020-04-25 18:17:38 261

原创 【源码解析】hashMap源码跟进

hashMap的实现原理Java8以前底层数据结构:数组+链表。Java8及以后底层数据结构:数组+链表+红黑树。默认情况下链表长度超过8变成红黑树(整个hashMap元素数量超过64),红黑树节点树小于6变回链表。hashMap是如何解决hash冲突的问题的如果发生了碰撞,新添加的元素将以链表的方式链接到后面。如果链表长度超过阀值,就把链表转成红黑树。如果链表...

2020-04-25 17:03:25 138

原创 【java基础】map的基本使用与字符串中每个字符出现的次数统计

Map集合概述和特点Map集合概述interface Map<K,V> K:键的类型;V:值的类型Map集合的特点键值对映射关系一个键对应一个值键不能重复,值可以重复元素存取无序Map集合的基本使用 public class MapDemo01 { public static void main(String[] args) { ...

2020-04-25 16:24:58 521

原创 【工具类】时间相关的方法

import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Calendar;import java.util.Date;import java.util.List;public class DateUtil { /...

2020-04-20 16:01:24 119

超全面的基础教程参考文档.zip

适合初学者查看的,超全的基础教程里面包括了数据库,java基础,前端页面对应的参考教程 中文参考手册大概内容包含:有CSS 2.0中文手册,html基础教程,java开发手册中文版,jQuery参考手册,JavaScript语言参考手册 ,linux命令大全手册,mydql中文参考手册,oracle函数大全,sql server精华,sql参考,sql语言参考等等等

2020-09-18

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

TA关注的人

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