自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(123)
  • 收藏
  • 关注

原创 【C++】string类下的begin,end,rbegin,rend的用法

begin语法:iterator begin();解释:begin()函数返回一个迭代器,指向字符串的第一个元素.end语法:iterator end();解释:end()函数返回一个迭代器,指向字符串的末尾(最后一个字符的下一个位置).rbegin语法:const reverse_iterator rbegin();解释:rbegin()返回一个逆向迭代器,指向字符串的最后一个字符。rend语法:const reverse_iterator rend();解释:rend()函数返回一

2020-08-21 15:05:05 1606

原创 通过PriorityQueue类构造大顶堆(最大堆)和小顶堆(最小堆)

概念回顾:1、大顶堆:头部为堆中最大的值2、小顶堆:头部为队中最小的值3、PriorityQueue:一个具有优先级的队列,该优先级使得队列始终按照自然顺序进行排序,队列的头部为最小值。构造小顶堆:PriorityQueue small=new PriorityQueue<>();构造大顶堆:PriorityQueue small=new PriorityQueue&l...

2020-01-13 01:32:17 4673 2

原创 Queue接口的offer方法与add方法的相同点和不同点

相同点:在成功执行操作的前提下,都可以实现向队列末端中添加一个元素不同点:当操作不成功时(列队已满),offer方法返回false,add方法返回异常...

2019-12-28 17:07:26 552

原创 重温经典Java核心技术-卷1 构造器的作用

重温经典Java核心技术-卷1 构造器的作用构造器无参数的构造器构造器构造器与类同名,在构造类的对象时,构造器会运行,,以便将实例域初始化为所希望的状态。无参数的构造器很多类都包含一个无参数构造器,当类中没有编写构造器时,系统会提供一个无参数构造器,类中的实例(对象、数值、布尔值)会被设置为以下默认值类中的实例默认值对象null数值0布尔值fals...

2019-12-13 13:07:29 187

原创 res.add(new ArrayList<String>(item)); 和 res.add(item)区别

item定义:ArrayList item=new ArrayList();共同点:都是向res这个ArrayList中填加了一个名为item的链表不同点:res.add(new ArrayList(item))开辟一个独立地址,地址中存放的内容为item链表,后续item的变化不会影响到resres.add(item)将res尾部指向了item地址,后续item内容的变化会导致re...

2019-11-22 10:18:23 898

原创 2020秋招落幕,加入华为啦

2020秋招结束了,对于我,最终选择了实习的单位,华为。在漫漫3个月的求职月中,经历了各种被拒,到最后逐渐熟能生巧,成为面霸,拿到心仪的offer。走过秋招,我自己的经验是实习要早早开始准备起来,不要忽视它,一份大厂实习可以为秋招大大地加分,并且实习转正地难度远远低于秋招招聘,也算是给自己拿了一份保底offer。我非常建议2021、2022届的学弟学妹从现在开始就开始认真准备起来,做好自己的备战...

2019-10-17 21:26:17 826

转载 四种会话跟踪技术

什么是会话?客户端打开与服务器的连接,发出请求直到服务器响应客户端请求的全过程称之为会话 。为什么需要会话跟踪?浏览器与服务器之间的通信是通过HTTP协议进行通信的,而HTTP协议是”无状态”的协议,它不能保存客户的信息,即一次响应完成之后连接就断开了,下一次的请求需要重新连接,当用户在同一网站的多个页面之间转换时,根本无法确定是否是同一个客户,会话跟踪技术就可以实现这种要求 。会话跟踪的...

2019-09-17 14:18:36 256

原创 OSI七层协议介绍

数据链路层包括了硬件接口和协议ARP,RARP,这两个协议主要是用来建立送到物理层上的信息和接收从物理层上传来的信息。网络层中的协议主要有IP,ICMP,IGMP等,由于它包含了IP协议模块,所以它是所有机遇TCP/IP协议网络的核心。在网络层中,IP模块完成大部分功能。ICMP和IGMP以及其他支持IP的协议帮助IP完成特定的任务,如传输差错控制信息以及主机/路由器之间的控制电文等。网络层掌...

2019-09-13 10:49:24 252

原创 Java 中静态代码块初始化问题

当变量为编译器常量时,编译器会跳过初始化直接读取变量。什么是编译器常量?什么是跳过初始化?编译器常量:public static final String a = “CSDN”;跳过初始化:如跳过static块的读取示例:public class Test { public static void main(String[] args) { System.out...

2019-08-24 16:09:03 626

原创 try catch finally return的执行顺序

常规情况:try{} catch(){}finally{} return;**特殊情况**:try 里面的return可以返回但不能结束方法.catch ,finnally ,或者正常的return才可以结束本方法.因为finnally始终要执行,所以当catch和finnally里都有return ,catch里的这个return不结束方法...

2019-08-24 13:18:14 399

原创 【Java EE】Tomcat的类加载机制

JVM中包括集中类加载器:1 BootStrapClassLoader 引导类加载器2 ExtClassLoader 扩展类加载器3 AppClassLoader 应用类加载器4 CustomClassLoader 用户自定义类加载器在Tomcat中类的加载稍有不同,如下图:1 Bootstrap 引导类加载器加载JVM启动所需的类,以及标准扩展类(位于jre/lib/ext下)...

2019-08-24 13:06:02 152

原创 执行shell脚本的4种方法

1、当前目录执行./test.sh2、绝对路径执行root/src/test.sh3、sh命令执行sh test.sh4、source命令执行source test.sh

2019-08-24 11:34:16 1388

原创 TCP拥塞控制

拥塞控制的常见方法:慢开始(慢启动)、拥塞避免、快重传和快恢复

2019-08-24 11:31:29 123

原创 值类型和引用类型的区别

值类型是现金,引用类型是存折值类型保存在栈上,保存的是对应的数值(由于栈的特点是需要提前确定分配的空间大小,适合保存不经常改变的量)引用类型保存在堆上,保存的是对应的实例的保存地址(堆的特点就是动态编译,比较灵活)值类型:8种基本数据类型引用类型:除了8种基本数据类型的其他类型,如:Interger Double Float String 数组...

2019-08-24 11:04:26 116

原创 堆和栈的特点、区别

堆:**要点1:**堆是一个运行时数据区,类的对象从堆中分配空间。这些对象通过new等指令建立,通过垃圾回收器来销毁。**要点2:**堆的优势是可以动态地分配内存空间,需要多少内存空间不必事先告诉编译器,因为它是在运行时动态分配的。但缺点是,由于需要在运行时动态分配内存,所以存取速度较慢。栈:**要点1:**栈中主要存放一些基本数据类型的变量(byte,short,int,long,flo...

2019-08-24 10:46:57 880

原创 字符串的子串计算方法

字符串的任意片段都是子串:对于字符不重复的长度为n的字符串:子串公式(n*(n+1))/2 + 1-重复计算的字符串数量。示例:字符串的子串,就是字符串中的某一个连续片段。截取一个字符串长度需要一个起始位置和结束位置。字符串“software”有8个字符,可是设置间隔的位置有9个,使用C(9,2)=36即可求得字符串“software”的所有子串。因为空串也是子串,故还需要加上1,总共3...

2019-08-24 10:31:24 18687 4

原创 二叉树中度和结点的关系

k:总度数k+1:总结点数n0:度为0的结点数n1:度为1的结点数n2:度为2的结点数关系式:k=n2*2+n1;k+1=n2+n1+n0;将上面两式相减得到:n0=n2+1;

2019-08-24 10:25:30 4983

原创 类加载器ClassLoader的加载顺序

父类static方法 –> 子类static方法 –> 父类构造方法- -> 子类构造方法

2019-08-24 10:11:29 191

原创 shell脚本如何加权限?

chmod命令:chmod [ugoa…][[±=][rwxX]…][,…],其中[ugoa…]u 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示所有(包含上面三者)。[±=]+ 表示增加权限,- 表示取消权限,= 表示唯一设定权限。[rwxX]r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该档案是个子...

2019-08-24 10:11:03 3824

原创 [C++]关于引用运算符&的使用说明

int fun(String& str)int fun(String& str)中的&表示引用运算符。fun函数表示的是通过引用来进行实参于形参的传递。int fun(String& str),参数是传递的String类对象的引用,可以直接改变传递进来的对象,和传递指针有类似之处,此用法仅适用于C++,并不适用于C语言。...

2019-06-29 22:46:20 3256

原创 [C++]string类定义的字符串,如何用指针指向该字符串的首地址

在C++中,调用#include,可以使用string类来定义字符串string str="hello world";如果我们试图用以下方法,像C语言一样去定义一个指针变量指向首地址,编译器会报错。string str="hello world";char* pstart=str;//编译器会在第二条语句报错解决方法:string var = "hello world";con...

2019-06-29 19:05:12 12334

原创 C++中点运算符和箭头运算符的区别

C++中点运算符和箭头运算符的区别PS:需要快速看结论的,直接看文末总结归纳,需要理解的可以从文首开始看。划重点,先说本质:无论是点运算符(.)还是箭头运算符(->),本质上都是寻址,寻找指定的结构体成员变量的地址,具体在程序中体现为:p->member执行为p+offset_member(目标的内存地址)s.member变成访问&s+offset_member(目标的...

2019-06-13 23:07:14 1359

原创 C++基本的输入输出

iostream该文件定义了 cin、cout、cerr 和 clog 对象,分别对应于标准输入流、标准输出流、非缓冲标准错误流和缓冲标准错误流。iomanip该文件通过所谓的参数化的流操纵器(比如 setw 和 setprecision),来声明对执行标准化 I/O 有用的服务。fstream该文件为用户控制的文件处理声明服务。1、标准输出流(cout)cout 是 iostrea...

2019-06-13 20:09:57 103

原创 [c/c++]栈stack的用法

1、创建一个空的栈对象sstack s;2、将元素ele入stack栈stack.push(ele);3、出栈stack.pop();4、所有元素出栈 // stack<int> s; while(!s.empty()) { s.pop();// 出栈 }5、取栈顶元素(仅仅取值,不将元素从栈顶移除)stack.peek...

2019-06-09 20:06:26 7721

原创 [C++]什么是vector?

vector收录在STL(C++标准库)里,是一种特殊的数据结构,名字叫做“动态数组”或者“不定长数组”,有时也被翻译成“容器”。其实就是一种非静态数组,可以进行修改、增长。一、头文件调用Vector需要使用2个头文件:#includeusing namespace std;二、vector的声明1、需要声明数组中存储的数据类型,格式为:vector <数据类型> 动态数...

2019-06-09 19:09:25 2742 1

转载 [C++]vector类型总结及其基本操作

如何初始化vector对象?1、vector v1 : vector 保存类型为 T 的对象。默认构造函数 v1 为空。2、vector < T > v2 ( v1 ): v2 是 v1 的一个副本。3、vector < T > v3 ( n , i ): v3 包含 n 个值为 i 的元素。4、vector < T > v4 ( n ) : ...

2019-06-09 17:22:36 279

原创 浅谈C语言和C++语言中遇到的字符串结束符的问题

对于C语言字符串的定义:char str[]=“hello world”;对于C++语言字符串的定义:string str=“hello world”;在执行将空格替换为其他字符串的时候,C++定义的字符串似乎会出错,原因是C++中coder不用刻意去考虑“\0”占用的字节,而在C语言中需要coder去考虑“\0”所占用的字节...

2019-06-07 01:59:05 1642

转载 [c++]C语言头文件#include总结

#include<stdio.h>:standard input&output标准输入输出头文件#include<stdlib.h>:standard library标准基本函数库,包涵C,C++最常用的系统函数#include<graphics.h>:图形库,分为像素函数、直线、线型、多变形,填充函数等#include<math.h>...

2019-06-06 21:26:05 2220

原创 [c++]字符串的常见操作(赋值,添加,删除,替换,查找,比较,反向排序)

1.赋值直接来就行:string ss;ss=“aaa”;或者string sa,sb;cin>>sa;sb=sa;2.添加在末尾加字符或字符串直接用加号:string ss;ss+=‘a’;ss+=“aaa”;在中间插入一个字符用ss.insert()函数:ss.insert(ss.begin()+1,‘a’);//在ss[1]之前插入字符a在中间插入一...

2019-06-06 20:25:38 849

原创 辨别公平锁、非公平锁、乐观锁、悲观锁

公平锁先到先得,优先处理先到的进程非公平锁所有进程到达时都会尝试直接获取锁,如果失败则会进入等待序列乐观锁每次去拿数据的时候都认为别人不会修改,所以不会上锁(适用多读少写的场景),实现:通过记录不同时间点的版本数据,并在更新的时候检测数据是否冲突。悲观锁每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁(适用多写少读的场景),实现:采用sychronized关键字等独...

2019-05-23 16:00:24 396

原创 关键字synchronized和volatile的作用以及区别

预备知识:java多线程中的原子性、可见性、有序性(1)原子性:是指线程的多个操作是一个整体,不能被分割,要么就不执行,要么就全部执行完,中间不能被打断。(2)可见性:是指线程之间的可见性,就是一个线程修改后的结果,其他的线程能够立马知道。(3)有序性:为了提高执行效率,java中的编译器和处理器可以对指令进行重新排序,重新排序会影响多线程并发的正确性,有序性就是要保证不进行重新排序(保证...

2019-05-23 15:44:27 429

原创 纪念-收到华为技术有限公司的正式录用通知

晚上收到的短信,接下来要反馈实习入职的时间等具体信息,终于落地!值得纪念的日子,2019年4月28日。

2019-04-28 23:26:33 2124

原创 记实习offer-实习面经-华为技术有限公司

截至2019年4月17日 完成了华为的笔试-测评-技术面-综合面 ,并全部通过,顺利进入华为的录用排序,留帖纪念,具体面经在收到正式offer后更新。

2019-04-18 02:17:08 623 2

原创 华为2019年4月10日实习生笔试题

Q1:题目,输入为一个整数n,代表字符串的个数,n个字符串。要求将每个字符串长度不满8位的,在末尾补0补到8位,长度超过8位的,取前八位输出,剩余部分继续末尾补0补到8位,所有字符串最后按照ASCII字符表升序排列。//样例输入:3 123456789 asfwe Argeg456//样例输出:12345678 90000000 Argeg456 asfwe000100%通过率AC代码...

2019-04-10 22:56:38 1072

翻译 Java各种集合以及特点归纳总结

在Java中有List、 Set、 Map三大集合,其中List与Set是继承自Collection,而Map不是。文末有三大集合的汇总总结,有需要的可以直接拉到文末。List集合:1、ArrayList(最常用)底层是动态数组,故优缺点同数组:查询快,增删慢线程不安全,效率高2、LinkedList底层是链表,(巧记:和数组优缺点互补)查询慢,增删快线程不安全,效率高3、Vec...

2019-03-29 22:07:47 5089 2

原创 浅谈java集合中HashSet的底层实现----哈希表

java中有三大集合List、Set、,Map。其中HashSet是Set集合的实现,它的底层实现是通过哈希表。哈希表唯一依赖两个方法:HashCode(),equals();向HashSet集合中放入新元素的执行顺序:1、调用Hashcode()函数,看是否已经有相同的哈希值2、如果没有则放入该新元素,如果有则调用equals()函数逐个比对,如果没有,则放入,如果有,则不执行添加元素...

2019-03-29 21:35:59 468

原创 TreeMap和TreeSet的区别与相同点

相同点:1、都是有序集合2、TreeMap是TreeSet的底层结构3、运行速度都比hash慢区别:1、TreeSet只存储一个对象,而TreeMap存储两个对象Key和Value(仅仅key对象有序)2、TreeSet中不能有重复对象,而TreeMap中可以存在3、TreeMap的底层采用红黑树的实现,完成数据有序的插入,排序。PS:红黑树的特点:1:每个节点要么是红色/黑色。...

2019-03-21 13:55:20 4772

转载 Java集合总结系列:Set接口及其实现

一、Set接口Set 接口与 List 接口相比没有那么多操作方法,比如:1、List 接口能直接设置或获取某个元素的值,而Set接口不能。2、List 接口能直接在指定位置删除、增加元素,而Set接口不能。3、List 接口有 listIterator 方法,可以获得 ListIterator 对象,而 Set 接口不能。Set 只能通过 iterator 迭代的方式获取元素。对比一下...

2019-03-21 13:29:48 213

转载 采用动态规划思想将字符串A转换为B(通过添加、删除、替换三种方式)

题目描述对于不同的字符串,我们希望能有办法判断相似程度,我们定义了一套操作方法来把两个不相同的字符串变得相同,具体的操作方法如下:1 修改一个字符,如把“a”替换为“b”。2 增加一个字符,如把“abdd”变为“aebdd”。3 删除一个字符,如把“travelling”变为“traveling”。思路:开一个二维数组d[i][j]来记录a0-ai与b0-bj之间的编辑距离,要递推时,...

2019-03-21 01:01:56 4046

转载 Java的增强for循环

引用资料:http://www.runoob.com/java/java-loop.htmljava的增强for循环格式:(增强for循环主要用于数组)for(声明语句 : 表达式){//代码句子}声明语句:声明变量类型表达式:表达式是要访问的数组名,或者是返回值为数组的方法。实例:public class Test {public static void main(Stri...

2019-03-20 16:58:35 864

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除