摘要:
from:https://www.baeldung.com/a-guide-to-java-enums 1. 概述 在这篇文章中,我们将看到什么是Java 枚举,它解决了什么问题,以及它们在实践中的一些设计模式。 在Java 5中引入了"enum"关键字。它表示一种特殊类型的类,该类始终扩展自jav 阅读全文
摘要:
1、主从模式 (1)特点 有且仅有一个主节点Master,从节点slave可以有 主节点master可读可写,从节点slave只能读;主节点将读的操作交给了从节点,变向的提高了自己写的能力 (2)配置步骤(同一台服务器,利用不同端口进行部署) 1】在/usr/local目录下,创建一个/redis/ 阅读全文
摘要:
我们来通过一组组示例进行分析: 3节点环境:1个master、2个slave 存储空间:最大等于1个节点的容量。(如果是2个master的话,那么数据会丢失一部分) 冗余性:允许1个节点故障。 4节点环境:2个master、2个slave 存储空间:2个节点的容量。 冗余性:允许1个节点故障。(集群 阅读全文
摘要:
from:https://www.marcobehler.com/guides/a-guide-to-logging-in-java 本指南指导您发现,理解和正确地使用Java日志库(如Log4j2,Logback或java.util.logging)。 日志“似乎”像是一个非常简单的主题,但在实践 阅读全文
摘要:
基础知识 设计模式概述 从招式与内功谈起——设计模式概述(一):设计模式从何而来? 从招式与内功谈起——设计模式概述(二):设计模式是什么? 从招式与内功谈起——设计模式概述(三):设计模式有什么用?附:个人观点 面向对象设计原则 面向对象设计原则概述 面向对象设计原则之单一职责原则 面向对象设计原 阅读全文
摘要:
模型设计是软件架构师所需具备的基本技能之一,本文是一篇不错的关于如何成为优秀模型设计者的文章,希望对大家有所帮助! 我们期待自己成为一个优秀的软件模型设计者,但是,要怎样做,又从哪里开始呢? 将下列原则应用到你的软件工程中,你会获得立杆见影的成果。 1. 人远比技术重要 你开发软件是为了供别人使用, 阅读全文
摘要:
在JDK(Java Development Kit)类库中,开发人员使用了大量设计模式,正因为如此,我们可以在不修改JDK源码的前提下开发出自己的应用软件,本文列出了部分JDK中的模式应用实例,有兴趣的童鞋可以深入研究,看看前Sun公司的开发人员是如何在实际框架开发中运用设计模式的,Sunny认为, 阅读全文
摘要:
本文摘选自已故知名软件大师John Vlissides的Pattern Hatching (Design Patterns Applied)【中译本名为:《设计模式沉思录》,葛子昂译,人民邮电出版社】一书。该书出版于1998年,但中译本一直到2010年才出版,?!。在本文中,Vlissides针对普 阅读全文
摘要:
可能有很多朋友在网上看过Google公司早几年的招聘广告,它的第一题如下了:{first 10-digit prime found in consecutive digits e}.com,e中出现的连续的第一个10个数字组成的质数。据说当时这个试题在美国很多地铁的出站口都有大幅广告,只要正确解答了 阅读全文
摘要:
一、零铺垫 在介绍B树之前,先来看另一棵神奇的树——二叉排序树(Binary Sort Tree),首先它是一棵树,“二叉”这个描述已经很明显了,就是树上的一根树枝开两个叉,于是递归下来就是二叉树了(下图所示),而这棵树上的节点是已经排好序的,具体的排序规则如下: 若左子树不空,则左子树上所有节点的 阅读全文
摘要:
说到Java内存区域,可能很多人第一反应是“堆栈”。首先堆栈不是一个概念,而是两个概念,堆和栈是两块不同的内存区域,简单理解的话,堆是用来存放对象而栈是用来执行程序的。其次,堆内存和栈内存的这种划分方式比较粗糙,这种划分方式只能说明大多数程序员最关注的、与对象内存分配关系最密切的内存区域是这两块,J 阅读全文
摘要:
JAVA虚拟机的生命周期 一个运行时的Java虚拟机实例的天职是:负责运行一个java程序。当启动一个Java程序时,一个虚拟机实例也就诞生了。当该程序关闭退出,这个虚拟机实例也就随之消亡。如果同一台计算机上同时运行三个Java程序,将得到三个Java虚拟机实例。每个Java程序都运行于它自己的Ja 阅读全文
摘要:
一、背景1.1 SMP(Symmetric Multi-Processor)对称多处理器结构,它是相对非对称多处理技术而言的、应用十分广泛的并行技术。在这种架构中,一台计算机由多个CPU组成,并共享内存和其他资源,所有的CPU都可以平等地访问内存、I/O和外部中断。虽然同时使用多个CPU,但是从管理 阅读全文
摘要:
java编码中的中文问题是一个老生常谈的问题了,每次遇到中文乱码LZ要么是按照以前的经验修改,要么则是baidu.com来解决问题。阅读许多关于中文乱码的解决办法的博文后,发现对于该问题我们都(更加包括我自己)没有一个清晰明了的认识,于是LZ想通过这系列博文(估计只有几篇)来彻底分析、解决java中 阅读全文
摘要:
一、为什么需要垃圾回收 如果不进行垃圾回收,内存迟早都会被消耗空,因为我们在不断的分配内存空间而不进行回收。除非内存无限大,我们可以任性的分配而不回收,但是事实并非如此。所以,垃圾回收是必须的。 二、哪些内存需要回收? 哪些内存需要回收是垃圾回收机制第一个要考虑的问题,所谓“要回收的垃圾”无非就是那 阅读全文
摘要:
一、Java基础 1、Java面向对象的三个特征与含义 三大特征是:封装、继承和多态。 封装是指将某事物的属性和行为包装到对象中,这个对象只对外公布需要公开的属性和行为,而这个公布也是可以有选择性的公布给其它对象。在Java中能使用private、protected、public三种修饰符或不用(即 阅读全文
摘要:
一、Callable 与 Runnable 先说一下java.lang.Runnable吧,它是一个接口,在它里面只声明了一个run()方法: public interface Runnable { public abstract void run();} 由于run()方法返回值为void类型,所 阅读全文
摘要:
一、读写锁简介 现实中有这样一种场景:对共享资源有读和写的操作,且写操作没有读操作那么频繁。在没有写操作的时候,多个线程同时读一个资源没有任何问题,所以应该允许多个线程同时读取共享资源;但是如果一个线程想去写这些共享资源,就不应该允许其他线程对该资源进行读和写的操作了。 针对这种场景,JAVA的并发 阅读全文
摘要:
在 nginx 中,如果我修改了一个配置文件,或者新增了一个配置文件。按照群里网友的描述,我需要关闭 nginx,或者重启 nginx,比较麻烦,而且这个过程中会中断服务的提供。那么有没有热配置,或者是不重启就可以生效呢? 答案当然是有的。那就是使用 nginx -s reload 命令。 -s 代 阅读全文
摘要:
public class Singleton { private static Singleton singleton; private Singleton() { } public static Singleton getInstance() { if (singleton == null) {/ 阅读全文
摘要:
Tomcat 总体结构 从上图中可以看出 Tomcat 的心脏是两个组件:Connector 和 Container。 Connector 组件是可以被替换,这样可以提供给服务器设计者更多的选择,因为这个组件是如此重要,不仅跟服务器的设计的本身,而且和不同的应用场景也十分相关,所以一个 Contai 阅读全文
摘要:
官方:“ Windows徽标键+ Ctrl + Shift + B =将PC从黑屏或黑屏唤醒” 通过与AMD Radeon驱动程序工程师的讨论,它不会重新启动图形驱动程序。它似乎确实丢弃了桌面表面缓冲区并从DWM重新创建分配(在运行良好的系统上,桌面变黑了一秒钟)。 https://support. 阅读全文
摘要:
马特·彼得雷克 1994年3月 Matt Pietrek是 Windows Internals 的作者(Addison-Wesley,1993年)。他在Nu-Mega Technologies Inc.工作,可以通过CompuServe与他联系:71774,362 本文摘自1994年3月发行的 Mi 阅读全文
摘要:
我们常用的单位多是以下数个 百 .... 10^2 ...... 100 千 .... 10^3 ...... 1,000 万 .... 10^4 ...... 10,000 亿 .... 10^8 ...... 100,000,000 兆 .... 10^12 ..... 1,000,000,00 阅读全文
摘要:
The most popular ways to combine words into a single string Photo by Oskar Yildiz on Unsplash TLDR; camelCase PascalCase snake_case kebab-case Removin 阅读全文
摘要:
前几天看到大家在讨论EXE装载的问题,很新奇。有的说PE装载受到进程空间的限制,有的说PE一定是整体装入,有的用ZIP自解压包来举例子。 我当时大概想了一下,觉得PE不一定是要整体装入的。PE文件包含一个PE header,里面定义了各个段,比如代码,资源等等的偏移地址,装载的时候应该不会超出这个P 阅读全文
摘要:
神图 能够实时观察设计的cpu是如何执行指令的。网页地址:http://www.buthowdoitknow.com/but_how_do_it_know_cpu_model.html Philosophy But How do it Know(计算机是怎么知道的) 近乎成了一个哲学问题,这本书讲述 阅读全文
摘要:
一、什么是重定位? 重定位就是你本来这个程序理论上要占据这个地址,但是由于某种原因,这个地址现在不能让你霸占,你必须转移到别的地址,这就需要基址重定位。 二、为什么需要重定位? 这个和上面的问题的解释是一样的。不是说过每个进程都有自己独立的虚拟地址空间吗?既然都是自己的,怎么会被占据呢?对于EXE应 阅读全文
摘要:
1.资源:进程对设备、文件等获得独占性的访问权时有可能会发生死锁,为了尽可能地通用化,我们将这种需排它使用的对象称为资源。资源可以是硬件设备(如磁带机),或一组信息(如数据库中一个加锁的记录)。计算机中通常有多种资源。有些类型的资源有多个相同的实例,如三台磁带机。当某一资源有若干拷贝时,其中任一个均 阅读全文
摘要:
详解FAT32文件系统 硬盘是用来存储数据的,为了使用和管理方便,这些数据以文件的形式存储在硬盘上。任何操作系统都有自己的文件管理系统,不同的文件系统又有各自不同的逻辑组织方式。例如:常见的文件系统有FAT,NTFS,EXT,UFS,HFS+等等。下面就来学习一下基于Windows的FAT32文件系 阅读全文
摘要:
早期的内存分配机制 在早期的计算机中,要运行一个程序,会把这些程序全都装入内存,程序都是直接运行在内存上的,也就是说程序中访问的内存地址都是实际的物理内存地址。当计算机同时运行多个程序时,必须保证这些程序用到的内存总量要小于计算机实际物理内存的大小。 那当程序同时运行多个程序时,操作系统是如何为这些 阅读全文
摘要:
关于c++设计模式的总结 抽象工厂,决定产品系列的产品的组合,特点是创建同一款式的产品系列。缺点是增加产品组件,需要修改抽象工厂接口,影响抽象工厂子类。 builder,决定产品的各个部分的build的过程。替换相应的builder子类,就可以修改产品相应的各个part部件的实现;替换相应的Dire 阅读全文
摘要:
需要知道的是:finally的语句会先于try或者catch的返回语句之前执行,如果finally中有return语句,那么try或catch中的return语句会被finally中的return覆盖,不建议在finally中放return 情况一:try、catch和finally中都有retur 阅读全文
摘要:
我在使用springboot时,当代码有问题时,发现控制台打印下面信息: Connected to the target VM, address: '127.0.0.1:42091', transport: 'socket' log4j:WARN No appenders could be foun 阅读全文
摘要:
(一)作用域链内存模型 几个概念 在开始之前,先了解几个概念。 1.1. 作用域 作用域是指当前正在执行的代码能够访问到变量的范围; 每个函数都有各自的作用域,存储函数所有的局部变量; 1.2. 变量对象 变量对象用于存储函数各自的局部变量; 每个函数都有各自的变量对象,并且在函数执行时被创建; 上 阅读全文
摘要:
接下来来讲讲通过调用rundll32.exe来打开一些系统特定文件,先简单介绍下rundll32.exe的功能和作用。顾名思义,rundll32就是"执行32位的dll文件",也就是执行dll文件中的内部函数,可以以命令行的形式调用windows32位的动态链接库。同理,rundll.exe就是"执 阅读全文
摘要:
平时接触C及Java较多,这种层次的语言对数据的表示有一定局限。基本的数据类型无外呼整数和浮点数。整数好说,一般仅需考虑越界问题。但对于浮点数,除了范围外,通常很容易忽略精度问题。 浮点数为什么会有精度问题?计算机中的浮点数对应于数学当中的小数。简单计算下,32位浮点数最多可以表示2^32个数,但从 阅读全文
摘要:
一. 爬山算法 ( Hill Climbing ) 爬山算法是一种简单的贪心搜索算法,该算法每次从当前解的临近解空间中选择一个最优解作为当前解,直到达到一个局部最优解。爬山算法实现很简单,其主要缺点是会陷入局部最优解,而不一定能搜索到全局最优解。假设C点为当前解,爬山算法搜索到A点这个局部最优解就会 阅读全文
摘要:
量子密钥分发 (QKD, Quantum key Distribution ) QKD是量子信息的一个重要分支,也称为“量子保密通信”。 一个量子通信的课程推荐给大家,论述的全面、详细:https://ke.qq.com/course/382160 一个系统、全面讲解传统加密通信SSL/TLS的课程 阅读全文
摘要:
fastJson 1、String转换为JSONObject String param = "{\"age\":\"24\",\"name\":\"cool_summer_moon\"}"; JSONObject jsonObject = JSONObject.parseObject(param); 阅读全文