• 极客专栏正式上线!欢迎访问 https://www.jikewenku.com/topic.html
  • 极客专栏正式上线!欢迎访问 https://www.jikewenku.com/topic.html

2019年02月10日的内容

文件IO操作的最佳实践

 01 /背景/可能是到目前为止史上最牛逼的MQ中间件kafka涉及到了很多文件操作,正因为其以近乎最佳方式操作文件IO,所以才会让它的性能快到令人发指,轻轻松松秒杀那些MQ中间件前辈。 02 /知识点梳理/本文主要关注的 Java 相关的文件操作,理解它们……

Java随机数探秘

1 前言一提到 Java 中的随机数,很多人就会想到 Random,当出现生成随机数这样需求时,大多数人都会选择使用 Random 来生成随机数。Random 类是线程安全的,但其内部使用 CAS 来保证线程安全性,在多线程并发的时候它的表现是存在优化空间的。在 JDK1.7 之后,Java 提供了更好的解决方案 ThreadLocalRando……

开发中我们需要遵循的几个设计原则!

一、开发原则S:单一职责SRPO:开放封闭原则OCPL:里氏替换原则LSPI:接口隔离法则D:依赖倒置原则DIP合成/聚合复用原则迪米特法则在软件开发中,前人对软件系统的设计和开发总结了一些原则和模式, 不管用什么语言做开发,都将对我们系统设计和开发提供指导意义。本文主要将总结这些常见的原则和具体阐述意义。面向对象的基本原则(s……

用认知和人性来做最棒的程序员

不久前,在团队内部和大家做了一次分享,内容就是这次要讲的“用认知和人性来提升自己的技术水平”,大家反响不错,所以这次整理一下也分享给大家。 最初我是想用“借优秀的产品经理思维来做最棒程序员”的这个标题,但想想还是要有同理心,技术同学平时和产品同学已经是相爱相杀了,就不刺激大家啦。但是必须要说的是优秀的产品经理思维和优秀的程序员思维确实是殊途同归的……

今日头条算法原理详解(全)

今天,算法分发已经是信息平台、搜索引擎、浏览器、社交软件等几乎所有软件的标配,但同时,算法也开始面临质疑、挑战和误解。今日头条的推荐算法,从 2012 年 9 月第一版开发运行至今,已经经过四次大的调整和修改。今日头条委托资深算法架构师曹欢欢博士,公开今日头条的算法原理,以期推动整个行业问诊算法、建言算法;通过让算法透明,来消除……

正确理解与使用 Future

一个多月没有写东西了,今天想写的也是想记录下来的一些学习及思考结果,记忆能力有限,避免时间长久就忘记了,今天想写的也还是一些基础的东西,为什么我总是关注这些平时码业务代码很少能用到的又比较基础东西呢,主要是因为我觉得可能光写简单的业务代码可能很少有机会会遇到难题,但是也有万一,万一遇到了怎么解决,万变不离其宗,基础知识的深度决定上层建筑的高度,因……

volatile关键字解析~高级java必问

昨天我介绍了原子性、可见性、有序性的概念,那么今天就来见识下这些概念的主角-volatile关键字。volatile基本介绍volatile可以看成是synchronized的一种轻量级的实现,但volatile并不能完全代替synchronized,volatile有synchronized可见性的特性,但没有synchroni……

Java 日志框架:slf4j 作用及其实现原理

简单回顾门面模式slf4j是门面模式的典型应用,因此在讲slf4j前,我们先简单回顾一下门面模式,门面模式,其核心为外部与一个子系统的通信必须通过一个统一的外观对象进行,使得子系统更易于使用。用一张图来表示门面模式的结构为:门面模式的核心为Facade即门面对象,门面对象核心为几个点:知道所有子角色的功能和责任将客……

搞定计算机网络面试,看这篇就够了(补充版)

文章目录结构: 一 OSI与TCP/IP各层的结构与功能,都有哪些协议运输层主要使用以下两种协议:UDP的主要特点:TCP的主要特点:域名系统(Domain Name System缩写DNS,Domain Name被译为域名)HTTP协议五层协议的体系结构1 应用层(application lay……

淘宝高可用高伸缩高性能框架之实现

一,应用无状态(淘宝session框架)俗话说,一个系 统的伸缩性的好坏取决于应用的状态如何管理。为什么这么说呢?咱们试想一下,假如我们在session中保存了大量与客户端的状态信 息的话,那么当保存状态信息的server宕机的时候,我们怎么办?通常来说,我们都是通过集群来解决这个问题,而通常 所说的集群,不仅有负载均衡,更重要的……

Spring Boot中使用JavaMailSender发送邮件

相信使用过Spring的众多开发者都知道Spring提供了非常好用的 JavaMailSender接口实现邮件发送。在Spring Boot的Starter模块中也为此提供了自动化配置。下面通过实例看看如何在Spring Boot中使用 JavaMailSender发送邮件。快速入门在Spring Boot的工程中的 pom.xml中引入 s……

Java提高篇——对象克隆(复制)

本文目录为什么要克隆?如何实现克隆浅克隆和深克隆解决多层克隆问题总结假如说你想复制一个简单变量。很简单:int apples = 5;  int pears = apples;不仅仅是int类型,其它七种原始数据类型(boolean,char,byte,short,float,doub……

Java字符串的十大问题

大约在几个月之前阅读完一本书籍,突然有了一个想法。想把关于字串符的一些问题写出来,目的是告诉大家需要关注的点。这就是想和大家分享的关于Java字符串的10个常见问题。一、如何比较字符串?使用”==”还是使用= ()?简单地说,“==”测试引用是否相等,而equals()测试值是否相等。除非你……

浅谈微服务基建的逻辑

这篇文章主要目的是面向初接触微服务的朋友简单介绍微服务基础建设所需要的各个模块以及缘由。起点首先,我们得有一个“服务”。根据定义,我们可以把每个服务实例都视作一个黑盒。这个盒子有着明确的输入点和输出点,并且(理想情况下)仅通过这些输入和输出点和外界产生关联。每个服务实例会拥有专属的网络地址、独立的计算资源,并且独立部署。客户端通过访问服务实例……

一张图看懂JVM之类装载系统

导读在之前的文章中,我们通过一张图的方式(图?)整体上了解了JVM的结构,并重点讲解了JVM的内存结构、内存回收算法及回收器方面的知识。收到了不少读者朋友们的反馈和指正,在这里作者向这些提出中肯建议的读者朋友们表示感谢,谢谢你们的支持。在今天的文章中将主要和大家一起探讨关于类装载子系统的内容。我们知道,Java源代码(.java文件)需要……

虚拟机性能监控和故障处理工具

1 概述给一个系统定位问题的时候,知识、经验是关键基础,数据是依据,工具是运用知识处理数据的手段。经常 使用适当的虚拟机监控和分析工具可以加速我们分析数据、定位解决问题的速度,但在学习工具前,也应当意识到工具永远都是知识技能的一层包装,并没有什么工具是“秘密武器”,不可能学会了就能包治百病。2 JDK命令行工具(JDK安装的bin目录下):……

分布式事务原理及解决方案

1 引言分布式事务是企业集成中的一个技术难点,也是每一个分布式系统架构中都会涉及到的一个东西,特别是在这几年越来越火的微服务架构中,几乎可以说是无法避免,本文就围绕单机事务,分布式事务以及分布式事务的处理方式来展开。2 事务事务提供一种“要么什么都不做,要么做全套(All or Nothing)”的机制,她有ACID四大特性原子性(A……

阿里P8架构师深度概述分布式架构

简介作为一名架构师,我们要专业,要能看懂代码,及时光着臂膀去机房,也能独挡一面!及时同事搞不定问题,或者撂挑子,你也能给老大一个坚定的眼神:不怕,有我在!还能在会议室上滔滔不绝,如若无人,让不懂技术的妹子看你时眼神迷离,就好想落霞与孤鹜齐飞!分布式架构是一个非常复杂的体系,任何技术都不是孤立的存在,任何技术都无法适应所有场景。作为一名分布式系统……

一线互联网智能推荐系统架构演进

零,题记在电商领域,推荐的价值在于挖掘用户潜在购买需求,缩短用户到商品的距离,提升用户的购物体验。京东推荐的演进史是绚丽多彩的。京东的推荐起步于2012年,当时的推荐产品甚至是基于规则匹配做的。整个推荐产品线组合就像一个个松散的原始部落一样,部落与部落之前没有任何工程、算法的交集。2013年,国内大数据时代到来,一方面如果做的事情与大数……

让面试官颤抖的Tomcat系统架构系列!

俗话说,站在巨人的肩膀上看世界,一般学习的时候也是先总览一下整体,然后逐个部分个个击破,最后形成思路,了解具体细节,Tomcat的结构很复杂,但是 Tomcat 非常的模块化,找到了 Tomcat最核心的模块,问题才可以游刃而解,了解了Tomcat的整体架构对以后深入了解Tomcat来说至关重要!一、Tomcat顶层架构先上一张Tom……

干货分享|Java异常经典14问,你都能答对吗?

1、什么是Java中的异常?异常是在程序执行期间可能发生的错误事件,并且会中断它的正常流程。异常可能来自不同类型的情况,例如用户输入的错误数据,硬件故障,网络连接故障等。每当执行java语句时发生任何错误,都会创建一个异常对象,然后JRE会尝试查找异常处理程序来处理异常。如果找到合适的异常处理程序,则将异常对象传递给处理程序代码以处理异常,……

微服务该如何进行服务治理?

1. Spring Cloud Netflix的优势对于微服务的治理而言,核心就是服务的注册和发现。所以选择哪个组件,很大程度上要看它对于服务注册与发现的解决方案。在这个领域,开源架构很多,最常见的是Zookeeper,但这并不是一个最佳选择。在分布式系统领域有个著名的CAP定理:C——数据一致性,A——服务可用性,P——服务对网……

高并发的核心技术-幂等的实现方案

一、背景 我们实际系统中有很多操作,是不管做多少次,都应该产生一样的效果或返回一样的结果。 例如: 1. 前端重复提交选中的数据,应该后台只产生对应这个数据的一个反应结果。 2. 我们发起一笔付款请求,应该只扣用户账户一次钱,当遇到网络重发或系统bug重发,也应该只扣一次钱; 3. 发送消息,也应该只发一次,同样的短信发给用户,用……

Java类加载的那些事

前言Java源代码被编译成class字节码,最终需要加载到虚拟机中才能运行。整个生命周期包括:加载、验证、准备、解析、初始化、使用和卸载7个阶段。 加载1、通过一个类的全限定名获取描述此类的二进制字节流; 2、将这个字节流所代表的静态存储结构保存为方法区的运行时数据结构; 3、在java堆中生成一个代表这个类的java.lang.C……

  • 精品技术教程
  • 编程资源分享
  • 问答交流社区
  • 极客文库知识库

客服QQ


QQ:2248886839


工作时间:09:00-23:00