- 博客(89)
- 资源 (7)
- 收藏
- 关注
原创 多个java性能优化细节
在JAVA程序中,性能问题的大部分原因并不在于JAVA语言,而是程序本身。养成良好的编码习惯非常重要,能够显著地提升程序性能。 1. 尽量在合适的场合使用单例 使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以下三个方面: 第一,控制资源的使用,通过线程同步来控制资源的并发访问; 第二,控制实例的产生...
2019-02-01 09:56:09
61019
原创 2019年1月寒冬互联网一线的面经
面试的岗位主要是后端,历经三周,面了北京大大小小的几家公司,最后收获了满意的offer。 自己也成长收获了不少, 谨以笔记,自己可以日后回忆,也希望能帮助到最近寒冬下需要找工作的同学,在文章的后面会附上一点小心得和建议。一直做java后端。 自己定位大概能到p6+的水平。有大厂经验,所以面试机会总体来说还是挺多的。3.过程大概是从元旦过后开始写简历,投简历,从7号开始陆陆续续...
2019-01-28 21:14:37
69678
原创 MySQL锁详解
一、概述数据库锁定机制简单来说,就是数据库为了保证数据的一致性,而使各种共享资源在被并发访问变得有序所设计的一种规则。对于任何一种数据库来说都需要有相应的锁定机制,所以MySQL自然也不能例外。MySQL数据库由于其自身架构的特点,存在多种数据存储引擎,每种存储引擎所针对的应用场景特点都不太一样,为了满足各自特定应用场景的需求,每种存储引擎的锁定机制都是为各自所面对的特定场景而优化设计,所以各...
2019-01-17 10:09:27
75396
原创 阿里巴巴开源分布式事务解决方案 FESCAR
开源了,刚刚开源的,好激动,2019年1月11日刚刚开源的Fescar 是 阿里巴巴 开源的 分布式事务中间件,以 高效 并且对业务 0 侵入 的方式,解决 微服务 场景下面临的分布式事务问题。1. 什么是微服务化带来的分布式事务问题?首先,设想一个传统的单体应用(Monolithic App),通过 3 个 Module,在同一个数据源上更新数据来完成一项业务。很自然的,整个业务...
2019-01-12 23:11:08
83500
原创 如何判断一个元素在亿级数据中是否存在?
现在有一个非常庞大的数据,假设全是 int 类型。现在我给你一个数,你需要告诉我它是否存在其中(尽量高效)。需求其实很清晰,只是要判断一个数据是否存在即可。但这里有一个比较重要的前提:非常庞大的数据。 常规实现 先不考虑这个条件,我们脑海中出现的第一种方案是什么?我想大多数想到的都是用 HashMap 来存放数据,因为它的写入查询的效率都比较高。 写入和判断元素是否存在...
2018-12-15 22:07:25
82004
原创 Spring Cloud Netflix Zuul中的速率限制
1.引言Spring Cloud Netflix Zuul 是一个包含Netflix Zuul的开源网关。它为Spring Boot应用增加了一些特别的特性。不幸的是,开箱即用不提供速率限制。在这篇教程中,我们将探索增加了速率限制请求的Spring Cloud Zuul RateLimit。2.Maven配置除了Spring Cloud Netflix Zuul的依赖,我们需要增加...
2018-12-15 21:50:11
90066
原创 总结几种单例模式
/** * 懒汉模式 * 单例实例在第一次使用时进行创建 *///线程不安全的public class SingletonExample1 { // 私有构造函数 private SingletonExample1() { } // 单例对象 private static SingletonExample1 instance = null;...
2018-12-11 22:12:25
72624
原创 尝试使用 redis 实现分布式幂等服务中间件
背景在编程领域,幂等性是指对同一个系统,使用同样的条件,一次请求和重复的多次请求对系统资源的影响是一致的。在分布式系统里,client 调用 server 提供的服务,由于网络环境的复杂性,调用可能有以下几种情况:server 收到 client 的请求,client 也收到 server 的响应结果 client 发出了请求,但 server 未收到,可能是 server 重启、...
2018-12-01 21:01:27
82793
原创 【面试】从一道简单的“SpringBoot配置文件”相关面试题,我就能知道你的水平
面试要套路,也要技巧。别被背题目的兄弟们给忽悠了。【你来发挥】你比较喜欢什么技术,哪一种最熟?一般自信的面试官都喜欢问这个问题,这次面试的小伙比较年轻,咱也装回B,不然都对不起自己。答: 我比较喜欢Spring,比较有趣。目的: 希望应聘者能够有广度且有深度。如果最感兴趣的是Spring本身,而不是其上的解决方案,那顶多会承担被分解后的编码工作。巧了,咱也熟。【工作经...
2018-12-01 20:56:15
87638
1
原创 老鸟程序员才知道的40个小技巧
40条真言,希望对进阶中的程序朋友有所帮助。 1、重构是程序员的主力技能。 2、工作日志能提升脑容量。 3、先用profiler调查,才有脸谈优化。 4、注释贵精不贵多。杜绝大姨妈般的“例注”。漫山遍野的碎碎念注释,实际就是背景噪音。 5、普通程序员+google=超级程序员。 6、单元测试总是合算的。 7、不要先写框架再写实现。最好反过来,...
2018-12-01 20:53:48
38367
原创 springcloud spring-boot-starter-actuator与datasource引起的循环依赖问题
在部署springcloud微服务的时候,使用了SR2版本,出现spring默认数据源Hikari注入的循环依赖问题最后是如何解决的呢?在当前微服务中添加spring: cloud: refresh: refreshable: none即可 ...
2018-11-28 16:02:51
36626
1
原创 java面试IOC
广义的 IOCIoC(Inversion of Control) 控制反转,即“不用打电话过来,我们会打给你”。两种实现: 依赖查找(DL)和依赖注入(DI)。IOC 和 DI 、DL 的关系(这个 DL,Avalon 和 EJB 就是使用的这种方式实现的 IoC):DL 已经被抛弃,因为他需要用户自己去是使用 API 进行查找资源和组装对象。即有侵入性。 DI 是 Sp...
2018-10-25 11:08:42
35072
原创 简单学习理解Java 热部署
在 Java 开发领域,热部署一直是一个难以解决的问题,目前的 Java 虚拟机只能实现方法体的修改热部署,对于整个类的结构修改,仍然需要重启虚拟机,对类重新加载才能完成更新操作。对于某些大型的应用来说,每次的重启都需要花费大量的时间成本。虽然 osgi 架构的出现,让模块重启成为可能,但是如果模块之间有调用关系的话,这样的操作依然会让应用出现短暂的功能性休克。本文将探索如何在不破坏 Java 虚...
2018-10-25 11:02:12
251452
原创 【spring】[Xlint:invalidAbsoluteTypeName]error 解决
错误:启动spring容器时报类似 [Xlint:invalidAbsoluteTypeName]的错误 问题分析:spring aop进行事务控制时配置切点表达式错误上面的切点表达式没有匹配方法,所有报错了 问题解决:是不是非常简单,编码要小心啊...
2018-10-25 10:46:29
34085
2
原创 Redis client链接池配置不当引起的频繁full gc
负责的一个RPC服务就是简单的从Redis Cluster中读取数据,然后返回给上游。理论上该服务的对象大部分都应该是朝生夕死的,但是笔者查看gc log 的时候发现 age >=2 的对象还真有不少,甚至和age=1的对象差不多。也就是说对象从eden晋升到Survivor,之后的每次young gc 这些对象都是在Survivor区域中移动,直到晋升到old 区域中。GC log 如下:...
2018-10-18 22:26:07
49970
1
原创 工作中一次改zookeeper源码的记录
zk中zxid有64位,分成两部分: 高32位是Leader的epoch:选举时钟,每次选出新的Leader,epoch累加1 低32位是在这轮epoch内的事务id:对于用户的每一次更新操作集群都会累加1。这么设计会存在什么问题?Zookeeper 的事务 ID 有可能会超过 32 位。epoch增长非常慢,超过32位需要非常久的时间,几乎可以忽略这个问题,但是事务 ID 似乎不...
2018-10-16 22:08:10
280552
1
原创 java中的日志使用--slf4j,log4j,logback
java开发过程中为了找问题方便或是统计信息方便,总免不了要打各种日志。之前的各个项目都是配置好的,maven配置的时候,会看到各种类型的Log包:slf4j、log4j、commons-log、logback等等,看着就烦,今天仔细了解了一下,有点收获,记录一下起因使用JAVA的kafka api写main方法进行开发测试,发现总报错 1 2 3 ...
2018-10-15 09:58:23
212916
原创 解决win10系统下安装msi文件无法获得更高权限的问题
升级win10各种版本,有一个非常坑的问题,就是win10的安全策略更严密这对于从win7过来的用户就有一个很棘手的问题,就是在安装msi文件的使用鼠标右键没有按管理员运行的选项网上给了很多教程,修改组策略等,见效不大还是直接修改注册表吧,这个是最直接的本教程完成后,暗转msi文件鼠标右键也有以管理员身份运行选项,就可以提升安装权限了1.win+r regedit 打开注册列表...
2018-09-26 16:44:12
81822
7
原创 springcloud知识速记与上手
一、前言首先你得知道什么是springboot,最好有自己的理解可以参考这个文章:https://www.cnblogs.com/badofboy/p/9575870.htmlspringcloud知识速记与上手 二、集群/分布式/微服务/SOA是什么?看到这些词(集群/分布式/微服务/SOA)的时候,感觉就是遥不可及的(高大尚的技术!!)。就好像刚学Java面向对...
2018-09-02 23:05:12
24478
原创 springboot2.0参考手册
https://blog.tengshe789.tech/2018/08/04/springboot/?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io这是一篇优雅的使用
2018-08-14 22:17:26
24309
原创 20180812
原则上希望es成为一个比较厉害的nosql存储方案虽然,从以前的经验来看,一个软件只有在一个方向上深入才会更加的坚守自己。但是,不用不知道,用一下太爽了啊。坚守自己吧。粒姐虽然被封了,但是,歌曲真的不错。颜值虽然略低哈。Register a another account without ads. It is cool.不过想过来,好像互联网行业,没有ads根本撑不住现金流。...
2018-08-12 22:26:42
204031
原创 吐槽一下(记一次调试bug的经历)
前两天讲解dubbo与rpc,中间出现了一个由于dubbo与spring注解冲突的一个问题。人啊,还是得下功夫自己好好学习一下才行的。技术上,大家需要踏踏实实的,一步一个脚印的往前走。越来越觉得博客写的好就一定行吗?自己总结一下,就知道写的都是烂大街的东西,没有自己的见解与实践,哎。悲哀。还是需要默默的努力才行。...
2018-08-05 17:25:18
15113
原创 电商项目中SPU与SKU的设计
1. 先说明几个概念. 电商网站采用在商品模块,常采用spu+sku的数据结构算法,这种算法可以将商品的属性和商品的基本信息分离,分开维护,这样我们就可以在不同的类目下自定义商品信息和分类的属性信息,我们的业务系统就可以存储不同门类的商品信息了 •SPU = Standard Product Unit(标准化产品单元)SPU是商品信息聚合的最小单位,是一组可复用标准化信息的集合•SKU=stock...
2018-07-02 16:43:12
31679
原创 Maven新建项目出现 Could not calculate build plan:plugin 错误解决办法
删除本地配置仓库中 org.apache.maven.plugins:maven-resources-plugin所在目录。然后右击项目 Maven->Update Project->勾选 Force Update of Snapshots/Releases
2018-05-23 20:58:30
2486
原创 如何准备Java初级和高级的技术面试
本人最近几年一直在做java后端方面的技术面试官,而在最近两周,又密集了面试了一些java初级和高级开发的候选人,在面试过程中,我自认为比较慎重,遇到问题回答不好的候选人,我总会再三从不同方面提问,只有当反复确认能力不行才会下结论。相反,如果候选人给我的印象不错,我也会从多个角度来衡量,以免招进会说但不会干活的“大忽悠”。其实倒也不是我故意要为难候选人,毕竟入职后就是同事,但面试官的职责使然,而且...
2018-05-20 19:51:53
318
原创 Eclipse mars版本之后的js代码无法自动提示问题的解决
Eclipsemars2之后的版本js代码没有办法进行提示http://www.eclipse.org/pdt/help/html/code_assist_concept.htm具体网址请参考这里。即使使用了此功能也还是解决不了。先解决问题,再分析建议使用AngularJS Eclipse插件进行问题解决1.安装对应插件help-->eclipseMarketplace2.搜索安装插件3.安...
2018-05-20 13:32:55
1641
转载 Java注解(Annotation)基本概念、自定义注解、注解解析器
深入理解Java:注解(Annotation)基本概念什么是注解(Annotation): Annotation(注解)就是Java提供了一种元程序中的元素关联任何信息和着任何元数据(metadata)的途径和方法。Annotion(注解)是一个接口,程序可以通过反射来获取指定程序元素的Annotion对象,然后通过Annotion对象来获取注解里面的元数据。 Annotation(注解)是J...
2018-05-17 16:03:03
3206
1
原创 10大最高效的Java库盘点
代码库是开源生态系统的重要组成部分,一个开源库背后通常拥有一个优秀的开源社区,毕竟没有社区的努力和支持,这个开源库很难生存下去。有了开源库,我们不需要每次编码都重复造轮子,这样你可以节省很多时间去做其他事情,比如陪伴家人和朋友。所以,在数十万的库中寻找一个最好的,最受欢迎的,而且用起来最简单高效的就显得尤为重要下面,我将推荐给你们10个最高效的Java库,并且他们都是开源的1. Java 标准库不...
2018-05-09 19:54:39
3918
原创 Navicat建模的选项 无、唯一、多个、一或多个、零或一个、零或多个,什么是外键的基数?
首先填写一张图,希望对你有帮助 看到图片上那些和是不是蒙圈了呢?本人刚开始的时候也是很懵圈的(原因是在我司开发人员也不是很很注意,明早开早会看来我的=得强调一下这个问题啊)废话不多说,我们着重分析user与dingdan表,两者是典型的一对多关系,那么dingdan是多方,user是一方。所以,你看懂了吗?dingdan是三个叉叉叉,user是一个叉....
2018-05-01 22:32:00
58954
原创 Nginx一次奇怪的502 报错
1一次奇怪的线上问题之前遇到nginx报出了如下的error,upstream sent too big header while reading response from upstream,导致服务502 bad gateway, 但是奇怪的是某些特定的请求稳定复现,但是其他请求却一直没有问题,正常返回。一时之间,还真不知道什么原因,唯一的异常是观察到warninig日志较多,我们知道正常情况...
2018-05-01 19:27:40
3604
原创 划重点-使用ElasticSearch的44条建议
使用的Es版本也从1.x升级到了5.x,扮演的角色也逐渐从Es的使用方变为维护方,这里大致汇总了使用Es过程中踩的一些坑以及一些注意事项,也会穿插一下我们的解法。 01—es中建索引是指创建一个保存数据的目录,用于保存倒排索引,索引创建之后是不可变的(Immutable),只允许新增字段。因为lucene中field是带类型的,不同类型的字段进入倒排索引后会经过压缩,long/int/short占...
2018-04-30 13:08:32
1380
原创 ”穷人“的分布式网络_理解分布式网络
前言: 穷人指没钱或者不愿花太多钱(我既属于前者也属于后者TT),分布式网络主要指主机网络环境分布在不同的地理环境比如不同省或者不同国家(谁还没有一个比较便宜的国外vps不是\~\~)既然没有办法改变世界就改变自己吧.需求将国内不同地区的云主机以及国外vps网络层打通,要求尽可能少的延迟以及高吞吐.注意:我是指尽可能的改善当前的网络环境,你当然可以说出一堆的极端环境,不过那真不是我想要解决的.方案...
2018-04-30 13:01:29
2015
原创 springMVC@Service注解引发的空指针问题
遇到了一个由@Service注解引发的空指针问题时,才真正意识到乱用注解的危害,同时也有了下文的深入探讨!事件起因接到业务方需求需要封装上游的一个HTTP接口来提供系统内的服务支持,我封装这个接口并通过本地单元测试后就部署到测试环境中开始测试了。没想到一测试就报NullPointerException异常,异常栈信息如下:ERROR [qtp384587033-86] 2015-12-21 16:...
2018-04-28 21:26:07
3465
翻译 面试了8家公司,他们问了我这些机器学习题目......
【导读】今年年初以来,作者一直在印度找数据科学、机器学习以及深度学习领域的工作。在找工作的这三十四天里,他面试了8到10家公司,其中也包括初创公司、基于服务的公司以及基于产品的公司。作者希望他的面试经验能够为求职者提供一些有用的信息,因而撰写了此文。希望你读后能够有所收获!首先自我介绍一下:我在机器学习(语音分析、文本分析和图像分析领域应用)领域有4年以上的从业经验。总的来说,我认为这个领域的大多...
2018-04-25 11:53:20
334
原创 京东首席架构师:618大促网关承载十亿调用量背后的架构实践
618大促,我们的网关承载了几十亿的流量和调用,在这种情况下,网关系统必须保证整个系统的稳定性和高可用,保证高性能和可靠,以支撑业务。我们面临的是一个非常复杂的问题,基于这种复杂问题,怎样做到很好地提高它的性能和稳定性、复杂技术之间怎么整合保证整体网关的高可用,是本文的重点。一、网关涵盖技术1.1 网关系统网关系统主要有两种:第一种叫客户端网关主要用来接收一些客户端的请求,也就是APP的服务端;第...
2018-04-25 08:55:09
773
原创 小白入门-如何简单的自定义实现枚举类型
首先,明确一点,枚举是为了解决某个类只有有限个对象的问题而设计的接下来:贴代码,一看你就懂了/**枚举类型解决的是一个类的对象是有限个的 */public class Season { //属性不改变 private final String name; private final String desc; //私有化构造 private Season(String name,String des...
2018-04-24 12:33:53
1103
原创 小白回答-es怎么物理删除给定期限的历史数据?
01 题记想到删除,基础认知是delete,细分为删除文档(document)和删除索引;要删除历史数据,基础认知是:删除了给定条件的数据,用delete_by_query。实际操作发现:删除文档后,磁盘空间并没有立即减少,反而增加了?除了定时任务+delete_by_query,有没有更好的方式呢?02 常见的删除操作2.1 删除单个文档1DELETE /twitter/_doc/12.2 删除...
2018-04-24 11:09:58
3054
原创 深度学习笔记目录大全(吴恩达)--终于有翻译版本了
第一门课 神经网络和深度学习(Neural Networks and Deep Learning)第一周:深度学习引言(Introduction to Deep Learning)1.1 欢迎(Welcome) 11.2 什么是神经网络?(What is a Neural Network)1.3 神经网络的监督学习(Supervised Learning with Neural Networks)...
2018-04-24 11:07:16
227846
5
原创 面试刁难大全之Redis
Redis在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在Redis的使用和原理方面对小伙伴们进行各种刁难。作为一名在互联网技术行业打击过成百上千名【请允许我夸张一下】的资深技术面试官,看过了无数落寞的身影失望的离开,略感愧疚,故献上此文,希望各位读者以后面试势如破竹,永无失败!Redis有哪些数据结构?字符串String、字典Hash、列表List、集合Set、有序集合Sorte...
2018-04-24 08:35:52
28510
1
原创 Linux 中每个 TCP 连接最少占用多少内存?
关于“Linux 中每个 TCP 连接占用多少内存”这一问题,中文网络上流传一种说法:TCP 连接建立的时候会分配接收缓冲区和发送缓冲区,各 4KB,一共是 8KB。如果加上 TCP 协议控制块(protocol control block)的 2KB,一共是 10KB,并且用 tcp_rmem 和 tcp_wmem 的值来佐证这个观点。这种说法是错误的。$ sysctl -A |grep tcp...
2018-04-23 11:57:51
45744
4
dartsdk-windows-x64-2.9.0-release.zip
2020-09-07
dartsdk-windows-ia32-release.zip
2020-09-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅