关闭

Java内存管理:深入Java内存区域

运行数据区图程序计数器是一块较小的内存空间,就是用来放置每一个线程所执行的字节码的行号,就是用来保存每个线程执行到了那里( 操作系统时间片轮转),等下一次改线程来的时候会接着上次执行的地方,继续执行。像分支、循环、跳转、异常处理等都需要依赖这个功能来处理。每个线程都有自己的程序计数器,互不影响,这是线程所私有的。如果线程正在执行的是一个native方法,那么这个计数器的值为空。虚拟机栈也是线程所私有...
阅读(17) 评论(0)

Java四种引用包括强引用,软引用,弱引用,虚引用。

Java四种引用包括强引用,软引用,弱引用,虚引用。 Java四种引用包括强引用,软引用,弱引用,虚引用。   强引用: 只要引用存在,垃圾回收器永远不会回收 Object obj = new Object(); //可直接通过obj取得对应的对象 如obj.equels(new Object()); 而这样 obj对象对后面new Object的一个强引用,只有当obj...
阅读(15) 评论(0)

随机变量及其分布

一、随机变量研究随机变量主要取决于两点。一是随机变量可能取哪些值;二是它以多大的概率取这些值。概率分布函数通过定义可以看出,概率分布函数描述的就是某个范围内概率的累计,分布函数是概率密度函数从负无穷到正无穷上的积分;离散型随机变量随机变量至少有两种不同的类型:一种是随机变来那个的所有可能取得的值是有限多个或可列无限多个,这种随机变量成为离散型随机变量;另一种随机变量的取值不止是可列,而是可连续到某个...
阅读(33) 评论(0)

泊松分布和指数分布

一、泊松分布日常生活中,大量事件是有固定频率的。 * 一本书一页上的印刷错误数目 * 一手机某一时间段内收到信息的次数 * 某放射物体在一定时间内放射出粒子数目 * 一定的时间区间内进入某书亭的人数 * 某医院平均每小时出生3个婴儿 * 某公司平均每10分钟接到1个电话 * 某超市平均每天销售4包xx牌奶粉 * 某网站平均每分钟有2次访问 它们的特点就是,我们可以预估这些事件的总...
阅读(2060) 评论(1)

数据结构——双向链表

双向链表定义双链表就是在单链表结点上增添了一个指针域,指向当前结点的前驱。这样就可以方便的由其后继来找到其前驱,而实现输出终端结点到开始结点的数据序列。 同样,双链表也分为带头结点的双链表和不带头结点的双链表,情况类似于单链表。带头结点的双链表 head->next 为null的时候链表为空。不带头结点的双链表head为null的时候链表为空。 代码展示 public static void m...
阅读(37) 评论(1)

概率论—高中基础知识

概率论包括随机事件及其概率、随机变量及其概率分布、多维随机变量及其概率分布、随机变量的数字特征及大数定律和中心极限定理。共五章,重点第一、二章,数理统计包括样本与统计量,参数估计和假设检验、回归分析。重点是参数估计。 一、加法原则 引例一,从北京到上海的方法有两类:第一类坐火车,若北京到上海有早、中、晚三班火车分别记作火 ₁、火₂、火₃,则坐火车的方法有3种;第二类坐飞机,若北京到上...
阅读(86) 评论(1)

概率论—全概公式&逆概公式(贝叶斯公式)

全概公式 定义: B是一个事件,则有 证明: 技巧性的问题: 例1 袋中有5个球,其中有3个红球,2个白球,从中每次取出一个球(不放回)用A表示第一次取到红球,B表示第二次取到红球,求 (1)P(A); (2)P(B) 解 (1)用古典概型n=5,r=3 P(A) = 3/5 (2)直接求P(B)很困难,因为B发生的...
阅读(103) 评论(0)

概率论—随机事件与随机事件的概率

随机事件 引例一,掷两次硬币,其可能结果有:{上上;上下;下上;下下} 则出现两次面向相同的事件A与两次面向不同的事件B都是可能出现,也可能不出现的。 引例二,掷一次骰子,其可能结果的点数有:{1,2,3,4,5,6} 则出现偶数点的事件A,点数≤4的事件B都是可能出现,也可能不出现的事件。 从引例一与引例二可见,有些事件在一次试验中,有可能出现,也可能不出现,即它没有确定...
阅读(58) 评论(0)

数据结构指——单向链表

什么是链表链表是线性表的一种,所谓的线性表包含顺序线性表和链表,顺序线性表是用数组实现的,在内存中有顺序排列,通过改变数组大小实现。而链表不是用顺序实现的,用指针实现,在内存中不连续。意思就是说,链表就是将一系列不连续的内存联系起来,将那种碎片内存进行合理的利用,解决空间的问题。 所以,链表允许插入和删除表上任意位置上的节点,但是不允许随即存取。链表有很多种不同的类型:单向链表、双向链表及循环链表...
阅读(70) 评论(0)

ArrayList指单链表分析

原理分析ArrayList是以数组为基础,通过动态扩容的方式,来实现了一个链表的操作,下面就对其源码讲解和分析。集合的元素和大小 /** * 默认的数组的大小 */ private static final int DEFAULT_CAPACITY = 10; /** * 空的数组实例 */ private static final...
阅读(59) 评论(0)

快速排序

快速排序算法原理快速排序是对冒泡排序算法的一种改进,因为在冒泡排序算法中,每次都需要两两比较,而快速排序则通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,这样就可以比冒泡排序更快一点,把大小分层。代码展示public static void quickSort(int[] a, int left, int...
阅读(43) 评论(0)

冒泡排序

冒泡排序原理冒泡排序算法的运作如下:(从后往前) 1. 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 2. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 3. 针对所有的元素重复以上的步骤,除了最后一个。 4. 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较 5. 需要注意的是,每一次的比较都可以得到一个...
阅读(44) 评论(0)

二分查找法

二分查找法又称折半查找法,适用于不经常变动而查找频繁的有序列表。首先假设表中元素是按照升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功,否则利用中间位置记录将表分成前后两个子表,如果中间位置记录的关键字大于查找的关键字,则进一步查找前一个子表,否则进一步查找后一个子表。重复以上过程,直到找到满足条件的记录。代码展示public static int binarySearc...
阅读(63) 评论(1)

选择排序

选择排序基本原理:每一次从待排序的数据元素中选出最小的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。代码展示 /** * 选择排序 * 1.找到数组中最小的元素的索引,与0位置交互 * 2.接着找其余部分的索引的数字,与1位置交换 * * @param a */ public static void select(int[] a) { for (int i = 0;...
阅读(116) 评论(1)

插入排序算法

插入排序算法 本插入排序算法是每一步把数据都插入到一个已经排好序的数列中,本篇只介绍直接插入算法。 例如有一组分散的数字:2 8 5 1 7 6,那么整个的排序过程如下 2 2 8 2 5 8 *1 2 5 8 1 2 5 7 8 1 2 5 6 7 8 代码展示 斜体 Ctrl + I 引用 Ctrl + Q 插入链接 Ctrl + L 插入代码...
阅读(91) 评论(1)
311条 共21页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:563741次
    • 积分:13848
    • 等级:
    • 排名:第950名
    • 原创:301篇
    • 转载:9篇
    • 译文:1篇
    • 评论:3154条
    博客专栏