• “我有三年工作经验!”,面试官:“那又如何?”
    愿意校招的公司,又往往看重学历,普普通通的学历,加上没有工作经验,感受到了社会竟是如此残酷!虽然我们都知道,不给工作机会哪来的工作经验,但是社会的生存法则,并不是我们所能改变。但是不要工作经验,不看学历的公司,技术氛围往往就三个字,“你懂的”。摸爬滚打两三年,终于如愿以偿获得了自己最渴望的“三年工作经验”。硬生生东拼西凑写好了简历,有了工作经验的你,并没有给你带来期望中的那些喜悦。因为工作经历和项目经验,并不比你刚毕业那会好到哪去。因为,你缺的其实不是工作经验,而是差异化。
  • 如何去写一手好SQL ?
    MySQL性能最大数据量抛开数据量和并发数,谈性能都是耍流氓。MySQL没有限制单表最大记录数,它取决于操作系统对文件大小的限制。性能由综合因素决定,抛开业务复杂度,影响程度依次是硬件配置、MySQL配置、数据表设计、索引优化。max_connections是指MySQL实例的最大连接数,上限值是16384,max_user_connections是指每个数据库用户的最大连接数。MySQL会为每个连接提供缓冲区,意味着消耗更多的内存。实施原则相比NoSQL数据库,MySQL是个娇气脆弱的家伙。避免空值MySQL中字段为NULL时依然占用空间,会使索引、索引统计更加复杂。索引优化分页查询很重要,如果查询数据量超过30%,MYSQL不会使用索引。
  • 推荐这几个华为、字节跳动、蚂蚁金服大佬的公众号
    今天强烈推荐一些互联网行业内优质技术公众号,互联网人大部分都关注了,在工作、生活节奏超快的今天,想要不断提升自我,利用碎片化阅读学习是你最佳选择,这些号在行业里深耕已久,会给你带来事半功倍的效果。专注各类系统架构、高可用、高性能、高并发,数据库、大数据、数据分析、Python技术、集群分布式、中间件技术、服务器后端技术,从基础、进阶、到实战项目等开源技术分享。Python 越来越受广大程序员的喜爱。「Python那些事」致力于做最好的Python公众号,只为爱Python的你!分享 Python 相关技术文章、开发工具资源、热门信息等。看完这个公众号还学不会Python,来打死我!
  • 为什么建议使用你LocalDateTime,而不是Date?
    点击上方“后端技术精选”,选择“置顶公众号”技术文章第一时间送达!当多个线程同时使用相同的SimpleDateFormat对象调用format方法时,多个线程会同时调用calendar.setTime方法,可能一个线程刚设置好time值另外的一个线程马上把设置的time值给修改了导致返回的格式化时间可能是错误的。在多并发情况下使用SimpleDateFormat需格外注意SimpleDateFormat除了format是线程不安全以外,parse方法也是线程不安全的。
  • 为什么 String hashCode 方法选择数字31作为乘子?
    实际上 hashCode 方法核心的计算逻辑只有三行,也就是代码中的 for 循环。我们可以由上面的 for 循环推导出一个计算公式,hashCode 方法注释中已经给出。从网上的资料来看,一般有如下两个原因:第一,31是一个不大不小的质数,是作为 hashCode 乘子的优选质数之一。如果用 int 类型表示哈希值,结果会溢出,最终导致数值信息丢失。上面用了比较简陋的数学手段证明了数字31是一个不大不小的质数,是作为 hashCode 乘子的优选质数之一。
  • 这么写参数校验(validator)就不会被劝退了~
    Pattern.matches){returnRspDTO.paramFail;}//抛出自定义异常等~写法if{thrownewBizException;}//比如写一个map返回if{Map<String,Object>result=newHashMap<>;result.put;result.put;returnresult;}//.........各种写法...userService.save;returnRspDTO.success();}这被大佬看见,一定说,都9102了还这么写,然后被劝退了…--hibernatevalidator--><dependency><groupId>org.hibernate</groupId><artifactId>hibernate-validator</artifactId><version>5.2.0.Final</version></dependency>3.注解说明@NotNull:不能为null,但可以为empty@NotEmpty:不能为null,而且长度必须大于0 @NotBlank:只能作用在String上,不能为null,而且调用trim()后,长度必须大于0 即:必须有实际字符此处只列出Hibernate Validator提供的大部分验证约束注解,请参考hibernate validator官方文档了解其他验证约束注解和进行自定义的验证约束注解定义。
  • SpringBoot 深度调优,让你的项目飞起来
    在SpringBoot项目中,调优主要通过配置文件和配置JVM的参数的方式进行。$java-jar-XX:MetaspaceSize=128m-XX:MaxMetaspaceSize=128m-Xms1024m-Xmx1024m-Xmn256m-Xss256k-XX:SurvivorRatio=8-XX:+UseConcMarkSweepGCnewframe-1.0.0.jar这个时候,你再看监控,你就会发现,已经是Ok的了。JVM默认在运行时根据需要动态地设置MaxMetaspaceSize的大小。推荐阅读1.SpringBoot内容聚合2.面试题内容聚合3.设计模式内容聚合4.Mybatis内容聚合5.多线程内容聚合
  • 一怒之下我取关了100个公众号,唯独置顶了这几个
    接下来给大家推荐一下这段时间一直在阅读的几个优秀公众号。占小狼的博客公众号内容包含Java技术干货进阶及实践,JVM GC算法分析、GC问题调优、服务性能优化,框架源码分析等,偶尔推送其它优质文章,关注公众号,获取一份面试宝典《Java核心知识点整理.pdf》,覆盖了JVM、锁、高并发、反射、Spring原理、微服务、Zookeeper、数据库、数据结构等。
  • 数据库缓存最终一致性的四种方案
    而缓存一致性的保证,更是在面试中被反复问到,这里进行一下总结,针对不同的要求,选择恰到好处的一致性方案。我们本次的讨论,主要针对数据库缓存场景,将以redis作为mysql的缓存为案例来进行。存在问题存储的数据随着时间可能会发生变化,而缓存中的数据就会不一致。通常考虑的,都是最终一致性。解决方案方案一通过key的过期时间,mysql更新时,redis不更新。
个人资料

精选后端技术栈,涵盖Linux、Java、Python、算法及各类数据库,提供优质的技术讲解文章,实操类型文章,推送形式多样,以解决实际开发问题为主!