上一页 1 2 3 4 5 6 ··· 13 下一页
摘要: 1、原型模式的原理 如果对象的创建成本比较大,而同一个类的不同对象之间差别不大(大部分字段都相同),在这种情况下,我们可以利用对已有对象(原型)进行复制(或者叫拷贝)的方式来创建新对象,以达到节省创建时间的目的。这种基于原型来创建对象的方式就叫作原型设计模式(Prototype Design Pat 阅读全文
posted @ 2024-04-12 16:56 jingyi_up 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 建造者模式也称为 Builder 模式,在开发中也是经常用到的,下面围绕两个问题来看下: 1、为什么需要建造者模式 假设在开发中我们有这样一个需求:需要定义一个资源池配置类 ResourcePoolConfig。这里的资源池,你可以简单理解为线程池、连接池、对象池等。在这个资源池配置类中,有以下几个 阅读全文
posted @ 2024-04-12 12:03 jingyi_up 阅读(11) 评论(0) 推荐(0) 编辑
摘要: 工厂模式分为:简单工厂、工厂方法、抽象工厂(了解即可) 1、工厂模式的作用 这也是考虑要不要使用工厂模式的标准: ——封装变化:创建逻辑有可能变化,封装成工厂类之后,创建逻辑的变更对调用者透明。 ——代码复用:创建代码抽离到独立的工厂类之后可以复用。 ——隔离复杂性:封装复杂的创建逻辑,调用者无需了 阅读全文
posted @ 2024-04-11 18:15 jingyi_up 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 1、为什么使用单例(能解决什么问题) (1)处理资源访问冲突 自定义实现了一个往文件中打印日志的 Logger 类。具体的代码实现如下所示: public class Logger { private FileWriter writer; public Logger() { File file = 阅读全文
posted @ 2024-04-10 16:53 jingyi_up 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 1、学习设计模式的目的 (1)应对面试 设计模式是程序员的基本功,因此是面试中常考察的知识点。 (2)写出高质量的代码 学好数据结构与算法目的是写出高效的代码,学好设计模式则是为写出高质量的代码。 (3)提高复杂代码的设计和开发能力 掌握好设计模式才能在开发复杂系统时写出易扩展、易用、易维护的代码。 阅读全文
posted @ 2024-04-10 11:54 jingyi_up 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 1、使用场景 一般情况下,主线程创建并启动子线程,如果子线程中执行大量耗时运算,主线程可能早于子线程结束。如果主线程需要知道子线程的执行结果时,就需要等待子线程执行结束。主线程可以sleep(xx),但这样的xx时间不好确定,因为子线程的执行时间不确定,join()方法比较合适这个场景。 2、joi 阅读全文
posted @ 2024-04-02 19:45 jingyi_up 阅读(153) 评论(0) 推荐(0) 编辑
摘要: Deque 接口表示一个双端队列(Double Ended Queue),允许在队列的首尾两端操作,所以既能实现队列行为,也能实现栈行为。 Deque常用的两种实现ArrayDeque和LinkedList,这篇主要介绍下Deque的常用操作,并重点看下ArrayDeque的实现逻辑。 1、接口AP 阅读全文
posted @ 2024-03-29 17:57 jingyi_up 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 这篇文章主要记录自己遇到和在网上看到的一些关于kafka的相关问题。 问题1:客户端和服务端版本不一致造成的消息发送延迟高现象 kafka客户端支持多语言api,这里只关注Java客户端,如下两种方式: <dependency> <groupId>org.apache.kafka</groupId> 阅读全文
posted @ 2022-10-25 14:10 jingyi_up 阅读(87) 评论(0) 推荐(0) 编辑
摘要: 1、安装golang (1)使用homebrew brew install go (2)查看是否成功 go version (3)配置GOPATH目录,在GOPATH目录下创建三个工作目录,bin/pkg/src 使用 go env查看环境变量,然后 cd $GOPATH目录,使用 mkdir -p 阅读全文
posted @ 2022-05-30 16:23 jingyi_up 阅读(251) 评论(0) 推荐(0) 编辑
摘要: 这篇文章讲的比较清楚了:https://segmentfault.com/a/1190000021616327 说几个点吧: 1、了解操作系统的内核态和用户态就能很好理解Java的线程并发和go的并发区别了,同时也能明白为什么说go的并发相对于Java的并发更加轻量级,因为没有了内核态和用户态之间的 阅读全文
posted @ 2022-04-14 14:57 jingyi_up 阅读(28) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 ··· 13 下一页