MYSQL介绍: 主流三种数据库:Oracle.Mysql.Sqlserver Mysql安装和启动: windows 1安装 2启动服务 3进入bin目录,打开命令行 4 mysqladmin -u root password ******* 设置密码 5 mysql -u root -p 使用密码登录 显示所有数据库 show databases: 使用数据库 use XXX: 显示所有表 show tables: 显示数据结构 desc xx: 显示表数据 select* from xx;…
Dart作为一种高级语言,支持面向对象的很多特性,并且支持基于mixin的继承方式. 基于mixin的继承方式是指:一个类可以继承自多个父类,相当于其他语言里的多继承. 所有的类都有同一个基类Object,这和特性类似于Java.Objective-C 等语言,Java所有的类也都是继承自Object,也就是说一切皆对象. //实例化了一个User类的对象user var user = new User('Liming',25); 实例化成员变量 Class User{ String name;…
C语言第十二讲,文件操作. 一丶文件操作概述 在操作系统中,我们的文档都称为文件.操作系统也为我们提供了接口进行操作.不同语言都是使用的相同的接口,只不过封装的上层接口不一样 操作文件的步骤 打开文件->读写文件->关闭文件. 二丶文件流的概述. 文件流称为 输入流和输出流.  其实就是从内存写数据到磁盘.和从磁盘读数据到内存. 内存->磁盘  称为输出流. 输出到磁盘 磁盘->内存 称为输入流.读取到内存. 三丶文件的打开和关闭. 1.操作原型. FILE *fopen(char…
Go语言学习笔记二: 变量 今天又学了一招如何查看go的版本的命令:go version.另外上一个笔记中的代码还可以使用go run hello.go来运行,只是这种方式不会生成exe文件. 定义变量 使用var关键字来定义变量.例如: var x int = 100; 顺便说一句,go语言一行代码可以不写分号结束符. 也分单行注释//和多行注释/* */. 其实也可以不写类型,go语言会推测出数据类型.例如: x := 100 写法看上去更简单了.还可以写成 var x = 200 可以一次…
http://blog.csdn.net/yerenyuan_pku/article/details/72567761 SpringMVC的处理器拦截器类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理.本文主要总结一下SpringMVC中拦截器是如何定义的,以及测试拦截器的执行情况和使用方法. SpringMVC中拦截器的定义和配置 SpringMVC中拦截器的定义 在SpringMVC中,定义拦截器要实现HandlerInterceptor接口,并实现该接口中提供…
1. 安装 Go 语言并设置环境变量 参考GO语言学习(一) 2. MinGW 的下载和安装 Windows 下的 Go 调试还需要安装 MinGW. 2.1 下载安装工具的安装 最新版本下载安装工具下载地址 https://sourceforge.net/projects/mingw/,下载后直接运行(安装目录就使用它默认的 c:\MinGW),MinGW Installation Manager 安装成功. 2.2 MinGW 安装 直接运行 MinGW Installation Manag…
一.本章要点 在Scala中函数是”头等公民“(可以作为参数,返回值,赋值给其他); 可以创建匿名函数,通常还会交给其他函数; 函数参数可以给出需要稍后执行的行为; 许多集合方法都接受函数参数,将函数应用到集合中的值; 有许多语法上的简写让你以简短且易读的方式表达函数参数; 可以创建操作代码块的函数,像是内建的控制语句 二.作为值的函数 在Scala中,函数是头等公民,和数字一样,在变量中存放函数: import scala.math._ val num=3.14 val fun=ceil _…
一.结构体的介绍 /* 语法: struct 结构体名{ 成员列表; }; 切记切记有分号! 说明:成员列表就是指你要保存哪些类型的数据. 注意:上面的语法只是定义一个新的类型,而这个类型叫做结构体类型. 因为类型不能保存数据,所以我们要有结构体变量. 语法: struct 结构体名 变量名; 变量赋值的语法: 变量名.成员名 = 数据; 例: zs.age = 16; 输出结构体: 注意:没有任何格式化控制符能够一次性输出整个结构体 我们必须一个成员一个成员的输出 结构体:可以用来保存多个不同…
目录 并发和并行 Goroutine初探 Goroutine实战 Goroutine原理浅析 Channel介绍 Waitgroup介绍 Workerpool的实现 并发和并行 1.概念A. 并发:同一时间段内执行多个操作.B. 并行:同一时刻执行多个操作. Goroutine初探 1.多线程 A. 线程是由操作系统进行管理,也就是处于内核态.B. 线程之间进行切换,需要发生用户态到内核态的切换.C. 当系统中运行大量线程,系统会变的非常慢.D. 用户态的线程,支持大量线程创建.也叫协程或gor…
一.预处理指令的介绍 预处理命令:在编译之前触发的一系列操作(命令)就叫预处理命令. 特点:以#开头,不要加分号. #include: 文件包含指令 把指定文件的内容复制到相应的位置 #define: #define 宏名 替换的值; 宏.宏定义或者还叫宏代换. 作用:就是在编译之前把所有用到这个宏的地方,替换成你指定的东西 规范:宏名大写,可以跟变量区分开来 之前学的宏: INT32_MAX INT32_MIN 宏不占据内存空间,只是帮你做简单的替换. 注意: 1.宏只是简单的替换,不参与编译…
目录 TCP/IP协议介绍 GO快速实现TCP服务端 GO快速实现TCP客户端 UDP协议介绍 UDP编程实例 TCP/IP协议介绍 1.互联网起源 A. 起源于美国五角大楼,它的前身是美国国防部高级研究计划局主持研制的ARPAnet.B. 互联网的基础是TCP/IP协议C. TCP/IP 是供已连接因特网的计算机进行通信的通信协议. 2.TCP/IP协议 A. TCP (传输控制协议) - 应用程序之间通信.B. UDP (用户数据包协议) - 应用程序之间的简单通信C. IP (网际协议)…
一.类.对象在内存中的存储 /* 内存分区: 栈:局部变量 堆:程序员自己写代码申请开辟的 程序员自己维护,编译器现在帮我们自动优化了,它在合适的给我们加上了释放空间的语句,所以我们现在写的对象不会造成内存泄露 全局区:所有的全局变量和静态变量 常量区:所有的常量 代码区:程序编译后的指令集 类是模板,肯定需要存在内存里面,因为实例化对象的时候需要根据这个模板来创建,那么存在内存里面,存在哪呢?? 类模板存在:全局区! 存的是:类的描述,还有所有的方法实现 每个对象都会有一个系统给我们的isa指…
一.函数的指针的介绍 /* 函数指针: 函数的指针,本质上一个指针 指向函数的指针,就是一个函数指针. 回忆:我们写的源代码编译成二进制的指令集,一串交给CPU执行的指令 先存在内存里面,然后CPU读取内存里的指令,既然存到内存里面,一定有一个地址 所以,我们可以定义一个指针变量保存函数的地址,那么这样的指针变量就是函数指针. 函数指针定义语法: 返回值类型 (*指针变量)(参数列表); 例: void (*pTest)(); //变量名:pTest 这个指针指向的是无返回值无参数的函数类型.…
一.指针的加.减法运算 /* 1.加法运算 1).可以跟整数进行加法运算,得到的还是一个地址 公式: 地址 + 1 = 地址 + 1 * 类型所占的字节数 地址 + n = 地址 + n * 类型所占的字节数 2).只能跟整数运算,不能跟浮点数运算 2.指针的减法运算: 1).可以跟整数进行减法运算,得到的还是一个地址 公式: 地址 - 1 = 地址 - 1 * 类型所占的字节数 地址 - n = 地址 - n * 类型所占的字节数 2).只能跟整数运算,不能跟浮点数运算 */ //例如: //…
一.内存 /* 内存: 存在内存里的. 内存分了N多个小空间,每个小空间1个字节 每个小空间有它自己的地址.每个地址之间差1 int类型占用4个字节,等于占了4个空间(有4个地址),不需要记住4个地址,而记住首地址就行了(因为首地址相当于入口或者生活中的门) 指针: 指针就是地址,地址就是指针. 地址:内存的地址 内存中的地址: 其实也是从1开始编号,然后一直自增 1M内存,1024个地址 0x7fff5fbff7cc:这叫16进制 十进制:逢10进1 有:0 1 2 3 4 5 6 7 8 9…
本节主要介绍数组. 一.数组 /* 数组:一个变量可以存n个变量. 语法:类型 数组名[长度(正整数)]; 例如:int score[5];//定义了一个int类型的数组,长度为5,可以保存5个数据. char score[5];//定义了一个char 类型的数组,长度为5,可以保存5个数据. 访问数组中的元素: 取值:数组名[编号]; 赋值: 数组名[编号] = 值; 元素:数组中实际存放的一个个数据. 下标/索引:系统自动分配的编号,从0开始. 长度:数组实际保存元素的个数. */ //例如…
上节简单介绍了c语言中的一些基础知识点,本节将对之前介绍的不够详细的知识点进行补充. 格式化控制符的消息介绍: %d的其他控制符: 1.%md:m代表这个整数位占用多少位,m是一个整数.实际数字不足的位数用空格表示 如果实际的整数位数大于或者等于m时,就按照原先的值输出. 2.%0md:作用和%md一样,只是实际数字不足的位数用0表示.注意不能用其他的符号补齐,只能用0.   %f或者%lf 1.float类型数字有效数字是小数点后6位(加小数点为7位),double类型的数字有效数字为14位(…
目录 1.标识符.关键字2. 变量量和常量量3. 数据类型4. Go程序基本结构 标识符.关键字 1.标识符是⽤用来表示Go中的变量量名或者函数名,以字⺟母或_开头.后⾯面跟着字⺟母 ._或数字2. 关键字A. 88ab B. _ab28 C. ab_28关键字是Go语⾔言预先定义好的,有特殊含义的标识符 break default func interface selectcase defer go map structchan else goto package switchconst fa…
一.malloc函数 /* 首先需要导入头文件 #include <stdlib.h> malloc void* malloc(n); n是字节大小 开辟堆空间,开辟的字节数以n为准 返回的是开辟空间的首地址 void*是万能指针,也就是说你可以用任意类型的指针去指向 */ //malloc用法 int *p = malloc(sizeof(int)); *p = ; printf("%p %d\n",p,*p);//0x100105490 ); pc[]= 'a'; pc…
一.几个修饰关键字 全局变量: 全局变量跟函数一样也分为声明和实现.如果是全局变量,实现在它调用之后,那么需要在调用之前进行声明.注意:全局变量的声明只能写在函数外,写在函数就不是全局变量了而是局部变量. static: 修饰局部变量:      可以把局部变量变为静态变量.意思就是:程序一启动就加载,程序退出才会回收空间(跟全局变量很像) .   静态变量:用static修饰的局部变量就叫静态变量. 修饰全局变量:            让全局变量只能在本模块中访问.     修饰函数:   …
一.文件的分类 1.文本文件:打开之后能看得懂的文件 2.二进制文件:打开之后看不懂,类似乱码之类的文件(视频,音频打开之后,能看.听,是应为电脑中装有播放器,播放器中含有解码器). 二.操作文件的步骤和方式 操作步骤: 1.打开文件 2.操作文件 3.关闭文件 操作方式: 文件流:操作文件就像水流一样,将一个大的文件分成一段一段的流过去. 好处:分段操作,避免出现阻塞,卡死的发生. 三.操作文件的函数 1.fopen函数: /* fopen函数: fopen(路径,操作方式); fopen("…
Go 语言递归函数 递归,就是在运行的过程中调用自己. 语法格式如下: func recursion() { recursion() /* 函数调用自身 */ } func main() { recursion() } Go 语言支持递归.但我们在使用递归时,开发者需要设置退出条件,否则递归将陷入无限循环中. 递归函数对于解决数学上的问题是非常有用的,就像计算阶乘,生成斐波那契数列等. 阶乘 以下实例通过 Go 语言的递归函数实例阶乘: package main import "fmt"…
目录 select语义介绍和使用 线程安全介绍 互斥锁介绍和实战 读写锁介绍和实战 原子操作介绍 select语义介绍和使用 1.多channel场景 A. 多个channel同时需要读取或写入,怎么办?B. 串行操作? package main import ( "fmt" "time" ) func server1(ch chan string) { time.Sleep(6 * time.Second) ch <- "from server1&…
    这个作业属于那个课程 C语言程序设计II 这个作业要求在哪 https://edu.cnblogs.com/campus/zswxy/computer-scienceclass3-2018/homework/3237 我在这个课程的目标 能运用单向链表去解决实际问题 这个作业在那个具体方面帮助我实现目标 通过练习去解决实际问题 计算最长的字符串长度 本题要求实现一个函数,用于计算有n个元素的指针数组s中最长的字符串的长度. 函数接口定义: int max_len( char *s[],…
一.点语法介绍 /* 以前封装后,要给属性赋值,必须调用方法 这样做,有两个缺点: 1.代码量多,调用方法要写的东西多. 2.看起来并不像是给属性赋值,也不像取值. 我们用点语法就可以更好的解决! 点语法的语法: 对象.属性; 注意:这里的属性不需要加_ 对象.属性 = 值; 点语法的本质: 其实就是调用getter或者setter方法. 点语法注意事项: 1.在类的方法里面如果用self.age 这个是调用方法,self->_age 是直接调用成员变量. 2.千万记得不要在setter或者ge…
  一.第一个OC程序 #import <Foundation/Foundation.h> //导入头文件 int main(int argc, const char * argv[]) { //main函数 @autoreleasepool {//自动释放池,我们现在写代码最好都写这里面 NSLog(@"Hello, World!"); //输出语句 } ; //退出程序,返回一个值给系统看 } 二.OC中的字符串 /* 前缀的概念:(了解一下) 提供框架的作者很多,所以…
本节主要介绍c语言中的字符串的应用. 一:字符串介绍 因为c语言中没有像Java.C#那样的字符串类型,所以无法直接用字符串.需要借助数组来解决这个问题. /* 定义:把多个字符连在一起就叫字符串.但是在c语言中要正确描述字符串,需要说成以'\0'结尾的字符集合. 用数组解决字符串问题: 1.长度需要 +1. 2.在末尾加一个'\0' 然后用%s输出. 例如: char chs[4] = {'a','b','b','\0'}; printf("%s \n",chs); 语法: 1.ch…
本节主要说c语言中的分支结构. c语言中分支结构有两大类:一种是if,一种是switch. 一.if结构 //if结构,语法: //第一种: if(表达式){ //语句块 } //第二种: if(表达式){ //语句块 }else{ //语句块 } //第三种: if(表达式){ //语句块 if(表达式){ //语句块 }else{ //语句块 } }else{ //语句块 } //第四种 if(表达式){ //语句块 }else if(表达式1){ //语句块1 }else{ //语句块2…
本节主要说关系运算式和逻辑运算式. 一.关系运算式 1.等于(==):判断左边的表达式是否等于右边的表达式 2.大于(>):判断左边的表达式是否大于右边的表达式 3.大于等于(>=):判断左边的表达式是否大于等于右边的表达式 4.小于(<):判断左边的表达式是否小于右边的表达式 5.小于等于(<=):判断左边的表达式是否小于等于右边的表达式 6.不等于(!=):判断左边的表达式是否不等于右边的表达式 //注意:c语言中,关系运算所得结果只有0和1,0代表false(假),1代表tr…
本系列是为了学习ios做准备的,也能作为c语言入门的教程看看. c语言的程序结构: 1.顺序结构:自上而下依次执行. 2.分支结构:程序有选择的执行某段代码或者不执行某段代码. 3.循环结构:程序循环的去执行某段代码. c语言的代码块: 定义:每个{}就是一个代码块. 注意:{}代码块中定义的变量,代码块外不可以访问.原因:除了代码块之后,代码块内部定义的变量就会被回收. 代码块中可以定义代码块外中已存在的变量. //代码块 ; { //就近原则 ; printf("num = %d"…