关于遗传算法的代码的内存溢出问题 20C

关于遗传算法的函数优化应用方面问题,出现了内存溢出,没找到哪里错误
参考的代码地址为http://blog.csdn.net/ebowtang/article/details/50938396
很多人应该是看这个代码入门遗传算法的
自己的运行代码如下
头文件

 #include<vector>
#include "math.h"
#include "string.h"//不知道为什么要加这个,明明模板没加也没错,这边不加就会报错unexpected token(s) preceding ';'
using namespace std;

const double pi=3.1415926;
class Genome
{
  public:
      friend class GenAlg; //种群全部基因
      friend class GenEngine;
      Genome()  /*没加这个花括号的话会有
                function operation.obj : error LNK2001: 
                unresolved external symbol "public: __thiscall Genome::Genome(void)" (??0Genome@@QAE@XZ)提示*/

      {
      }
      Genome(vector<double> vec , double f)
     {
          vecGenome=vec;
          fitness=f;
      }
     ~Genome()
     {}

  private:
      vector<double> vecGenome; //在求函数最优单解时,定义基因组至于要double 就行了,用vector是为了扩展以后会碰到的情况
      double fitness;
};

class GenAlg
{
   public:
       vector<Genome> vecPop;       //整个种群的基因组
       int popsize; //种群的个数
       int Genomelength;//一个基因组中基因的总数目,每条染色体上基因的总数目

       double totalfitness;
       double bestfitness;
       double averagefitness;
       double worstfitness;
       Genome bestone;

       double maxperturtation;//最大的变异步长
       double leftpoint,rightpoint;//左右值域
       double mutationrate;//这个为基因突变的概率
       double crossoverRate;//基因交叉的概率
       GenAlg();//不明白为什么要设置这个初始化函数
       void Reset();//暂时也不知道拿来干嘛用
       void init(int popSize,double MutRate,double CrossRate,int GenLenght,
           double LeftPoint,double RightPoint);
       void report(int numgen);
       void Calculatebestworstavetol();
       Genome GetGenomeRoulette();//轮盘赌算法
       void Mutate(vector<double> &chrome);//基因突变函数
       void Epoch(vector<Genome> &vecNewPop);
       ~GenAlg()
       {}

};

class Curve    
{
public:
    double function(vector<double> input)//这里不用引用与常量符号应该也没事吧
    {
        double x=input[0];
        double output=0;
        output=x*sin(10*pi*x)+2.0;
        return output;
    }
    ~Curve()
    {}
private:
};

class GenEngine
{
public:
    GenEngine(int popSize,double MutRate,double CrossRate,int GenLenght,int Generation,
           double LeftPoint,double RightPoint);//这里的形参与GenAlg.init里的一样,尝试
    void OnStartGenAlg();
    ~GenEngine()
    {}
private:
    GenAlg genAlg;
    //这里特意不包含Curve的变量以测试在不包含相应类的变量情况下是否能使用类的函数,看来似乎不行
    Curve curve;

    vector<Genome> g_population;  //新的种群基因库
    int g_popSize;
    double g_MutRate;
    double g_CrossRate;
    int g_GenLenght;
    int g_Generation;
    int numgeneration;//迭代的计数器
    double g_LeftPoint;
    double g_RightPoint;
};


操作文件

 #include<vector>

#include<stdio.h>
#include <stdlib.h>
#include <time.h>
#include<iostream>
#include"class.h"

using namespace std;

double random()
{
    double randNum;
    randNum=rand()*1.0/RAND_MAX;
    return randNum;
}

void GenAlg::init(int popSize,double MutRate,double CrossRate,int GenLenght,
           double LeftPoint,double RightPoint)
{

        popsize=popSize;
        Genomelength=GenLenght;

       totalfitness=0;
       bestfitness=0;
       averagefitness=0;
       worstfitness=999;


       maxperturtation=0.004;
       leftpoint=LeftPoint;
       rightpoint=RightPoint;
       mutationrate=MutRate;//这个为基因突变的概率
       crossoverRate=CrossRate;
       vecPop.clear();
       //这里要加上初始化种群基因库的部分
       for(int i=0;i<popsize;i++)
       {
           vecPop.push_back(Genome());//不能用 vecPop[i].push_back(Genome());
           for(int j=0;j<Genomelength;j++)
           {
               vecPop[i].vecGenome[j]=random()*(rightpoint-leftpoint)+leftpoint;
           }
       }



}

GenAlg::GenAlg()
{
}


void GenAlg::Reset()
{
    totalfitness=0;
    averagefitness=0;
}

void GenAlg::report(int numgen)
{
    cout<<"第"<<numgen<<"代"<<endl;
    cout<<"最佳适应度为:"<<bestone.fitness<<endl;//bestone由CalculateBestWorstAveTol()计算出
    cout<<"最佳适应度基因为:"<<bestone.vecGenome[0]<<endl;
    cout<<"平均适应度为:"<<averagefitness<<endl;
}

void GenAlg::Calculatebestworstavetol()
{ 
    for(int i=0;i<popsize;i++)
    {
        totalfitness+=vecPop[i].fitness;
        if(vecPop[i].fitness>=bestfitness)
            {
                bestfitness=vecPop[i].fitness;
                bestone.vecGenome=vecPop[i].vecGenome;
                bestone.fitness=bestfitness;
            }
        if(vecPop[i].fitness<=worstfitness)
                worstfitness=vecPop[i].fitness;

    }
    averagefitness=totalfitness/popsize;
}

void GenAlg::Mutate(vector<double> &chrome)
 {

     for(int i=0;i<Genomelength;i++)    //单个人的基因突变
     {
         if(random()<mutationrate)
         {
             chrome[i]+=(random()-0.5)*maxperturtation;
         }
         if(chrome[i]>rightpoint)chrome[i]=leftpoint;
         if(chrome[i]<leftpoint)chrome[i]=rightpoint;
     }
 }


Genome GenAlg::GetGenomeRoulette()
 {
     Genome vecnewGenome;
     double slice=random()*totalfitness;
     double fitnesssofar=0;
     for(int i=0;i<popsize;i++)
     {
         if(fitnesssofar>=slice)
         {
             vecnewGenome=vecPop[i];//不是vecnewGenome=vecPop[i].vecGenome;
             break;
         }
         else fitnesssofar=fitnesssofar+vecPop[i].fitness;
     }
     return vecnewGenome;
 }

 GenEngine::GenEngine(int popSize,double MutRate,double CrossRate,int GenLenght,int Generation,
           double LeftPoint,double RightPoint)
{
     //genAlg();不要用genAlg(),curve(),m_population(),不知道模板那边为什么可以用,这三个是成员而不是函数,不能用函数调用方式


     g_population.clear();  //新的种群基因库,vector(Genome)类
    g_popSize=popSize;
    g_MutRate=MutRate;
    g_CrossRate=CrossRate;
    g_GenLenght=GenLenght;//Genome中基因的个数
    g_Generation=Generation;//迭代的总次数
    //应该不需要了numgeneration=0;迭代的计数器,直接在OnStartGenAlg中用临时变量实现
    g_LeftPoint=LeftPoint;
    g_RightPoint=RightPoint;
}

void GenAlg::Epoch(vector<Genome> &vecNewPop) //vecNewPop引用在g_population上
{
     vecPop=vecNewPop;//    不是g_population=vecNewPop;/
    Reset();//为了避免totalfitness被叠加,但是感觉也可以在OnStartGenAlg中用genAlg.Reset实现
    //源代码CalculateBestWorstAvTol()被加在这处,感觉也可以在OnStartGenAlg中用genAlg.CalculateBestWorstAvTol()实现
    vecNewPop.clear();
    for(int i=0;i<popsize;i++)
    {
       //   Genome mum=GetGenomeRoulette();因为不存在交叉,所以不设父母双方,并且要是同时生成两个子代要是
        Genome dad=GetGenomeRoulette();
        vector<double> baby1=dad.vecGenome;
        //Genome baby2=dad;
        Mutate(baby1);
        vecNewPop.push_back(Genome(baby1,0));//不能这样写vecNewPop.push_back(baby1,0);
    }
}

void GenEngine::OnStartGenAlg()
{
    srand( (unsigned)time( NULL ) );
    genAlg.init(g_popSize,g_MutRate,g_CrossRate,g_GenLenght,g_LeftPoint,g_RightPoint);//用GenEngine中的元素是因为genAlg是GenEngine
    //的元素,这样初始化GenEngine后,数值就可以流向genAlg
    //这里不用g_population.clear是因为在GenEngine.init时就把其清空了
    g_population.clear();//加clear函数是为了
    g_population=genAlg.vecPop;
    vector<double> input;
    double output;
    for(int Generation=0;Generation<g_Generation;Generation++)
    {
      for(int i=0;i<g_popSize;i++)
        {
            input=g_population[i].vecGenome;
            output=(double)curve.function(input);//这里不能用output=(double)Curve.function(input)
            g_population[i].fitness=output;
        }
      genAlg.Epoch(g_population);
      genAlg.Calculatebestworstavetol();
      genAlg.report(Generation+1);
    }
}

主函数

 #include<iostream>
#include"class.h"

using namespace std;
void main()
{

    GenEngine genEngine(50,0.8,0.8,1,100,-1,2);
    genEngine.OnStartGenAlg();

}

不知道为什么运行出来会有
Damage:after Normal block(#58) at 0x00832B08的提示

0x00832B08是代表行数吗

1个回答

调试下,看报错的是哪一行。你这么贴出一大段,谁愿意帮你看。

qq_38785599
lalapanda 因为VC6.0没提示是哪一行出错的,所以又用了visual studio 调试,提示是vector subscript out of range(矢量下标超出),但没发现哪里的矢量变量超出了
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
遗传算法中的染色体后后面基因位的值的选择受前面基因位值的选择的影响,这种情况应该怎么交叉和变异,还是说这种情况下基因遗传算法无法解决这类型问题
遗传算法中的染色体后后面基因位的值的选择受前面基因位值的选择的影响,这种情况应该怎么交叉和变异,还是说这种情况下基因遗传算法无法解决这类型问题,求大神指点!
关于遗传算法实现的问题
最近正在研究遗传算法的组合优化,求大神指点谜经,给些带有约束的相关例子,万分感谢。
matlab中遗传算法的约束条件如何处理,是应该用罚函数吗?
刚刚学习遗传算法 解决简单的一个非线性规划的问题(我把我的问题简化了) max z=x(1).^2+x(2).^2; 约束条件是x(1)+x(2)<=5; 2*x(1)+3*x(2)<=10; 如何处理约束条件 请问这两个约束条件如何写入我的遗传算法的代码中呢?应该写入遗传算法过程的哪个部分?
关于遗传算法的高维文本聚类问题
目前的情况是:针对文本聚类的问题已做了预处理(当然特征提取的也不是特别完美。。),目前用遗传算法对实际文本进行聚类,已经初步得到一个很好的聚类结果,中间有一点小创新,但是由于创新性不高,老师不让发论文。。。 在研究文本聚类的时候发现一问题。大家都知道,在特征表示时,因为数据的稀疏性会导致维数大,耗时等问题,就出现很多针对稀疏性的降维方法。。(最近也看了很多像SPP等降维方法)但是我就是因为没有降维才得到了很好的聚类结果,而遗传算法的操作算子恰对原数据的稀疏性破坏不大,所以聚类结果才较好。。所以现在想知道还有什么算法能够和遗传算法结合,且操作起来也不会破坏数据的稀疏性的其他算法。。还有在各大网站上搜索稀疏性都是关于降维的。。。。我就想看看有没有不用降维的。。。当然我这维数确实很高。。 希望能和做相关方面研究的牛人们交流交流~~多多指导~~~~
使用遗传算法进行的自动排课设计,需要指出算法具体对应的代码中
需要指出遗传算法对应步骤是用哪些代码实现的,大家帮帮忙,谢谢谢谢!
GA 遗传算法的机理 初始种群的設定
遗传算法的机理 言語処理BOT 初始种群的設定 对于每个解根据实际情况的编码 在编码过的遗传算法中,每次变异的编码长度
遗传算法求助!!救救可怜的孩子吧。
![图片说明](https://img-ask.csdn.net/upload/201912/07/1575726004_924232.png) 要求写出遗传算法的设计方案,包括遗传算子和运行参数,要求小数点后精确至少7位。编写程序实现该函数最大值求解。救救可怜的孩子吧!!!
遗传算法有哪些重要指标?
如果你的毕业论文是基于遗传算法的某问题的研究,你觉得答辩老师最可能提问的是该算法的哪些问题,遗传算法有哪些重要指标是必须知道的。 举个例子,有一年师姐的论文是关于优化五连十字路口的信号灯时间的,答辩的时候blabla讲了一堆,答辩老师问你优化完之后车辆的平均通行时间和等信号灯时间的比是多少,师姐没答上,答辩老师说这都不知道就直接打回去改了。这个比值就是一个重要指标。 那么我用遗传算法研究某问题,有那些重要指标必须知道。
遗传算法优化k-means聚类中心的matalab代码
遗传算法优化k-means聚类中心的算法,matlab代码实现,急求啊,谢大神了!!!
递归 内存溢出 算法问题
import java.util.*; public class Main { public static void main(String[] args) { @SuppressWarnings("resource") Scanner sc = new Scanner(System.in); while (sc.hasNext()) { Long n = sc.nextLong(); sum(n); System.out.println(sum(n)); } } public static Long sum(Long n) { Long add = 0l; if (n == 1l) return 1l; else add = n + sum(n - 1); return add; } }
关于遗传算法应用的问题求解
原因集合A导致结果B。 原因集合A1导致结果B1。 原因集合A2导致结果B2。 原因集合A3导致结果B3。 。。。。。 是否可以根据遗传算法,求出原因状态A、A1、A2、A3...之间的非线性函数关系???
C#遗传算法生产排程问题
问题:将n个零件的生产工艺安排到m台机床上,用C#编一个遗传算法自动按最小时间排出。 求大神指点,附上代码。
OPT算法的具体代码解释以及LRU算法及其调用的MyStack栈的具体解释的问题?
主要是在OPT算法中的超出容量list的部分存在问题 ``` public OPT(int[] arr) { for (int i = 0; i < arr.length; i++) { if (list.size() < capacity) { // 小于list初始容量 if (!list.contains(arr[i])) { // list没有该页面,将其添加进list尾部 list.add(arr[i]);//列表+1 } else { continue; } } else {// 超出list容量 index[0] = 100; index[1] = 101; if (!list.contains(arr[i])) { // 下一个页面如果不在list中 int a = 0; for (int j = i; j < arr.length; j++) { if (list.contains(arr[j])) { // arr[j]这个页面会在测试数据中会出现较早 if (index[0] != list.indexOf(arr[j])) { //indexOf()的用法:查找arr[j]中,第一次出现指定字符串的位置。 位置不是下标为0 index[a++] = list.indexOf(arr[j]);// 返回此列表中首次出现的指定元素的索引 if (a == 2) { break; } } } } list.set(noExist(), arr[i]);// 置换掉永不使用的,或许在最长时间内不再访问的页面 } else { // 下一个页面在list中 continue;//列表保持不变 } } traverse();//调用traverse函数 } System.out.println("访问页面需从外存调入的次数为:"+(num-1));//计算访问页面需要从外存调入的次数 System.out.println("缺页率为:"+(1-(float)(num-1)/arr.length));//计算缺页率 } ``` 以下是我参考的链接文档 [https://blog.csdn.net/AdvancingStone/article/details/79110586]( "") 我在LRU算法的代码解释以及该程序调用的MyStack中也存在问题,请大佬们给我具体解释,最好有每一句代码的解释,我不懂的不是这些算法的原理,而是整个运算的代码过程,感谢了!
/*c语言实现*/遗传算法改进BP神经网络原理和算法实现怎么弄?
我现在在研究遗传算法改进BP神经网络,大概明白原理,但算法程序还有很多问题,求大神们教教我具体怎么把GA和BP结合,算法如何实现,给出代码或伪代码行吗?
求助matlab遗传算法求解0-1整数规划的代码
新手想用matlab遗传算法求解一个0-1整数规划,但是自己不会,有没有程序可以供参考下?或者对0-1整数规划有没有更好的其他软件、方法可以解决
遗传算法(C#),主要用于机械设计的优化
请问,有人有C#遗传算法的源代码么,或者下载地址也可以,谢谢。
有关遗传算法的一点不理解
遗传算法可以规定起点不,我刚刚才开始接触这个算法,还不太清楚,想请教一下各位
遗传算法求解0-1线性规划约束条件的处理
有哪位大神知道在利用遗传算法求解0-1线性规划的问题时,怎样处理目标函数中的复杂约束条件的问题
(遗传算法)极值点的求解问题
(matlab)五维参数空间内,目标函数存在两个极值点(大小接近),除了这两个极值点,参数空间内目标函数的曲面较平坦。那问题来了,如何求取这两个极值点及其对应的参数。 For example: 理想的极值点对应的参数一:alpha1=[20e3,10e3,-150,20,0] 第二个极值点对应的参数二:alpha2=[20e3,10e3,-150,20,1000] 利用Matlab自带的遗传算法工具箱,设置的空间搜索下限 LB=[19e3,9e3,-130,5,0] 上限UB=[21e3,11e3,-170,35,1500] 种群设为 150 迭代次数为50 交叉概率为0.8 变异概率为0.1 -------------------------------------------------------------------------- 最后,搜索结果基本上都在参数一附近,后来我想了下,很大的原因是因为全局收敛到了参数一。有没什么办法,可以把另一个极值点对应的参数也估计出来?? 求助大神回复。。。
相见恨晚的超实用网站
搞学习 知乎:www.zhihu.com 简答题:http://www.jiandati.com/ 网易公开课:https://open.163.com/ted/ 网易云课堂:https://study.163.com/ 中国大学MOOC:www.icourse163.org 网易云课堂:study.163.com 哔哩哔哩弹幕网:www.bilibili.com 我要自学网:www.51zxw
花了20分钟,给女朋友们写了一个web版群聊程序
参考博客 [1]https://www.byteslounge.com/tutorials/java-ee-html5-websocket-example
爬虫福利二 之 妹子图网MM批量下载
爬虫福利一:27报网MM批量下载    点击 看了本文,相信大家对爬虫一定会产生强烈的兴趣,激励自己去学习爬虫,在这里提前祝:大家学有所成! 目标网站:妹子图网 环境:Python3.x 相关第三方模块:requests、beautifulsoup4 Re:各位在测试时只需要将代码里的变量 path 指定为你当前系统要保存的路径,使用 python xxx.py 或IDE运行即可。
字节跳动视频编解码面经
引言 本文主要是记录一下面试字节跳动的经历。 三四月份投了字节跳动的实习(图形图像岗位),然后hr打电话过来问了一下会不会opengl,c++,shador,当时只会一点c++,其他两个都不会,也就直接被拒了。 七月初内推了字节跳动的提前批,因为内推没有具体的岗位,hr又打电话问要不要考虑一下图形图像岗,我说实习投过这个岗位不合适,不会opengl和shador,然后hr就说秋招更看重基础。我当时
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 顺便拉下票,我在参加csdn博客之星竞选,欢迎投票支持,每个QQ或者微信每天都可以投5票,扫二维码即可,http://m234140.nofollow.ax.
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入 假设现有4个人...
Python 基础(一):入门必备知识
目录1 标识符2 关键字3 引号4 编码5 输入输出6 缩进7 多行8 注释9 数据类型10 运算符10.1 常用运算符10.2 运算符优先级 1 标识符 标识符是编程时使用的名字,用于给变量、函数、语句块等命名,Python 中标识符由字母、数字、下划线组成,不能以数字开头,区分大小写。 以下划线开头的标识符有特殊含义,单下划线开头的标识符,如:_xxx ,表示不能直接访问的类属性,需通过类提供
这30个CSS选择器,你必须熟记(上)
关注前端达人,与你共同进步CSS的魅力就是让我们前端工程师像设计师一样进行网页的设计,我们能轻而易举的改变颜色、布局、制作出漂亮的影音效果等等,我们只需要改几行代码,不需...
国产开源API网关项目进入Apache孵化器:APISIX
点击蓝色“程序猿DD”关注我回复“资源”获取独家整理的学习资料!近日,又有一个开源项目加入了这个Java开源界大名鼎鼎的Apache基金会,开始进行孵化器。项目名称:AP...
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 欢迎 改进 留言。 演示地点跳到演示地点 html代码如下`&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;music&lt;/title&gt; &lt;meta charset="utf-8"&gt
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。 1. for - else 什么?不是 if 和 else 才
数据库优化 - SQL优化
前面一篇文章从实例的角度进行数据库优化,通过配置一些参数让数据库性能达到最优。但是一些“不好”的SQL也会导致数据库查询变慢,影响业务流程。本文从SQL角度进行数据库优化,提升SQL运行效率。 判断问题SQL 判断SQL是否有问题时可以通过两个表象进行判断: 系统级别表象 CPU消耗严重 IO等待严重 页面响应时间过长
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 c/c++ 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7
通俗易懂地给女朋友讲:线程池的内部原理
餐厅的约会 餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”我楞了一下,心里想女朋友今天是怎么了,怎么突然问出这么专业的问题,但做为一个专业人士在女朋友面前也不能露怯啊,想了一下便说:“我先给你讲讲我前同事老王的故事吧!” 大龄程序员老王 老王是一个已经北漂十多年的程序员,岁数大了,加班加不动了,升迁也无望,于是拿着手里
经典算法(5)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
编写Spring MVC控制器的14个技巧
本期目录 1.使用@Controller构造型 2.实现控制器接口 3.扩展AbstractController类 4.为处理程序方法指定URL映射 5.为处理程序方法指定HTTP请求方法 6.将请求参数映射到处理程序方法 7.返回模型和视图 8.将对象放入模型 9.处理程序方法中的重定向 10.处理表格提交和表格验证 11.处理文件上传 12.在控制器中自动装配业务类 ...
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹
面试官:你连RESTful都不知道我怎么敢要你?
面试官:了解RESTful吗? 我:听说过。 面试官:那什么是RESTful? 我:就是用起来很规范,挺好的 面试官:是RESTful挺好的,还是自我感觉挺好的 我:都挺好的。 面试官:… 把门关上。 我:… 要干嘛?先关上再说。 面试官:我说出去把门关上。 我:what ?,夺门而去 文章目录01 前言02 RESTful的来源03 RESTful6大原则1. C-S架构2. 无状态3.统一的接
求小姐姐抠图竟遭白眼?痛定思痛,我决定用 Python 自力更生!
点击蓝色“Python空间”关注我丫加个“星标”,每天一起快乐的学习大家好,我是 Rocky0429,一个刚恰完午饭,正在用刷网页浪费生命的蒟蒻...一堆堆无聊八卦信息的网页内容慢慢使我的双眼模糊,一个哈欠打出了三斤老泪,就在此时我看到了一张图片:是谁!是谁把我女朋友的照片放出来的!awsl!太好看了叭...等等,那个背景上的一堆鬼画符是什么鬼?!真是看不下去!叔叔婶婶能忍,隔壁老王的三姨妈的四表...
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看
SQL-小白最佳入门sql查询一
不要偷偷的查询我的个人资料,即使你再喜欢我,也不要这样,真的不好;
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
致 Python 初学者
欢迎来到“Python进阶”专栏!来到这里的每一位同学,应该大致上学习了很多 Python 的基础知识,正在努力成长的过程中。在此期间,一定遇到了很多的困惑,对未来的学习方向感到迷茫。我非常理解你们所面临的处境。我从2007年开始接触 python 这门编程语言,从2009年开始单一使用 python 应对所有的开发工作,直至今天。回顾自己的学习过程,也曾经遇到过无数的困难,也曾经迷茫过、困惑过。开办这个专栏,正是为了帮助像我当年一样困惑的 Python 初学者走出困境、快速成长。希望我的经验能真正帮到你
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,...
程序员:我终于知道post和get的区别
是一个老生常谈的话题,然而随着不断的学习,对于以前的认识有很多误区,所以还是需要不断地总结的,学而时习之,不亦说乎
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU...
相关热词 c#选择结构应用基本算法 c# 收到udp包后回包 c#oracle 头文件 c# 序列化对象 自定义 c# tcp 心跳 c# ice连接服务端 c# md5 解密 c# 文字导航控件 c#注册dll文件 c#安装.net
立即提问