暂无个人介绍
很多小伙伴问我:我在大学时候就学习了多线程,工作后,自己也看过不少有关多线程和并发编程的书籍和视频,为啥真正到工作的时候,我还是不知道在项目中哪里会用到并发编程。我知道有关于并发编程的各个知识点,但是没办法将这些知识点串起来,形成知识体系。冰河,你能不能推一篇文章,讲讲如何学习并发编程,如何将并发编程的各个知识点串成知识体系呢?今天,我们就一起来探讨下有关于并发编程的核心知识体系。
最近,很多小伙伴都想进入字节跳动这个快速发展的公司,而字节跳动对于算法的要求比较高。于是乎,有些小伙伴问我能否整理一些基础的算法题,帮助他们提升下基础算法能力。我:没问题啊!于是,经过半个多月的收集和整理,最终输出了这50道经典的Java算法题。
在 【冰河技术】 微信公众号中的【互联网工程】专题,更新了不少文章,有些读者反馈说,在公众号中刷 历史文章不太方便,有时会忘记自己看到哪一篇了,当打开一篇文章时,似乎之前已经看过了,但就是不知道具体该看哪一篇了。相信很多小伙伴都会有这样的问题。那怎么办呢?最好的解决方案就是我把这些文章整理成PDF电子书,免费分享给大家,这样,小伙伴们看起来就方便多了。希望这本电子书能够给大家带来实质性的帮助。
十一长假基本上过去了,很多小伙伴在假期当中还是保持着持续学习的心态,也有不少小伙伴在微信上问我,让我推送相关的文章。这个时候,我都是抽空来整理小伙伴们的问题,然后,按照顺序进行推文。 PS:这个假期我是哪里也没去,除了在家带娃,就是抽空写文了。有人说:假期没人看技术文?我不信!
转眼间,今天已经是假期的第4天了。今天要给大家分享点啥呢?想了半天,想起了之前去某宝面试的情景。记得面试前自己基于Maven开发过一些简单实用的插件,而且在自己的本地环境中一直在使用,极大的提高了我的开发和工作效率。恰好在面试时,某宝的面试官问了我一个问题:开发过Maven插件吗?我:开发过啊。面试官:那你给我讲讲你是如何开发的呢?我:吧啦吧啦吧啦。。。面试官:下周入职吧!我:好的。就这样,我拿到了Offer。
相信从事Java工作的小伙伴们多多少少都会接触到Maven。使用Maven来搭建项目,能够极大的方便我们构建项目的依赖关系,对于项目中需要依赖的Jar包,也只是简单的在pom.xml中进行配置即可。可以说,Maven能够极大的提高我们的开发效率和项目的维护效率,能够统一项目的依赖环境,提高团队的协作效率。然而,尽管使用Maven的小伙伴很多,但真正掌握了Maven核心配置的又有多少呢?
最近,有个小伙伴问我:我在SpringBoot项目中,使用@JsonFormat注解标注LocalDateTime类型的字段时,LocalDateTime反序列化失败,这个我该怎么处理呢?别急,我们一起来解决这个问题。
最近,有小伙伴出去面试,面试官问了这样的一个问题:如何查询和删除MySQL中重复的记录?相信对于这样一个问题,有不少小伙伴会一脸茫然。那么,我们如何来完美的回答这个问题呢?今天,我们就一起来探讨下这个经典的MySQL面试题。
在 【冰河技术】 微信公众号中的【分布式存储】专题,更新了不少文章,有些读者反馈说,在公众号中刷历史文章不太方便,有时会忘记自己看到哪一篇了,当打开一篇文章时,似乎之前已经看过了,但就是不知道具体该看哪一篇了。相信很多小伙伴都会有这样的问题。那怎么办呢?最好的解决方案就是我把这些文章整理成PDF电子书,免费分享给大家,这样,小伙伴们看起来就方便多了。希望这本电子书能够给大家带来实质性的帮助。
在《【FastDFS】小伙伴们说在CentOS 8服务器上搭建FastDFS环境总报错?》和《【FastDFS】面试官:如何实现文件的大规模分布式存储?(全程实战)》文章中,我们详细的搭建了FastDFS环境。那么,现在环境是有了,如何将FastDFS整合到项目中呢?今天,我们就一起来聊聊这个问题。 注:工程源码已提交到:https://github.com/sunshinelyz/mykit-fastdfs。
在《【FastDFS】小伙伴们说在CentOS 8服务器上搭建FastDFS环境总报错?》一文中,详细的介绍了如何在CentOS 8服务器搭建FastDFS环境。在生产环境中,往往需要对FastDFS实现高可用,进而实现文件的大规模分布式存储。那么,如何实现FastDFS的高可用呢?今天,我们就基于CentOS 8服务器来搭建FastDFS高可用集群环境。
在【冰河技术】微信公众号的【分布式存储】专题中,我们分别搭建了单节点FastDFS环境和高可用FastDFS集群环境。但是,之前的环境都是基于CentOS 6.8服务器进行搭建的。很多小伙伴反馈说:自己在CentOS 8服务器上,按照我写的文章搭建FastDFS环境时,会失败!看到小伙伴们的这些问题,我今天就给大家分享下如何在CentOS 8服务器上搭建FastDFS环境。
最近面试跳槽的小伙伴有点多,给我反馈的面试情况更是千差万别,不过很多小伙伴反馈说:面试中的大部分问题都能够在我的公众号【冰河技术】中找到答案,面试过程还是挺轻松的,最终也是轻松的拿到了Offer!听到这些,我也确实替小伙伴们高兴!今天,我们再分享一个面试场景:讲讲Redis的五大数据类型?如何使用?
今天,一名读者反馈说:自己出去面试,被面试官一顿虐啊!为什么呢?因为这名读者面试的是某大厂的研发工程师,偏技术型的。所以,在面试过程中,面试官比较偏向于问技术型的问题。不过,技术终归还是要服务于业务的,光会技术可不行,还要将技术应用于项目中才行。结果,最后问了一连串的项目实战问题,其中一个问题就是:如何在不重新复制整个库的情况下,添加新数据库到MySQL主从复制环境?结果。。。
从开始学习Java的时候,我们就接触了这样一种观点:Java中的对象是在堆上创建的,对象的引用是放在栈里的,那这个观点就真的是正确的吗?如果是正确的,那么,面试官为啥会问:“Java中的对象就一定是在堆上分配的吗?”这个问题呢?看来,我们从接触Java就被灌输的这个观点值得我们怀疑。
在【冰河技术】微信公众号的《【高并发】面试官:性能优化有哪些衡量指标?需要注意什么?》一文中,介绍了性能优化的衡量指标和期间需要注意的事项,属于理论篇的内容。这不,在文章下方就有小伙伴问我:监控怎么做?我理解了他的意思后,今天就安排上了。
在 【冰河技术】 微信公众号中的【Nginx】专题,更新了不少文章,有些读者反馈说,在公众号中刷 历史文章不太方便,有时会忘记自己看到哪一篇了,当打开一篇文章时,似乎之前已经看过了, 但就是不知道具体该看哪一篇了。相信很多小伙伴都会有这样的问题。那怎么办呢?最好的解决 方案就是我把这些文章整理成PDF电子书,免费分享给大家,这样,小伙伴们看起来就方便多 了。希望这本电子书能够给大家带来实质性的帮助。
最近,很多小伙伴都在说,我没做过性能优化的工作,在公司只是做些CRUD的工作,接触不到性能优化相关的工作。现在出去找工作面试的时候,面试官总是问些很刁钻的问题来为难我,很多我都不会啊!那怎么办呢?那我就专门写一些与高并发系统相关的面试容易问到的问题吧。今天,我们就来说说在高并发场景下做性能优化有哪些衡量标准,以及做优化时需要注意哪些问题。
在Java中提供了synchronized关键字来保证只有一个线程能够访问同步代码块。既然已经提供了synchronized关键字,那为何在Java的SDK包中,还会提供Lock接口呢?这是不是重复造轮子,多此一举呢?今天,我们就一起来探讨下这个问题。
最近发现很多小伙伴对于工作中的一些基本工具的使用还不是很了解,比如:Git这个分布式的代码管理仓库,很多小伙伴就不是很了解,或者说不是很熟悉。甚至有些小伙伴都没听说过Git,就只会用个SVN。殊不知,当今各大互联网巨头和新兴起的互联网黑马公司,基本都是用的Git,而基本废弃了对SVN的使用。为什么呢?我们一起往下看。
在前面的《【高并发】Redis如何助力高并发秒杀系统?看完这篇我彻底懂了!!》一文中,我们以高并发秒杀系统中扣减库存的场景为例,说明了Redis是如何助力秒杀系统的。那么,说到Redis,往往更多的场景是被用作系统的缓存,说到缓存,尤其是分布式缓存系统,在实际高并发场景下,稍有不慎,就会造成缓存穿透、缓存击穿和缓存雪崩的问题。那什么是缓存穿透?什么是缓存击穿,又什么是缓存雪崩呢?它们是如何造成的?又该如何解决呢?今天,我们就一起来探讨这些问题。
之前,我们在《【高并发】高并发秒杀系统架构解密,不是所有的秒杀都是秒杀!》一文中,详细讲解了高并发秒杀系统的架构设计,其中,我们介绍了可以使用Redis存储秒杀商品的库存数量。很多小伙伴看完后,觉得一头雾水,看完是看完了,那如何实现呢?今天,我们就一起来看看Redis是如何助力高并发秒杀系统的! 有关高并发秒杀系统的架构设计,小伙伴们可以关注 冰河技术 公众号,查看《【高并发】高并发秒杀系统架构解密,不是所有的秒杀都是秒杀!》一文。
在产品初期快速迭代的过程中,往往为了快速上线而占据市场,在后端开发的过程中往往不会过多的考虑分布式和微服务,往往会将后端服务做成一个单体应用,而数据库也是一样,最初会把所有的业务数据都放到一个数据库中,即所谓的单实例数据库。随着业务的迅速发展,将所有数据都放在一个数据库中已经不足以支撑业务发展的需要。此时,就会对系统进行分布式改造,而数据库业务进行分库分表的拆分。那么,问题来了,如何更好的访问和管理拆分后的数据库呢?业界已经有很多成熟的解决方案,其中,一个非常优秀的解决方案就是:Apache ShardingSphere。今天,我们就从源码级别来共同探讨下sharding-jdbc的核心源码。
之前,我们在【Spring】专题中更新了不少关于Spring注解相关的文章,有些小伙伴反馈说,看历史文章的话比较零散,经常会忘记自己看到哪一篇了。当打开一篇新文章时,总感觉自己似乎是看到过了,又感觉自己没有看到过。那怎么办呢?为了小伙伴们查看方便,我在这里将Spring注解的使用方式做个汇总,也算是对之前写的Spring文章的一个总结吧!
这次又被问到Nginx四层负载均衡的问题了,别慌,我们一起来细细分析这个看似简单的问题。 如果文章对你有点帮助,请关注 冰河技术 微信公众号,点赞、在看、留言和转发,大家的四连是我持续创作的最大动力。
相信大部分小伙伴在面试过程中,只会针对面试官提出的表面问题来进行回答。其实不然,面试官问的每一个问题都是经过深思熟虑的,面试的时间相对来说也是短暂的,面试官不可能在很短的时间内就对你非常了解,他想通过几个问题来考察你所掌握的知识的深度和广度,如果你只是回答面试官表面问你的问题,向挤牙膏一样,问一点,答一点,结果不用说,肯定是凉凉了。
今天高高兴兴的回到家,打开电脑,我靠,没网!咋回事?连手机热点也贼慢。要不蹭网?下载万能钥匙?果断不能用万能钥匙!因为使用了万能钥匙,自家的Wifi密码也会共享出去。那么,怎么办?这难不倒我,于是,我打开了我的Kali操作系统,瞄准了隔壁妹子的Wifi。
昨天二狗子让我给他讲@EnableAspectJAutoProxy注解,讲到AnnotationAwareAspectJAutoProxyCreator类的源码时,二狗子消化不了了。这不,今天又来让我给他讲讲AOP的核心类。那我们就开始吧!
最近,二狗子入职了新公司,新入职的那几天确实有点飘。不过慢慢的,他发现他身边的人各个身怀绝技啊,有Spring源码的贡献者,有Dubbo源码的贡献者,有MyBatis源码的贡献者,还有研究AI的大佬,个个都是大神级别的人物。二狗子有点慌,想起自己虽然入职了,但是比起其他人确实差点远啊。怎么办呢?先从基础补起呗,他发现自己对于Spring的理解还不算太深。于是乎,他让我给他讲讲Spring的@EnableAspectJAutoProxy注解。
金九银十的跳槽黄金期已拉开序幕,相信很多小伙伴也在摩拳擦掌,想换一个新的工作环境。然而,由于今年疫情的影响,很多企业对于招聘的要求是越来越严格。之前,很多不被问及的知识点,最近面试时都会被问到了。这不,有些面试官竟然让面试者现场搭建一个AOP测试环境。那怎么办呢?那就给他搭建一个呗!
最近出版了《海量数据处理与大数据技术实战》,详情可以关注 冰河技术 微信公众号,查看《我的《海量数据处理与大数据技术实战》出版啦!》一文。
在正式介绍Happens-Before原则之前,我们先来看一段代码。
马上就是金九银十的跳槽黄金期了,很多读者都开始出去面试了。这不,又一名读者出去面试被面试官问了一个MySQL的问题:向MySQL中插入数据,如何实现MySQL中没有当前id标识的数据时插入数据,有当前id标识的数据时更新数据。其实,这题目一点也不难!!
在实际的企业开发环境中,往往都会将环境分为:开发环境、测试环境和生产环境,而每个环境基本上都是互相隔离的,也就是说,开发环境、测试环境和生产环境是互不相通的。在以前的开发过程中,如果开发人员完成相应的功能模块并通过单元测试后,会通过手动修改配置文件的形式,将项目的配置修改成测试环境,发布到测试环境进行测试。测试通过后,再将配置修改为生产环境,发布到生产环境。这样手动修改配置的方式,一方面增加了开发和运维的工作量,而且总是手工修改各项配置文件很容易出问题。那么,有没有什么方式可以解决这些问题呢?答案是:有!通过@Profile注解就可以完全做到。
随着互联网的发展,很多公司和个人越来越重视网络的安全性,越来越多的公司采用HTTPS协议来代替了HTTP协议。为何说HTTPS协议比HTTP协议安全呢?小伙伴们自行百度吧!我就不说了。今天,我们就一起来聊聊如何使用自签CA配置Nginx的HTTPS加密反向代理。咳咳,小伙伴们快上车。
很多小伙伴私聊我说:最近他们公司的业务涉及到多个数据源的问题,问我Spring如何实现多数据源的问题。回答这个问题之前,首先需要弄懂什么是多数据源:多数据源就是在同一个项目中,会连接两个甚至多个数据存储,这里的数据存储可以是关系型数据库(比如:MySQL、SQL Server、Oracle),也可以非关系型数据库,比如:HBase、
估计二狗子这几天是大姨夫来了,心情很郁闷,情绪也很低落,工作的时候也有点心不在焉。让他发个版本,结果,一行命令下去把线上的数据库删了!你没听错:是删掉了线上的数据库!运营那边顿时炸了锅:怎么回事?系统不能访问了!什么情况啊?!很多客户都在投诉了!!
最近,很多小伙伴出去面试都被问到了Spring问题,关于Spring,细节点很多,面试官也非常喜欢问一些很细节的技术点。所以,在 Spring 专题中,我们尽量把Spring的每个技术细节说清楚,将透彻。
很早之前,就有不少小伙伴微信留言说:冰河,你能不能写一个Redis专栏啊,我最近在学习Redis,看书看不下去,学习视频又觉得视频太长了,还是看你的文章比较给力!哈哈,原来我写的文章能够让小伙伴们有这么强的动力学习啊!终于安排到写【Redis专题】了。今天是【Redis专题】的开篇,写些什么呢?先简单的介绍下Redis并教大家如何在单机环境中安装Redis吧,也算是对【Redis专题】的开篇吧!
最近,有关于Spring的面试中,Spring的循环依赖问题是必问的知识点,你回答的不好,就会被直接pass掉。即使你没被pass掉,你也会比那些知道如何解决Spring循环依赖问题的同事薪资低,这就是现实。所以,我们今天就一起来探讨下如何解决Spring循环依赖的问题
在 冰河技术 微信公众号前面的文章中,我们介绍了如何使用注解来自动装配Spring组件。之前将的都是在来的字段上添加注解,那有没有什么方法可以实现方法、构造器位置的自动装配吗?今天我们就一起来探讨下如何实现方法、构造器位置的自动装配。
我在 冰河技术 微信公众号中发表的《【Spring注解驱动开发】使用@Autowired@Qualifier@Primary三大注解自动装配组件,你会了吗?》一文中,介绍了如何使用@Autowired、@Qualifier和@Primary注解自动装配Spring组件。那除了这三个注解以外,还有没有其他的注解可以自动装配组件呢?那必须有啊!今天,我们就一起说说@Resource注解和@Inject注解。
Spring专题】停更一个多月,期间在更新其他专题的内容,不少小伙伴纷纷留言说:冰河,你【Spring专题】是不是停更了啊!其实并没有停更,只是中途有很多小伙伴留言说急需学习一些知识技能,以便于跳槽,哈哈,大家都懂得!所以,中途停更了一段时间,写了一些其他专题的文章。现在,继续更新【String专题】。
很多小伙伴都在问:冰河,你的Spring专题更新完了吗?怎么感觉像是写了一半啊?我:没有更新完呀,整个专题预计会有70多篇。那怎么更新了一半就去写别的了呢?那是因为有很多其他的小伙伴在后台留言说:急需学习一些其他的技术,所以,临时调整的。放心,Spring专题会持续更新的!这不,今天,我们就继续更新Spring专题。不出意外的话,会一直持续更新完!!
之前写过一篇在CentOS 7/8上安装Oracle的文章,按照我写的文章安装成功了,但是卸载Oracle时出现了问题。今天,我就整理一篇手动安装和卸载Oracle的文章吧。全文为实战型内容,全程干货。 如果文章对你有所帮助,请不要吝惜你的点赞、在看、留言和转发,你的支持是我持续创作的最大动力!
今天,一位哥们打电话来问我说误操作了他们公司数据库中的数据,如何恢复。他原本的想法是登录数据库update一个记录,结果忘了加where条件,于是悲剧发生了。今天,我们不讲如何恢复误操作的数据(后面专门讲如何恢复误删除的数据),我们讲讲如何从源头上避免这样的问题,这才是避免类似问题的根本措施。 如果文章对你有所帮助,请不要吝惜你的点赞、在看、留言和转发,你的支持是我持续创作的最大动力!
最近不少读者找我要大数据面试题,我整理了很久,筛选出这10道容易出错的大数据面试题,希望对大家有所帮助。题目与解答整理自互联网,感谢分享这些面经的技术大牛们!
在当今互联网行业,尤其是现在分布式、微服务开发环境下,为了提高搜索效率,以及搜索的精准度,会大量使用Redis、Memcached等NoSQL数据库,也会使用大量的Solr、Elasticsearch等全文检索服务。那么,这个时候,就会有一个问题需要我们来思考和解决:那就是数据同步的问题!如何将实时变化的数据库中的数据同步到Redis/Memcached或者Solr/Elasticsearch中呢?
小伙伴们按照我写的文章顺利安装好Oracle数据库后,又在微信上问我:我想查看Oracle数据库中所有表和字段以及表注释和字段的注释,我该怎么操作呢?看着小伙伴们这么高的学习热情,这些问题我都安排上了!这不,解决方案来了!
最近在研究如何实现Oracle数据库之间的数据同步,网上的资料确实比较少。最好用的Oracle数据库同步工具是:GoldenGate ,而GoldenGate是要收费的。那么还有什么好的办法来同步Oracle的数据吗?没错,就是使用LogMiner来实现Oracle数据同步迁移。