文章分类 - JAVA
摘要:目录 1、Java数组介绍 2、用类封装数组实现数据结构 3、分析数组的局限性 4、总结 目录 1、Java数组介绍 2、用类封装数组实现数据结构 3、分析数组的局限性 4、总结 上篇博客我们简单介绍了数据结构和算法的概念,对此模糊很正常,后面会慢慢通过具体的实例来介绍。本篇博客我们介绍数据结构的鼻
阅读全文
posted @ 2018-04-02 00:28
SessionBest
摘要:目录 1、数据结构 一、数据结构的基本功能 二、常用的数据结构 2、算法 一、算法的五个特征 二、算法的设计原则 3、总结 目录 1、数据结构 一、数据结构的基本功能 二、常用的数据结构 2、算法 一、算法的五个特征 二、算法的设计原则 3、总结 一、数据结构的基本功能 二、常用的数据结构 一、算法
阅读全文
posted @ 2018-04-02 00:28
SessionBest
摘要:在阅读本文之前,先向大家强烈推荐一下周志明的《深入理解Java虚拟机》这本书。 前些天面试了阿里的实习生,问到关于Dalvik虚拟机能不能执行class文件,我当时的回答是不能,但是它执行的是class转换的dex文件。当面试官继续问,为什么不能执行class文件时,我却只能回答Dalvik虚拟机内
阅读全文
posted @ 2018-04-02 00:27
SessionBest
摘要:1、最近最少使用算法LRU (Least recently used,最近最少使用) 【实现】:最常见的是使用一个链表保存缓存数据 1、新数据插入到链表头部; 2、每当缓存命中(即缓存数据被访问),将数据移动到链表头部; 3、当链表满的时候将链表尾部的数据丢弃; 【代价】 命中时需要遍历链表,找到命
阅读全文
posted @ 2018-04-02 00:27
SessionBest
摘要:排序一直以来都是让我很头疼的事,以前上《数据结构》打酱油去了,整个学期下来才勉强能写出个冒泡排序。由于下半年要准备工作了,也知道排序算法的重要性(据说是面试必问的知识点),所以又花了点时间重新研究了一下。 排序大的分类可以分为两种:内排序和外排序。在排序过程中,全部记录存放在内存,则称为内排序,如果
阅读全文
posted @ 2018-04-02 00:26
SessionBest
摘要:1、根据IP分流 2、根据URL分流 3、根据权重 4、根据响应时间 NGINX负载均衡分发请求的几种方式 1、轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。 2、weight 指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情
阅读全文
posted @ 2018-04-02 00:25
SessionBest
摘要:1. 背景 最近用户反馈提交的SQL查询一直处于长时间等待状态,经过排查观察,发现部分查询请求丢失,导致用户提交的查询未被正常接收,继而长时间无响应。 现象:集市SQL控制台提交10个简单SQL查询 -> 消息发送方:发送10条消息至消息队列 -> 消息消费方:只消费了7条消息 2. 现状 2.1.
阅读全文
posted @ 2018-04-02 00:22
SessionBest
摘要:前言 最近很久没有写博客了,一方面是因为公司事情最近比较忙,另外一方面是因为在进行 CAP 的下一阶段的开发工作,不过目前已经告一段落了。 接下来还是开始我们今天的话题,说说分布式事务,或者说是我眼中的分布式事务,因为每个人可能对其的理解都不一样。 分布式事务是企业集成中的一个技术难点,也是每一个分
阅读全文
posted @ 2018-04-02 00:21
SessionBest
摘要:分布式领域CAP理论,Consistency(一致性), 数据一致更新,所有数据变动都是同步的Availability(可用性), 好的响应性能Partition tolerance(分区容忍性) 可靠性定理:任何分布式系统只可同时满足二点,没法三者兼顾。忠告:架构师不要将精力浪费在如何设计能满足三
阅读全文
posted @ 2018-04-02 00:20
SessionBest
摘要:更新缓存策略 失效:应用程序从cache取数据,没有得到,则从数据库取数据,然后将数据放入cache 命中:应用从cache取数据,若取到则返回 更新:把数据更新到数据库,然后使cache失效 借用网上两张图 有没有其他策略? 读操作容易理解,现在讨论一下写的操作 如果先使cache失效,后更新数据
阅读全文
posted @ 2018-04-02 00:19
SessionBest
摘要:转自:https://my.oschina.net/hosee/blog/607677 其他资料: https://my.oschina.net/zhupanxin/blog/269037 摘要: 本系列基于炼数成金课程,为了更好的学习,做了系列的记录。 本文主要介绍: 1.各种同步控制工具的使用
阅读全文
posted @ 2018-04-02 00:18
SessionBest
摘要:示例程序:启动两个线程,每个线程中让静态变量count循环累加100次。 [java] view plain copy public class TestThreadAtomic { private static Integer count = 0; public static void main(
阅读全文
posted @ 2018-04-02 00:17
SessionBest
摘要:CAS原理: 通过查看AtomicInteger的源码可知, `private volatile int value; public final boolean compareAndSet(int expect, int update) { return unsafe.compareAndSwapI
阅读全文
posted @ 2018-04-02 00:16
SessionBest
摘要:假设某银行只有10个职员。该银行的业务流程分为以下4个步骤: 1) 顾客填申请表(5分钟); 2) 职员审核(1分钟); 3) 职员叫保安去金库取钱(3分钟); 4) 职员打印票据,并将钱和票据返回给顾客(1分钟)。 我们看看银行不同的工作方式对其工作效率到底有何影响。 1 BIO方式 每来一个顾客
阅读全文
posted @ 2018-04-02 00:15
SessionBest
摘要:模板方法模式:定义一个算法中的操作框架,而将一些步骤延迟到子类中。使得子类可以不改变算法的结构即可重定义该算法的某些特定步骤。(Define the skeleton of an algorithm in an operation, deferring some steps to subclasse
阅读全文
posted @ 2018-04-02 00:14
SessionBest
摘要:定义:一个软件实体(类、模块或函数)应当对扩展开放,对修改关闭。 也就是说软件实体应尽量在不修改原有代码的情况下进行扩展。问题:在软件的生命周期内,因为变化、升级和维护等原因需要对软件原有代码进行修改时,可能会给旧代码中引入错误, 也可能会使我们不得不对整个功能进行重构,并且需要重新测试。方案:当软
阅读全文
posted @ 2018-04-02 00:14
SessionBest
摘要:直接上代码: 简单工厂模式: 一个抽象类 abstract class AbsClass { //抽象方法:提供一些列的算法操作 public abstract void acceptCash(string org); } 2个实现类 //继承自抽象类 class A:AbsClass { //详细
阅读全文
posted @ 2018-04-02 00:13
SessionBest
摘要:1. 算法如下:根据快速排序划分的思想 (1) 递归对所有数据分成[a,b)b(b,d]两个区间,(b,d]区间内的数都是大于[a,b)区间内的数 (2) 对(b,d]重复(1)操作,直到最右边的区间个数小于100个。注意[a,b)区间不用划分 (3) 返回上一个区间,并返回此区间的数字数目。接着方
阅读全文
posted @ 2018-04-02 00:12
SessionBest
摘要:概述 JVM很重要。尤其是GC算法。 程序计数器、虚拟机栈、本地方法栈。这几个区域完全不用管回收问题,因为方法结束或者线程结束的时候他们所占用的内存就自然跟着一起释放了,3个区域随线程而生,随线程而灭。所以我们只需要管堆和方法区。尤其是堆,因为一个接口中的多个实现类需要的内存可能不一样,一个方法中的
阅读全文
posted @ 2018-04-02 00:10
SessionBest
摘要:类加载器 加载类的开放性 类加载器(ClassLoader)是Java语言的一项创新,也是Java流行的一个重要原因。在类加载的第一阶段“加载”过程中,需要通过一个类的全限定名来获取定义此类的二进制字节流,完成这个动作的代码块就是类加载器。这一动作是放在Java虚拟机外部去实现的,以便让应用程序自己
阅读全文
posted @ 2018-04-02 00:10
SessionBest

浙公网安备 33010602011771号