一、普通new运算符和delete运算符 1.new运算符实际上由两个步骤组成: ①分配所需的内存:通过调用适当库的new运算符函数来分配内存(实际上所有new运算符都是由malloc完成,自己重载new时也应该用malloc分配内存,delete都由free完成) ②在分配的内存上建立对象或初始化 ...
分类:
其他好文 时间:
2021-06-30 18:30:57
阅读次数:
0
可见性与原子性 ⑴可见性:一个线程对变量的修改,能够即使被其他线程"看到" ⑵原子性:不可再分的操作,即不能拆分成多步的操作。比如"a = 1;"和 "return a;"这样的操作都具有原子性。类似"a += b"这样的操作不具有原子性, 在 某些JVM中"a += b"可能要经过这样三个步骤: ...
分类:
其他好文 时间:
2021-06-30 18:19:33
阅读次数:
0
Java虚拟机会预先为加载到内存中的每个类维护一个方法表(Method Table),其中列出了所有类中所有方法的签名。 现在有2个类A和B,其中,B是A的子类,和一个B类型的对象x,当调用x.f(args)时: 1.获取候选方法 首先,编译器会查看对象的类型和被调用的方法名。编译器会在在B类及其超 ...
分类:
编程语言 时间:
2021-06-29 15:32:19
阅读次数:
0
Java程序运行机制 编译型 先编译 解释型 再解释 程序运行机制 源程序(.java文件)→Java编译器→字节码(.class文件) →类装载器→字节码校验器→解释器→操作系统平台 ...
分类:
编程语言 时间:
2021-06-28 21:09:58
阅读次数:
0
编译器会给类的非静态成员函数添加一个this参数。 int square(int num) { return num * num; } class Hehe{ public: int square(int num) { return num * num; } }; int main() { int ...
分类:
其他好文 时间:
2021-06-28 20:58:16
阅读次数:
0
一、解释型语言和编译型语言 1、概述 计算机不能直接理解任何除机器语言以外的语言,所以必须要把程序员所写的程序语言翻译成机器语言才能执行程序。程序语言翻译成机器语言的工具,被称为翻译器。 ①翻译器翻译的方式有两种:一个是编译,另一种是解释。两种方式之间的区别在于翻译的时间点不同; ②编译器是在代码执 ...
分类:
其他好文 时间:
2021-06-28 20:36:43
阅读次数:
0
首先,将这些函数声明为内联函数,在语法上没有错误。因为inline同register一样,只是建议编译器这样操作,编译器并不一定真正的内联。 register关键字:这个关键字请求编译器尽可能的将变量存在CPU内部寄存器中,而不是通过内存 寻址访问,以提高效率 构造函数和析构函数声明为内联函数是没有 ...
分类:
其他好文 时间:
2021-06-28 19:04:13
阅读次数:
0
/* 对于byte/short/char三种类型来说,如果右侧赋值的数值没有超过范围, 那么javac编译器将会自动隐含的为我们不上一个(byte)(short)(char)。 1如果右侧没有超过左侧的范围,编译器补上强转。 2如果右侧超过左侧的范围,那么编译器直接报错。 在给变量进行赋值的时候,如 ...
分类:
其他好文 时间:
2021-06-28 18:30:32
阅读次数:
0
常量 字符串常量 字符 例如:'f','i','z','a'编译器为每个字符分配空间。 'f' 'i' 'z' 'a' 字符串 例如:"hello"编译器为字符串里的每个字符分配空间以'\0'结束。 'h' 'e' 'l' 'l' 'o' '\0' 基本类型 整数型: short int,int,l ...
分类:
编程语言 时间:
2021-06-28 17:42:50
阅读次数:
0
我们先定义一个房地产类 class HomeForSale{} 我们认为一个房地产应该是独一无二的,所以不希望他被拷贝或者赋值。所以我们希望下面的语句是错误的,编译器应该不予通过 int main() { HomeForSale h1; HomeForSale h2; HomeForSale h3( ...
分类:
编程语言 时间:
2021-06-24 18:14:54
阅读次数:
0