- 博客(53)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 List转Map思想的妙用
最近做项目,遇到了很多双层for循环组装数据的情况,有的甚至是三层循环,数据组装比较麻烦,同事看到我有一个三层的for循环,说你这个可以优化成两层,三层嵌套的太深了,数据量大的情况下,性能会比较差。是的,大家都知道for循环嵌套的越深,数据量大的情况下,循环遍历的次数也是成指数级增长的,性能可想而知(虽然当时我做的这个项目的数据量只有几百,没有太大,这也是当时编码的时候直接用了三层f...
2019-04-14 22:36:17
3040
3
原创 如何提高业务开发的质量?
对于一些初中级开发人员,往往由于缺乏经验,而不知道如何去提高自己的业务开发质量,这篇文章主要是阐述了业务开发中的一些常见问题的处理思路和建议,方便对初中级开发人员有一个引导的作用。
2023-05-29 10:06:25
377
原创 Docker Desktop下部署springboot项目
基于windows10下的Docker Desktop 部署 springboot 项目
2022-12-09 15:29:49
1396
1
原创 Nginx常用配置清单
侦听端口server {# Standard HTTP Protocollisten 80;# Standard HTTPS Protocollisten 443 ssl;# For http2listen 443 ssl http2;# Listen on 80 using IPv6listen [::]:80;# Listen only on using IPv6listen [::]:80 ipv6only=on;}访问日志server {# Relative
2021-05-21 17:26:14
187
原创 线上机器的一个进程用kill命令杀不死该怎么办?磁盘空间快满了又该怎么处理?
前言不知道作为开发的你有没有遇到过kill不掉的进程,然后不知道什么时候磁盘空间又满了,反正我是遇到了,具体原因我就不说了,把解决的办法告诉你。问题1僵尸进程kill不掉怎么办?一般都是父子进程之间出现这个wenri(1)ps aux,看看STAT那一栏,如果是Z,那么就是zombie状态的僵尸进程(具体什么是僵尸进程自行百度哈)(2)ps -ef | grep僵尸进程id,可以找到父进程id,然后先kill掉父进程即可问题2服务器存储空间快满了(95%),还有一个小时存储就满.
2021-03-25 14:42:26
475
1
原创 线上服务器CPU 100% 了!该怎么排查、定位和解决?
前言我想大家经常做项目难免会遇到服务器爆掉的情况,我就遇到过几次,但是不要慌,找到方法还是很容易查找到问题的,废话不多说了。步骤(1)定位耗费cpu的进程top -c,就可以显示进程列表,然后输入P,按照cpu使用率排序,你会看到像下面的显示:PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND10000 root...
2021-03-25 14:17:35
837
原创 常用Nginx命令
1、卸载yum remove nginx2、安装yum install -y nginx3、判断配置文件是否正确nginx -t -c /usr/local/nginx/conf/nginx.conf或者cd /usr/local/nginx/sbin./nginx -t---> successful 说明配置文件正确4、启动cd usr/local/nginx/sbin./nginx----> nginx: [emerg] bind() to 0.0.0.0:80.
2021-01-25 15:25:43
149
原创 常用命令
测试nginx的配置文件conf修改的是否正确:/usr/local/nginx/sbin/nginx -t启动nginx:Systemctl start nginxlinux:切换用户:su 从普通用户切换到root(需要输入密码) su username 从root 切换到普通用户bu(不需要密码)格式为:su [ - ] username,后面可以跟 - ,也可以不跟。普通用户的su命令不加username时,就相当于切换到root用户,反之亦然。当su 命令加上 - 后,会初...
2021-01-25 15:21:48
81
原创 Linux使用jstat命令查看jvm的GC情况
一、查看应用进程pid方式一:方式二:可以查看所有的java进程,我选定的pid是90043二、jstat -gc pid命令,查看详细情况 pid:90043 5000表示每隔5秒刷新一次S0C:第一个幸存区的大小S1C:第二个幸存区的大小S0U:第一个幸存区的使用大小S1U:第二个幸存区的使用大小EC:伊甸园区的大小EU:伊甸园区的使用大小OC:老年代大小OU:老年代使用大小MC:方法区大小MU:方法区使用大小CCSC:压缩类空间大小...
2021-01-08 11:20:40
426
原创 idea远程debug调试
作为开发人员,难免会出现线上或者测试站跟本地不一致的现象,本地又复现不出来线上的现象就很难搞,这时候远程调试就显得尤为重要了,废话不多说,直奔今天的正题!一、设置线上项目启动参数为debug模式-Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=10000,suspend=n具体如下图:二、idea远程debug参数设置-agentlib:jdwp=transport=dt_socket,server=y,suspend=
2020-12-30 11:29:58
767
1
原创 java合并多张PDF报表生成一张
最近刚好做报表批量打印功能,所以记录一下,方便大家参考学习。废话不多说,直接上代码看效果!代码:import com.itextpdf.text.Document;import com.itextpdf.text.pdf.*;import java.io.File;import java.io.FileOutputStream;public class TestMain { public static void main(String[] args) throws Except
2020-12-22 11:29:56
222
原创 String.join()的简单使用
import java.util.HashSet;import java.util.Set;public class Test { public static void main(String[] args) { Set<String> stringSet =new HashSet<>(); stringSet.add("a"); stringSet.add("b"); stringSet.add("c".
2020-10-27 11:40:40
208
原创 HandlerInterceptor的使用
import com.alibaba.fastjson.JSONObject;import com.glodon.gz.core.utils.FeignCallServiceUtils;import com.glodon.gz.gbes.tools.utils.SpringUtils;import com.glodon.gz.sdk.gbes.user.IUserService;import com.glodon.gz.view.result.Result;import org.apache.l.
2020-10-26 20:38:44
470
原创 跨域请求的配置方式
import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.web.cors.CorsConfiguration;import org.springframework.web.cors.UrlBasedCorsConfigurationSource;import org.springf.
2020-10-26 20:28:05
275
原创 Guava实现布隆过滤器
import com.google.common.hash.BloomFilter;import com.google.common.hash.Funnels;import java.nio.charset.Charset;/** * * @author zhaoj * @version BloomFilterTest.java, v 0.1 2020-03-03 17:16 ...
2020-03-03 17:49:43
647
原创 推荐一个外国的数据结构在线演示网站
网站地址https://www.cs.usfca.edu/~galles/visualization/Algorithms.html使用演示打开网站如下:以B+Trees为例,点击B+Trees我们以输入1,2,3,4为例,输入1,点击insert,其他数字以此类推:我们树的最大深度是3,Max.Degree是可以选择的树的深度,上面的Delete按...
2020-03-01 16:23:56
6273
5
原创 Memcache VS Redis 简单对比
Memcache系统业务以纯KV的缓存为主,数据量大,并发业务量大,Memcache比较合适 Memcache将所有数据存储在物理内存中,Redis则有自己的VM机制,当数据超量时,会引发swap,影响性能 Memcache使用多线程的模式(主线程监听,work子线程工作),而Redis使用单线程,难以充分利用目前的多核CPURedisRedis支持持久化(虽然不是很完美) Rei...
2020-02-27 21:51:16
167
原创 职场新员工需要锻炼的12种能力
1、发现问题的能力爱因斯坦认为:“发现问题可能比解决问题更重要,解答可能仅仅是技能问题,而发现问题,提出问题,从新的可能性、新的角度去考虑问题,标志着科学进步”。新员工如果不具备这种发现问题的观察能力,也许他就能做一些默默无闻的工作,每天机械的重复日复一日的事情,没有创新,没有提高,没有意见建议,久而久之,他就成了可有可无的边缘人。善于观察和发现问题的人,也许就抓住一两次机会,展露自己的才华脱...
2020-02-27 20:41:55
1152
原创 JVM参数配置
堆参数设置-XX:+PrintGC 使用这个参数,虚拟机启动后,只要遇到GC就会打印日志-XX:+PrintGCDetails 可以查看详细信息,包括各个区的情况-XX:+PrintHeapAtGC 打印 GC 前后的详细堆栈信息-Xms3550m(默认物理内存的64分之一) 设置Java程序启动时初始化JVM堆内存大小-Xmx3550m(默...
2020-02-26 21:57:39
164
原创 如何一行代码实现List<Integer> 平均分成N份?
public class GuavaDemo { public static void main(String[] args) { List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); List<List<Integer>> parts =...
2020-02-21 19:46:33
248
原创 java8 List转Map常用操作
public class Java8Demo { public static void main(String[] args) { List<Student> studentList = Lists.newArrayList(); studentList.add(new Student(1, "张三", 10, "浙江杭州")); ...
2020-02-21 19:38:42
193
原创 JVM指令手册
栈和局部变量操作将常量压入栈的指令aconst_null 将null对象引用压入栈iconst_m1 将int类型常量-1压入栈iconst_0 将int类型常量0压入栈iconst_1 将int类型常量1压入栈iconst_2 将int类型常量2压入栈iconst_3 将int类型常量3压入栈iconst_4 将int类型常量4压入栈iconst_5 将int...
2020-02-21 17:41:21
102
原创 Guava中字符串切割和拼接的强大API
public class Test { public static void main(String[] args) { String str = "a, ,b,c, ,d,e"; List<String> list = Splitter.on(',') .trimResults()//去掉空格...
2020-02-20 19:20:27
167
原创 java8语法糖List<Integer>,List<String>,String之间互转
public class Test { public static void main(String[] args) { List<Integer> integerList = new ArrayList<>(); integerList.add(1); integerList.add(2); int...
2020-02-20 18:55:46
7396
原创 Linux查询日志常用命令
前言 作为一名开发人员,Linux环境肯定不陌生,当我们的项目出现了问题,那么Linux下的日志操作显得尤为重要,今天我们就一起分析一下日常常用的日志查询操作命令。tail命令格式:tail [必要参数] [选择参数] [文件]tail [ -f ] [ -c Number | -n Number | -m Number | -b Number | -k Number ] [...
2020-02-20 15:05:24
283
原创 设计模式之单例模式
前言 说起设计模式大家肯定都不陌生,经常会听到人说起springbean的单例模式,工厂模式,责任链模式等等,一些耳熟能详的模式满天飞,今天就和大家一起聊聊单例模式的好处和缺点,以及如何选择合适的实现方式。什么是单例模式 单例设计模式(Singleton Design Pattern)理解起来非常简单。一个类只允许创建一个对象(或者实例),那这个类就是一个单例类,这...
2020-02-17 18:00:44
303
原创 Redis常用命令汇总
前言Redis is an open source, BSD licensed, advanced key-value store. It is often referred to as a data structure server since keys can contain strings, hashes, lists, sets and sorted sets.redis是开源,B...
2020-02-04 12:00:09
252
原创 Xshell下载安装
前言 大家都知道我们要远程连接Linux服务器需要使用连接工具,市面上的连接工具很多,比如:secureCRT、Putty、telnet、xshell等,个人比较喜欢xshell的风格界面,故而本篇介绍xshell的简单安装和使用。一.下载地址家庭或者个人或者学生免费版:http://www.netsarang.com/download/free_license.html...
2020-02-03 12:23:26
812
转载 Centos6在VMware中的安装和配置
前言继上一篇VMware的安装,本篇继续Centos的安装。话不多说,直接开搞。一.Centos下载centos6.8 64位链接:https://pan.baidu.com/s/1Ms29YHaK1VMFA14PiJjeeQ提取码:5i4e二.Centos6.8安装1、点击VMware的创建虚拟机,选择典型安装。下一步。2、选择稍后安装操作系统,下一步:...
2020-01-31 21:04:43
227
原创 CentOS 6 7 8镜像下载
CentOS 8:官网下载链接:https://www.centos.org/download/或者http://vault.centos.org/均可点击之后地址跳转到:http://isoredirect.centos.org/centos/8/isos/x86_64/CentOS-8.1.1911-x86_64-dvd1.iso我们可以选择阿里云,163,或者华为云...
2020-01-29 17:25:45
5314
原创 springboot集成dubbo的入门demo
前言继上一篇ZooKeeper的安装和启动,本篇将结合springboot+duboo+zookeeper来一次实战演练,话不多说,继续我们的实战。dubbo介绍Dubbo(读音[ˈdʌbəʊ])是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和Spring框架无缝集成。(现在有当当网在维护)Dubbo是一款高性能...
2020-01-24 23:30:07
202
原创 zookeeper安装和 windows环境下使用的注意事项
一.概述ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。ZooKeeper包...
2020-01-24 21:08:27
255
原创 java设计模式之策略模式的优雅实现
前言策略模式是开发中常用的一种设计模式,主要解决在有多种算法相似的情况下,使用 if...else 所带来的复杂和难以维护的问题。看了网上很多关于策略模式的上下文切换类实现都不甚优雅,故而想总结分享一篇自我感觉比较优雅的处理方式,方便大家一起学习。方式一:使用@PostConstruct初始化到map中该方式是比较常用的,相对比较优雅,能满足动态获取不同实现类的功能。废话不多说直接上代...
2019-12-28 18:30:08
5771
原创 Spring和Java获取properties文件的几种方式
前言获取properties文件的方式大致可以分为spring获取和java自身获取两种。接下来我会主要从这两方面为大家演示每种方式获取的例子。环境准备:1.新建一个springboot项目2.需要引入的pom依赖 <dependency> <groupId>org.springframework.boot</groupId&...
2019-12-26 11:15:16
1274
原创 java基础之易错使用方式二
前言今天要说的易错点是关于java的8种基本类型的使用,很多初学者比较容易犯的错误,亦或是基础不牢者也常常会犯,下面我们一起看一下,先从一个例子说起。例子1public class BugTest2 { public static void main(String[] args) { Integer a = 10; Integer b = 10...
2019-12-23 11:54:16
111
原创 java基础之易错使用方式一
前言最近做项目,一不小心犯了一个低级错误,当时觉得应该有问题,但是并未自测,联调的时候发现了,很是尴尬,今天记录一下,避免日后再犯。这个也是初学者比较容易犯的问题,但是也不免有开发几年了掉坑里的。代码public class BugTest { private static int a = 10; private static int b = 20; pub...
2019-12-19 18:07:36
87
原创 唯一订单号生成的那些事
前言在做项目中经常遇到需要唯一业务id的生成,比如:支付订单号,外卖订单号,地址id,用户id...等等,这样的场景太多了,今天就总结一下常用的生成方式。排行榜NO.1 UUID生成方式基本上做过项目的都接触过jdk自带的UUID生成一串字符串,使用方式也很简单,如下: UUID.randomUUID().toString().replace("-","");UUID应该...
2019-12-17 17:32:34
450
原创 根据经纬度计算地球两点之间的距离
前言之前做过的很多项目中都有涉及到根据经纬度计算两点之间的距离,然后做排序。这个场景在很多外卖App或者小程序上经常看到,例如距离2km,<100m等等。工具类1public class LocationUtil { /** * 地球半径,单位 km */ private static final double EARTH_RADIUS =...
2019-12-17 16:17:01
1677
2
原创 Excel的导出
1.背景 商家在抽奖C端发布抽奖活动后,当该活动开奖,商家需要获取中奖者的信息,兑现奖品。所以就需要将中奖者信息导出,形成一个excel文件,方便商家查看2.poi介绍简介 Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。名称解释...
2019-12-02 10:35:55
256
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人