自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

骚小孩啊丶

stay foolish,stay hungry.

  • 博客(121)
  • 收藏
  • 关注

原创 乱七八糟的想法

怎么用尽量少的日志(避免es或者磁盘装不下),来快速定位线上问题?这个问题其实想了好久了,日志全打印了把,太占地,不打印如果出现问题那么就难定位。这个图是我的一些粗略的想法。我们在aop中不直接log了,我们把日志以traceid最为key先存起来。存到内存中。内存寸土寸金,所以在存的时候应该尽量压缩。然后在将执行的方法不断append,然后在业务结束的时候判断一下是否成功执行,如果失败了,那么我们就把我们日志信息log出来,或者发邮件,直接存到es中(方便后边做可视化),然后还是要将内

2020-09-27 18:08:57 249

原创 我理解的分布式

传统模式:比如说拿一个商城来举例子,就是我的添加购物车,下单,支付,扣减优惠卷,增加积分等一系列操作全部在一个系统上,那么当我并发超过负载,那么就全崩了。还有啊,比如我要修改下单的某个bug,那么我就需要把整个系统拿过来修改然后重新部署。随着业务的发展和并发量的发展,要求越来越高,那么为了我们开发轻便,所以产生了分布式。分布式模式:商城系统在分布式模式中,那么添加购物车,下单,支付,扣减优惠卷,增加积分这些操作都可以分为单应用。当我们一个应用down掉,那么不会导致全部崩掉,我们快速拿去有问

2020-07-22 15:33:57 245

原创 Maven构建多个环境,自动切换配置文件

预想效果:通过这里进行环境切换,来达到不同环境的配置1.修改pom文件因为我项目中有很多子模块,所以我直接修改的父类文件进行统一切换。 <profiles> <profile> <id>dev</id> <properties> ...

2020-04-24 16:45:09 818

原创 SpringCloud入门就踩了几个坑

1.Eureka中注册服务,name中不能包含_,可以用—代替2.使用feign传参数的时候,会默认向服务端发送post请求,只有满足下边条件的时候才能看成get请求。 1>.服务端接收请求写GetMapper 2>.如果有参数的话加@RequestParam(客户端)...

2020-04-07 18:39:11 253

原创 记录一次迄今为止遇到难度超高的面试

面的是阿里高可用架构部。本着初生牛犊不怕虎的心态去冲的,因为是下午2个面试,显示腾讯面了一个小时,然后又是阿里架构面试,深深感受到了面试难度的区分。在面腾讯的时候,那个老哥可能不是java,所以问的数据库啊,计算机网络,redis,操作系统,linux等这些比较多。但是说到一个点以后没有深入挖掘。但是面到阿里架构的时候,感受到了你要为你说的话负责。因为你说的每一个名词都会在后边等着你去...

2020-03-11 22:59:05 255 4

原创 一些海量数据排序算法问题总结

1.给2000千万高考学生排序,要求要能根据分数找到该学生的排名?千万别被2000千万这个数字唬住,理性的看一下题,“高考”这个词不知道你注意到了没?这是一个隐藏条件。你高考考了多少分?总分多少?可能有的小伙伴已经反应过来了。高考700分,那我们开一个700大小的数组,记录每个分数的的个数就可以了。对,就是使用桶排序的算法,来进行排。这一类题他虽然样子很吓人,但是仔细 发现他的范围...

2020-03-07 21:01:08 943 1

原创 秒杀项目的思考

我再刷面经的时候看到好多对于秒杀系统的问题,自己就捣鼓了一个。思路图我们就从最差的情况一步一步解决。1.数据库直接被穿?当我们秒杀系统的数据库被打穿以后,我们一定不要影响到其他系统。将秒杀系统数据库独立出来。不然你的业务不仅不行,还把其他人搞砸了,你要被祭天了。2.我们怎么防止我们数据库被打穿?数据库扛不住,就用它兄弟redis来抗,一个扛不住,咱们就加集群,加主从...

2020-03-03 22:43:20 311 1

原创 与面试官怼项目过程中的思考

我写的一个项目用到了支付,然后面试官照着支付这块开始了一轮攻击。大概支付流程流程:这个系统没有往死了打,就问了几个小问题。1.如果在异步回调判断结果落库过程中因为网络抖动落库失败怎么办?我回答的是如果我落库失败的话,就把该订单放入本地缓存(可以用ConcurrentHashMap),然后通过定时任务把缓存的数据写回数据库。2.如果在这时候用户重复提交咋办?我第一反应居然...

2020-03-03 20:36:47 279

原创 分享几个基础但是非常有意思的小题

1.2.3.4.答案见下方:1. false2. 1 bbbbb3. 0104.022

2020-02-13 14:06:36 143

原创 11.AQS及相关实现类

AQSAQS是一款抽象的队列式同步器,他定义了一套多线程访问共享资源的同步框架。当请求得资源空闲那么他将当前请求资源设置为有效的工作线程,并将共享变量设置为锁定状态,如果请求的资源锁定,那么就进入CLH阻塞队列中。AQS定义两种资源共享方式:Exclusve(独占,只有一个线程执行,如Reentrantlock)和Share(共享,多个线程同时执行,Semaphore/CountD...

2020-02-13 00:18:10 449 1

原创 10.IO模型

BIO模型:bio是一种阻塞式同步模型,主要是采用同步阻塞模型+线程池的模式,并发量并不是很高,比如像tomcat就是采用的bio模型,并发量小于1000.因为像socket的accept(),write(),read()这些都是阻塞的。比如read()方法,当receBuffer里没有数据,那么函数就会一直阻塞,直到收到数据为止。如果是单线程的话,对于一些多核cpu得不到很...

2020-02-11 00:40:34 211

原创 9.Redis篇

Redis支持的数据类型?字符串 格式:set key value value可以包含任何数据,一个key最大512MB 哈希 格式:hmset key fileld value key2 value 一个String的filed和一个value映射,适合存储对象 List列表 格式lpush key value value 字符串列表,可以往列表的左边或者右边添加 set集合 Stri...

2020-02-09 20:55:36 151

原创 8.框架篇(ssm)

其实java并发的东西还没整理完,昨天只是整理了一小部分,juc下面所有的东西都是重点。今天又接到了几家公司的面试邀请,所以打算,先把广度扩出来,然后再细细深挖。Spring 的优点?1.spring属于低耦合,代码污染度低。2.spring种的di机制将对象之间的依赖关系交给框架处理 ,减少组件的耦合度。3.spring提供了aop技术,支持一些通用技术,比如安全,事务,日志,权...

2020-02-08 22:24:57 386

原创 7.并发编程

1.线程和进程的关系?一个进程可以有多个线程,但必须有一个线程,一个线程只能在一个进程的范围内活动。2.并发和并行的区别?并发是指有公共资源的争夺,并行是没有公共资源的争夺。3.实现多线程的方式? 1>.继承Thred类,重写run接口。 2>.实现Runnable接口,实现run方法。 3>.通过Callable接口,...

2020-02-07 19:23:44 203

原创 6.计算机网络篇

其实应该写java并发编程了,但是那个1天还真总结不完,所以先整理一个少点(并不是说内容少,只是相对考点少)的。图太大,限制5M没法传了。直接以问答的形式说一些经常问到的题把。1.TCP三次握手及过程?2.TCP四次挥手过程?各种标识位: 序列号seq:占4个字节,用来标记数据段的顺序,TCP把连接中发送的所有数据字节都编上一个序号,第一个字节的编号由本地随机产生...

2020-02-07 12:50:28 192

原创 5.mysql篇

我上课学过一遍mysql,然后自己看视频学了一遍“mysql进阶”然后自己瞎研究了一段时间mysql,也写了一个专栏https://blog.csdn.net/huaixiaohai_1/category_9294028.html但是发现自己只是停用在使用mysql的层面上,知识能使用各种sql语句,有的地方可能明白原理,但是知识很模糊的那种,只要往深一问的话,就一脸懵逼。在准备这部分...

2020-02-05 21:03:42 286

原创 4.java基础

反射是在运行状态中,对于任意的一个类,都能够知道这个类的所有属性和方法,对任意一个对象都能够通过反射机制调用一个类的任意方法,这种动态获取类信息及动态调用类对象方法的功能称为java的反射机制。我觉得上边那些话很不好理解,也不够清除,还是刨刨祖坟包。在对象的创建过程中,要经历如下几步:创建对象的时候首先会去先加载类信息进常量池。这样我们以后使用该类信息都可以直接从常量池中读取。...

2020-02-04 21:25:17 204

原创 3.java中的数据结构

java中关于数据结构的工具类,暂时就这么称呼吧,其实也贼拉多,害看图包上面的图肯定时不全,知识一些常用的。简单看一下上面列举出来的“工具类”的源码和一些常见的面试问题:List接口中的“工具类”,是一个有序集合,可以重复。ArrayList:底层使用数组实现的,数据是有序数据(插入的顺序),具有索引查找比较快,线程不安全。属性: //默认容量 private sta...

2020-02-04 15:48:21 180

原创 2.数据结构篇二

之前说到了二叉树的遍历,下面继续:满二叉树: 二叉树每一层的节点都达到了最大,其实就是这棵树是满着的。第n层有2的(n-1)次方个节点,前n层共2的n次方-1个节点。完全二叉树:若设二叉树的深度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第 h 层所有的结点都连续集中在最左边,这就是完全二叉树。网上找了2个图片:(左:满二叉树 右:完全二叉树)最优...

2020-02-04 11:13:28 181

原创 1.数据结构篇一

说多了也没用,先上一个脑图吧。害,啥也不说了,怎么这么多包,还可能有好多东西没整上,学计算机可真是累死个人奥。下边一个一个整。顺序表实现:public class ListDemo { private final int MAXSIZE = 100; private Object data[]; int last; int defaultLength = 20; p...

2020-02-02 23:16:06 151

原创 艰难求职之路

寒假在家带着自己快要废了,然后今天和我涛哥通了个电话,让我在重新整理整理简历,忽然感觉简历上写的知识点好陌生,感觉这样下去就要废了,所以决定从头再来一遍,把知识点在建一个专栏重新串一遍。奥里给,冲冲冲!!!下面是知识点列表(不包括rpc)熟悉数据结构中常用表结构,树结构及其常用操作方法的编写。 熟悉java集合中常用集合如HashMap,Set,List,ConcurrentHashMa...

2020-02-02 19:56:46 281 2

原创 OSS文件下载的踩坑之路

过年过的在家带着无聊但是什么也不想干,哎,废了废了今天做OSS文件下载的时候,怎么整都是乱码,整崩溃了。官网给的例子也是有点狗(如下)// Endpoint以杭州为例,其它Region请按实际情况填写。String endpoint = "http://oss-cn-hangzhou.aliyuncs.com";// 阿里云主账号AccessKey拥有所有API的访问权限,风险很...

2020-01-30 21:48:51 5920 1

原创 上传头像并回显(SpringBoot)

以前经常写上传头像功能,上传头像完回显出来,通常套路是:数据库保存文件名(自己加工过,防止重名)然后文件路径写到前台的绝对路径。前台直接用../相对路径的方式显示出来。但是这样有一个问题就是当我们在window开发以后部署到linux服务器上的时候,需要改我们保存头像的绝对路径。后边受到点启发,想了另一个套路: //文件路径 private static fin...

2019-11-22 12:27:34 1169

原创 redis存值出现这个问题\xac\xed\x00\x05t\x00

今天用redis存token发现始终验证不通过,于是打开redis客户端看了看,果然发现了问题。出现了前边出现一堆不知道是什么的东西。我springboot中的RedisTemple就是直接@Autowird的,所以默认使用JdkSerializationRedisSerializer(jdk自己的序列化)。解决办法:修改序列化器,使用阿里的FastJson2JsonRedis...

2019-11-11 17:15:54 929

原创 双重检查锁的问题与解决

在我们写单例的时候,我们可能会有如下写法:public class Test{ private static Instance instance; public synchronized static Instance getInstance(){ if(instance == null){ //1 ...

2019-11-04 17:27:22 230

原创 最优分解问题(JAVA)

设n是一个正整数,现在要求将n分解为若干个互不相同的自然数的和,使这些自然数的乘积最大。输入 10输出 30(被分解为5 2 3)分析:一个数被分为任意2个为不为一的数都大于等于原数。那就可以根据这条性质去用贪心策略解决问题。那从2开始,如果能分解出来就要 10-2=8 8-3 =5 5-4=1<4到了5那里就是我们的判断条件,因为题目要求分解为不相同的自然数...

2019-10-31 10:19:52 661 2

原创 跳跃游戏(JAVA)

给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个位置。示例 1:输入: [2,3,1,1,4]输出: true解释: 我们可以先跳 1 步,从位置 0 到达 位置 1, 然后再从位置 1 跳 3 步到达最后一个位置。示例 2:输入: [3,2,1,0,4]输出: false解释: 无论怎...

2019-10-27 23:15:36 689

原创 final与线程安全的关系?

对于final域,编译器和处理器遵循两个重排序规则:在构造函数内对一个final域的写入,与随后把这个被构造对象的引用赋值给另一个引用变量,这两个操作之间不能重排序。 初次读一个包含final域的对象的引用,与随后初次读这个final域,这两个操作之间不能重排序。我测试了半天没测出来。。。public class Test { static Test test; int i; ...

2019-10-26 23:58:03 1657

原创 1024快乐

此文章只为了纪念航酱今天拿到了5杀。

2019-10-24 23:28:07 620 1

原创 netty与websocket如何实现参数传递

Websocket:Websocket是HTML5新增加的协议,在服务器与浏览器之间建立一个不受限的双向通道,可以实现服务器主动向浏览器推送消息。Websocket是利用Http协议来实现的。webscoket连接是都是通过浏览器发起的。他的建立连接请求是一个http请求。请求格式如下:GET ws://localhost:3000/ws/chat HTTP/1.1Host: ...

2019-10-22 11:36:37 7307 2

原创 最大公共子序列长度(JAVA版)

一个给定序列的子序列是在该序列中删去若干元素后得到的序列。确切地说,若给定序列X=<x1,x2,…,xm>,则另一序列Z=<z1,z2,…,zk>是X的子序列是指存在一个严格递增的下标序列<i1,i2,…,ik>,使得对于所有j=1,2,…,k有:Xij=Zj例如,序列z=<B,C,D,B>是序列X=<A,B,C,B,D,A,B>的子...

2019-10-16 21:32:33 443

原创 01背包问题(JAVA版)

给定 n 个物品和一个容量为 W 的背包,物品 i 的重量是 wi,其价值为 vi 。应该如何选择装入背包的物品,使得装入背包中的物品的总价值最大?(物品不能重用)例:物品体积:2 3 4 5 物品价值 3 4 5 6 背包体积 8输出10public static int getMaxValue(int c[],int v[],int j) {...

2019-10-16 21:15:51 153

原创 最小m段和(JAVA版)

给定n个整数组成的序列,现在要求将序列分割为m段,每段子序列中的数在原序列中连续排列。如何分割才能使这m段子序列的和的最大值达到最小?样例输入1 110样例输出10样例输入9 39 8 7 6 5 4 3 2 1样例输出17public static int getMin(int a[], int len) { int d...

2019-10-16 21:05:27 713

原创 石子合并问题(JAVA版)

一条直线上摆放着一行共n堆的石子。现要将石子有序地合并成一堆。规定每次只能选相邻的两堆合并成新的一堆,并将新的一堆石子数记为该次合并的得分。请编辑计算出将n堆石子合并成一堆的最小得分和将n堆石子合并成一堆的最大得分。Input输入有多组测试数据。每组第一行为n(n<=100),表示有n堆石子,。二行为n个用空格隔开的整数,依次表示这n堆石子的石子数量ai(0<ai&...

2019-10-16 20:57:13 1034

原创 编辑距离问题(JAVA版)

最近好久不写博客了,一直被动态规划狂虐设A和B是2个字符串。要用最少的字符操作将字符串A转换为字符串B。这里所说的字符操作包括(1)删除一个字符; (2)插入一个字符; (3)将一个字符改为另一个字符。将字符串A变换为字符串B所用的最少字符操作数称为字符串A到 B的编辑距离,记为d(A,B)。对于给定的字符串A和字符串B,计算其编辑距离 d(A,B)。例:fxpims xwrs结果:4...

2019-10-16 20:47:50 687 2

原创 Could not initialize class sun.awt.X11GraphicsEnvironment

最近做项目的时候web程序用java画图工具画了一个验证码,在本机上测试没有问题,放到服务器就出错了。程序都是一样的,应该不是程序的问题,所以开始找环境问题。用postman单独请求,报了一个题目的错误。从X11GraphicsEnvironment这个类功能入手分析,java服务器在处理图片时,需要运行一个X-server以便使用AWT,所以提示这个错误,确定问题出现在启动X-ser...

2019-10-10 21:37:46 310

原创 仔细看一下Volatile

再说volatile之前,先说一下java内存中是怎么进行处理的?可以看我以前的文章:java对象创建过程因为每个线程都有一个本地内存,他们都会缓存一份主内存的共享数据,这样问题就来了,如何保证主内存和线程内存数据一致就成了一个问题?Volatile关键字可以算是一个轻量级锁,它可以有效的处理上面说的一致性问题,他的实现主要遵循两条原则:1.Lock前缀指令会引起处理器缓存写回到内...

2019-10-07 14:26:41 127

原创 通过SpringMVC封装的方法实现文件下载

// 下载excel @RequestMapping("/download") public ResponseEntity<byte[]> downloadExcel(int id) { String tablename =oservice.getTableName(id); try { //文件路径 String path =Paths.EXCELPATH+...

2019-09-26 22:04:13 264

原创 JAVA通过poi导出excel

maven依赖: <!--读取excel文件 --> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.9</version&g...

2019-09-26 21:47:02 90

原创 tomcat加载了2次程序??

记录今天遇到的一个以外的bug做了一个定时任务可以看到引擎启动了两次,查看了配置信息没有错误,那就是tomcat重复加载的问题。 <Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true"> <!-- SingleSignOn valve, share...

2019-09-23 23:08:33 156

空空如也

空空如也

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

TA关注的人

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