- 博客(6)
- 收藏
- 关注
原创 类加载子系统
类加载器JVM的类加载器有两种,分为C++编写和java编写。除了启动类加载器(Bootstrap ClassLoader)由C++编写,其他均有Java编写的。Java编写的类加载器都继承自类java.lang.ClassLoader。当然,也可以自定义类加载器。各个类加载器的加载关系和加载类如图所示:其中, 启动类加载器是由C++编写的,通过java程序去看时显示的是null,因此启动类加载器无法被Java程序调用。启动类加载器是没有实体的,它没有对应的类,JVM将C++处理类加载的一套逻辑定义未启
2020-08-12 16:32:47
154
原创 c++中的auto关键字
作用auto等同于C#的var。从其初始表达式推断声明的变量的类型。用于编译器已声明变量的初始化表达式,或使用lambda表达式参数来推导。除非确实需要使用转换,否则都需要用auto。它拥有可靠性、性能(不进行任何转换)、可用性(拼写错误)、效率(代码量)。需要注意的是auto只代表类型或类,无法代表指针、引用等。所以可以加入修饰符表达这些。语法auto 声明初始项;* [ ](auto 参数 , auto 参数) {};例子auto A = {1,2};//list<int>
2020-08-05 15:12:11
202
原创 c++中的this关键字
作用this关键字与其他语言相同,将对象本身作为默认参数传递到类或结构体的非静态方法,用以访问类的其他属性或方法。但是c++比其他语言好理解,因为this代表的是对象的地址,而非对象本身。其他语言不能使用地址,就说本身实在难以理解。例子void Date::setMonth(int mn){ month = mn; this->month = mn; (*this).month = mn;}上面函数体里的三句话是等同的。总结1.this指针不可赋值。2.const修饰的函数
2020-08-05 14:49:14
594
原创 c++中的new关键字
作用new 关键字为对象或数组对象分配内存空间,并将其指针返回。语法[::] new [placement] new-type-name [new-initializer][::] new [placement] ( type-name ) [new-initializer]其中 placement代表重载new可用参数,一般未sizeof()和地址。 通过 ::new指定全局运算符new和 T::operator new 使用 T类重写的new。实际使用如果没有分配成功,那么就返回nu
2020-08-05 14:34:12
383
原创 c++中的template关键字
作用template是c++ 泛型编程的实现。对于强类型语言,里面所有的类型都是需要程序员指定或编译器去推断的。但是存在这样一种情况,有些算法或数据结构与数据类型无关,比如链表里面的元素可以是任意一种类型,每次使用都有大量重复的代码,只有数据类型不同,所以 c++泛型解决了这个问题。原理当每次使用模板函数或类时,编译器将用具体类型替换占位符,生成具体类或函数,这个过程被称作模板实例化,然后与其他类或函数操作无异。使用在要使用的类或定义:template <类型名 占位符[,类型名 占位符]&
2020-08-05 06:58:06
953
原创 Jvm的类加载过程
Jvm的类加载概要java类在jvm中存在形式java的类加载过程加载概要本文主要说明Java的类在jvm中的存在形式和类加载过程。java类在jvm中存在形式jvm由c++语言实现的,每个java的class都会对应c++中的相应的类的实例。这些c++类的实例存储Java类的元数据信息,比如方法信息,字段信息,常量池和静态变量等。其中c++的类模型如图所示:每个java类都会对应一个c++的子类。java的类加载过程java的类加载过程从.class文件加载到内存中到最后被卸载,一共包括如
2020-08-03 09:23:18
100
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人