
计算机基础
记录跟java相关的计算机基础课程内容
帅到被人砍啊
发表的文章都是个人的小总结未必全对如果有疑问请大虾们多多指教啊
展开
-
递归(二)之求排列组合的结果集
求从1~m中,取出n个数,排列组合的结果集,典型案例就是大乐透,红球区从1~35,取出5个数,不计顺序代码如下:/** * 求从1到m共m个数中取出其中n个的排列组合的结果集,最典型的案例就是大乐透,红球区是从1~35取出5个数 * 写for循环的话,需要写n层for循环,但是n不确定,所以无法直接写for循环,只能通过递归。而递归过程中,因为要记录排列组合的结果,所以内层的循环需要依赖外层循环的值 * 这就需要外层循环将值传入内层,而且从内层中可以层层访问外层值,所原创 2020-11-20 17:31:44 · 231 阅读 · 0 评论 -
递归(一)之java实现排列组合计数
从m个数中随机取出n个数,有多少种组合(忽略顺序)。即Cmn,m为下标,n为上标。公式Cmn = m!/n!/(m-n)!从公式中可以看出实际上就是计算一个数的阶乘,阶乘计算出来了,就是个除法的运算而已。代码如下:/** * 求排列组合 * m为下标, n为上标 * 结果是m!/n!/(m-n)! */ public static double Cmn(int m, int n){ return devide(devide(r原创 2020-11-20 17:15:18 · 1182 阅读 · 0 评论 -
进程、线程、纤程
进程:是操作系统分配资源的基本单位,对于一个应用程序启动,就会开启对应的一个进程,分配一块内存空间。对linux而言,一个进程的内核数据结构是一个PCB(进程描述符 Process Control Block),用来存储进程的相关信息。线程:执行调度的基本单位。一个进程会开启一个或多个线程, 这些线程会共享进程的内存空间,没有线程自己独立的内存空间。在hotspot的jvm中,一个线程,对应操作系统的一个线程。 这个过程对于jvm的应用来讲,应用开启一个线程,会调用jvm底层进行请求操作内核开.原创 2020-11-12 14:52:07 · 81 阅读 · 0 评论 -
CPU内存访问设计
CPU对于内存的访问有两种设计: UMA 和NUMA。UMA: Uniform Memory Access 即统一的内存访问,是指所有的CPU都访问同一个内存空间。如图:劣势: 不容易扩展,CPU数量增多的时候,会有大量的时间耗费在争抢内存空间上。NUMA:Non-Uniform Memory Access 非统一内存访问,是指每个CPU都有优先使用的邻近内存。如图:这样,分配内存的时候,会优先分配该线程所在CPU最近的内存。...原创 2020-11-09 11:31:42 · 179 阅读 · 0 评论 -
一、计算机核心组成及CPU核心组成
1、计算机的核心组成:CPU、内存2、CPU核心组成CPU的组成书上和网上也都有很多介绍,在此只记录跟JAVA相关的核心组成:PC---->Program Counter 程序计数器 用来记录内存中指令的地址,一次只能计数一个线程的指令地址,线程指令切换的时候会额外存储之前执行的线程及指令。Registers -> 寄存器 用来暂时存储CPU计算需要用到的数据。ALU ---> Arithmetic & Logic Unit 是用...原创 2020-11-05 17:12:31 · 2132 阅读 · 0 评论 -
开篇背景
首先,本人不是计算机专业出身,但是又阴差阳错的入了java开发的行业,目前已经做了8年了,当然不全是一线开发,大部分时间也都会涉及管理及业务类。由于自己本身对开发还是比较感兴趣的,所以为了提高自己的能力,报了腾讯课堂的VIP课程进行系统学习。 在此记录,也当做是课堂的总结。不对之处,还望观者指正。...原创 2020-11-05 14:33:01 · 110 阅读 · 0 评论