首先放一张Java异常层次结构图: 错误(Error)和异常(Exception)是不同的。 Error(错误):是程序无法处理的错误,表示运行应用程序中较严重问题。大多数错误与代码编写者执行的操作无关,而表示代码运行时JVM(Java虚拟机)出现的问题。例如,Java虚拟机运行错误(Virtual MachineError),当JVM不再有继续执行操作所需要的内存资源时,将出现OutOfMemoryError。这些异常发生时,Java虚拟机(JVM)一般会选择线程终止。 Exception(异常):是程序本身可以…
我们知道,C语言中,write和printf都可以完成向屏幕输出的任务。 但是write是不带缓冲的输出,printf是带缓冲的输出。当它们二者混用时,就会出现一些意料之外的问题。 请看下面的代码 #include <stdio.h> #include <unistd.h> int main(){ printf("1"); write(STDOUT_FILENO, "2", 1); printf("3"); write(STDOUT_FILENO, "4", 1); printf("5\n"…
Testing levels Unit testing 单元测试 测试某一小部分代码的正确性,尤其是测试某个函数。 Integration testing 集成测试 The combined execution of 2 or more classes, packages, components, subsystems that have been created by multiple programmers or programming teams. System testing 系统测试 测试一整个已经集成好…
软件构造的实质:Transformation between different views(不同视图之间的转换) Multi-dimensional software views 按阶段分:build and run-time views 按动态性分:moment and period views 按构造对象的层次分:code and component views Transformation between different views Nothing -> Code Code -> Component B…
Maven的基本概念 Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information. 使用Maven可以方便地进行项目依赖管理、打包、…
目录 - 新建项目 - 添加项目到Git - 复习Git命令行操作 - 在eclipse中使用git的基本操作 - 在eclipse中使用git push - eclipse中Junit的使用 新建项目 首先在eclipse中新建一个Java project,取名为ExamplePrj。 注意在创建项目时可以选择项目路径、JRE版本,这里我们都选择默认设置。然后直接Finish。 这里默认会创建一个module-info,直接取默认名字,Create即可。 这一步仍然点击默认的open。 创建成功,在Package…
7.6 buf 有 m.o 外部 .data bufp0 有 swap.o 全局 .data bufp1 有 swap.o 局部 .bss incr 有 swap.o 局部 .text count 有 swap.o 局部 .bss swap 有 swap.o 全局 .text temp 无 7.7 在bar5.c中声明x的时候使用static ,使其链接为内部链接: /* bar5.c */ static double x; void f() { x = -0.0; } 7.8 A. (a) REF(main.1)…
3.58 long decode2(long x, long y, long z){ //x in %rdi, y in %rsi, z in %rdx y -= z; x *= y; long ret = y; ret <<= 63; ret >>= 63; ret ^= x; return ret; } 3.59 3.60 long loop(long x, int n){ //x in %rdi, n in %esi long result =0; long mask; for (ma…
近期在做CSAPP的homework时碰到一些题目,代码中不允许使用if语句,于是聪明的同学们想出了一个巧妙的办法,利用C语言中与运算符&&的\"短路\"特性完成了这个任务。 例如,如果C语言原语句是 if(x > y) a = x; 为了去掉这个if,可以使用以下的一行语句 (x > y) && (a = x) 这样一来,当x > y时,会计算后面的表达式a = x的值,而这个表达式的另一个效果就是给a赋值为x;当x <= y时,由于&&运算…