自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

程序员攻略

Stay hungry ,Stay foolish!

原创 新手如何学好C语言?

作为一名资深码农,在软件行业也拼搏了十多年,这里跟想学习C语言的萌新童鞋分享下我的个人学习心得!!! 在大学时代,我们大二才开始学习C语言(起步有点晚啊),第一次看到那本黄黄的谭浩强老师的《c语言教程》,哈哈哈,就是这本了,满满的回忆啊! 开学拿到这本书后,心情很激动,因为以前总是羡慕那种...

2020-04-27 13:59:47 49 0

原创 一个普通的计算机专业专科生,毕业后想拿高薪,大学三年具体应该怎么做?

最近有一位大一的童鞋问我:黄老师, 我现在是一个普通院校的专科,学历含金量并不高,随大流选了一个计算机专业,很迷茫,不知道毕业后能干嘛,但我还是不想虚度大学三年,因为家境并不好,想通过自己努努力毕业能拿一份不错的薪水,能给点建议吗? 其实也不是这一位同学向我咨询类似的问题,这几年其实蛮多的普...

2020-04-24 16:45:34 166 0

原创 全套C C++ 编程视频课程收录

【C语言】 小白可以短时间很快入门的《从小白入门C语言视频课程》 http://edu.csdn.net/course/detail/5895 然后C语言中为核心知识点,附上指《C语言指针精讲视频课程》 http://edu.csdn.net/course/detail/5896 ...

2017-10-27 14:58:48 8914 0

原创 新手如何学好C++?

最近,很多学员都给我发邮件问我应该如何学习C++,如何学好C++? 那么作为一个从C语言小白摸爬滚打、入坑无数到成长为如今的高级C++游戏开发工程师、高级C++服务端工程师、项目经理、技术总监、我想跟大家分享下我自己的学习心得与体会! Linus曾说过:“C++是一门很恐怖的语言,而比它更...

2017-10-10 09:32:28 11692 6

原创 C语言各种类型所占字节数与取值范围

最近很多童鞋对C语言的各种数据类型占得字节数与范围搞不清楚,导致数据范围不足的隐形Bug! 比如一个数是100000,但是该学生用short a = 100000 ; 很明显超出short范围了,最后导致a 是另外一个值,那么今天黄老师就带领大家用代码亲自验证下各种数据类型所占得字节数,...

2020-04-28 18:30:27 43 0

原创 5种IO模型

在早期的文章《unix IO模型》中我们介绍了5种IO模型,如下图是几种IO模型的对比 几种IO模型的对比 从上面的图可以看出,从左到右,越往后,阻塞越少,理论上效率也就越优。 其中Select对应的是第三种IO模型:I/O Multiplexing IO多路复用模型,而epoll与kq...

2019-10-31 17:13:27 65 0

原创 TCP的四次挥手为什么需要2MSL ?

众所周知,TCP建立连接三次握手,断开连接四次挥手,具体流程如下: MSL是什么意思? MSL, the maximum segment lifetime (最长报文段寿命) 。 segment可以在网络中存活的最长时间,超过这个时间会被丢弃。这个时间限制是有界限的,TCP Segme...

2019-09-27 10:16:57 189 0

原创 TCP网络状态变换时序图

关于TCP网络编程,大家一定要有以下的图:

2019-09-26 14:53:49 108 0

原创 linux下 IO 阻塞 非阻塞

1.区分堵塞、非堵塞 在一个IO操作过程中,以read为例,会涉及到两个过程: 1.等待数据准备好; 2.将数据从内核拷贝到进程中 这两个阶段是否发生阻塞,将产生不同的效果。 堵塞IO: 进程在请求read阻塞io的数据时,操作需要彻底完成后才返回到用户空间 非堵塞IO: 进程在步骤1不堵塞,...

2019-09-24 17:54:10 70 0

原创 epoll ET模式的demo

#include <stdio.h> #include <sys/epoll.h> #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #inclu...

2019-09-24 17:48:55 56 0

原创 IO多路复用的三种机制Select,Poll,Epoll

I/O多路复用(multiplexing)的本质是通过一种机制(系统内核缓冲I/O数据),让单个进程可以监视多个文件描述符,一旦某个描述符就绪(一般是读就绪或写就绪),能够通知程序进行相应的读写操作 select、poll 和 epoll 都是 Linux API 提供的 IO 复用方式。 相...

2019-09-24 17:21:27 41 0

转载 CGI、FastCGI、WSGI 究竟是什么?

CGI CGI(Common Gateway Interface,通用网关接口 ),描述了服务器和客户端请求处理程序(通常就是浏览器)之间传输数据的一种标准。 它最初是在1993年由NCSA(美国国家超级电脑应用中心)为NCSA HTTPd Web服务器开发的。 CGI的第一个实现是采用Pe...

2019-04-27 20:45:55 143 0

原创 Python多线程(模拟火车站售票)

Python的标准库提供了两个模块:thread和threading,thread是低级模块,threading是高级模块,对thread进行了封装。 我们使用threading这个高级模块,模拟火车站卖票,如果不加锁,卖出同一张票: import threading from time ...

2019-04-27 16:56:39 968 0

原创 Python UDP 网络编程

Python UDP网络编程,流程和其它语言没有区别,但更简洁: #服务器端 server.py # 导入 socket、sys 模块 import socket import sys # 创建 socket 对象 serversocket = socket.socket(socke...

2019-04-27 15:34:44 101 0

原创 Python TCP 网络编程

Python TCP网络编程,流程和其它语言没有区别,但更简洁: #服务器端 server.py # 导入 socket、sys 模块 import socket import sys import _thread # 创建 socket 对象 serversocket = so...

2019-04-27 15:15:02 70 0

原创 Python格式化输出

两种方式,一种与C语言类似,另外一种比较陌生: # 使用 % print("字符%c" % ('A')) print("整数%i" % (-100)) print("无符号整数%u" % (100)) print...

2019-04-27 14:45:14 381 0

转载 Python包

为了组织好模块,会将多个模块分为包。Python 处理包也是相当方便的。简单来说,包就是文件夹,但该文件夹下必须存在 __init__.py 文件。     常见的包结构如下:     最简单的情况下,只需要一个空的 __init__.py 文件即可。当然它也可以执行包的初始化代码,或者定...

2019-04-27 11:29:11 70 0

原创 Windows下 Python3.7 访问 Mysql

Python访问Mysql数据库不要太简单: 1.打开Python的安装目录: 2. 使用Python 包管理工具 pip 对Python 包的查找、下载、安装、卸载的功能: pip.exe install pyMysql 可以发现pyMysql包已经安装 2.上代码,测...

2019-04-26 21:47:55 1781 0

原创 Python变量作用域

python变量的生命周期,局部变量、全局变量基本与C语言差不多,唯一要注意的是: python能改变变量作用域的代码段是def、class、lamda。 而语句块比如if/elif/else、try/except/finally、for/while 并不能改变量作用域。 a=111 ...

2019-04-26 19:04:41 45 0

原创 Python 的 object类、type元类

在C++,JAVA,C#等面向对象语言中, 类的实例 是 一个对象。 在Python中, 类的实例 是 一个对象,这个没有问题,object类是一切类的父类,这也没什么问题。 但是, type类有点元类的意思,我个人理解为 int,float,object , Animal等类 是 typ...

2019-04-26 16:14:35 1025 0

原创 Python判断类型

Python判断类型,基本类型主要使用type() , 对象类型使用 instance() print( type(123)) print( type(123) == int) print( type("hello")) print( type("hello&qu...

2019-04-26 11:45:58 2963 0

原创 Python继承与多态

与C++、JAVA等面向对象相比,Python继承与多态表现差不多: class Animal(object): def run(self): print('Animal跑') def eat(self): print...

2019-04-25 21:48:00 145 0

原创 Python面向对象写Student类

直接看代码写法: class Student: "这是Student类的说明" #__doc__ objCount = 0 #类的静态变量 def __init__(self, name, age): #构造函数,创建类的实例调用 ...

2019-04-25 21:29:49 1063 0

原创 Python模块 之 sys

sys 模块提供了许多函数和变量来处理 Python 运行时环境的不同部分. import sys print( sys.argv ) #程序运行的参数 print( sys.modules.keys() ) #返回所有已经导入的模块列表 print(sys.version ) #获取...

2019-04-25 20:11:27 199 0

原创 Python模块 之 os

python的os模块,提供了文件和路径进行操作: import os print( os.getcwd()) #当前文件所在目录 print(os.path.isdir(".") ) #是否是目录 p =os.path.abspath("test.py&q...

2019-04-25 18:54:53 55 0

原创 Python中的模块

一个python文件(以“.py”为后缀名的文件)就叫做一个模块。模块可以被项目中的其他模块、一些脚本甚至是交互式的解析器所使用,它可以被其他程序引用,从而使用该模块里的函数等功能,使用Python中的标准库也是采用这种方法。 新建一个my.py文件: a="111"...

2019-04-24 19:02:25 47 0

原创 Python强大的函数

Python的函数比C语言、C++函数更加灵活与强大,下面来跟大家演示: # 函数,无返回值 def show(s): print("Welcome", s) show("hello") # 函数,有一个返回值 def sum(a, b):...

2019-04-24 14:52:55 65 0

原创 Python的注释、Lua的注释、C语言的注释

Python的注释: # 这是单行注释 ''' 这是多行注释,用三个单引号 这是多行注释,用三个单引号 这是多行注释,用三个单引号 ''' """ 这也是多行注释,用三个双引号 这也是多行注释,用三...

2019-04-23 21:36:49 113 0

原创 Python循环语句

Python的while 与 for ,基本上与C语言差不多,注意写法 #while循环 i = 0 while (i < 5): i = i + 1 if i>3: break; print ('i:'...

2019-04-23 21:15:30 39 0

原创 Python条件语句

python 最具特色的就是用缩进来写模块 , 缩进的空白数量是可变的,但是所有代码块语句必须包含相同的缩进空白数量,这个必须严格执行。 #注意以下两者的区别 if False: print("Hello") print("World&qu...

2019-04-23 20:17:18 41 0

原创 Python运算符(区别于C语言的)

Python大部分与C语言运算符一样,也有一些标新立异的: print(3**2) # 3的2次方 print(3/2) # 3除2 ,得到是小数,不是整数1 print(3//2) # 3除2 ,得到整数1 a= 3; a**=2...

2019-04-23 19:49:56 219 0

原创 Python强大的类型转换

Python内置的函数可以执行各种数据类型之间的转换。 print( int("10") ) #十进制的字符串10->整数10 print( int("10", 2) ) # 二进制的字符串10->整数2 print( int("10...

2019-04-23 18:58:45 58 0

原创 Python 字符串、列表、元组、字典

Python有五个标准的数据类型: Numbers(数字) String(字符串) List(列表) Tuple(元组) Dictionary(字典) print("----------字符串------------") s = '123456'...

2019-04-23 16:21:29 47 0

原创 Lua的 setfenv函数

setfenv函数可以设置全局环境中有的变量或者函数,通过_G可以查看拥有的函数(比如print、setfenv等)与全局变量, 但是修改_G的指向一张空表 对系统环境是没有影响的,因为系统并不是访问_G来获取相关函数与变量!!! 理论总是枯燥,需要代码来验证: print(_G) _G....

2019-04-23 14:56:52 171 0

原创 lua _G 表

今天研究一下_G这张表: -- _G是一张表,保存了lua所用的所有全局函数和全局变量 for a,b in pairs(_G) do print(a,"\t",b) if type(b) == "table" then ...

2019-04-22 20:31:30 1760 2

原创 lua中的闭包

闭包(closure):外部函数+ 非局部变量(upvalue) + 内部函数(闭包函数) function fun( n ) --外部函数 -- n是lua中的upvalue return function() --内部函数 n=n+1 ...

2019-04-22 19:06:27 158 0

原创 Lua全局变量与局部变量

在lua中,局部变量(变量名前加 local)与全局变量类似于C语言中的概念: print(a) --打印变量nil a=111 --全局变量(整个lua文件中都可以使用,向下的范围) do local a=0--局部变量在语句块的结束 a=1 --局部变量优先 ...

2019-04-22 16:55:52 1578 0

原创 lua的注释写法

lua中的注释不是 // , /**/ ,而是标新立异的 , --print("单行注释") ---print("单行注释") --[[ print("整段注释") print("整段注释") print(...

2019-04-22 16:06:18 3754 0

原创 Lua面向对象之继承( Student类继承自Person类)

继承是面向对象中一个很重要的特性,要想在lua中实现该特性也相对比较简单,配合元表和__index元方法,让派生类与基类形成一条链,前面我们学习了Student类,那么我们让Student类继承自Person类,看代码: -----------------基类---------------...

2019-04-22 14:09:12 257 0

原创 Lua面向对象写Student类( 模拟类方法与对象方法)

前面我们写出了一个简单的类Student,但是我们发现,我们直接使用Student也可以调用对象方法,这里和我们们学过的其它语言的面向对象还是有些出入的(比如C++,JAVA ,C# , 类名称是无法调用对象的方法与属性),所以这里改造一下,让类方法、类变量, 与 对象方法,对象变量 分离。 代...

2019-04-20 19:08:44 155 0

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