自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

我爱吃土豆

做人要像土豆一样,跟啥都能炖一起,咋整都不难吃。欢迎访问我的个人网站:https://itudo.cn...

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

前言 对于HashMap,可谓是面试必问的点。无论你是刚毕业的大学生,还是工作三年的高级开发工程师。HashMap可谓是JDK源码中比较经典的源码设计。 在上学的时候就知道它的重要性,但是有一些比较复杂的地方当时很难理解,只是模糊记忆,面试官问的时候也是将记住的答案背下来,其实在面试官眼中早就露馅...

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

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

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

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

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

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

2019-12-03 17:28:06 1846 6

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

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

2019-11-26 17:21:27 46225 153

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

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

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

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

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

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

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

目录业务场景项目难点1.发券并发问题2.支付宝技术对接3.服务器升级繁琐4.线上并发问题解决方案1.发券并发问题2.redis队列3.线程池异步4.多实例负载均衡项目收获 业务场景 上上周新启动了一个项目,是和支付宝合作的,活动流程大概是这样:支付宝侧会开发一个H5活动——品牌密室,用户可以在支付...

2020-09-02 15:50:47 586 0

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

前言 公司项目开发目前用到的技术栈有SpringBoot、,MyBatis、Maven、MySql、Redis、Docker,Gitlab。 其中除了docker会用了之外,其他的在学校做项目已经基本都用到了。 所以在公司呆了一年多,除了业务熟悉了一些之外,技术栈方面并没有多大的长进。 在公司也只...

2020-06-18 09:41:30 567 1

原创 项目经验——支付业务
原力计划

前言 月底就要离职走人了。在这个公司包括实习期的话也干了将近一年半了。 好歹也算是一年工作经验了,下次面试的话应该也是问项目经验居多。 准备近期先将自己自己做过的东西详细整理一下,方便到时候书写简历以及应对面试。 支付业务 刚到公司的时候,接触的是公司的一个B2B2C电商项目。当时的销售途径是售货...

2020-06-16 09:15:00 3121 0

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

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

2020-03-31 10:23:36 492 0

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

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

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

转载 Spring IOC?彻底搞懂它!

目录 引言 BeanFactory 简介 创建 Bean 容器前的准备工作 创建 Bean 容器,加载并注册 Bean Bean 容器实例化完成后 准备 Bean 容器: prepareBeanFactory 初始化所有的 singleton beans 附录 id 和 name...

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

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

前言 前面有写博文,利用phantomjs实现网页快照,分别适配windows,linux,mac,好不容易搞好了,结果把项目镜像放到docker运行容器的时候,居然失效了。docker内部不也是linux内核么,居然会出问题。找了半天,发现是docker中很多库不兼容可能,不能运行phanto...

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

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

前言 今天遇到一个需求,是前端给后台一个网址,后台需要返回这个网址的快照回去,刚接手的时候一脸懵,了解了一下,是项目中有个播放视频或者直播的区域,需要一张图片来作为封面图,但是如果专门去存的话不方便,也不灵活。 既然有需求,那就只能找方法了,网上各种翻阅,方法不多,也不算少,但是很杂,很多工具...

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

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

一、基本类型 Java一种静态编程语言,所有变量和表达式是在编译时就确定的。同时,Java又是一种强类型语言,所有的变量和表达式都有具体的类型,并且每种类型是严格定义的。类型限制了变量可以hold什么样的值,表达式最终会产生什么样的值,可以进行哪些操作。在Java中共有8中基本类型数据,同时每种...

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

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

前言 最近项目要上线喽,经理让我自己在电脑上搭建docker练练手,虽然连docker都没弄明白,也只能硬着头皮慢慢搞,不过确实对docker理解加深了,这里先记录一下,后期再整理吧 Docker安装: windows10专业版、企业版、教育版都可以安装docker for windows,这个应...

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

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

目录 前言 什么是短链接 为什么要用短链接(引用) 如何生成短链接 实现 代码 演示 前言 前段时间做支付的时候,要生成可供微信和支付宝扫描的支付二维码,二维码里存储的也就是一个链接,但是可能是因为链接比较长的缘故,总是被微信拦截。 然后就换成了微信官方的长链接转短链接,好不...

2019-09-23 14:32:11 2624 3

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

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

2019-09-21 19:36:35 2445 0

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

2010年,几个搞IT的年轻人,在美国旧金山成立了一家名叫“dotCloud”的公司。 这家公司主要提供基于PaaS的云计算技术服务。具体来说,是和LXC有关的容器技术。 LXC,就是Linux容器虚拟技术(Linux container) 后来,dotCloud公司将自己的容器技术...

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

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

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

2019-09-11 15:15:44 2991 1

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

前言 前面的博文我们已经分别讲述了代理模式,策略模式和委派模式各自的使用及案例实现。 但是三者都写完了,我发现其实我自己都有些混淆了,所以今天特意把他们放在一起看看究竟有什么区别和联系 策略模式: 策略模式是对算法的封装。定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换...

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

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

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

2019-09-05 11:06:42 3129 0

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

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

2019-09-04 21:08:06 3430 0

转载 【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-S...

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

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

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

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

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

一、docker的安装 docker是近年比较火的一个开源的应用容器引擎,咱看半天也没太清楚到底有啥用,反正就是感觉像是一个linux的微缩版,这里暂不讨论,有些东西用着用着就知道他的好处及用途了,只是看的话很难真正理解。 PS补充:经过使用后,我目前是这样理解的:docker就是一个虚拟机...

2019-08-26 17:19:53 4705 1

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

一、购买云服务器(主机) 可以选择阿里云,或者腾讯云,不嫌麻烦或者不在乎性能的可以去寻找免费的,我这里是购买的腾讯云的学生套餐:云+校园 购买完成后可以在控制台看到服务器信息 二、购买域名(前期可省) 如果网站尚未开发完成可以先省略这一步,如果只是单纯为自己玩,也可以不买,直接通过IP...

2019-08-26 15:41:41 4069 0

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

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

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

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

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

2019-08-22 12:01:05 5160 0

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

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

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

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

前言 以前在学校学习java的时候,凡是开发项目都会将各个类分门别类的放在不同的包下,其中实体类的包尤为普遍,一般我都是建一个com.xxx.bean的包,然后凡是项目里面用到的实体类都丢进去,大家都是这样,也就习惯了。 到了公司,接触项目后,发现在bean包下面还会分很多包,比如vo/dto...

2019-08-19 11:56:35 4953 0

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

往期内容聚合 设计模式内容聚合 面试技术文 Java岗 面试考点精讲(基础篇01期) Java岗 面试考点精讲(基础篇02期) Java岗 面试考点精讲(网络篇03期) Java 面试中遇到的坑 Java面试中遇到的坑【填坑篇】 Java面试中遇到的坑【篇二】 java面试遇...

2019-08-19 09:55:51 5279 6

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

前言 本文只为满足新手对名词的好奇,开拓眼界,用通俗易懂的话语解释kafka是什么及其简单原理,博主之前也并未对此有所接触,只是希望对一些前沿技术有所了解,特此记录,并将博主能理解的成分展示给志同道合的朋友,并未做过多实践以及深入,请谅解。 什么是kafka kafka是一个分布式消息队列。...

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

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

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

2019-08-15 17:38:51 5891 0

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

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

2019-08-14 13:54:19 5025 0

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

前言 在 Java 中,关键字 synchronized可以保证在同一个时刻,只有一个线程可以执行某个方法或者某个代码块(主要是对方法或者代码块中存在共享数据的操作),同时我们还应该注意到synchronized另外一个重要的作用,synchronized可保证一个线程的变化(主要是共享数据的变...

2019-08-13 10:58:02 5863 0

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

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

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

转载 【异常】——UnsupportedOperationException

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

2019-08-12 17:02:38 4812 0

原创 【异常】——ConcurrentModificationException

前言 在对一个list进行循环,将其中一些元素从list中移除时: 在此之前先弄清楚一些相关的知识。 Fail-Fast机制 快速失败也就是fail-fast,它是Java集合的一种错误检测机制。 java.util包中的集合类都有 fail-fast 检测,如果fail-fast...

2019-08-12 16:54:31 5366 0

转载 【JUC】——乐观锁、悲观锁及乐观锁实现CAS机制

首先介绍一些乐观锁与悲观锁: 悲观锁:总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。再比如Java里面的同步原语...

2019-08-12 14:58:09 5769 1

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