03 2021 档案

摘要:一、JDK动态代理 基于接口实现,要求委托类要是接口的实现。 Java的 java.lang.reflect 包下提供了 Proxy 类和一个InvocationHandler接口。 Proxy定义了生成JDK动态代理类的方法 getProxyClass(ClassLoader loader,Cla 阅读全文
posted @ 2021-03-31 20:36 杨岂 阅读(135) 评论(0) 推荐(0) 编辑
摘要:什么是代理? 代理就是代替委托方去做一些事情 代理模式: 为其他对象提供一种代理以控制对这个对象的访问。 它的特征是代理类与委托类实现相同的接口,代理类的对象本身并不真正实现服务,而是通过调用委托类的对象的相关方法,来提供特定的服务。简单来说就是,我们访问实际对象时,是通过代理对象来访问的,代理模式 阅读全文
posted @ 2021-03-31 16:48 杨岂 阅读(37) 评论(0) 推荐(0) 编辑
摘要:网络编程概述 计算机网络: 是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。 网络编程: 就是用来实现网络互连的不同计算机上运行的程序间可以进行数据交换。 网络模型: 计算机 阅读全文
posted @ 2021-03-31 16:10 杨岂 阅读(92) 评论(0) 推荐(0) 编辑
摘要:一个完善的底层通信框架需要具备哪些功能? 网络协议 编解码支持 网络通信都是字节流,因此需要提供编解码的支持 各种通信协议支持 每个团队涉及的通信协议可能不同,因此框架需要尽可能的支持常见的协议 粘包和拆包问题 支持分隔符切分,固定长度等 连接管理 连接资源是有限的,所以要保持合理的连接数,通过心跳 阅读全文
posted @ 2021-03-31 16:03 杨岂 阅读(145) 评论(0) 推荐(1) 编辑
摘要:背景 在复杂的分布式系统中,往往需要对大量的数据和消息进行唯一标识。 如对大量的订单做分库分表后,需要有一个唯一的ID来标识一条数据或消息,数据库的自增ID显然不能满足需求。 业务系统对分布式唯一ID的要求: ①:全局唯一性,不能重复 ②:趋势递增,在MySQL InnoDB引擎中使用的是聚集索引, 阅读全文
posted @ 2021-03-31 10:01 杨岂 阅读(84) 评论(0) 推荐(0) 编辑
摘要:什么是RPC? RPC(Remote Procedure Call),远程过程调用。 其对应的协议称为RPC协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。 用于解决分布式系统中服务之间的调用问题。通俗地讲,就是开发者能够像调用本地方法一样调用远程的服务。所以,RP 阅读全文
posted @ 2021-03-30 16:03 杨岂 阅读(99) 评论(0) 推荐(0) 编辑
摘要:Java异常分类结构: java.lang.Throwable 顶层父类 |– Error错误:JVM内部的严重问题,如OOM,程序员无法在代码中处理(如StackOverflowError、OutOfMemoryError)。 |–Exception异常:普通的问题。通过合理的处理,程序还可以回到 阅读全文
posted @ 2021-03-30 14:44 杨岂 阅读(44) 评论(0) 推荐(0) 编辑
摘要:一、名词介绍 内核:操作系统的核心 用户空间:指的是用户进程的运行空间 内核空间:指的是内核的运行空间,是受保护的内存空间 用户态:如果进程运行在用户空间就是用户态 内核态:如果进程运行在内核空间就是内核态 DMA拷贝: 对一个IO操作而言,是通过CPU发出对应的指令来完成的,但是相比CPU来说,I 阅读全文
posted @ 2021-03-25 10:12 杨岂 阅读(688) 评论(0) 推荐(1) 编辑
摘要:什么是字节码: Java的使命是一次编译,处处运行。在不同的操作系统、不同的硬件平台上,均可以不用修改代码即可顺畅地执行。 之所以能一次编译,处处运行,有以下原因: 1)把编译的过程分成两部分,首先无论在什么平台它会先由javac编译成通用的固定的中间形式——字节码(.class文件),然后再由解释 阅读全文
posted @ 2021-03-24 19:38 杨岂 阅读(228) 评论(0) 推荐(0) 编辑
摘要:什么是泛型及泛型的作用? 泛型,本质是“参数化类型”。也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法中,分别被称为泛型类、泛型接口、泛型方法。在实际使用时指定具体的数据类型。 泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。 Java中的泛型 阅读全文
posted @ 2021-03-24 09:52 杨岂 阅读(96) 评论(0) 推荐(0) 编辑
摘要:在HotSpot虚拟机中,对象在内存中存储的布局可以分为3块区域:对象头(Header)、实例数据(Instance Data)和对齐填充。 另外,Java中对象的内存布局分为两种情况,非数组对象和数组对象,区别是数组对象头中需要额外的空间存储数组的长度length。 对象头(Object Head 阅读全文
posted @ 2021-03-23 23:01 杨岂 阅读(190) 评论(0) 推荐(0) 编辑
摘要:一、什么是幂等性: HTTP/1.1中对幂等性的定义是:一次和多次请求某一资源对于资源本身应该具有同样的结果(网络超时等问题除外)。也就是说,其任意多次执行对资源本身所产生的影响均与一次执行的影响相同。 就是用户对于同一接口发起的一次请求或者多次请求的结果是一致的,不会因为多次点击而产生了副作用 即 阅读全文
posted @ 2021-03-23 14:06 杨岂 阅读(220) 评论(0) 推荐(0) 编辑
摘要:将一个类的定义放在另一个类的内部,这就是内部类。 在面向对象语言中,任何一个类都可以在内部定义另外一个类,前者为外部类,后者为内部类。 内部类本身就是类的一个属性,与其他属性定义方式一致。内部类可以是静态和非静态的,它可以出现在属性定义、方法体和表达式中,甚至可以匿名出现,具体分为如下四种: 1、成 阅读全文
posted @ 2021-03-22 08:26 杨岂 阅读(34) 评论(0) 推荐(0) 编辑
摘要:Java语言拥有跨平台、分布式、多线程、健壮性等主要特点,是一种面向对象型的编程语言。 面对过程让计算机可以有步骤地做一件事情,是一种过程化的叙事思维。但是在大型软件开发过程中,发现用面向过程语言开发、软件维护、软件复用存在着巨大困难,模块至今互相耦合,流程互相穿插,往往牵一发而动全身。 面向对象提 阅读全文
posted @ 2021-03-21 22:33 杨岂 阅读(47) 评论(0) 推荐(0) 编辑
摘要:FutureTask是Callable的核心实现 多线程的实现方式: 1、继承Thread类 2、实现Runnable接口 3、实现Callable<V> 接口 通过实现Callable接口来创建多线程,在执行完成后可获取执行结果。 Callable接口: 对于需要执行的任务需要实现Callable 阅读全文
posted @ 2021-03-21 22:30 杨岂 阅读(44) 评论(0) 推荐(0) 编辑
摘要:一、HTTPS(确保web安全) 在HTTP协议中可能存在信息窃听或身份伪装等安全问题,使用HTTPS通信机制可以有效的防止这些问题。 HTTP的缺点: 1、通信使用明文(不加密),内容可能会被窃听 2、不验证通信方的身份,因此有可能遭遇伪装 3、无法证明报文的完整性,所以有可能已遭篡改 下面详细解 阅读全文
posted @ 2021-03-21 16:08 杨岂 阅读(1583) 评论(0) 推荐(0) 编辑
摘要:单线程的Redis为何还能这么快? 1、所有的数据都在内存中,所有的运算都是内存级别的运算 (内存内的操作不会因为磁盘IO速度限制,因此不会成为性能瓶颈) 2、简单高效的数据结构,对数据操作也简单,Redis中的数据结构是专门进行设计的 3、单线程操作,避免了频繁的上下文切换带来的资源消耗问题,也无 阅读全文
posted @ 2021-03-21 14:20 杨岂 阅读(223) 评论(0) 推荐(0) 编辑
摘要:0与1: 信息存储和逻辑计算的元数据,都是0和1。 机器数: 一个数在计算机中的二进制表示形式(如1的二进制表示为 0000 0001),叫做这个数的机器数。 机器数是带符号的,在计算机用机器数的最高位存放符号,正数为0,负数为1,最高位不参与数据表示。 机器数的真值: 因为第一位是符号位,所以机器 阅读全文
posted @ 2021-03-19 22:34 杨岂 阅读(195) 评论(0) 推荐(0) 编辑
摘要:建造者模式(Builder Pattern)属于创建型模式,它提供了一种创建对象的最佳方式。 它将一个复杂的对象的构建分成多个简单的步骤。 当一个类的构造函数参数个数超过4个,而且这些参数有些是可选的参数,考虑使用建造者模式 建造者实现步骤: 1、在Setting 中创建一个静态内部类 Builde 阅读全文
posted @ 2021-03-11 19:39 杨岂 阅读(89) 评论(0) 推荐(0) 编辑
摘要:1、安装RabbitMQ 1)MAC:brew install rabbitmq 启动:rabbitmq-server 2、配置可视化RabbitMQ管理界面 1)输入命令rabbitmq-plugins.bat enable rabbitmq_management,这样就可以添加可视化插件了。 2 阅读全文
posted @ 2021-03-04 23:52 杨岂 阅读(961) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示