Mark

Java NIO之Buffer的使用

痞子三分冷 提交于 2020-08-11 09:34:58
目录 Buffer 简介 Buffer 的核心属性 Buffer 的创建与使用( ByteBuffer 为例) 总结 参考资料 Buffer简介 缓冲区( Buffer ):本质上是一个数组,用于临时保存、写入以及读取数据。在 Java NIO 中, 该内存块包含在 NIO Buffer 对象当中, NIO Buffer 对象还提供了一组接口来访问该内存块。 根据数据类型的不同, Java 为除了 boolean 类型之外的其余7种基本类型提供了相应类型的缓冲区, 分别是 ByteBuffer 、 CharBuffer 、 ShortBuffer 、 IntBuffer 、 LongBuffer 、 FloatBuffer 、 DoubleBuffer 。他们都继承自抽象类 Buffer 类,他们的管理方式也都几乎一样。 UML 类图如下: Buffer的核心属性 BUffer 类的部分实现如下: public abstract class Buffer { // Invariants: mark <= position <= limit <= capacity private int mark = -1; private int position = 0; private int limit; private int capacity; //构造方法 Buffer(int

2021网易互联网秋招内推批前端笔试

ぐ巨炮叔叔 提交于 2020-08-11 08:09:53
时间 2020.8.8 ,跟今年春招网易互娱的暑期实习题型一样,四道算法编程题,考试时间100分钟。 第一道很简单不多提,其他先 mark 下来,后面有空再慢慢总结答案(太菜了)。 第二道 题目 有 E / EM / M / MH / H 五种难度的题目,分别表示的难度为 easy / easy or medium / medium / medium or hard / hard 。其中 EM可以作为 E 或 M 难度的题目( MH 同理)。现每举行一场比赛需要 E、M、H 难度的题目各一道,求最多能举行多少场比赛。 输入 一行输入5个数字,用空格分隔。分别表示为五种难度的题目的数量,此处输入表示 E 有2道,EM 有2道,M 有1道,以此类推。 2 2 1 2 2 输出 输出最多能举行的比赛数。此处表示输入的题目最多能举行3场比赛,分别为 E EM H 、E MH M 、EM M MH。 3 第三道 题目 用面积为2*1 和 2*3的地毯铺一块面积为 2*n 的地板,地毯可以旋转但不能相互重叠、不能铺到砖外,同时砖也不能留缝隙,要刚刚好被地毯铺满,求有几种铺法。 输入 输入n,表示砖面积为2*3 3 输出 输出有几种铺法。此时全部用2*1有3种,全部用2*3有1种,一共4种。 4 第四道 题目 有n个教授聚会,相互探讨学术,可以认可对方的学术成果,也可以认可自己的学术成果

小师妹学JVM之:GC的垃圾回收算法

别来无恙 提交于 2020-08-11 06:08:05
简介 JVM的重要性不言而喻了,如果把java的应用程序比作一辆跑车,那么JVM就是这辆车的发动机,没有它,java程序就成了空中楼阁,无根浮萍。而在JVM中有一块内存区域叫做运行时数据区域,存储了运行时所需要的所有对象,而Heap Area则是其中最大的一块。 内存毕竟不是无限的,所以就需要一种机制来将不再使用的对象进行回收,这种机制就是今天我们要讲的GC。 更多精彩内容且看: 区块链从入门到放弃系列教程-涵盖密码学,超级账本,以太坊,Libra,比特币等持续更新 Spring Boot 2.X系列教程:七天从无到有掌握Spring Boot-持续更新 Spring 5.X系列教程:满足你对Spring5的一切想象-持续更新 java程序员从小工到专家成神之路(2020版)-持续更新中,附详细文章教程 对象的生命周期 小师妹:F师兄,你相信这个世界有轮回吗? 师兄我是一个坚定的无神论者,活在当下就好了,何必操心后面的轮回呢? 小师妹:F师兄,这个你就不懂了,意识是组成脑的原子群的一种组合模式,我们大脑的物质基础和一块石头没有什么不同。当我们掌握大脑的组合方式,然后重构,我们的意识就重现了,这就是轮回。这可是量子理论中提到的观念哦。 哇,小师妹什么时候这么厉害了,都开始探讨这么高深的话题了。F师兄我实在是跟不上节奏啊。 小师妹,F师兄,我是怕你尴尬

MIT 6.828

你。 提交于 2020-08-11 05:37:37
目录 实验总结 0. 实验准备 1. file.c 2. buddy.c 实验总结 本次实验用时约两个小时,修改了 xv6 中大量恶臭代码。 测试结果: $ make grade alloctest: OK (7.2s) alloctest: OK (5.8s) usertests: OK (84.3s) Score: 100/100 0. 实验准备 实验指导链接 上来直接: $ cd xv6-riscv-fall19 $ git checkout alloc 实验分为两个子任务: 给 xv6 的 vfs 加上 malloc(之前是静态内存池) 修改 xv6 的 buddy allocator,通过维护一对 buddy 的 B1_is_free XOR B2_is_free 这个占用状态,节约了 ~1M 内存。 感觉是重在阅读和理解 xv6 代码,这两个 lab 代码量都很小。 1. file.c 把 filealloc() 中遍历 ftable.file 的代码和 fileclose() 相应的释放代码替换为 bd_malloc() 即可。 我的修改 2. buddy.c 这个 buddy allocator 中维护了两个 bitset ,一个存是否分裂 bd_sizes[k].split ,另一个存是否已占用 bd_sizes[k].alloc 。 只需要不断查找 bit_*

精选BAT Java面试突击1000道面试题详解:JVM篇.建议收藏

前提是你 提交于 2020-08-11 04:52:07
JVM Java内存区域 说一下 JVM 的主要组成部分及其作用? 说一下 JVM 运行时数据区 深拷贝和浅拷贝 说一下堆栈的区别? 队列和栈是什么?有什么区别? HotSpot虚拟机对象探秘 对象的创建 为对象分配内存 处理并发安全问题 对象的访问定位 句柄访问 直接指针 内存溢出异常 Java会存在内存泄漏吗?请简单描述 垃圾收集器 简述Java垃圾回收机制 GC是什么?为什么要GC 垃圾回收的优点和原理。并考虑2种回收机制 垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收? Java 中都有哪些引用类型? 怎么判断对象是否可以被回收? 在Java中,对象什么时候可以被垃圾回收 JVM中的永久代中会发生垃圾回收吗 说一下 JVM 有哪些垃圾回收算法? 标记-清除算法 复制算法 标记-整理算法 分代收集算法 说一下 JVM 有哪些垃圾回收器? 详细介绍一下 CMS 垃圾回收器? 新生代垃圾回收器和老年代垃圾回收器都有哪些?有什么区别? 简述分代垃圾回收器是怎么工作的? 内存分配策略 简述java内存分配与回收策率以及Minor GC和Major GC 对象优先在 Eden 区分配 大对象直接进入老年代 长期存活对象将进入老年代 虚拟机类加载机制 简述java类加载机制? 描述一下JVM加载Class文件的原理机制 什么是类加载器

关于程序员的电影,作为一个资深程序员,最少要看过这几部!

做~自己de王妃 提交于 2020-08-11 02:50:00
不同的行业领域中很多时候都分享着共同的思想和理念。比如,大量的计算机编程中涉及到的概念都被运用到了电影里。有些概念出现在电影里后变得如此之酷,甚至反过来能帮助我们程序员更好的理解这些概念。一个资深程序员,在他学习编程乃至日常休闲的时候,也会找几部这样的电影来看,我们一起来看看吧! 1 黑客帝国 媒体和技术批判理论,99年的电影,上个世纪的思考,豆瓣9.0分~ 2 源代码 人死亡后大脑也能保持8分钟的回路,这个回路类似于容器,可装入其他记忆,可编程,这就是源代码区··· ··· 3 月球 “我唯一的朋友是一个又一个自己,静观他们短暂的灿烂,目睹他们暴毙于面前” 最深的孤独不是独自一个人吃一顿又一顿的饭,而是对爱的依恋落空。 看完之后最大的疑问就是:记忆是移植的,意识是怎么产生的? 4 人工智能 也许是人类终将面对的问题,人工智能和人的真正边界是什么?让人忍不住泪目的电影。 5 超能查派 程序员迪恩一直致力于制造出完全的人工智能机器人,直到某天,他的研究取得突破性进展,可是并未得到老板的支持。不甘心失败的迪恩偷偷将一台不久前被打坏的机械警察带出公司··· ··· 6 我是谁:没有绝对安全的系统 本杰明是一个这样的人:三次元现实世界中,他是一个十足的屌丝&Loser,难以找到存在感,没有时尚感、没有朋友,也没有女朋友。但是二十五岁的他却是一个的电脑极客,拥有对数字技术不可思议的天赋

非洲南部近400头大象离奇死亡!无精打采,原地转圈,至今原因成谜

核能气质少年 提交于 2020-08-10 23:56:53
   在非洲南部的 “大象王国” 博茨瓦纳(Botswana),已有近 400 头大象离奇死亡,从五月至今,大象死亡原因依然是一个谜。   今年 5 月,一些环保人士在飞越非洲南部博茨瓦纳的奥卡万戈(Okavango)时,看到了一幅令人不安的画面:多达 169 头大象死掉了。   在 6 月的第二次飞行中,他们发现了更多的尸体,死亡总数达到 356 头。据《纽约时报》引述这些环保人士的叙述,这些大象有些似乎是在行走或奔跑时突然死亡的,但它们的象牙依然在,这表明偷猎者可能不是大象离奇死亡的罪魁祸首。   但是, 如今专家们依然几乎没有任何线索可以确定这些大象的死因。 是因为中毒?还是因为自然疾病而死亡?原因不得而知。   “随着死亡大象数量的增长,可能出现更多的死亡,规模会继续扩大。” 总部位于肯尼亚的环保组织 Save the Elephants 的研究主管克里斯·索利斯(Chris Thouless)说。“死亡并不是有趣的事情,但它会降临到所有生物身上。”      图|离奇死亡的大象。(来源:路透社)    一些环保人士认为,近期发生的大象离奇死亡事件很可能是自然原因导致,但其他人却表达了更多的担忧。   “在博茨瓦纳,大象正面临着一场巨大的危机。” 英国非营利组织 National Park rescue 的救援行动主管马克·希利(Mark Hiley)说。

第一部分软件测试综述——软件测试背景【软件测试】(美)Ron Patton中文电子版

柔情痞子 提交于 2020-08-10 21:24:24
截取自:第一部分软件测试综述——软件测试背景【软件测试】(美)Ron Patton中文电子版(有需要的可以关注我) 第一部分软件测试综述 对手的程序死掉叫崩溃。自己的程序死掉叫“身体不良反应(idiosyncrasy)"。 通常,崩溃之后会显示“ID02”这样的信息。“ID”是idiosyncrasy 的缩写,后 面的数字表示产品应该测试多少个月。 Guy Kawasaki, “Macintosh之路”我喜欢最后期限。我特别喜欢当它 逝去时留下的尖叫声。 一Douglas Adams,“星河之旅搭乘指南”作者 第1章软件测试背景 1947年,计算机还是有几个房间大的庞大机器,操纵大大小小的机械电路 和发光管子。当时的艺术作品是Mark I1, 一个由哈佛大学制造的庞然大物。技 术人员正在进行整机试运行,突然之间,它停止了工作。他们爬上去找原因试图 修好它,努力把这台巨大的计算机腹内的一组继电器接通。 继电器接通后,它显 然重新回到系统中,有声有色、充满活力。 计算机软件缺陷诞生了。对,它被消灭了,而我们从此认识了它。 欢迎阅读软件测试的第1章。本章讲述软件缺陷和软件测试的历史。 本章的重点包括 ●软件缺陷如何 影响我们的生活 ●软件缺陷是什么, 为什么会出现 ●软件测试者是谁,职责是什么 1.1 臭名昭著的软件错误案例研究 人们很容易想当然地接受软件

JVM速补知识,还不来抱大腿恶补一下吗?

泄露秘密 提交于 2020-08-10 20:13:14
概述 1、什么是虚拟机? Java 虚拟机,是一个可以执行 Java 字节码的虚拟机进程。Java 源文件被编译成能被 Java 虚拟机执行的字节码文件( .class )。 跨平台的是 Java 程序(包括字节码文件),,而不是 JVM。JVM 是用 C/C++ 开发的,是编译后的机器码,不能跨平台,不同平台下需要安装不同版本的 JVM 。 2、JVM 组成部分 类加载器,在 JVM 启动时或者类运行时将需要的 class 加载到 JVM 中。 内存区,将内存划分成若干个区以模拟实际机器上的存储、记录和调度功能模块,如实际机器上的各种功能的寄存器或者 PC 指针的记录器等。 执行引擎,执行引擎的任务是负责执行 class 文件中包含的字节码指令,相当于实际机器上的 CPU 。 本地方法调用,调用 C 或 C++ 实现的本地方法的代码返回结果。 1、类加载器 从类被加载到虚拟机内存中开始,到卸御出内存为止,它的整个生命周期分为7个阶段,加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使用(Using)、卸御(Unloading)。其中验证、准备、解析三个部分统称为连接。 7个阶段发生的顺序如下: 加载(Loading)、验证(Verification)、准备

每天进步一点点:“JVM性能调优解析”,分享JVM进阶面试题77问!

空扰寡人 提交于 2020-08-10 17:31:53
前言 Java虚拟机有自己完善的硬件架构,如处理器、堆栈等,还具有相应的指令系统。 Java虚拟机本质上就是一个程序,当它在命令行上启动的时候,就开始执行保存在某字节码文件中的指令。Java语言的可移植性正是建立在Java虚拟机的基础上。任何平台只要装有针对于该平台的Java虚拟机,字节码文件(.class)就可以在该平台上运行。这就是“一次编译,多次运行”。 Java虚拟机不仅是一种跨平台的软件,而且是一种新的网络计算平台。该平台包括许多相关的技术,如符合开放接口标准的各种API、优化技术等。Java技术使同一种应用可以运行在不同的平台上。Java平台可分为两部分,即Java虚拟机(Java virtual machine,JVM)和Java API类库。 分享详细解析77道Java面试时常问的JVM题,希望对各位有所帮助,另外我针对当前互联网面试总结一些资料给大家,文末有领取方式(诚意满满) 由于文章篇幅问题,我这里就不一一解析了,需要获取全部答案解析的可以 关注公众号【风平浪静如码】获取文档! 1、java中会存在内存泄漏吗,请简单描述。 2、64 位 JVM 中,int 的长度是多数? 3、Serial 与 Parallel GC 之间的不同之处? 4、32 位和 64 位的 JVM,int 类型变量的长度是多数? 5、Java 中 WeakReference 与