- 博客(39)
- 资源 (4)
- 收藏
- 关注
原创 C++ 指针与引用的区别
参考 https://blog.youkuaiyun.com/study__linux/article/details/51352206相同点: 他们都是和地址有关系,指针指向一块内存,它的内容是所指内存的地址;引用是某块内存别名不同点: 1)指针是一个实体 它在栈中有自己使用空间,但是引用没有2)引用必须初始化,指针不用但是最好初始化3) 指针使用时必须加*,引用不用;4)引...
2018-08-12 23:47:45
235
原创 C++ 中resize与reserve的区别
resize(int num);//重新指定容器的长度num,若容器变长,则以默认值填充新位置。如果容器变短,则末尾超出容器长度的元素被删除reserve(int len) ;//预留len个元素长度,预留位置不初始化,元素不可访问...
2018-08-12 23:47:28
358
原创 C++ set/multiset/map/multimap 区别与联系
set/multiset/map/multimap他们都是关联容器,优点是提供了对元素的快速访问,也允许插入新元素,但不能指定元素的插入位置(原因是关联容器通常用于确定数据放置位置的算法,以便能快速检索信息)关联容器通常是使用某种树实现的。树是一种数据结构,其根节点链接到一个或两个节点,而这些节点又链接到一个或两个节点,从而形成分支结构。像链表一样,节点使得添加或删除数据比较...
2018-08-12 23:47:22
826
原创 C++ 引用的基本概念
/*1 引用没有定义, 是一种关系型声明。声明它和原有某一变量(实体)的关系。故 而类型与原类型保持一致, 且不分配内存。与被引用的变量有相同的地址。2 声明的时候必须初始化, 一经声明, 不可变更。3 可对引用, 再次引用。多次引用的结果, 是某一变量具有多个别名。4 & 符号前有数据类型时, 是引用。其它皆为取地址*/引用一定要初始化#include <...
2018-08-12 23:47:04
296
原创 C++ 引用的本质
1 引用和常指针很相像2 在研究引用的时候 可以将引用理解为一个常指针3 理解引用时候 引用理解为一个变量的别名 // 如果说t是一个常指针, *t 就是指针指向内存空间 (*t).id = 100//当你要试图修改或者获取已经初始化的引用的时候, 编译器会有一个隐藏的*的操作 ...
2018-08-12 23:46:54
217
原创 辨清java堆
新生代是存放新生的对象或年龄不大的对象 老年代则存放老年对象新生代分为eden区、s0区、s1区,s0和s1也被称为from 和 to区域 他们是两块大小相等并且可以互换角色的空间。绝大多数情况下 对象首先分配在eden区,在一次新生代回收后 如果对象还存活,则会进入s0区或s1区 之后每经过一次新生代回收,如果对象存活则它的年龄就加1,当对象达到一定的年龄后 则进入老年代...
2018-07-21 20:03:08
207
原创 C++ 引用作为函数参数的意义
//Teacher & t = t1; t 就是t1 的一个别名//理解引用时候 就当变量别名来理解#include <iostream>using namespace std;struct Teacher{ int id; char name[64];};void printT(Teacher t)//局部临时变量 会发生值拷贝{ cout <...
2018-04-29 14:43:16
1133
原创 stl共性机制 与容器中的深拷贝与浅拷贝问题
stl共性拷贝机制 stl元素放入容器 是拷贝进行的 是值寓意 而非引用寓意, 也就是说当我们给容器插入元素的时候,容器内部实施拷贝动作。 将我们要插入的元素再另行拷贝一份放入到容器中,而不是将原数据元素直接放进容器中, 也就是我们提供的元素必须能被拷贝。解决方法 加入拷贝构造函数 1 除了queue 和stack 之外,每个容器都提供可返回迭代器的函数, 运用返回的迭代器可以访问...
2018-04-26 13:08:25
1056
原创 Swap小技巧
#define _CRT_SECURE_NO_WARNINGS#include<iostream>#include<vector>using namespace std;void print(vector<int>& v) { for (vector<int>::iterator it = v.begin(); it != v....
2018-04-26 00:53:02
241
原创 Vector容器的插入和删除
Vector容器 是一个单口容器vector<int> v(arr, arr + sizeof(arr) / sizeof(int));v.insert(v.begin(),100); //头部插入元素v.push_back(100); //尾插法int val = v.pop_back();//删除v.erase(v.begin());//指定位置删除v.erase(v.begin...
2018-04-26 00:20:44
1655
原创 Vector自动增长原理
/*自动增长原理 如果有一个vector容器容量已满 再有一个元素 要往里插 这时就会重新生成一块新内存 一般容量是原来的两倍,把旧的元素拷到新的容器 1 发现空间不足,重新申请一块更大的内存 2 将旧空间的数据拷贝新空间 3 旧空间释放掉 4 将新元素插入到新空间中*/int count = 0; //用来统计重新分配了多少次内存 int* p = NULL; vector...
2018-04-25 22:46:54
856
原创 linux 知识整理
r只读w只写x执行d---------第一组是用户对文件的权限 用户 第二组是组对文件的权限 组第三组是其他用户对文件的权限ls \*a 转义字符代表找的是*a的文件.代表当前目录..代表上一级目录ln -s代表创建一个软链接如果没有参数ln默认创建的是硬链接find可以递归查找指定目录下所有子目录find ./ -name b.txt 在当前目录下查...
2018-04-11 17:31:09
227
原创 C++的const增强
struct student{ int id; char name[64];};void change_stu(struct student *s){ s->id = 10;}void change_stu2(const struct student *s) { //指向常结构体的指针 指针常量 //s->id = 10;此时s所指向的区域是一个常量 不能够被修改 /...
2018-03-31 18:37:18
197
原创 android 图片加载缓存的开源框架
Android的图片开源框架有 UIL、Glide、Picasso 还有okhttp、xutils、afinal、andbase、volley等等
2018-03-25 00:48:54
272
原创 android的MVP架构
MVP(Model View Presenter) 架构是从著名的MVC(Model View Controller)架构演变而来 View::XML文件视为MVC中的View角色,界面的开发与展示,用户进行交互。android开发通常将Activity或Fragment作为View层。 Model:数据层,将Activity视为MVC的Controller角色,负责对数据存取操作,对数据库读写,...
2018-03-24 23:13:39
223
原创 Java 基础知识
在 Java 中要将 String 类型转化为 int 类型时,需要使用 Integer 类中的 parseInt() 方法或者 valueOf() 方法进行转换.例1:String str = "123"; try { int a = Integer.parseInt(str); } catch (NumberFormatException e) { e.pr...
2018-03-12 13:41:22
166
原创 Pycharm 与 Github的配置
1 从Pycharm 里直接传到github share project on github 1 Github 设置添加SSH Key 在git bash里输入 ssh-keygen -t rsa -C “email” 2.GitHub添加SSH Key 打开你的G
2018-01-24 17:35:37
506
原创 Github一些整理
star 的作用是收藏,目的是方便以后查找。 watch 的作用是关注,目的是等作者更新的时候,你可以收到通知。 fork 的作用是参与,目的是你增加新的内容,然后 Pull Request,把你的修改和主仓库原来的内容合并。
2017-12-06 20:59:03
446
转载 android学习(1)
android基本架构Android其本质就是在标准的Linux系统上增加了Java虚拟机Dalvik,并在Dalvik虚拟机上搭建了一个JAVA的application framework,所有的应用程序都是基于JAVA的application framework之上。Android主要应用于ARM平台,但不仅限于ARM,通过编译控制,在X86、MAC等体系结构的机器上同样可以运
2017-10-26 16:50:03
336
转载 Java动态代理与Cglib
JDK动态代理 代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本身并不真正实现服务,而是通过调用委托类的对象的相关方法,来提供特定的服务。 按照代理的创建时期,代理类
2017-10-25 18:19:50
275
转载 java动静态代理与cglib代理
说到代理,脑袋中浮现一大堆代理相关的名词,代理模式,静态代理,jdk代理,cglib代理等等。记忆特别深刻的是,一次面试中,一位面试官问我,spring的AOP核心采用的设计模式是什么什么模式,阅读过24种设计模式,以及阅读过spring源代码的我竟然答错了,回想起来,真是日了狗了,学过那么多遍的东西都忘记了,结果是装逼失败,自己要狠下心来,把代理都搞懂!代理模式简述
2017-10-25 18:17:12
285
原创 java多线程
疑问:windows号称是多任务的操作系统 , widnows真的在同时运行多个应用程序吗?宏观角度,windows确实在同时运行多个应用程序。微观角度, cpu在做一个快速的切换动作,由于切换的速度比较快,所以我们没有感觉到而已.进程: 正在运行的程序称作为一个进程。 进程负责了内存空间的划分。线程: 线程负责了代码的执行, 线程是进程中的一个代码执行路径。多线程 : 在一个进程中有多个线
2017-10-24 22:39:17
287
原创 java工厂模式
java工厂模式 工厂设计模式: 工厂设计模式就是专门用于产生对象的方法。 需求: 定义一个工厂方法可以产生任何类型的对象,产生的对象是根据配置文件而定。public class Demo1 {public static void main(String[] args) throws Exception {Person p = (Person) newInstance()
2017-10-24 17:04:45
304
转载 最小的k个数 剑指office原题
输入n个整数,找出其中最小的K个数2016-07-06 14:10:51问题:输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。分析:同样最直接的简单方法就是先给这n个整数先排序,排序之后位于最前面的K个数就是最小的K个数,结合考虑到的边界条件和错误处理。简单编码如下:impor
2017-10-20 17:49:28
622
转载 centos下 安装mysql重置密码
本人在CentOS 6.4上安装万mysql后,无法通过root进入,因为安装的时候,并没有设置root密码,似乎有个初始随机密码,但是不记得了,太麻烦,直接重置root密码。使用rpm包安装完mysql后,按照一下步骤重置root密码:启动mysql:#/etc/init.d/mysql start启动成功后查看mysql进程信息,获取mysqld_safe的安装
2017-10-11 11:43:35
498
原创 maven 如何把jar包安装到本地仓库
步骤 1 事先配好maven的环境变量 2 想把D盘下的com.supermap.data.jar 安装到本地仓库 3 groupId为 com.supermap 4 artifactId为data 5 version=1.0 >mvn install:install-file -Dfile=D:/com.supermap.data.j
2017-09-28 10:46:20
544
转载 springMvc中的Url模板映射
URL模版映射主要是为请求restfull设计模式Restfull软件架构设计模式:请求更间接,更安全,方便于搜索引擎收录list.jsp:[html] view plain copybody> table border="1" style="color: blue"> tr> td>姓名td>
2017-09-26 22:34:47
930
原创 Linux常用命令整理 (搭建ngnix+Fastdfs+redis+(集群版solr+zookeeper))后整的
搭建ngnix+Fastdfs+redis(或集群版redis)+solr+(集群版solr+zookeeper)+jdk+tomcat+mysql5.7后常用:d ..lllscd /usr/local/ngnix/sbin/./ngnix 或./ngnix -s reload 在centos7下安装ngnix可能需在 /var/run/ mkdir一个ngn
2017-09-26 11:17:27
900
原创 快速排序
划分数组 * partition 方法是 * 1.假设轴元素是99 82 100 86 .. . .. 108 90 120 * 指针 从左边走 从右边走 左边元素应该比轴元素99 小,右边应该比99大。 * 那么当它左边走到100时 右边走到90时 会停下来 两者交换位置 *
2017-07-29 12:04:39
285
翻译 Maven入门
Maven入门1.1 介绍 Maven是一个采用纯Java编写的开源项目管理工具,Maven采用了一种被称之为Project Object Model(POM)概念来管理项目,所有的项目配置信息都被定义在一个叫做POM.xml的文件中,通过该文件Maven可以管理项目的整个生命周期,包括清除、编译、测试,报告、打包,部署等好处: 节省程序员的时间与精力,开发人员主要任务是关注商业逻辑并
2017-07-29 10:30:09
350
原创 java的增强for循环
增强for循环的主要作用是: 简化迭代器的书写格式。增强for循环的格式:for(元素的数据类型 变量名 : 遍历的目标){ }使用增强for循环的前提: 只有实现了Iterable接口的对象或者是数组对象才能使用。 增强for循环要注意的细节: 1. 增强for循环 的底层还是通过获取迭代器的方式进行遍历的,只不过不需要我们手动获取迭代器而已,所以在使用增强
2017-03-30 22:11:50
459
原创 java模板设计模式
java模板设计模式模板设计模式: 我们在解决某类问题的时候,有些步骤是固定的, 有些步骤是不固定的,这时候我们 则可以使用模板设计模式模板设计模式的步骤:先写出解决该类问题其中的一件解决方案分析代码,把会发生变化的代码抽取出来独立成一个方法,然后再把该方法描述成一个抽象的方法如果需要使用模板类,只需要继承即可使用abstract class Runtime {
2017-03-29 23:26:58
329
xUtils3-maste
2018-01-04
【免费】IK Analyzer 2012FF_hf1.jar中文分词器的工具(配置solr需要用到)
2017-09-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人