文章分类 - 编程语言
摘要:1. 概述 1)c++11以前,有左值和右值概念,c++11以后引入了右值引用,因此产生了纯右值和将亡值的概念。 2)左值、右值、将亡值是指值的“类别”,而左值引用和右值引用是值的“类型”。例如,右值引用也可能是一个“左值”(即由一个左值去引用了一个右值)。 2.表达式和值类别 1)表达式 由运算符
阅读全文
posted @ 2022-08-26 14:28
Cheung-10
摘要:1. JVM类加载 JVM类加载采用按需求加载模式,也就是说只有在用到该类时,才会将对应的class类文件加载到内存中并生成class对象。JVM在加载类时采用双亲委派机制,即将加载请求交给父类处理。 2. 双亲委派机制 1)如果类加载器收到了加载请求,它会优先将请求委托到父类加载器去执行。 2)如
阅读全文
posted @ 2022-08-23 14:32
Cheung-10
摘要:1.条件变量 使用条件变量的目的是实现多个线程间的同步操作。条件不满足时,相关线程会一直被阻塞。 条件变量的本质是一个线程间共享的全局变量。 通常包括两个操作:线程等待条件变量成立而挂起、另一个线程使条件变量成立而唤醒被阻塞的线程。 条件变量使用总是和一个互斥锁相结合。通常是mutex。并且使用un
阅读全文
posted @ 2022-04-06 09:20
Cheung-10
摘要:1.内联 inline内联是告诉编译器变量或者函数将会在多个地方使用。 1)变量 在多个编译单元(cpp和h文件中)出现同名内联的符号时,编译器会选择一个作为唯一版本并且传递给所有编译单元。这样做的好处是,可以避免多个文件包含同一个变量造成的冲突。 2)函数 建议对代码量较小的函数进行内联。 一般情
阅读全文
posted @ 2022-03-29 21:25
Cheung-10
摘要:new和malloc都是在堆上开辟新的空间给变量使用。delete和free则都是释放指针指向的堆空间。 1)new 和 delete是关键字,而malloc和free是函数调用,前者效率更高。 2)new在开辟空间时可以初始化变量,而malloc不行。如果是类类型,那么new会调用构造函数,mal
阅读全文
posted @ 2022-03-29 16:57
Cheung-10
摘要:单例模式和多例模式都是对象模式的一种。即对某些对象的全局实例化数量。 单例模式:一个类的对象在整个系统中只有一份实例,其他地方使用时需要通过类的静态get方法调用。例如后台中需要保存全局数据的某些类,亦或是controller这样负责处理相同事务的类。 多例模式:一个类的对象在整个系统中可以有多个实
阅读全文
posted @ 2022-03-27 19:41
Cheung-10
摘要:1. Java集合框架 java的集合包括List、Set、Map。 一个实际可用的集合往往继承或实现了多个接口或类。例如RandomAccess(意味着可以随机访问)、Deque(意味着可以作为双端队列使用)、Iterator(意味着可以以迭代器的方式遍历集合)、List(意味着可以进行列表操作)
阅读全文
posted @ 2022-03-15 21:48
Cheung-10
摘要:1. 虚函数 1)定义类时,在成员函数前面加上virtual修饰符,可以让这个函数成为虚函数。 2)虚函数需要在基类中有实现。否则就仅仅只是一个函数声明,而无法被继承(无论子类是否覆盖它)。 3)虚函数的作用是使得程序员可以使用基类的指针(或引用)调用子类方法,是多态的一种表现。 4)同函数名的函数
阅读全文
posted @ 2022-02-20 19:16
Cheung-10
摘要:参考博客: https://blog.csdn.net/lu597203933/article/details/8992687 1. 函数重载 同一个类中,函数名相同,但是参数列表或者参数类型不同。 也就是说有多个同名的函数,在调用时,会根据函数名、参数名、参数类型来决定调用哪一个。 2. 函数覆盖
阅读全文
posted @ 2022-02-20 17:31
Cheung-10
摘要:迭代器 C++中访问顺序和关联容器元素的中介变量。作用类似于指针。 1. 迭代器可以分为四类: 1)正向迭代器 iterator 2)正向常量迭代器 const_iterator 3)反向迭代器 recerse_iterator 4)常量反向迭代器 const_reverse_iterator 2.
阅读全文
posted @ 2022-02-20 15:34
Cheung-10
摘要:1.lambda 表达式形式:[函数对象参数] (操作符重载函数参数) mutable 或 exception 声明 -> 返回值类型 {函数体} 1)对象参数(即变量捕获条件) 空。不进行捕获。 =。lambda所在范围内的可见局部变量,并以值传递的形式传入。 &。lambda所在范围内的可见局部
阅读全文
posted @ 2022-02-20 12:05
Cheung-10
摘要:1.lambda表达式 源自于数学中的lambda演算,对应编程语言级别的lambda抽象,一般的作用是快速声明一个匿名函数,作为注册回调、函数句柄等使用。 lambda表达式在主流语言中都存在。例如C++、Java、C#、Python。 1)C++ ISO C++ 11之后加入了lambda表达式
阅读全文
posted @ 2022-02-20 11:42
Cheung-10
摘要:参考博客 https://www.cnblogs.com/xiaoxi/p/6576588.html NIO在JDK1.4中被引入,与IO包作用相似,但由于其主要用到块,因此效率高一些。 IO:面向流、阻塞式 NIO:面向缓冲、非阻塞、有选择器(进行多个Channel的复用) Q:这里所说的“缓冲”
阅读全文
posted @ 2021-10-21 09:46
Cheung-10
摘要:使用由JVM提供的java内置锁的时候,不需要通过Java代码显式地经过对象监视器进行锁的抢占和释放(例如调用某些java并发包或采用synchronized关键字)。 Java对象锁在竞争稍微激烈时会膨胀为重量级锁(基于对象的Mutex Lock),其线程阻塞和唤醒操作会在内核状态和用户态之间切换
阅读全文
posted @ 2021-10-21 09:42
Cheung-10
浙公网安备 33010602011771号