- 博客(287)
- 资源 (4)
- 收藏
- 关注
原创 String转List示例(java)
本文涉及到了两种String格式的转换:格式为 “1,2,3”;格式为 [{“uid”:“1”,“userName”:“小明”},{“uid”:“2”,“userName”:“小红”}]第一种:String uid="1,2,3";(1)转为List<Long> uids={1,2,3}List<Long> uids=Arrays.stream(uid.split(",")).map(s->Long.parseLong(s.trim())).collect(C
2021-11-08 11:09:43 80028 4
原创 【Springcloud】详解Hystrix(断路器)
这篇我们说说Springcloud的第三个组件——Hystrix。Hystrix类似于电路上的“保险丝”。我们知道,如果短时间内用电量过大,保险丝会“自杀”,从而断电,起到保护电路安全的作用。这也就是常说的“跳闸”。Hystrix就是系统的保险丝,至于具体是如何保护的,请接着看。Hystrix是什么?Hystrix是用于服务保护的,当某个服务单元发生故障后,通过断路器的故障监控,向调用方返...
2019-07-29 21:16:39 604
原创 趣谈java单例模式
什么是单例模式确保一个类最多只有一个实例,并提供一个全局访问点。就像你是你们家的独生子,一旦邻居跟你爸告状说“你家孩子打架了”,说的只可能是你。单例模式有两种创建方式:懒汉式和饿汉式。在下文会对其进行详细解说。使用场景和优缺点使用场景(1)网站计数器。当需要统计当前在线人数,只能用一个全局对象来记录。(2)应用程序的日志。日志内容一般为共享操作,需要在后面不断写入内容,所以需要单例模...
2019-06-23 10:39:23 789 5
原创 小仙女讲JVM(7)—JVM优化
还以这个图为例,从.java到.class是编译过程,从.class到机器码是解释过程。下面对其进行分别优化。在优化过程中,对编译阶段的优化主要是对前端编译器的优化,在运行阶段的优化,主要是对即时编译器的优化。编译器优化编译过程以上为javac的编译过程图,以下为javac编译过程的主体代码。下面对其步骤进行详细解读1、解析与填充符号表词法分析将源代码的字符流转变为标记(...
2019-06-21 20:31:21 1842 16
原创 小仙女讲JVM(5)—类加载机制
上篇中我们讲解了Class文件,这篇我们说说虚拟机是如何加载这些Class文件的?Class文件中的信息进入到虚拟机后会发生什么变化?这就涉及到了类加载机制。类加载机制是把类的数据从Class文件加载到内存,并对数据进行校验,转换解析和初始化,最终形成可以被虚拟机直接使用的java类型。这一系列的过程都是在程序运行期间完成的。类加载器类加载器就是下图中红框的部分,它通过一个类的全限定名来获取...
2019-06-19 16:36:56 4262 19
原创 小仙女讲JVM(2)—内存的划分
我们知道,在C++语言里,如果想使用一个对象,需要对其进行new操作;如果不用这个对象了,需要对其进行delete操作。一旦开发人员忘记写delete语句了,就会造成内存泄露。【内存被对象占用着不还,就叫内存泄露。】而java就聪明了,它从“手动”进化成了“自动”,把内存的控制权力交给了虚拟机。下面我们就来窥探一下jvm是怎么进行自动内存管理的。这是自动内存管理的思维导图,在本篇我们只说说...
2019-06-18 20:30:50 10409 34
原创 docker是啥?是干什么的?
what?定义我们知道,软件依赖的环境大致包括:• 配置文件• 代码• tomcat• JDK• 操作系统Docker作为一个软件集装箱化平台,可以让开发者构建应用程序时,将它与其依赖环境一起打包到一个容器中,然后很容易地发布和应用到任意平台中。思想:集装箱标准化隔离核心docker有3大核心:镜像、容器、仓库。鲸鱼是操作系统。要交付的应用程序是各种货物,...
2019-01-31 20:40:18 57986 15
原创 【java反射】反射是啥?是干啥用的?
反射是啥反射既然有“反”,就说明它是一个逆向的过程。那我们先来看看正向过程是怎样的。设计一个类,类实例化成对象,对象调方法或属性去实现一些功能。那反射是什么呢?不知道大家是否还记得上图,这是刚接触java时学到的知识。我自己的理解是现在是知道1,反推到2,然后再通过2得到一些别的信息。(这只是我的推测,至于具体是不是,还需日后深究)类比到现实中的场景是:你:妈妈,你知道剪刀在哪吗?...
2019-01-04 21:45:24 17695 32
原创 用大白话来讲讲多线程的知识架构
cpu就像同时负责多个流水线的女工:在流水线①上操作——将①暂停——去流水线②上操作——将②暂停——返回流水线①继续操作……
2023-08-26 23:58:55 1770 1
原创 实现幂等性的几种方式及其注意事项
什么是幂等性?幂等性就是当用户对于同一操作发起一次或多次请求时,得到的结果都是一样的。比如购物下单时,即使用户可能由于手机卡顿等原因点了好几次“提交订单”,那也只能扣一次费和生成一个订单。什么情况下需要做幂等性处理?读取和删除,操作一次和多次的结果都是一样的,所以不用考虑幂等处理。下面两种情况需要考虑:(1)insert,多次请求时可能会产生重复数据(2)update,分情况,如果像这种,不用考虑。像就需要考虑了。实现幂等性的方式下面列举一下在分布式情景下实现幂等性的几种方式。
2022-11-29 15:34:06 393
原创 es中的match、term、text、keyword、bool
总结一下es中的match、term、text、keyword、bool等关键字。比如我想搜索一辆“红色奥迪车”
2022-09-11 16:32:34 1509
原创 生产故障的分类与示例
查询某个字段有多少个不同的值,有如下几种方式:select count(distinct city_name) from cityselect distinct city_name from cityselect city_name from city group by city_name后两者只能列举出有哪些不同的值
2022-06-26 20:38:24 128
原创 越努力,越幸运—2021年终总结
今天是2021年12月30日,还有1天这一年就结束了。期待明晚罗胖的跨年演讲,也期待德云社的跨年专场。如果要用一句话来总结2021年的感悟,我能想到的最贴切的一句就是“越努力,越幸运”。这一年,经历了很多,性子也沉稳了很多。今年经历了哪些经历1、换工作今年算是彻底经历了一场互联网的动荡,眼睁睁看着公司从鼎盛期的4000多人,减员到几十人,接下来就是面临倒闭。自己也从刚开始的安全感分崩离析到慢慢让工作生活走向正轨,一点点重新建立内心秩序。今年不光是社区团购受影响,教培更是整个行业走向了死亡。经历了这场
2021-12-30 23:28:17 1324 4
原创 将数据导成excel(java)
if ((userAgent.contains("Android") && Integer.parseInt(var) > 511) ||(userAgent.contains("iPhone") && Integer.parseInt(var) > 436)) { //未开始url vo.setLink(LIVE_SUBSCRIBE + liveId); } else { vo.setLink(L.
2021-10-21 20:41:19 210
原创 获取当前是哪年第几周
if ((userAgent.contains(“Android”) && Integer.parseInt(var) > 511) || (userAgent.contains(“iPhone”) && Integer.parseInt(var) > 436)) {//未开始urlvo.setLink(LIVE_SUBSCRIBE + liveId);} else {vo.setLink(LIVE_SUBSCRIBEV2 + liveId);}..
2021-10-20 18:30:17 113
原创 判断两个uid是否相等,不能用==,为什么
为了防患cookie被盗用的情况还要在cookie中添加token、登录序列。这两个都是使用MD5进行加密的随机字符串, 作用就是在每次登录验证时, 同时验证token和登录序列还有ip地址, 因为在每次登录验证成功时都会刷新token, 如果cookie被盗用在正主使用旧cookie时出现登录序列相同, token不同而且ip地址多次变更的情况就要记录下此用户账户异常, 并且删除后台session里的登录记录,并提醒用户。...
2021-07-21 14:10:51 143
原创 数据库中存时间戳的2种方式
回表查询先定位主键值,再定位行记录,它的性能较扫一遍索引树更低怎么避免?要避免索引回表,就要保证查询的数据只包含主键和索引字段本身
2021-06-22 19:31:36 1418
原创 如果cpu占用过高,应该怎么定位问题
(1)先用 top 命令找出 CPU 占比最高的进程(2)ps -ef 或者 jps 进一步定位,得知是怎么样的一个后台程序(3)定位到具体的线程或代码ps -mp 11111 -o THREAD,tid,time(4)将需要的线程 ID 转化为 16 进制格式(5)打印出进程id为对应线程id对应的前60行jstat <进程ID> | grep <线程ID(16进制)> -A60...
2021-04-13 16:38:29 415 3
原创 电商概念大乱炖
做电商系统的怎么能不懂电商概念呢~那就系统总结一下吧。(1)电商的模式有5种。(2)电商行为主要分为5大模块,包括采购、商品展示、库存、订单、物流等。电商的模式电商的模式主要分为如下5种。其中,B是Business,企业的意思;C是Consumer,个体消费者的意思;M是Manufactory,工厂的意思。B2C:企业对消费者,比如京东 B2B:企业对企业,比如阿里巴巴C2C:消费者之间的交易,比如淘宝 C2M:消费者和工厂的交易,这个一般用于定制化生产消费 O2O:线上到线下的交易,比如
2021-01-14 22:26:20 457 1
原创 热爱可抵岁月漫长,温柔可挡艰难时光—2020年终总结
2020年12月19日,北京又出现了疫情,昨晚上线2点多才回家,今天午饭吃的麻辣香锅,依旧是平常的一天。那就写写年终总结吧,细数数这似流水的一年,也好为明年的成长堆砌些希望。工作说起工作,感觉是压力和成长共存的。俗话说,知道了终点在哪里,路上就会走的更坚定。(1)这一年的絮叨今年受疫情影响,前半年基本就是在家办公或者AB班,也经历了工位左边和右边的同事同时被“n+1”,给我的感触就是,打铁还需自身硬,只有自身开发经验多了,自身是个人才了,才不管经历到什么波折,结果都不会太差。如果说去年着重提升的技
2020-12-31 22:12:24 748 7
原创 怎么配置多数据源
多数据源是什么?数据源就是数据库表的上一级,它的作用是就像通过指定文件名称可以在文件系统中找到文件一样,通过提供正确的数据源名称,你可以找到相应的数据库连接。配置多数据源就是,已经有了一个数据源a-master,再配置一个同类:a-master1为什么要设置多数据源?随着业务的发展,可能需要分库分表,在分库分表中,肯定得需要多数据源。怎么操作?1、在配置文件application.properties中配置新数据源的链接2、找到项目中的DaoConfiguration,复制一份,在同
2020-11-09 18:25:15 3572
原创 会造成全表扫描的SQL语句及应对措施
全表扫描时,会造成CPU和内存的额外消耗,甚至会导致服务器崩溃。所以我们应避免。1、左模糊查询Like %XXX%如:select account from member where nickname like ‘%XXX%’或者 select account from member where nickname like ‘%XXX’建议使用select account from member where nickname like ‘XXX%’2、使用null做为判断条件如:select a
2020-08-22 18:30:06 819
原创 Redis和Caffeine的区别是什么?
相同点:两个都是缓存的方式不同点:redis是将数据存储到内存里caffeine是将数据存储在应用里caffeine和redis相比,没有了网络IO上的消耗联系:一般将两者结合起来,形成一二级缓存。使用流程大致如下:去一级缓存中查找数据(caffeine-应用内)如果没有的话,去二级缓存中查找数据(redis-内存)再没有,再去数据库中查找数据(数据库-磁盘)图来自于此文章:https://my.oschina.net/dengfuwei/blog/1616221...
2020-08-03 15:29:19 4853
原创 不看会后悔系列之idea的使用
虽然用idea已多达N年,但你对其所有的功能都了如指掌吗?了解如下小tips助你开发更通畅。调试专题(1)不用每次都重启debugdebug程序时,只修改了一点代码,怎么在不重启程序的前提下,看到修改后的效果呢?将启动栏处的Edit Configurations ——Configuration——由Do noting 改为 Update classes and resources注意,修...
2020-04-14 23:13:22 664
原创 查看项目日志的步骤(xshell、阿里云)
作为程序员,怎么能不会查看日志呢?现小编把查看日志的常用命令介绍如下。我们公司的测试环境a~f在自己的服务器上,用xshell或者Termius连接上即可;线上日志和预发布日志在阿里云上。xshell的使用(1)首先选择要访问哪个服务器(2)cd+路径,找到日志文件(3)tail -f all.log :查看最新的日志文件内容以上是基本步骤,以下是其余的常用命令:(1)如果以前输...
2020-04-14 19:35:10 5078 4
原创 “Unable to create the directory [XXX] to use as the base directory”的解决办法
接上回书,成功连接上vpn后,down代码,起代码……额,在起代码时又出现了问题。问题主要是这几句:Unable to start web server;nested exception is java.lang.IllegalStateException:Unable to create the directory [/Users/liming/Downloads/logs/tomca...
2020-04-13 16:54:43 12768 4
原创 锐捷V**:虚拟网卡加载失败,请尝试重新登录(mac)
最近换了个真香机,mbp16,嘻嘻。这下又可以继续努力工作了????。可出师不利呀,刚要连vpn时就出现了问题。原因苹果系统从10.11开始,新添加了一个叫作System Integrity Protection(SIP,系统完整性保护)的安全机制,这个安全机制要求以下目录仅供系统使用,其它用户或程序无法直接使用。/system/sbin/user (不包含/usr/local/)我的系...
2020-04-13 10:50:39 5003 1
原创 遇见更好的自己—2019年终总结
昨天去望京参加美团的技术沙龙,听着业界大佬的分享,由衷佩服。一个人,因为自己的力量,对世界有了一点点影响,是一件很酷的事情。顺便抽奖中了个周边,嘻嘻嘻。一年又一年,日子总是这样平淡且螺旋上升着。技术(1)总结和深化今年对java基础进行了系统回顾和总结。实践和理论相扣,才能对技术有更深的认识。今年看了不下20本技术相关的书。类型书名数据库:《MySQL技术内幕》《...
2020-01-16 17:12:03 3076 11
原创 想面中高级java工程师,要看哪些资料?(清单)
想着借跳槽的机会好好把java基础巩固一下,所以就列了个复习计划。本仙女是从4月底开始复习的,到8月底,使用了大约4个月的时间。白天工作+复习,晚上基本就是复习。从开始的列出计划要复习的点,到后来的资料选型,再到最后的面试总结,着实费了一番心思。现分享出来,供大家参考。使用的工具OneNote,哔哩哔哩、腾讯课堂等视频网站学习方式看书为主,把整本书看完,画思维导图。哪一块模糊再在网上找相...
2019-11-17 10:22:49 2427 6
原创 想面中高级java工程师,要准备哪些技术点?(详细)
说完了怎么写简历(想面中高级java工程师,要怎么写简历?),这篇重头戏就来啦,我们谈谈怎么准备面试,要准备哪些技术点。框架与中间件篇三大框架ssm(1)spring的ioc原理;创建bean的过程;有没有ioc在代码中是怎么看出来的(2)aop原理:动态代理,分为jdk和cglib,两者的区别是什么(3)springmvc的执行流程(4)mybatis中$和#的区别和适用场景(5)...
2019-11-17 10:22:19 2500 13
原创 想面中高级java工程师,要怎么写简历?(附图)
大家好~ 小仙女又回来啦~ 经过了3周7天的面试,终于收到了几个offer,从中挑选了个最中意的~ 下周一就要入职啦~现在把经验分享给大家~ 想跳槽的小哥哥小姐姐们可以参考一下~写简历要遵循的原则:整齐、简洁、多从阅读者的角度考虑。文档属性与命名写完简历生成pdf版的这个是最基本的,命名最好以如下格式:求职的岗位-姓名-工作年限简历内容我的简历中包括了如下内容:一级分类二...
2019-11-17 10:21:38 5468 14
《可伸缩服务架构框架与中间件》-dubbo的demo
2018-09-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人