Java
文章平均质量分 78
分享Java学习过程
Guevara的笔记
这个作者很懒,什么都没留下…
展开
-
聊聊SOA
SOA是什么?SOA全英文是Service-Oriented Architecture,中文意思是中文面向服务编程,是一种思想,一种方法论,一种分布式的服务架构(具体可以百度)。用途:SOA解决多服务凌乱问题,SOA架构解决数据服务的复杂程度,同时SOA又有一个名字,叫做服务治理。通过一个系统我们看一下架构的演变过程(由统一到分布式):当我们的项目比较小时,我们只有一个系统,并且把他们写到一起,放在一个服务器上,但是随着平台越来越大,数据量越来越大,我们不得不通过分库,把多个模块的数据库分别放在对应原创 2021-08-10 23:40:17 · 200 阅读 · 0 评论 -
SLA 简介
SLA 的由来在云计算时代,越来越多企业的服务迁移到云上,各大云服务厂商有自己服务发布的SLA,SLA是服务提供商与客户之间定义的正式承诺。我们使用云服务提供商为我们提供的 APP 或者网站,如果出现购物无法下单、看视频打不开类似的问题,会严重影响用户体验。如果故障持续的时间比较久,那将会流失一大批用户,给业务带来损失。那么,如何衡量给客户提供的服务质量呢?进而如何衡量系统的稳定性呢?毋庸置疑,需要统一的语言 SLA。SLA 的定义服务等级协议(英语:service-level agreement原创 2021-07-20 19:57:32 · 12381 阅读 · 0 评论 -
GSLB调度服务原理
GSLB,全局负载均衡(Global Server Load Balancing ),主要的目的是在整个网络范围内将用户的请求定向到最近的节点(或者区域)。是对物理集群的负载均衡,不止是简单的流量均匀分配,还会根据应用场景的不同来制定不同的策略。本文将讨论 GSLB 的几种实现,并介绍调度服务实现的大体情况。原创 2021-07-14 16:02:49 · 2014 阅读 · 0 评论 -
建立TCP连接为什么要3次握手?
一、概述TCP三次握手的目的是建立可靠的通信信道。通信,简单来说就是数据的发送和接收。而三次握手最主要的目的就是双方确认自己与对方的发送和接收是正常的。如下图所示,下⾯的两个机器⼈通过3次握手确定了对方能正确接收和发送消息(图⽚来源:《图解HTTP》 )。发送端(Client)和接收端(Server)总共发起的 3 次请求就叫做 3 次握手。二、握手过程第 1 次握手Client 什么都无法无法确认。虽然自己发送了 syn 数据,但是只要没收到 Server 端的 syn/ack 数据都无法确原创 2021-01-07 17:46:21 · 5111 阅读 · 0 评论 -
密码加盐加密存储及其登录验证方式
本文介绍一种常用的密码加密存储方式,并附上登录时验证用户密码的方法。代码用 Java 来实现,结尾附带有 github 的源码链接。用户注册账号,填写好密码后传递到后端。密码的形式一般是经过前端 md5 加密过的。登录校验根据账号来获取它的盐并且和登录时输入的密码求hash,此 hash 值和数据库存取的 hash 值相等则密码校验通过。原创 2021-01-05 16:14:03 · 3663 阅读 · 1 评论 -
Java生成RSA非对称加密的密钥对
用Java生成RSA非对称加密的密钥对,在线生成RSA密钥对,在线生成RSA密钥原创 2020-12-31 16:00:34 · 408 阅读 · 0 评论 -
Java NIO学习笔记
目录〇、前言一、简介二、缓冲区(Buffer)和通道(Channel)缓冲区通道三、分散读取与聚集写入四、字符集Charset五、阻塞与非阻塞1、简单的客户端/服务端通信:实现文件的传输2、客户端/服务端通信阻塞的情况:服务端等待客户端继续发送,客户端等待服务端的反馈。3、非阻塞式IO的实现——选择器(Selector)阶段总结六、总结〇、前...原创 2018-09-29 23:53:18 · 235 阅读 · 0 评论 -
面试题:什么是消息队列?
〇、 概念什么是消息队列?一、消息模型点对点发布/订阅二、使用场景异步处理流量削锋应用解耦三、可靠性发送端的可靠性接收端的可靠性参考资料〇、 概念什么是消息队列?消息队列,简称它为MQ(Message Queue),消息队列可以简单理解为:把要传输的数据放在队列中。科普:把数据放到消息队列叫做生产者 从消息队列里边...原创 2019-08-13 16:45:45 · 538 阅读 · 0 评论 -
JVM垃圾收集算法
JVM垃圾收集,垃圾收集算法;在堆里面存放着Java世界中几乎所有的对象实例,垃圾收集器在对堆进行回收前,第一件事情就是要确定这些对象之中哪些还“存活”着,哪些已经“死去”(即不可能再被任何途径使用的对象)。判断对象是否存活的两种算法:引用计数法和可达性分析算法原创 2019-03-30 20:24:37 · 210 阅读 · 0 评论 -
面试之单例模式的实现方法(附DCL的讨论)
题目:设计一个类,我们只能生成该类的一个实例。单例模式的实现要点:① 构造函数设为私有函数,保证只能生成一个实例② 是否有线程安全问题③ 建议将实例定义为静态的,在需要的时候创建该实例解法一:class Singleton1{ private Singleton1(){ } private static Singleton1 instance = null;...原创 2018-09-22 15:34:44 · 369 阅读 · 0 评论 -
hashCode与equals的作用与区别及应当注意的细节
哈希算法,用于提高在集合中查找元素的效率。这种方式将集合分成若干个存储区域(可以看成一个个桶),每个对象都可以计算出一个哈希码,可以根据哈希码分组,每组分别对应某个存储区域,如此每个对象可以根据它的哈希码被分配到不同的存储区域(不同的桶中)。当equals方法被重写时,通常有必要重写 hashCode 方法,以维护 hashCode 方法的常规协定,该协定声明相等对象必须具有相等的哈希码。原创 2018-09-14 22:04:58 · 1099 阅读 · 0 评论 -
try catch finally语句块中存在return语句时的运行流程
题目:下面代码运行结果是()public class Test{ public int add(int a,int b){ try { return a+b; } catch (Exception e) { System.out.println("catc...原创 2018-09-10 19:09:59 · 3535 阅读 · 1 评论 -
一道代码分析题浅析String的intern()方法
String.intern()是一个Native方法,它的作用是:如果字符串常量池中已经包含了一个等于此String对象的字符串,则返回代表池中这个字符串的String对象;否则,将此String对象包含的字符串添加到常量池中,并且返回此String对象的引用。原创 2018-09-09 19:22:26 · 743 阅读 · 0 评论 -
初识Lambda表达式
Lambda表达式是Java SE 8中一个重要的新特性。lambda表达式允许你通过表达式来代替功能接口。 lambda表达式就和方法一样,它提供了一个正常的参数列表和一个使用这些参数的主体(body,可以是一个表达式或一个代码块)。原创 2018-09-08 15:16:32 · 246 阅读 · 0 评论