2019 新的开始

## 记录生活长沙行 酒酣彻夜谈述往事历历在目 感触颇深…-2018 迷茫 放任2019-… 拒绝 提问 慎独 自律 新知 拒绝我们从小就被教育要待人以礼,当别人提出请求、邀请时,哪怕不情愿也不会立即回绝,权衡、犹豫、纠结了半天,最后还是答应了,且不说这个过程给对方造成不悦,而且还消磨了自己的时间,答应之后你得去做吧,继续消耗。别当「老好人」,这个词绝对会成为你取得进步的羁绊,我们总是在别人身上花很多时间,一边又抱怨自己效率低下,能怪谁?我们不想拒绝的原因无非是:1、怕损坏关系。2、怕失...

Read More

写给工程师的十条精进的原则

本文来自美团点评技术团队: 写给工程师的十条精进的原则 引言时间回到8年前,我人生中第一份实习的工作,是在某互联网公司的无线搜索部做一个C++工程师。当时的我可谓意气风发,想要大干一场,结果第一次上线就写了人生中第一个Casestudy。由于对部署环境的不了解,把SVN库里的配置文件错误地发到线上,并且上完线就去吃晚饭了,等吃饭回来发现师傅在焦头烂额地回滚配置。那次故障造成了一个核心服务20分钟不可用,影响了几百万的用户。这仅仅是一个开始,在后来半年的时间里,我几乎把所有职场新人可能犯...

Read More

如何在 Java 中避免 equals 方法的隐藏陷阱

译文原文: 如何在 Java 中避免 equals 方法的隐藏陷阱英文原文: How to Write an Equality Method in Java 摘要本文描述重载 equals 方法的技术,这种技术即使是具现类的子类增加了字段也能保证 equal 语义的正确性。 在《Effective Java》的第 8 项中,Josh Bloch 描述了当继承类作为面向对象语言中的等价关系的基础问题,要保证派生类的 equal 正确性语义所会面对的困难。Bloch 这样写到: 除非你忘...

Read More

理解 ==、equals 和 hashcode 的区别

==java 中的数据类型,可分为两类: 1、基本数据类型byte,short,char,int,long,float,double,boolean 他们之间的比较,应用双等号(==),比较的是他们的值。 2、引用类型(类、接口、数组)当他们用(==)进行比较的时候,比较的是他们在内存中的存放地址,所以,除非是同一个 new 出来的对象,他们的比较后的结果为 true,否则比较后结果为 false。 对象是放在堆中的,栈中存放的是对象的引用(地址)。由此可见 ‘==’ 是对栈中的值进行比...

Read More

理解 Integer 和 int 的区别

基础类型和封装类型的区别1、传递方式不同封装类是引用类型,基本类型(原始数据类型)在传递参数时都是按值传递,而封装类型是按引用传递的(其实“引用也是按值传递的”,传递的是对象的地址)。由于引用类型都是不可变量,因此没有提供改变它的值的方法,增加了对“按引用传递”的理解难度。int 是基本类型,直接存放数值;Integer 是类,产生对象时用一个引用指向这个对象。 2、封装类可以有方法和属性封装类可以有方法和属性,利用这些方法和属性来处理数据,如 Integer.parseInt(Strin...

Read More

理解 Java 的多态

多态的概念 多态的定义:指允许不同类的对象对同一函数调用做出响应,即同一函数调用可以根据发送对象的不同而采用多种不同的行为方式。 实现多态的技术:动态绑定(dynamic binding),是指在执行期间判断所引用对象的实际类型,根据其实际类型调用相对应的方法。 多态的作用:消除类型之间的耦合关系。 Java实现多态有三个必要条件:继承、重写、向上转型。 继承:在多态中必须存在有继承关系的子类和父类。 重写:子类对父类中某些方法进行重新定义,在调用这些方法时就会调用子类的方法。 向...

Read More

单例模式

在所有的设计模式中,单例模式是我们在项目开发中最为常见的设计模式之一,而单例模式有很多种实现方式,你是否都了解呢?高并发下如何保证单例模式的线程安全性呢?如何保证序列化后的单例对象在反序列化后仍然是单例的呢? 单例模式定义 定义:确保一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。 基本原理:将构造函数私有化,并且通过静态方法或枚举获取一个唯一的实例对象,在这个获取的过程中必须保证线程安全、防止反序列化导致重新生成实例对象等问题。 适用场景: 需要频繁地进行创建和...

Read More

工作中如何做好技术积累

本文来自美团点评技术团队: 工作中如何做好技术积累 引言古人云:“活到老,学到老。”互联网算是最辛苦的行业之一,“加班”对工程师来说已是“家常便饭”,同时互联网技术又日新月异,很多工程师都疲于应付,叫苦不堪。以至于长期以来流传一个很广的误解:35岁是程序员工作的终点。 如何在繁忙的工作中做好技术积累,构建个人核心竞争力,相信是很多工程师同行都在思考的问题。本文是我自己的一些总结,试图从三个方面来解答: 第一部分阐述了一些学习的原则。任何时候,遵循一些经过检验的原则,都是影响效率的重要...

Read More

Add Two Numbers II || LeetCode-445

Problem link: https://leetcode.com/problems/add-two-numbers-ii/#/description You are given two non-empty linked lists representing two non-negative integers. The most significant digit comes first and each of their nodes contain a single digit. ...

Read More

Four Sum || LeetCode-18

Problem link: https://leetcode.com/problems/4sum/#/description Given an array S of n integers, are there elements a, b, c, and d in S such that a + b + c + d = target? Find all unique quadruplets in the array which gives the sum of target. Note...

Read More

Three Sum Closest || LeetCode-16

Problem link: https://leetcode.com/problems/3sum-closest/#/description Given an array S of n integers, find three integers in S such that the sum is closest to a given number, target. Return the sum of the three integers. You may assume that eac...

Read More

Three Sum || LeetCode-15

Problem link: https://leetcode.com/problems/3sum/#/description Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? Find all unique triplets in the array which gives the sum of zero. Note: The solution set mu...

Read More

Add Two Numbers || LeetCode-2

Problem link: https://leetcode.com/problems/3sum-closest/#/description You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order and each of their nodes contain a single digit. Add th...

Read More

Two Sum || LeetCode-1

Problem link: https://leetcode.com/problems/3sum-closest/#/description Given an array of integers, return indices of the two numbers such that they add up to a specific target. You may assume that each input would have exactly one solution, and...

Read More

集中式 vs. 分布式系统架构

前言随着计算机系统规模变得越来越大,将所有业务单元集中部署在一个或者若干个大型机上的体系结构物,已经越来越不能满足当今计算机系统,尤其是大型互联网系统的快速发展,各种灵活多变的系统架构模型层出不穷。同时,随着微型计算机的出现,越来越多廉价的PC机成为了各大IT企业架构的首选,分布式的处理方式越来越受到业界的青睐。计算机系统正在经历一场前所未有的从集中式到分布式架构的变革。 从集中式到分布式 自从20世纪60年代大型主机被发明出来以后,凭借其超强的计算和I/O处理能力以及在稳定性和安全性方面...

Read More

BitTorrent协议与MagNet协议原理

BitTorrent协议简介BitTorrent(简称BT)是一个文件分发协议,每个下载者在下载的同时不断向其他下载者上传已下载的数据。而在FTP,HTTP协议中,每个下载者在下载自己所需文件的同时,各个下载者之间没有交互。当非常多的用户同时访问和下载服务器上的文件时,由于FTP服务器处理能力和带宽的限制,下载速度会急剧下降,有的用户可能访问不了服务器。BT协议与FTP协议不同,特点是下载的人越多,下载速度越快,原因在于每个下载者将已下载的数据提供给其他下载者下载,充分利用了用户的上载带宽...

Read More

Java 8系列之重新认识HashMap

本文来自美团点评技术团队: Java 8系列之重新认识HashMap 摘要HashMap是Java程序员使用频率最高的用于映射(键值对)处理的数据类型。随着JDK(Java Developmet Kit)版本的更新,JDK1.8对HashMap底层的实现进行了优化,例如引入红黑树的数据结构和扩容的优化等。本文结合JDK1.7和JDK1.8的区别,深入探讨HashMap的结构实现和功能原理。 简介Java为数据结构中的映射定义了一个接口java.util.Map,此接口主要有四个常用的实...

Read More


Powered by Hexo and Hexo-theme-hiker

Copyright © 2013 - 2019 kevinyangI All Rights Reserved.

UV : | PV :