一文搞懂JVM内存结构+GC
一、jvm是干什么的? 大家都知道java是跨平台语言,一次编译可以在不同操作系统上运行,怎么做到的呢,看下图: javac把写的源代码(java文件),编译成字节码(class文件),字节码部署到linux/windows/..上,被对应的jvm解释成机器码运行,jvm的工作就是这个。 大家都知道,java不需要开发者写代码来申请、释放和管理内存,jvm在运行时帮助我们做了这个事情,即便如此,我们还是需要了解jvm的内存结构,以便排查各种和内存有关的问题,比如oom,性能调优。 二、jvm内
Python 读取txt文本文件
Python的文本文件的内容读取中,有三类方法:read()、readline()、readlines(),这三种方法各有利弊。 https://blog.csdn.net/u011204487/article/details/79273060 read(): read()是最简单的一种方法,一次性读取文件的所有内容放在一个大字符串中,即存在内存中 file_object = open('test.txt') //不要把open放在try中,以防止打开失败,那么就不用关闭了
try:
设计原则六:KISS 原则和 YAGNI 原则
KISS 原则 英文描述的几个版本: Keep It Simple and Stupid. Keep It Short and Simple. Keep It Simple and Straightforward. 其意就是:尽量保持简单。 KISS 原则是保持代码可读和可维护的重要手段。 KISS 原则中的“简单”并不是以代码行数来考量的。代码行数越少并不代表代码越简单,我们还要考虑逻辑复杂度、实现难度、代码的可读性等。 而且,本身就复杂的问题,用复杂的方法解决,并不违背 KISS 原则。
Tiny-shell (二)
Tiny-shell(二): 简单实现重定向 概述 上一讲我们实现了一个极简的shell,可以执行用户输入的简单命令,这一讲我们实现shell中的重定向。 在计算机领域,重定向是大多数命令行解释器所具有的功能,包括各种可以将标准流重定向用户规定地点的Unix shells。类Unix操作系统的程序可以透过dup2(2)系统调用完成重定向,或者透过缺少一些灵活性但是更高一级层次的freopen(3)和popen(3)来完成。(来自Wikipedia) 体现在shell中: cat < sourc
【2020-03-01】本周学习日志
本周公司项目做迁移赶进度,工作日除了因工作需要了解了一下shiro的原理之外,基本没有其他方面的涉猎。受疫情影响,比较好的一点是早上可以九点半到公司,早上醒来可以多磨蹭半个小时,,, 这一周地铁上的时间没利用好,下周这一块要改善。 周末两天,周六上午面试,下午又看了一下Eureka源码,自己实操了一下集群搭建。然后又是写月度绩效又是补周五未完成的代码,晚上九点多才搞完。正好又看龙哥在群里招朋唤友搞绝地求生,遂上西方世界感受了一下虐怪与被虐的情怀。 周日下午开始学习dubbo源码,这是第二次看源
LeetCode 290. 单词规律
首先看pattern中字母的个数与str中单词的个数是否相等。如果不相等则直接返回0,如果相等则建立哈希映射, 每个字母对应一个不同的单词。 对于pattern和str相同位置上的单词和字母有以下判断: 1如何字母上还没有值,则与str上对应单词联系起来,进入下一位置 2如过字母上已经有值,且就是当前位置单词,此时还需做一个内部判断这个值是否已在其他键上已存在,如果有,则返回0(例如 abba, dog,dog,dog),如果没有,进入下一位置。 3如果字母上已经有值,但不是当前位置上的单词,
js的字符串方法(2)
substr() 类似于 slice()。 不同之处在于第二个参数规定被提取部分的长度。 1 var str = "Apple, Banana, Mango";
2 var res = str.substr(7,6); res 的结果是: Banana 如果省略第二个参数,则该 substr() 将裁剪字符串的剩余部分 1 var str = "Apple, Banana, Mango";
2 var res = str.substr(7); res 的结果是: Banana, Mango 如
设计原则SOLID五:依赖反转原则
控制反转(IOC:Inversion Of Control) 框架提供了一个可扩展的代码骨架,用来组装对象、管理整个执行流程。程序员利用框架进行开发的时候,只需要往预留的扩展点上,添加跟自己业务相关的代码,就可以利用框架来驱动整个程序流程的执行。 这里的“控制”指的是对程序执行流程的控制,而“反转”指的是在没有使用框架之前,程序员自己控制整个程序的执行。在使用框架之后,整个程序的执行流程可以通过框架来控制。流程的控制权从程序员“反转”到了框架。 依赖注入(DI:Dependency Injec
ObjectARX的介绍:
ObjectARX 1. ObjectARX的介绍: ObjectARX是AutoDesk公司针对AutoCAD平台上的二次开发而推出的一个开发软件包,它提供了以C++为基础的面向对象的开发环境及应用程序接口,能真正快速的访问AutoCAD图形数据库。 与以往的 AutuCAD 二次开发工具 AutoLISP 和ADS不同,ObjectARX应用程序是一个DLL(动态链接库),共享AutoCAD的地址空间,对AutoCAD进行直接函数调用。所以,使用ARX编程的函数的执行速度得以大大提
告诉你:传统测试和敏捷测试的区别!!!(比较全的解答,一看便明白)
1、什么是传统测试 传统项目开发模型如下: 由于瀑布模型对于软件的需求分析与设计阶段考虑不足,导致可能会出现严重的设计问题,最后交付到客户手里才会被发现,所以V模型就考虑到这点,针对开发的各个过程都会有相应的测试环节,比如用户需求会对应验收测试,需求分析和系统设计会对应确认测试和系统测试等等。但是缺点也是显而易见的,跟瀑布模型一样,测试过程还是放在了最后环节,虽然可以满足客户的需求,但是问题都只能到最后阶段才能被发现,必然会导致上面瀑布模型发生相同情况,也就是成本和时间的增加,所以V模型充其量
统计从1到N之间自然数中包含有多少个2?如1-20中,有2,12,20这三个自然数,有3个2
1 public static void main(String[] args) {
2 long start = System.currentTimeMillis();
3 int sum1 = count(20);
4 long end = System.currentTimeMillis();
5
6
7 System.out.println("统计的数量:" + sum1);
8 Sys
VIM 常用操作命令
VIM编辑 正常模式 vim + 文件 进入时就是正常模式 ESC 按 ESC 可回到正常模式 i 进入编辑模式,末行提示“插入”,可插入文本 I 或 shift + i 进入编辑模式,光标停在当前行开头 a 进入编辑模式,光标会停留在前一次光标的下一个位置 A 进入编辑模式,光标停留在当前行的结尾 o 进入编辑模式,向下插入一行,光标停在开头 O 或 shift + o 进入编辑模式,向上插入一行,光标停在开头 hjkl 光标上左右下移动 p 粘贴,向下插入一行并粘贴 yy 复制当前行 3+
【日語視聴説2】第2回:3月2日
みなさん、おはようございます。 日語視聴説2の第2回目の授業です。 今日は 『佐々木夫婦の仁義なき戦い』の続きを見ていきます。 *前回の宿題は全員の提出が確認できました。 お疲れさまでした! 【宿題】 ニュースを聞いて下の①~⑤に入る言葉を記入してください。 また、中国のリサイクル事情とそれに対する意見を教えてください。 宿題はメールで提出してください。締め切りは金曜日です。 件名【日語視聴説2】3月2日宿題名前〇〇 『佐々木夫婦の仁義なき戦い』 『佐々木夫婦の仁義なき戦い』A:台詞 台詞を確
No Talk login:
优秀的“缜密逻辑”---talk is cheap,show me the code. ~ pyhton @app.route('/login', methods=['POST', 'GET']) def login(): error = None if request.method == 'POST': if valid_login(request.form['username'], request.form['password']): return log_the_user_in(requ
今日推荐
周排行