- 博客(23)
- 资源 (3)
- 收藏
- 关注
原创 5年经验程序员的尴尬处境
你想要的我给不了程序员这个职业和其他职业最大的区别可能就是,“5年的经验并没给我带来多少安全感”。事实上我确实就做了5年的业务开发,其他诸如架构设计、系统非功能性需求关注不多。然后就出去找工作了。面试官:我看你有5年经验,跟我聊聊你们的系统架构吧?我:架构这块我涉及不多,是架构师在负责。面试官:(预期就已经下来了),说说你都研究过哪些框架?我:巴拉巴拉说一堆,具体源码可能没研究过?面试官:性能调优有做过吗?我:。。。。。面试官:说下你的期望薪水?我:已经虚了,20-25k? (可能判断标准
2020-05-18 15:50:08 1692 5
原创 Zookeeper入门一篇就够了
谈点分布式什么是分布式呢?起初,我们的应用流量比较小,所有东西全部部署在一个服务器,比如全部丢给一个tomcat来处理,顶多做一个tomcat的多节点部署多分,再挂一台Nginx做一下负载均衡就OK了。但是随着业务功能复杂度上升,访问流程的上升,单体架构就不行了。这个时候就该分布式上场了,将业务模块做一定拆分,各业务组件分布在网络上不同的计算机节点上,同时为了保证高可用性和性能,单个组件模块也会做集群部署。分布式虽然爽了,但是随之而来的就是分布式带来的复杂性,比如在分布式系统中网络故障问题几乎是必然存
2020-05-15 22:55:55 475
原创 面试必备:详解Java I/O流,掌握这些就可以说精通了?
目录Java IO概述要理解总体设计File其实是个工具类InputStream和OutputStream使用装饰器包装有用的流Reader和WriterSystem类中的I/O流I/O流的典型使用方式压缩(ZIP文档)对象序列化几个实用IO工具类Java IO概述IO就是输入/输出。Java IO类库基于抽象基础类InputStream和OutputStream构建了一套I/O体系,主要解决...
2020-04-05 00:02:45 2583 1
原创 【详解设计模式】-装饰者模式,换个马甲我也认识你!
什么是装饰者模式装饰者模式是GOF23中设计模式之一,属于结构型模式。通过这种设计模式,能够动态地给一个对象添加额外的能力,同时又不改变原有对象的结构。动态地给一个类添加额外的功能,我们想到了Java中的继承机制,通过扩展父类的方式,可以让子类拥有一些额外的功能。使用装饰者模式,同样能达到这种效果,而且不用继承,使用起来更加灵活便利。装饰者模式代码实现我们创建一个手机接口IPhone和实...
2020-03-31 22:57:02 783 1
原创 还在if-else行走天下?试试【策略模式】吧
什么是策略模式首先策略模式属于GOF23中设计模式中的一种,是一种行为型的设计模式。“行为”主要是指不同的方法或者算法。其实就是我们定义和封装一些策略(或者说是算法),这些策略是可以相互替换的。然后客户端类通过使用这些不同的策略就可以表现出不同的行为。相信大家一定见到过if-else 满天飞的代码,其实可以考虑使用策略模型进行优化。策略模式代码示例这里我们以上班需要选择不同的交通工具为例...
2020-03-31 00:57:44 762 4
原创 Java并发编程一万字总结(吐血整理)-续篇
说明本篇是继上一篇并发编程未讨论完的内容的续篇。上一篇传送门:Java并发编程一万字总结(吐血整理)活跃性问题在上一篇我们讨论并发编程带来的风险的时候,说到其中 一个风险就是活跃性问题。活跃性问题其实就是我们的程序在某些场景或条件下执行不下去了。在这个话题下我们会去了解什么是死锁、活锁以及饥饿,该如何避免这些情况的发生。死锁我们一般使用加锁来保证线程安全,但是过度地使用加锁,可能导致死...
2020-03-26 00:27:40 2246 4
原创 我要打十个!详解建造者模式(builder pattern)
前言“我要打十个”,其实是我要打十个野怪!这十个野怪呢,它们有不同的技能、装备和武器,长得也不一样。这里野怪是一个蛮复杂的对象,由各个不同的部分组成(技能、装备、武器等),不同的野怪的它们各部分之间的构成方式就不同。因此,要创建这种复杂对象,就需要使用建造者模式。什么是建造者模式首先建造者模式Gof 23种设计模式之一。也叫Builder模式。是将一个复杂对象的构建和其表示相分离,使得同...
2020-03-17 00:29:31 309
原创 设计模式之委派模式,大名鼎鼎的Spring都在用
什么是委派模式虽然说委派模式不属于Gof23中设计模式,但这并不影响它成为一种经典的设计模式。“委派”字面意思就是指派一件事情给某人。类比到生活中的场景,比如项目leader指派开发任务给下面的猿猿们。这听起来有点像静态代理,不过还是不一样的,你品,你细品!代理强调的是过程,主要是要在代理过程中加入一些动作的,而委派主要是分配和分发。代码实现我们先新建一个业务处理接口BusinessSer...
2020-03-15 11:24:20 632
原创 Java并发编程一万字总结(吐血整理)
并发简介什么是并发使用并发编程的优势并发编程带来的风险创建线程的几种方法实现Runnable接口实现Callable接口继承Thread类线程安全性问题竞态条件原子性操作加锁机制可见性(Volatile变量)基础线程机制线程的生命周期(6种状态)sleep和wait,join,yield线程的优先级如何获取异常线程组对象的共享可见性问题(Volatile变量...
2020-03-13 00:24:43 2023 1
原创 基于Github Pages + docsify,我花了半天就搭建好了个人博客
前言“作为一个真正的码农,不能没有自己的个人博客”,这是我说的。惭愧的是,入行两年多了都没搞起来,这让我一度怀疑自己是个假程序员。昨天终于克服了心里的“犹豫”和“恐惧”,尝试搭建了一把,半天就搞好了,看着能用。搭建博客只是一个小任务,为啥迟迟不能完成?只能说明鄙人执行力太差。想的多做的少,大多数时候我们只要开始行动之后,好多问题都会迎刃而解了。引用最新网上很流行的一段话,与君工勉之:我们遇...
2020-01-05 15:18:30 2149
原创 Redis实战 | 5种Redis数据类型详解
我们知道Redis是目前非常主流的KV数据库,它因高性能的读写能力而著称,其实还有另外一个优势,就是Redis提供了更加丰富的数据类型,这使得Redis有着更加广泛的使用场景。那Redis提供给用户的有哪些数据类型呢?主要有:string(字符串)、List(列表)、Set(集合)、Hash(哈希)、Zset(有序集合)、HyperLogLogs(计算基数用的一种数据结构)、Streams(Red...
2019-12-16 22:58:03 583
原创 【Maven笔记1】Maven介绍
maven是一款强大的软件构建工具,能够帮我们自动化构建过程,从清理、编译、测试到生产报告,再到打包和部署。它最大化的消除了重复,抽象了构建的生命周期。
2023-05-03 16:29:34 774
原创 看懂UML类图:你需要知道的6种关系
什么是UMLUML是 Unified Modeling Language 的简写,即统一建模语言。它是由OMG 组织(Object Management Group对象管理组织)于1997年发布的。UML提供了一套标准的建模符号,使得系统的架构设计和规划的表达更加规范化。作为端着Java饭碗的底层码工,没搞过系统设计,但至少要会按图施工吧,这里的图就包含了UML类图。其实,UML不止是类图,...
2020-01-16 22:38:18 491 1
原创 Redis实战 | 持久化、主从复制特性和故障处理思路
前言前面两篇我们了解了Redis的安装、Redis最常用的5种数据类型。本篇总结下Redis的持久化、主从复制特性,以及Redis服务挂了之后的一些处理思路。前期回顾传送门:Linux下安装Redis简易教程Redis实战 | 5种Redis数据类型详解Redis的两种持久化方式经常有面试官会问:Redis数据存储在内存中,万一断电了怎么办呢?不要慌,这个其实就是在问Redis的持久...
2020-01-07 23:00:32 160
原创 设计模式之代理模式
什么是代理模式代理模式就是为一个对象提供一个代理对象,由这个代理对象控制对该对象的访问。理解代理模式,可以对照生活中的一些具体例子,比如房产中介、二手车交易市场、经纪人等。为什么要用代理模式通过使用代理模式,我们避免了直接访问目标对象时可能带来的一些问题,比如:远程调用,需要使用远程代理来帮我们处理一些网络传输相关的细节逻辑;可能需要基于某种权限控制对目标资源的访问,可以使用保护代理等。...
2019-11-26 00:20:58 366
原创 设计模式之原型模式
什么是原型模式什么是原型模式,就是根据一个已经存在的对象实例,复制创建出多个对象实例的设计方法。已经存在的对象实例就是原型对象。原型模式属于创建型的设计模式。当创建对象的代价交高时,可是使用原型模式复制拷贝对象,这样更做效率更高。原型模式复制对象一般会用到Object类的clone方法。在Java中实现对象拷贝或克隆,使用clone()方法。能够实现克隆的Java类必须实现一个标识接口Cl...
2019-11-22 00:37:29 501
原创 工厂模式超详解(代码示例)
工厂模式概述工厂模式的主要解决的问题是,将原来分布在各个地方的对象创建过程单独抽离出来,交给工厂类负责创建。其他地方想要使用对象直接找工厂(即调用工厂的方法)获取对象。工厂模式的三种类型工厂模式主要有三种类型1、简单工厂2、工厂方法3、抽象工厂简单工厂拿泡茶为例,茶叶有好多种类,比如龙井、碧螺春、毛尖等。首先一个ITea接口:public interface ITea { ...
2019-11-20 01:17:04 20419 8
原创 Java多线程中join、yield、sleep方法详解
在Java多线程编程中,Thread类是其中一个核心和关键的角色。因此,对该类中一些基础常用方法的理解和熟练使用是开发多线程代码的基础。本篇主要总结一下Thread中常用的一些静态方法的含义及代码中的使用。sleep方法源码如下: /** * Causes the currently executing thread to sleep (temporarily cease ...
2019-11-10 21:13:28 524
原创 Java内部类超详细总结(含代码示例)
什么是内部类什么是内部类?顾名思义,就是将一个类的定义放在另一个类的内部。概念很清楚,感觉很简单,其实关键在于这个内部类放置的位置,可以是一个类的作用域范围、一个方法的或是一个代码块的作用域范围。所以理解了概念只是第一步,掌握细节才能彻底搞定Java的内部类特性。看例子,这是最普通的内部类:public class Product1 { class Design{ private ...
2019-08-05 23:09:38 1014
原创 Mysql都支持哪些数据类型?
在设计数据库表时,其中一项重要步骤便是选择表中字段的数据类型。如果你选择的是mysql作为数据库,必须要清楚mysql到底支持哪些数据类型呢?总体来说包括数值型、字符串类型、日期和时间类型这么几大类。1、数值类型数值类型中又细分为整数类型、浮点数类型、定点数类型和位类型。下面分别述之。整数类型整数类型占用字节范围TINYINT1有符号:[-128,127] 或...
2019-07-03 23:00:38 3798
原创 Java面试必备:手写单例模式
面试官:请手写下几种常见的单例模式我:好的(面带微笑),心里暗喜(送分题)。没成想提笔便写出了如此豪放的代码,不堪回首,请原谅我的不羁!此篇整理了几种常见的单例模式代码示例,再有面试官让手撕单例模式,便能心中有码,下笔有神。为什么要有单例模式实际编程应用场景中,有一些对象其实我们只需要一个,比如线程池对象、缓存、系统全局配置对象等。这样可以就保证一个在全局使用的类不被频繁地创建与销毁,...
2019-06-27 00:24:26 3018 1
linux程序员指南
2017-08-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人