自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

我爱吃土豆

做人要像土豆一样,跟啥都能炖一起,咋整都不难吃。

  • 博客(116)
  • 资源 (1)
  • 收藏
  • 关注

原创 小白都能看懂的HashMap面试问题

前言对于HashMap,可谓是面试必问的点。无论你是刚毕业的大学生,还是工作三年的高级开发工程师。HashMap可谓是JDK源码中比较经典的源码设计。在上学的时候就知道它的重要性,但是有一些比较复杂的地方当时很难理解,只是模糊记忆,面试官问的时候也是将记住的答案背下来,其实在面试官眼中早就露馅了。简单回顾一些基础的问题我们就简单回顾一下就好。其中要讲解的难点先标注,后文进行详细剖析。HashMap的内部数据结构数组 + 链表/红黑树HashMap允许空键空值么HashMap最多只允许一个键为

2020-06-18 15:11:00 7746 16

原创 小白都能看懂的java泛型

一、什么是泛型泛型是Java SE 1.5的新特性,可以适应不同的很多很多类型。泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。二、为什么使用泛型1.使用泛型能写出更加灵活通用的代码2.泛型将代码安全性检查提前到编译期        使用泛型后,能让......

2019-12-14 21:00:43 4674 14

原创 小白都能看懂的电商系统jvm参数设置简单优化

前言通过上篇文章小白都能看得懂的java虚拟机内存模型我们已经基本了解了jvm的内存模型,并且通过一个jvm案例分析了程序运行中JVM的内存活动。我们学习jvm是为了什么,为了面试么,当然是一部分,但是真正学习jvm的底层原理,一定是为了调优。那么jvm调优到底是调什么呢,目的是什么呢?Stop-The-World 不知道同学们有没有听过SWT,意思是Stop-Th......

2019-12-03 17:28:06 2470 7

原创 小白都能看懂的java虚拟机内存区域划分

目录一、虚拟机二、虚拟机组成1.栈栈帧2.程序计数器3.方法区对象组成4.本地方法栈5.堆GCGC案例一、虚拟机​同样的java代码在不同平台生成的机器码肯定是不一样的,因为不同的操作系统底层的硬件指令集是不同的。同一个java代码在windows上生成的机器码可能是0101.......,在linux上生成的可能是1100.......

2019-11-26 17:21:27 48976 152

原创 小白都能看懂的引用传递小案例

前言今天逛论坛,遇到一个新手问引用传递的问题,特此记录。问题是什么我们先看一下遇到的问题是什么User类只有一个属性public static void main(String[] args) { User user1 = new User(); getUser(user1); System.out.println(use...

2019-08-16 17:50:03 6069 13

原创 小白都能看懂的七大排序算法详解

一、排序算法总览二、算法详解1、冒泡排序(Bubble Sort)原理:比较两个相邻的元素,将值大的元素交换至右端。思路:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。重复第一趟步骤,直至全部排序完成。......

2018-09-04 23:49:57 10037 6

原创 小票智能审核项目总结介绍

好久没写文章了,总结一下在公司负责的一个花费精力比较多的项目:小票智能审核系统。文章目录前言一、背景二、项目初期1.OCR服务2.结构化服务结构化要求结构化方式Python的结构化服务Java的机构化服务行数据规整总结前言在新的公司也呆了快两年了,是新零售性质的公司,公司会接很多品牌的需求,我们这个团队主要是小票相关的活动。小票活动基本流程都是消费者上传购物小票–>初审录入小票信息–>复审小票信息–>发奖,看着是比较简单,但是其实整个业务流程还是比较复杂的,涉及到各种微信API

2022-05-13 16:36:12 599

原创 记录第一次参与高并发场景业务

目录业务场景项目难点1.发券并发问题2.支付宝技术对接3.服务器升级繁琐4.线上并发问题解决方案1.发券并发问题2.redis队列3.线程池异步4.多实例负载均衡项目收获业务场景上上周新启动了一个项目,是和支付宝合作的,活动流程大概是这样:支付宝侧会开发一个H5活动——品牌密室,用户可以在支付宝中搜到该活动,然后进行游戏互动,游戏后就可以领取券码,关注并进入生活号中进行券码的查看以及门店核销。我负责的部分主要是在用户领券并进入生活号的时候,我会收到支付宝的订阅消息请求,其中有支付宝用户id及其他信息,

2020-09-02 15:50:47 1154

原创 电商系统(毕业设计)

前言公司项目开发目前用到的技术栈有SpringBoot、,MyBatis、Maven、MySql、Redis、Docker,Gitlab。其中除了docker会用了之外,其他的在学校做项目已经基本都用到了。所以在公司呆了一年多,除了业务熟悉了一些之外,技术栈方面并没有多大的长进。在公司也只接触到两个项目,好像简历上一般写三个,实在不行就拿毕业设计凑一下数吧,毕竟也才工作一年。这个项目是我在校招前夕和三个妹子花一个月时间完成的,完成了服务器后台及前端。后来毕业设计选题时和组员都想做电商主题,所以把

2020-06-18 09:41:30 6845 3

原创 项目经验——支付业务

前言月底就要离职走人了。在这个公司包括实习期的话也干了将近一年半了。好歹也算是一年工作经验了,下次面试的话应该也是问项目经验居多。准备近期先将自己自己做过的东西详细整理一下,方便到时候书写简历以及应对面试。支付业务刚到公司的时候,接触的是公司的一个B2B2C电商项目。当时的销售途径是售货机,支付的话流程基本成型,后来需求增加,新增手机商城,使用H5实现,H5支付这一块就落到了我的手上,支付的业务大同小异,我就去研究之前前辈写的支付业务,加上H5支付的文档,将手机商城的支付做了出来。只要流程业务以

2020-06-16 09:15:00 5046

原创 全球国家信息xml文件数据提取

今天项目中遇到一个需求,就是可以对全球国家地区进行选择。那么要么就是数据库字典表,要么就是读取本地文件。这里我们选择读取本地文件,包含中英繁三种语言的文件,可在我的资源中下载。首先引入依赖包<dependency> <groupId>dom4j</groupId> <artifactId&g...

2020-03-31 10:23:36 942

转载 小白都能看得懂的java回调

故事背景在日常编程中,我们经常需要对内存的数据进行持久化的工作,把他们保存在硬盘文件或者数据库中。为了避免重复, 我们通常会把这部分工作封装在一个工具类中, 让各个客户端来调用。下文的FileIO就是一个简单的工具类(为了简单起见,并没有使用单例或静态方法来实现)小张的烦恼Java 帝国的FileIO是一个忙碌的家伙,附近7、8个村落的人都来找他, 请他把数据存储到硬盘里。...

2019-12-16 16:09:08 1766 5

转载 Spring IOC?彻底搞懂它!

目录引言BeanFactory 简介创建 Bean 容器前的准备工作创建 Bean 容器,加载并注册 BeanBean 容器实例化完成后准备 Bean 容器: prepareBeanFactory初始化所有的 singleton beans附录id 和 name配置是否允许 Bean 覆盖、是否允许循环依赖profile工厂模式生成 BeanFa...

2019-12-09 15:31:51 1739 2

原创 【docker】——docker项目中使用phantomjs实现网页快照缩略图

前言前面有写博文,利用phantomjs实现网页快照,分别适配windows,linux,mac,好不容易搞好了,结果把项目镜像放到docker运行容器的时候,居然失效了。docker内部不也是linux内核么,居然会出问题。找了半天,发现是docker中很多库不兼容可能,不能运行phantomjs命令。想了很多办法,比如更换类库,但是已更换会出现连锁反应,其他一个一个都要换,明显不行。很久才...

2019-11-07 17:55:32 3328 1

原创 【PhantomJs】——利用phantomjs实现网页快照的两种方式

前言今天遇到一个需求,是前端给后台一个网址,后台需要返回这个网址的快照回去,刚接手的时候一脸懵,了解了一下,是项目中有个播放视频或者直播的区域,需要一张图片来作为封面图,但是如果专门去存的话不方便,也不灵活。既然有需求,那就只能找方法了,网上各种翻阅,方法不多,也不算少,但是很杂,很多工具及代码都有不足之处,有的比较慢,有的是会出现可视化的工具框,比如IFrame,显然不好,最后确定了用p...

2019-10-28 20:46:22 3103 1

原创 【基本类型】——基本类型与包装类型

一、基本类型Java一种静态编程语言,所有变量和表达式是在编译时就确定的。同时,Java又是一种强类型语言,所有的变量和表达式都有具体的类型,并且每种类型是严格定义的。类型限制了变量可以hold什么样的值,表达式最终会产生什么样的值,可以进行哪些操作。在Java中共有8中基本类型数据,同时每种基本类型又有对应的包装类。最简单的理解,基本类型有默认值,而包装类型初始为null。然后再根据这两...

2019-10-24 19:24:23 8870 1

原创 【docker】——docker-compose部署springboot镜像项目

前言最近项目要上线喽,经理让我自己在电脑上搭建docker练练手,虽然连docker都没弄明白,也只能硬着头皮慢慢搞,不过确实对docker理解加深了,这里先记录一下,后期再整理吧Docker安装:windows10专业版、企业版、教育版都可以安装docker for windows,这个应该是比较好的,官方是说是windows的最好选择,但是我按照网上的教程装了好几遍,运行一直有问题,每次...

2019-10-18 17:17:50 2417 1

原创 【短链接】——自己实现一个短网址服务

目录前言什么是短链接为什么要用短链接(引用)如何生成短链接实现代码演示前言前段时间做支付的时候,要生成可供微信和支付宝扫描的支付二维码,二维码里存储的也就是一个链接,但是可能是因为链接比较长的缘故,总是被微信拦截。然后就换成了微信官方的长链接转短链接,好不容易弄好了,发现支付宝扫的话会拦截,两家果真是水火不容。。。有问题就解决问题呗,那我换成第三方的好...

2019-09-23 14:32:11 5730 6

原创 【支付】——毕业设计中利用websocket做模拟支付

前言最近在做公司项目时使用websocket在支付回调接口中刷新页面状态时,忽然想起今年毕业做毕业设计的时候,做的是一个电商系统,那么支付是必不可少的,当时还没有听说过websocket,去网上查阅资料,申请支付宝或者微信授权肯定是不现实的,还搞了很久的沙箱支付,现在想想真是傻,没有早一点接触到websocket,至于websocket是一门怎样的技术我们在此不做过多介绍,大家可自行查阅资料,......

2019-09-21 19:36:35 5546 2

转载 【Docker/K8s】——干货满满!10分钟看懂Docker和K8S

2010年,几个搞IT的年轻人,在美国旧金山成立了一家名叫“dotCloud”的公司。 这家公司主要提供基于PaaS的云计算技术服务。具体来说,是和LXC有关的容器技术。 LXC,就是Linux容器虚拟技术(Linux container) 后来,dotCloud公司将自己的容器技术进行了简化和标准化,并命名为——Docker。 Docker技术诞生之后,并没有引起行业的关注。...

2019-09-11 17:49:24 2933 1

原创 【学习路线】——Python爬虫初学者学习路线

前言这里稍稍整理一下一下爬虫初学者的学习路线,也给自己一个前进的方向。爬虫是入门Python最好的方式,没有之一。Python有很多应用的方向,比如后台开发、web开发、科学计算等等,但爬虫对于初学者而言更友好,原理简单,几行代码就能实现基本的爬虫,学习的过程更加平滑,你能体会更大的成就感。掌握基本的爬虫后,你再去学习Python数据分析、web开发甚至机器学习,都会更得心应手。因为这...

2019-09-11 15:15:44 3714 3

原创 【设计模式】——代理、策略、委派模式还在傻傻分不清?

前言前面的博文我们已经分别讲述了代理模式,策略模式和委派模式各自的使用及案例实现。但是三者都写完了,我发现其实我自己都有些混淆了,所以今天特意把他们放在一起看看究竟有什么区别和联系策略模式:策略模式是对算法的封装。定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换优点: 1、算法可以自由切换。 2、避免使用多重条件判断。 3、扩展性良好。缺点: 1、策略类...

2019-09-06 13:44:31 5043 3

原创 【日志】——python自定义日志类

前言学习python也是兴趣使然,毕竟python近年来热度高涨,刚好对爬虫很感兴趣,所以利用闲余时间研究一下,python基础在学校的时候已经比较熟悉,就先做一些准备工作吧!日志当然是其中重要的一部分了!代码实现import loggingimport getpassfrom sys#### 定义MyLog类class MyLog(object): #### 类MyLo...

2019-09-05 11:06:42 3411

原创 【设计模式】——委派模式

前言委派模式不属于GOF23种设计模式, 主要角色有三种: 抽象任务角色, 委派者角色, 具体任务角色.实现层面上, 定义一个抽象接口, 它有若干实现类, 他们真正执行业务方法, 这些子类是具体任务角色; 定义委派者角色也实现该接口, 但它负责在各个具体角色实例之间做出决策, 由它判断并调用具体实现的方法.委派模式对外隐藏了具体实现, 仅将委派者角色暴露给外部应用场景我们在这...

2019-09-04 21:08:06 3628

转载 【jmeter】Jmeter如何监控服务器CPU、内存、i/o等资源

一、要准备好的插件:JMeterPlugins-Standard-1.4.0(pwd:cjqd)、ServerAgent-2.2.1(pwd:pxui); 二、解压JMeterPlugins-Standard-1.4.0.zip,将其中\lib\ext\JMeterPlugins-Standard.jar包复制到jmeter安装目录下的\lib\ext下; 三、重启jm...

2019-09-03 10:57:03 3900 4

原创 【个人网站】服务器linux安装MySQL以及Redis

一、安装MySQL这里的话可以看另外一篇文章Linux下安装mysql完整教程,文章基本步骤下来是没问题的。二、安装Redis推荐进入linux路径/usr/local1.获取redis资源wget http://download.redis.io/releases/redis-4.0.10.tar.gz2.解压tar -xzvf redis-4.0.10.tar...

2019-08-27 10:45:41 4154 1

原创 【个人网站】docker中部署springboot项目(多个)

一、docker的安装docker是近年比较火的一个开源的应用容器引擎,咱看半天也没太清楚到底有啥用,反正就是感觉像是一个linux的微缩版,这里暂不讨论,有些东西用着用着就知道他的好处及用途了,只是看的话很难真正理解。PS补充:经过使用后,我目前是这样理解的:docker就是一个虚拟机,其中有三个概念:仓库,镜像,容器。仓库就类似于你ide的工作空间,镜像就相当于工作空间中未启动的项目...

2019-08-26 17:19:53 6678 3

原创 【个人网站】个人网站搭建预备工作

一、购买云服务器(主机)可以选择阿里云,或者腾讯云,不嫌麻烦或者不在乎性能的可以去寻找免费的,我这里是购买的腾讯云的学生套餐:云+校园购买完成后可以在控制台看到服务器信息二、购买域名(前期可省)如果网站尚未开发完成可以先省略这一步,如果只是单纯为自己玩,也可以不买,直接通过IP访问即可,我这里买的也是腾讯云的腾讯云域名。购买域名非港澳地区还需要进行备案,使用腾讯云助手小程序...

2019-08-26 15:41:41 4295

原创 【设计模式】——纯手写实现JDK动态代理

前言在【设计模式】——代理模式(静态)以及【设计模式】——代理模式(动态)中,我们已经基本了解了什么是代理模式,以及什么是静态代理,什么是动态代理。JDK动态代理以及Cglib动态代理其实底层实现原理都是字节码的重组,不过各自对应的代理场景不同,本文我们重点研究jdk动态代理。通过前文的了解,我们已经知道在JDK动态代理中是JDK动态的帮我们生成一个名为$Proxy0的代理类,那么,我.........

2019-08-22 16:15:45 6146 3

原创 【设计模式】——代理模式(动态)

前言动态代理是Java语言中非常经典的一种设计模式,也是所有设计模式中最难理解的一种,本文将通过一个简单的例子模拟JDK动态代理实现,让你明白动态代理设计模式的本质。从字面意思来看,代理比较好理解,无非就是代为处理的意思。举个例子,大家到一定年龄还没结婚的话,肯定会被父母催婚,不得已就要去相亲,那么就要去中介所或者找媒婆,那么此处的媒婆就是一个代理。是的,你没有看错,代理就是这么简单!...

2019-08-22 12:01:05 5412

转载 【土豆】——做人,要像土豆一样

做人要像土豆一样,跟啥都能炖一起,咋整都不难吃。别像花椒大料似的,哪有事哪到,从头到尾都跟着使劲忙活,最后菜做好了,谁动筷子第一件事都是把你挑出去划拉一边去,生怕吃着你。更别像苍蝇,一炒菜你就煽呼小翅膀劲劲的往跟前凑,总把自己也当个材料,进锅里命搭上不说,这盘菜也就完犊子了!一根稻草丢在大街上是垃圾,绑在大白菜上可以卖白菜的价格,绑在大闸蟹上就是大闸蟹的价格。跟着苍蝇进厕所...

2019-08-20 16:06:15 4393 11

转载 【面向对象】——JAVA中(PO,VO,TO,BO,DAO,POJO)分别是指什么

前言以前在学校学习java的时候,凡是开发项目都会将各个类分门别类的放在不同的包下,其中实体类的包尤为普遍,一般我都是建一个com.xxx.bean的包,然后凡是项目里面用到的实体类都丢进去,大家都是这样,也就习惯了。到了公司,接触项目后,发现在bean包下面还会分很多包,比如vo/dto/po等,怕自己建类时贻笑大方,特此学习并记录。PO(bean,entity等命名):pers...

2019-08-19 11:56:35 5558

转载 【面试】——Java面试题内容总结

往期内容聚合设计模式内容聚合面试技术文Java岗 面试考点精讲(基础篇01期)Java岗 面试考点精讲(基础篇02期)Java岗 面试考点精讲(网络篇03期)Java 面试中遇到的坑Java面试中遇到的坑【填坑篇】Java面试中遇到的坑【篇二】java面试遇到的坑[第三期]java面试填坑解惑篇[三]java面试遇到的坑[第四期]面试官:你分析...

2019-08-19 09:55:51 5544 7

原创 【kafka】——分分钟看懂什么是kafka及其原理

前言本文只为满足新手对名词的好奇,开拓眼界,用通俗易懂的话语解释kafka是什么及其简单原理,博主之前也并未对此有所接触,只是希望对一些前沿技术有所了解,特此记录,并将博主能理解的成分展示给志同道合的朋友,并未做过多实践以及深入,请谅解。什么是kafkakafka是一个分布式消息队列。具有高性能、持久化、多副本备份、横向扩展能力。生产者往队列里写消息,消费者从队列里取消息进行业务逻辑。...

2019-08-16 14:09:39 7333 1

原创 【二维码】——生成二维码并转为base64

今天项目中刚好用到了二维码转化,在这里分享一个生产二维码并将其转为base64的二维码工具类需要的jar包<!-- 生成二维码 --> <dependency> <groupId>com.google.zxing</groupId> <artifactId>core</artifa...

2019-08-15 17:38:51 8029

原创 【JUC】——JUC相关知识点,不断更新

前言作为并发的基础,我们需要熟悉掌握JUC相关的知识,才能更好的在实际项目中运用在 Java 5.0 提供了java.util.concurrent(简称JUC)包,在此包中增加了在并发编程中很常用的工具类, 用于定义类似于线程的自定义子系统,包括线程池,异步 IO 和轻量级任务框架;还提供了设计用于多线程上下文中 的 Collection 实现等;以下为他人总结的JUC下常用类:...

2019-08-14 13:54:19 5499

原创 【JUC】——synchronized应用、作用及实现原理

前言在 Java 中,关键字 synchronized可以保证在同一个时刻,只有一个线程可以执行某个方法或者某个代码块(主要是对方法或者代码块中存在共享数据的操作),同时我们还应该注意到synchronized另外一个重要的作用,synchronized可保证一个线程的变化(主要是共享数据的变化)被其他线程所看到(保证可见性,完全可以替代Volatile功能),这点确实也是很重要的。三种应...

2019-08-13 10:58:02 6252

转载 【集群分布式】——白话解说什么是集群,什么是分布式

一、大白话解说,半分钟就懂,用生活中的例子来说明:小饭店原来只有一个厨师,切菜洗菜备料炒菜全干。后来客人多了,厨房一个厨师忙不过来,又请了个厨师,两个厨师都能炒一样的菜,两个厨师的关系是集群。为了让厨师专心炒菜,把菜做到极致,再请了个配菜师负责切菜,备菜,备料 ... 厨师和配菜师的关系是分布式。一个配菜师也忙不过来了,又请了个配菜师,两个配菜师关系是集群。一个配菜师因...

2019-08-12 17:55:58 5258 2

转载 【异常】——UnsupportedOperationException

细数开发路上遇到过得坑。前段时间在做业务开发时,往list里add元素的时候,报了一个异UnsupportedOperationException,自认为add方法用了不下千百遍,突然报这个异常什么鬼,困惑了我好久,后来查看源码才找出原因,事情是这样的:如上图,由于事先知道要往集合初始化5个元素,为了方便使用了arrays.aslist(T...a),因为这个函数可以直接传入需要添加的元...

2019-08-12 17:02:38 5273

原创 【异常】——ConcurrentModificationException

前言在对一个list进行循环,将其中一些元素从list中移除时:在此之前先弄清楚一些相关的知识。Fail-Fast机制快速失败也就是fail-fast,它是Java集合的一种错误检测机制。java.util包中的集合类都有 fail-fast 检测,如果fail-fast迭代器检测到在迭代过程中进行了更改操作,那么它会抛出 ConcurrentModificationEx...

2019-08-12 16:54:31 5687

全球国家信息xml数据(含中英繁)

鹅厂中提取的全球地区信息xml文件,包含了中文,英文,繁体三种语言的文件,可以搭配博文中写的全球地区数据xml文件解析工具类使用哦

2020-03-31

空空如也

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

TA关注的人

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