JAVA实战
摘要:Java String && StringBuffer 1. 定义一个字符串www.baidu.com,请返回他的长度 public class StringDemo { public static void main(String args[]) { String site = "www.baid
阅读全文
Qt下载
摘要:Qt 体积很大,有 1GB~3GB,官方下载通道非常慢,相信很多读者会崩溃,所以建议大家使用国内的镜像网站(较快),或者使用迅雷下载(很快)。作为 Qt 下载教程,本文会同时讲解以上三种下载方式。 Qt 官方下载(非常慢) Qt 官网有一个专门的资源下载网站,所有的开发环境和相关工具都可以从这里下载
阅读全文
C++ Qt第一个简单应用
摘要:安装Qt方法 安装准备:1. qt-win-opensource-4.8.4-mingw.exe 2. qt-creator-win-opensource-2.5.0.exe 3. MinGW-gcc440_1(非常重要,安装成功与否靠它了) 注意:这个Qt在XP和win7均能正常使用的!开始安装步
阅读全文
C++ STL基本容器使用
摘要:1:关联容器和顺序容器 c++中有两种类型的容器:顺序容器和关联容器,顺序容器主要有:vector、list、deque等。其中vector表示一段连续的内存地址,基于数组的实现,list表示非连续的内存,基于链表实现。deque与vector类似,但是对于首元素提供删除和插入的双向支持。关联容器主
阅读全文
C++容器详解
摘要:什么是容器 首先,我们必须理解一下什么是容器,在C++ 中容器被定义为:在数据存储上,有一种对象类型,它可以持有其它对象或指向其它对像的指针,这种对象类型就叫做容器。很简单,容器就是保存其它对象的对 象,当然这是一个朴素的理解,这种“对象”还包含了一系列处理“其它对象”的方法,因为这些方法在程序的设
阅读全文
Java内存管理机制
摘要:对于从事 C/C++ 程序开发的开发人员来说,在内存管理领域,他们既是拥有最高权力的帝皇,又是从事最基础工作的劳动人民——既拥有每一个对象的“所有权”,又担负着每一个对象生命从开始到终结的维护责任。 对于 Java 程序员来说,在虚拟机的自动内存管理机制的帮助下,不在需要为每一个 new 操作去写配
阅读全文
C++ const用法
摘要:C++ const 允许指定一个语义约束,编译器会强制实施这个约束,允许程序员告诉编译器某值是保持不变的。如果在编程中确实有某个值保持不变,就应该明确使用const,这样可以获得编译器的帮助。 1.const 修饰成员变量 1 #include<iostream> 2 using namespace
阅读全文
变量的大小会根据编译器和所使用的电脑而有所不同
摘要:下面实例会输出您电脑上各种数据类型的大小。 实例 #include <iostream> #include <limits> using namespace std; int main() { cout << "type: \t\t" << "************size************
阅读全文
Linux查看某个进程的线程
摘要:线程是现代操作系统上进行并行执行的一个流行的编程方面的抽象概念。当一个程序内有多个线程被叉分出用以执行多个流时,这些线程就会在它们之间共享特定的资源(如,内存地址空间、打开的文件),以使叉分开销最小化,并避免大量高成本的IPC(进程间通信)通道。这些功能让线程在并发执行时成为一个高效的机制。 在Li
阅读全文
meminfo详解
摘要:Linux查看内存使用情况,可以查看/proc/meminfo和使用free命令 [root@localhost proc]# cat /proc/stat/meminfo MemTotal: 8009264 kB 总内存MemFree: 1784144 kB 空闲内存数MemAvailable:
阅读全文
Linux /proc 内存相关信息
摘要:Linux系统的文件类型大致可分为三类: 普通文件, 目录文件和伪文件. 伪文件不是用来存储数据的, 因此这些文件不占用磁盘空间, 只是存在于内存中. /proc 让你可以与内核内部数据进行交互, 获取有关进程的有用信息. 下面主要介绍一下 /proc 下面的四个文件: /proc/stat , /
阅读全文
Linux下如何用/proc命令查找进程状态信息——当前目录,内存占用,描述符等
摘要:参加阿里的面试,问到一个问题,如何在Linux下使用命令行查询进程的状态信息,比如进程的当前目录,进程的内存占用等情况。当时的第一反应是使用top命令能够得到所有的进程信息。但是面试官好像不是很满意,因此我回去之后查阅了相关的资料,发现可能他想问的/proc目录,我这里整理一下: 我自己写了一个简单
阅读全文
linux c 得到指定进程内存占用
摘要:Linux系统的文件类型大致可分为三类: 普通文件, 目录文件和伪文件. 伪文件不是用来存储数据的, 因此这些文件不占用磁盘空间, 只是存在于内存中. /proc 让你可以与内核内部数据进行交互, 获取有关进程的有用信息.(为了更好阅读,参考https://blog.csdn.net/whatday
阅读全文
1分钟彻底理解C语言指针
摘要:计算机中所有的数据都必须放在内存中,不同类型的数据占用的字节数不一样,例如 int 占用 4 个字节,char 占用 1 个字节。为了正确地访问这些数据,必须为每个字节都编上号码,就像门牌号、身份证号一样,每个字节的编号是唯一的,根据编号可以准确地找到某个字节。下图是 4G 内存中每个字节的编号(以
阅读全文
QML
摘要:介绍 QML和 C++对象可以通过,signals,slots和 属性修改进行交互。对于一个C++对象,任何数据都可以通过Qt的 Meta-Object System暴露给QML(何总方法,后面介绍),同时,任何的QML对象数据通过Meta-object system在C++端直接访问。在实际的项目
阅读全文
抖音如何运营与吸引评论
摘要:从抖音的运营模式来看,我们不难看出抖音这个算法背后思维逻辑: 1.视频智能分发,2.兴趣类型叠加推荐,3.热度加权全网推荐;所以大家每发布一个短视频,就要完成下面四个量! ① 视频点赞量 ② 视频评论量 ③ 视频转发量 ④ 视频完播率 这也正是很多抖音网红实现0粉一夜10w+的秘密,通过给抖音刷粉丝
阅读全文
理解编程语言数组的内存结构
摘要:为了帮助大家更好的理解数组,我用C语言把数组定义和数组的内存位置输出了,大家可以对比理解:1. 数组的内存地址默认就是 数组第一个元素(下标为0)的地址,也就是数组的开始元素内存地址2. 同一数组中各个元素的内存地址是依次相邻的,所以遍历起来速度很快,依次遍历循环即可,这就是java中为什么集合类A
阅读全文
【C语言】 使用Beep() 函数 演奏歌曲
摘要:#include <windows.h> int main(){ while(1){ Beep(523, 200); Beep(523, 200); Beep(578, 400); Beep(523, 400); Beep(698, 400); Beep(659, 800); Beep(523, 2
阅读全文
闲暇之余一个小乐子: gcc hello.c -o sea01010101.exe
摘要:#include <windows.h>#include <stdio.h> int main(){ printf(" \n\n"); Sleep(2000); printf("我内心犹豫了很多年,此刻只想对你说3句话,请调整呼吸8秒钟: \n\n\n\n"); fflush(stdout); Sl
阅读全文
操作系统——分页式内存管理
摘要:为什么要引入内存管理?答:多道程序并发执行,共享的不仅仅只有处理器,还有内存,并发执行不过不进行内存管理,必将会导致内存中数据的混乱,以至于限制了进程的并发执行。 扩充内存的两种方式?答:覆盖和交换技术是扩充内存的两种方法 1:覆盖技术。覆盖的基本思想是:由于程序运行时并非任何时候都需要访问程序和数
阅读全文
操作系统内存详解
摘要:进程的简单介绍进程是占有资源的最小单位,这个资源当然包括内存。在现代操作系统中,每个进程所能访问的内存是互相独立的(一些交换区除外)。而进程中的线程可以共享进程所分配的内存空间。在操作系统的角度来看,进程=程序+数据+PCB(进程控制块) 没有内存抽象在早些的操作系统中,并没有引入内存抽象的概念。程
阅读全文
数据在内存中是这样存储的(二进制形式存储)
摘要:计算机要处理的信息是多种多样的,如数字、文字、符号、图形、音频、视频等,这些信息在人们的眼里是不同的。但对于计算机来说,它们在内存中都是一样的,都是以二进制的形式来表示。
阅读全文
QT开发工具
摘要:qt 编辑 Qt [1] 是一个1991年由Qt Company开发的跨平台C++图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。Qt是面向对象的框架,使用特殊的代码生成扩展(称为元对象编译器(Meta Object Compiler, moc
阅读全文
Linux中Too many open files 问题分析和解决
摘要:今天某个服务的日志中出现了大量的异常: [WARN ] 2018-06-15 16:55:20,831 --New I/O server boss #1 ([id: 0x55007b59, /0.0.0.0:20880])-- [org.jboss.netty.channel.socket.nio.
阅读全文
TCP端口状态说明ESTABLISHED、TIME_WAIT
摘要:TCP状态转移要点TCP协议规定,对于已经建立的连接,网络双方要进行四次握手才能成功断开连接,如果缺少了其中某个步骤,将会使连接处于假死状态,连接本身占用的资源不 会被释放。网络服务器程序要同时管理大量连接,所以很有必要保证无用连接完全断开,否则大量僵死的连接会浪费许多服务器资源。在众多TCP状态中
阅读全文
HttpClient当HTTP连接的时候出现大量CLOSE_WAIT连接
摘要:三种状态: ESTABLISHED 表示正在进行网络连接的数量TIME_WAIT 表示表示等待系统主动关闭网络连接的数量CLOSE_WAIT 表示被动等待程序关闭的网络连接数量 上篇文章给出了解决TIME_WAIT太多的方法,本篇文章以HttpClient为例说明解决大量CLOSE_WAIT状态的方
阅读全文
缓存穿透、击穿、雪崩
摘要:缓存穿透 查询一个不存在的值时,在缓存系统内未命中,导致请求直接落到持久层数据库上。 缓存击穿 查询某一项数据(如在 redis 查询某一个key),但是这个时候缓存正好过期了,缓存没有命中,导致请求直接落到持久层数据库上。如活动系统里面查询活动信息,但是在活动进行过程中活动缓存突然过期了。 缓存雪
阅读全文
Http长连接和Keep-Alive以及Tcp的Keepalive
摘要:Keep-Alive模式:我们知道Http协议采用“请求-应答”模式,当使用普通模式,即非Keep-Alive模式时,每个请求/应答,客户端和服务器都要新建一个连接,完成之后立即断开连接;当使用Keep-Alive模式时,Keep-Alive功能使客户端到服务器端的连接持续有效,当出现对服务器的后继
阅读全文
linux socket中tcp的time_wait的快速回收和重用
摘要:最近项目中发现用screen启动socket老出错,在调试脚本中看出是screen 启动后,但是并没有将socket拉起;起初一直在查是不是由于screen启动机制导致的,后来和同事沟通发现是由于服务器端socket有大量的客户端连接时,当服务器主动kill掉socket的tcp端口时,再次立即重启
阅读全文
Linux网络tcp连接大量CLOSE_WAIT和TIME_WAIT状态的出现和解决方法
摘要:关于CLOSE_WAIT和TIME_WAIT状态,服务器端都有可能出现,TIME_WAIT出现应该是短连接较多,需要通过修改内核参数解决,CLOSE_WAIT状态则是服务器程序可能有问题,服务器需要主动close,以及epoll多路复用模型中使用linger调整关闭等待时间 分析解决这类问题,关键在
阅读全文