随笔分类 -  Java

摘要:关键字: java对象 引用 Java对象及其引用 关于对象与引用之间的一些基本概念。 初学Java时,在很长一段时间里,总觉得基本概念很模糊。后来才知道,在许多Java书中,把对象和对象的引用混为一谈。可是,如果我分不清对象与对象引用, 那实在没法很好地理解下面的面向对象技术。把自己的一点认识写下 阅读全文
posted @ 2018-08-01 17:23 Andy奥 阅读(2532) 评论(0) 推荐(0)
摘要:一般大家都知道ArrayList和LinkedList的大致区别: 1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。 2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。 3.对于新增和删除 阅读全文
posted @ 2018-04-17 10:25 Andy奥 阅读(499) 评论(0) 推荐(0)
摘要:分布式理论 当我们的单个数据库的性能产生瓶颈的时候,我们可能会对数据库进行分区,这里所说的分区指的是物理分区,分区之后可能不同的库就处于不同的服务器上了,这个时候单个数据库的ACID已经不能适应这种情况了,而在这种ACID的集群环境下,再想保证集群的ACID几乎是很难达到,或者即使能达到那么效率和性 阅读全文
posted @ 2018-03-28 23:46 Andy奥 阅读(249) 评论(0) 推荐(0)
摘要:CAP原则(CAP定理)、BASE理论 CAP原则又称CAP定理,指的是在一个分布式系统中, Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可得兼。 CAP原则是NOSQL数据库的基石。Consistency(一致 阅读全文
posted @ 2018-03-28 21:57 Andy奥 阅读(704) 评论(0) 推荐(0)
摘要:在java中写出完美的单例模式 1. 前言 单例(Singleton)应该是开发者们最熟悉的设计模式了,并且好像也是最容易实现的——基本上每个开发者都能够随手写出——但是,真的是这样吗? 作为一个Java开发者,也许你觉得自己对单例模式的了解已经足够多了。我并不想危言耸听说一定还有你不知道的——毕竟 阅读全文
posted @ 2018-03-28 21:10 Andy奥 阅读(334) 评论(0) 推荐(0)
摘要:1.ZooKeeper是什么?ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终,将简单易用的接口和性能高效、功能稳定的系统提供给用户2.ZooKeep 阅读全文
posted @ 2018-03-27 22:44 Andy奥 阅读(162) 评论(0) 推荐(0)
摘要:int和Integer的区别 1、Integer是int的包装类,int则是java的一种基本数据类型 2、Integer变量必须实例化后才能使用,而int变量不需要 3、Integer实际是对象的引用,当new一个Integer时,实际上是生成一个指针指向此对象;而int则是直接存储数据值 4、I 阅读全文
posted @ 2018-03-27 15:10 Andy奥 阅读(157) 评论(0) 推荐(0)
摘要:HashMap实现原理及源码分析 哈希表(hash table)也叫散列表,是一种非常重要的数据结构,应用场景及其丰富,许多缓存技术(比如memcached)的核心其实就是在内存中维护一张大的哈希表,而HashMap的实现原理也常常出现在各类的面试题中,重要性可见一斑。本文会对java集合框架中的对 阅读全文
posted @ 2018-03-19 16:17 Andy奥 阅读(266) 评论(0) 推荐(0)
摘要:ZooKeeper学习第七期--ZooKeeper一致性原理 一、ZooKeeper 的实现 1.1 ZooKeeper处理单点故障 我们知道可以通过ZooKeeper对分布式系统进行Master选举,来解决分布式系统的单点故障,如图所示。 图 1.1 ZooKeeper解决单点故障 那么我们继续分 阅读全文
posted @ 2018-01-16 23:01 Andy奥 阅读(1623) 评论(0) 推荐(0)
摘要:http://825635381.iteye.com/blog/2276077 http://www.importnew.com/27326.html //面试题 http://blog.csdn.net/zw19910924/article/details/78254267 //线上服务运行时间长 阅读全文
posted @ 2018-01-14 21:46 Andy奥 阅读(381) 评论(0) 推荐(0)
摘要:转载两篇不错的文章: 第一篇: 前言 HashMap是我们平时开发过程中用的比较多的集合,但它是非线程安全的,在涉及到多线程并发的情况,进行put操作有可能会引起死循环,导致CPU利用率接近100%。 [java] view plain copy final HashMap<String, Stri 阅读全文
posted @ 2018-01-14 16:00 Andy奥 阅读(451) 评论(0) 推荐(0)
摘要:深入理解Java中的String 一、String类 想要了解一个类,最好的办法就是看这个类的实现源代码,来看一下String类的源码: public final class String implements java.io.Serializable, Comparable<String>, Ch 阅读全文
posted @ 2018-01-10 21:40 Andy奥 阅读(327) 评论(0) 推荐(0)
摘要:高并发分布式系统中生成全局唯一Id汇总 数据在分片时,典型的是分库分表,就有一个全局ID生成的问题。单纯的生成全局ID并不是什么难题,但是生成的ID通常要满足分片的一些要求: 1 不能有单点故障。 2 以时间为序,或者ID里包含时间。这样一是可以少一个索引,二是冷热数据容易分离。 3 可以控制Sha 阅读全文
posted @ 2018-01-09 20:27 Andy奥 阅读(427) 评论(0) 推荐(0)
摘要:IO的方式通常分为几种,同步阻塞的BIO、同步非阻塞的NIO、异步非阻塞的AIO。 一、BIO 在 JDK1.4出来之前,我们建立网络连接的时候采用BIO模式,需要先在服务端启动一个ServerSocket,然后在客户端启动Socket来对服务 端进行通信,默认情况下服务端需要对每个请求建立一堆线程 阅读全文
posted @ 2018-01-09 12:20 Andy奥 阅读(366) 评论(0) 推荐(0)
摘要:对象的创建 一个简单的创建对象语句Clazz instance = new Clazz();包含的主要过程包括了类加载检查、对象分配内存、并发处理、内存空间初始化、对象设置、执行ini方法等。 主要流程如下: 1. 类加载检查 JVM遇到一条new指令时,首先检查这个指令的参数是否能在常量池中定位到 阅读全文
posted @ 2018-01-09 11:30 Andy奥 阅读(267) 评论(0) 推荐(0)
摘要:一、分布式数据一致性 在分布式系统中,为了保证数据的高可用,通常会将数据保留多个副本(replica),这些副本会放置在不同的物理的机器上。 (1)什么是数据一致性 在数据有多份副本的情况下,如果网络、服务器或者软件出现故障,会导致部分副本写入成功,部分副本写入失败。这就造成各个副本之间的数据不一致 阅读全文
posted @ 2018-01-07 15:07 Andy奥 阅读(49771) 评论(5) 推荐(2)
摘要:Java类初始化的顺序经常让人犯迷糊,现在本文尝试着从JVM的角度,对Java非继承和继承关系中类的初始化顺序进行试验,尝试给出JVM角度的解释。 非继承关系中的初始化顺序 对于非继承关系,主类InitialOrderWithoutExtend中包含了静态成员变量(类变量)SampleClass 类 阅读全文
posted @ 2018-01-07 14:12 Andy奥 阅读(662) 评论(0) 推荐(2)
摘要:一、顺序查找 条件:无序或有序队列。 原理:按顺序比较每个元素,直到找到关键字为止。 时间复杂度:O(n) 二、二分查找(折半查找) 条件:有序数组 原理:查找过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜素过程 结束; 如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元 阅读全文
posted @ 2018-01-04 10:54 Andy奥 阅读(824) 评论(0) 推荐(0)
摘要:线程间的通信方式 ①同步 这里讲的同步是指多个线程通过synchronized关键字这种方式来实现线程间的通信。 ②while轮询的方式 ③wait/notify机制 ④管道通信就是使用java.io.PipedInputStream 和 java.io.PipedOutputStream进行通信 阅读全文
posted @ 2017-12-29 10:03 Andy奥 阅读(853) 评论(0) 推荐(0)
摘要:1. 什么是阻塞队列? 阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。这两个附加的操作是:在队列为空时,获取元素的线程会等待队列变为非空。当 队列满时,存储元素的线程会等待队列可用。阻塞队列常用于生产者和消费者的场景,生产者是往队列里添加元素的线程,消费者是从队列里拿元素的线程 阅读全文
posted @ 2017-12-28 13:28 Andy奥 阅读(507) 评论(0) 推荐(0)