07 2019 档案

摘要:volatile是轻量级的synchronized,如果volatile变量修饰符使用恰当,它比synchronized的使用和执行成本更低,因为它不会引起线程上下文的切换(线程间的保存到再加载)和调度。 内存可见性多线程操作的时候,一个线程修改了一个变量的值 ,其他线程能立即看到修改后的值。防止重 阅读全文
posted @ 2019-07-31 13:37 Nausicaa0505 阅读(128) 评论(0) 推荐(0) 编辑
摘要:类的生命周期 加载、连接、初始化、使用和卸载 加载,查找并加载类的二进制数据,加载指的是将类的class文件读入到内存,并为之创建一个java.lang.Class对象,也就是说,当程序中使用任何类时,系统都会为之建立一个java.lang.Class对象。 连接,当类被加载之后,系统为之生成一个对 阅读全文
posted @ 2019-07-31 12:50 Nausicaa0505 阅读(287) 评论(0) 推荐(0) 编辑
摘要:堆和栈的平衡 x86的机器上的 进程 最多可以使用 2048mb的内存, 该Java进程剩下的内存由, 方法区,程序计数器,虚拟机栈,本地方法栈 共同使用。 虚拟机栈使用的空间 = 2048- Xmx(最大堆容量)-MaxPermSize (最大方法区容量) - 本地方法栈 我们知道,一个线程对应一 阅读全文
posted @ 2019-07-30 22:09 Nausicaa0505 阅读(147) 评论(0) 推荐(0) 编辑
摘要:CountDownLatch 倒数计数器 一个线程等待其他所有线程 一.CountDownLatch用法 CountDownLatch类位于java.util.concurrent包下,利用它可以实现类似计数器的功能。比如有一个任务A,它要等待其他4个任务执行完毕之后才能执行,此时就可以利用Coun 阅读全文
posted @ 2019-07-30 21:13 Nausicaa0505 阅读(132) 评论(0) 推荐(0) 编辑
摘要:前序遍历: 先输出父节点,再遍历左子树和右子树中序遍历: 先遍历左子树,再输出父节点,再遍历右子树后序遍历: 先遍历左子树,再遍历右子树,最后输出父节点小结: 看输出父节点的顺序,就确定是前序,中序还是后序。 创建如下图二叉树并写出其遍历、查找、删除方法。 创建二叉树 先创建HeroNode结点 p 阅读全文
posted @ 2019-07-30 16:05 Nausicaa0505 阅读(354) 评论(0) 推荐(0) 编辑
摘要:1、数组 2、栈 3、队列 4、链表 5、树 6、散列表 7、堆 8、图 数组 数组是可以再内存中连续存储多个元素的结构,在内存中的分配也是连续的,数组中的元素通过数组下标进行访问,数组下标从0开始。 定义一个数组: int[] data = new int[100]; 优点: 1、按照索引查询元素 阅读全文
posted @ 2019-07-30 13:21 Nausicaa0505 阅读(130) 评论(0) 推荐(0) 编辑
摘要:转自 https://www.cnblogs.com/maybe2030/p/4715035.html 部分内容来自尚硅谷视频 1. 顺序查找 2. 二分查找 3. 插值查找 4. 斐波那契查找 5. 树表查找 6. 分块查找 7. 哈希查找 查找算法 查找定义:根据给定的某个值,在查找表中确定一个 阅读全文
posted @ 2019-07-29 18:17 Nausicaa0505 阅读(141) 评论(0) 推荐(0) 编辑
摘要:排序算法一般分别是冒泡排序、快速排序、直接插入排序、希尔排序、简单选择排序、堆排序、归并排序和基数排序,如果按原理划分,冒泡排序和快速排序都属于交换排序,直接插入排序和希尔排序属于插入排序,而简单选择排序和堆排序属于选择排序。 选择排序 扫描所有元素,将最小的与第一位交换位置,再扫描除第一位以外最小 阅读全文
posted @ 2019-07-29 18:05 Nausicaa0505 阅读(234) 评论(0) 推荐(0) 编辑
摘要:线程池是为突然大量爆发的线程设计的,通过有限的几个固定线程为大量的操作服务,减少了创建和销毁线程所需的时间,从而提高效率。 线程池的工作原理 先判断线程池中核心线程池所有的线程是否都在执行任务。如果不是,则新创建一个线程执行刚提交的任务,否则,核心线程池中所有的线程都在执行任务,则进入第2步; 判断 阅读全文
posted @ 2019-07-26 16:44 Nausicaa0505 阅读(143) 评论(0) 推荐(0) 编辑
摘要:java.util.concurrent. locks包结构如下 Lock 在Lock接口出现之前,java程序主要是靠synchronized关键字实现锁功能的,而java SE5之后,并发包中增加了lock接口,它提供了与synchronized一样的锁功能。虽然它失去了像synchronize 阅读全文
posted @ 2019-07-26 15:28 Nausicaa0505 阅读(497) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2019-07-26 14:39 Nausicaa0505 阅读(2) 评论(0) 推荐(0) 编辑
摘要:java多线程相关类的实现都在Java的并发包concurrent,concurrent包主要包含3部分内容。 第一个是atomic包,里面主要是一些原子类,比如AtomicInteger、AtomicIntegerArray等; 第二个是locks包,里面主要是锁相关的类,比如ReentrantL 阅读全文
posted @ 2019-07-26 11:41 Nausicaa0505 阅读(185) 评论(0) 推荐(0) 编辑
摘要:JVM调优的常见命令工具包括: 1)jps命令用于查询正在运行的JVM进程, 2)jstat可以来查看垃圾回收的情况,特别是fullgc,如果发现fullgc比较频繁,那么就得进行调优了,实时显示本地或远程JVM进程中类装载、内存、垃圾收集、JIT编译等数据 3)jinfo用于查询当前运行这的JVM 阅读全文
posted @ 2019-07-26 11:11 Nausicaa0505 阅读(398) 评论(0) 推荐(0) 编辑
摘要:特性 ActiveMQ RabbitMQ RocketMQ Kafka 单机吞吐量 万级,吞吐量比RocketMQ和Kafka要低了一个数量级 万级,吞吐量比RocketMQ和Kafka要低了一个数量级 10万级,RocketMQ也是可以支撑高吞吐的一种MQ 10万级别,这是kafka最大的优点,就 阅读全文
posted @ 2019-07-26 10:51 Nausicaa0505 阅读(569) 评论(0) 推荐(0) 编辑
摘要:浅析Mysql索引数据结构演变 https://zhuanlan.zhihu.com/p/69181161 磁盘IO与预读 磁盘IO的性能开销远大于内存IO, 每次查找数据时把磁盘IO次数控制在一个很小的数量级,最好是常数数量级。 考虑到磁盘IO是非常高昂的操作,计算机操作系统做了一些优化,当一次I 阅读全文
posted @ 2019-07-26 10:45 Nausicaa0505 阅读(155) 评论(0) 推荐(0) 编辑
摘要:ZooKeeper 是一个开源的分布式协调服务,由雅虎创建,是 Google Chubby 的开源实现。 分布式应用程序可以基于 ZooKeeper 实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master 选举、配置维护,名字服务、分布式同步、分布式锁和分布式队列等功能 阅读全文
posted @ 2019-07-23 08:38 Nausicaa0505 阅读(203) 评论(0) 推荐(0) 编辑
摘要:CAP原理 一致性(consistency):有的节点上的数据时刻保持同步。对一个写操作,如果系统返回了成功,那么之后到达的读请求都必须读到这个新的数据。 可用性(Availablitity):在集群中一部分节点故障后,集群整体是否还能响应客服端的读写请求。 分区容忍性(partition-tole 阅读全文
posted @ 2019-07-19 16:08 Nausicaa0505 阅读(166) 评论(0) 推荐(0) 编辑
摘要:开始时将表划分为大致相等的两段,然后对每个字表递归调用自身,直到划分为很多只含一个元素的子表,然后控制返回递归调用结构,算法将从两个递归调用中得到两个有序字段,合并为一个有序表。 比如初始数组:[24,13,26,1,2,27,38,15] ①分成了两个大小相等的子数组:[24,13,26,1] [ 阅读全文
posted @ 2019-07-18 20:46 Nausicaa0505 阅读(110) 评论(0) 推荐(0) 编辑
摘要:InnoDb 逻辑存储结构图 从InnoDb 存储引擎的逻辑存储结构看,所有数据都被逻辑地存放在一个空间中,称之为表空间(tablespace)。表空间又由段(segment),区(extent),页(page)组成。页在一些文档中有时候也称为块(block)。 表空间(tablespace) 表空 阅读全文
posted @ 2019-07-18 16:19 Nausicaa0505 阅读(120) 评论(0) 推荐(0) 编辑
摘要:任务非常繁重系统执行不过来,系统负载到一定程度应该选择丢弃一些任务。 有以下几种拒绝策略: Abortpolicy 抛异常 CallerRunsPolicy 让调用者去执行 Discardpolicy 直接丢弃 DiscardoldestPolicy 丢弃队列种最老的任务 阅读全文
posted @ 2019-07-18 10:44 Nausicaa0505 阅读(90) 评论(0) 推荐(0) 编辑
摘要:== . 基本数据类型比较的是值; . 引用类型比较的是地址值。 equals(Object o) 1)不能比较基本数据类型,基本数据类型不是类类型; 2)a.比较引用类型时(该方法继承自Object,在object中比较的是地址值)等同于”==”; Object类中的方法,所以,在每一个java类 阅读全文
posted @ 2019-07-18 10:21 Nausicaa0505 阅读(112) 评论(0) 推荐(0) 编辑
摘要:String s="Hello"; s=s+“world!”;这两行代码执行后,原始的String对象中的内容到底变了没有? 没有。因为String是不可变类(immutable class),不可变类,顾名思义就是说类的实例是不可被修改的。实例的信息是在创建的时候提供,并且在整个生命周期中都不可改 阅读全文
posted @ 2019-07-18 10:08 Nausicaa0505 阅读(266) 评论(0) 推荐(0) 编辑
摘要:ClassLoader的分类有哪些?加载顺序是什么?类加载的顺序又是什么? 答:ClassLoader分为4种:Jvm类加载器(BootstarpClassLoader),Jvm扩展类加载器(extClassLoader),系统类加载器(SystemClassLoader),自定义类加载器(AppC 阅读全文
posted @ 2019-07-17 15:38 Nausicaa0505 阅读(689) 评论(0) 推荐(0) 编辑
摘要:TCP/IP不是一个协议,而是一个协议族的统称。里面包括了IP协议,IMCP协议,TCP协议,以及我们更加熟悉的http、ftp、pop3协议等等。电脑有了这些,就好像学会了外语一样,就可以和其他的计算机终端做自由的交流了。 OSI七层有底向上分别是:物理层、数据链路层、网络层、传输层、会话层、表示 阅读全文
posted @ 2019-07-17 11:17 Nausicaa0505 阅读(218) 评论(0) 推荐(0) 编辑
摘要:synchronized是Java原生提供的用于在多线程环境中保证同步的关键字,底层是通过修改对象头中的MarkWord来实现的。 synchronized锁住的Monitor对象就存在于对象头之中。对象头又分为:Mark Word、指向类的指针、数组长度(数组对象)。 对象头在Hotspot虚拟机 阅读全文
posted @ 2019-07-16 14:52 Nausicaa0505 阅读(154) 评论(0) 推荐(0) 编辑
摘要:Lock 首先要说明的就是Lock,通过查看Lock的源码可知,Lock是一个接口: lock()、tryLock()、tryLock(long time, TimeUnit unit)和lockInterruptibly()是用来获取锁的。 unLock()方法是用来释放锁的。 lock() 首先 阅读全文
posted @ 2019-07-16 13:49 Nausicaa0505 阅读(219) 评论(0) 推荐(0) 编辑
摘要:数据库事务的隔离级别有4种,由低到高分别为Read uncommitted 、Read committed 、Repeatable read 、Serializable 。而且,在事务的并发操作中可能会出现脏读,不可重复读,幻读。下面通过事例一一阐述它们的概念与联系。 Read uncommitte 阅读全文
posted @ 2019-07-15 17:37 Nausicaa0505 阅读(23405) 评论(0) 推荐(7) 编辑
摘要:Hashmap 和hashtable的区别 1 HashMap不是线程安全的 ,HashTable是线程安全的 ,由于非线程安全,效率上可能高于Hashtable。 Hashtable中的方法是同步的,而HashMap中的方法在缺省情况下是非同步的。在多线程应用程序中,不用专门的操作就安全地可以使用 阅读全文
posted @ 2019-07-12 15:35 Nausicaa0505 阅读(177) 评论(0) 推荐(0) 编辑
摘要:在官网下载安装包以后CMD进入mysql安装的目录/bin下, 输入命令:mysql -u root -p 如果忘记密码 输入初始化命令:mysqld --initialize --console 如果仍失败,停止服务net stop mysql; 运行命令:mysqld --console --s 阅读全文
posted @ 2019-07-11 11:24 Nausicaa0505 阅读(165) 评论(0) 推荐(0) 编辑
摘要:为什么需要树这种数据结构 数组存储方式的分析 优点:通过下标方式访问元素,速度快。对于有序数组,还可使用二分查找提高检索速度。 缺点:如果要检索具体某个值,或者插入值(按一定顺序)会整体移动,效率较低 。 链式存储方式的分析 优点:在一定程度上对数组存储方式有优化(比如:插入一个数值节点,只需要将插 阅读全文
posted @ 2019-07-02 14:15 Nausicaa0505 阅读(196) 评论(0) 推荐(0) 编辑

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