OpenGL绘图颜色设置无效(MFC环境下) 5C

用MFC做了一个小程序,大致功能是先显示一个读入的图形,然后在条件变化时显示另一个图形,最初的显示是正常的,然后消息处理函数也没问题,自定义了一个draw函数如下

void CReadView::Draw(){

glClearColor(1.0, 1.0,1.0, 0.0);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);    // Clear Screen And Depth Buffer

glEnable(GL_COLOR_MATERIAL); 

glLoadIdentity();                                    // Reset The Current Modelview Matrix
glTranslatef(-1.5f, 0.0f, -6.0f);//物体左移1.5,向内移6,相当于移动镜头一样,让物体进入镜头中

glColor3f(1.0, 0.0, 0.0);
glBegin(GL_TRIANGLES); // 绘制三角形(逆时针画出来的三角形才是正面朝着我们的)    
glVertex3f(-1.0, -1.0, 0.0); // 左下顶点(//glVertex 的第一个参数是X坐标,然后依次是Y坐标和Z坐标)
glVertex3f(1.0, -1.0, 0.0); // 右下顶点
glVertex3f(0.0, 1.0, 0.0); // 上顶点
glEnd(); // 三角形绘制结束

glColor3f(0.4, 0.75, 1.0);
glRectf(1.5f, 1.5f, 2.5f, 2.5f);

glLineWidth(3);
glBegin(GL_LINES);  
glColor3f(1.0, 0.0, 0.0);
glVertex2f(3.0f, 0.0f);
glVertex2f(3.5f, 0.0f);
//在这里使用glVertex*系列函数  指定你所希望的顶点位置
glEnd();

glLineWidth(1);
glColor3f(1.0f, 1.0f, 0.0f);
glBegin(GL_LINES);  
glVertex3f(-3.0f, 2.0f, 3.0f);
glVertex3f(3.0f, 1.0f, 0.0f);
glEnd();


glColor3f(1.0f,0.0f,0.0f);
glBegin(GL_LINES);
glVertex2i(1, 1);
glVertex2i(3, 3);
glEnd();


glFlush();

}
把它放到的OnDraw函数里进行调用,程序可以正常执行,只是画出来的这些线段、图形都没有颜色(是默认的黑色),也就是glColor3f似乎失效了。
这些绘制的函数都是从网上找来做测试的,在正常单独的OpenGL环境里应该也都是没问题的。是MFC的问题吗?或者是OpenGL需要某些重新的预设置?求解答

2个回答

把头两行clear注释掉试一下

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Opengl MFC多线程如何在原窗口进行绘图
由于OPENGL绘图占用时间较长(32ms),不得不新开一个线程进行绘图,但我发现我现在的程序每次都要新建窗口。请问,怎么在原窗口上绘图啊?
MFC OpenGL 多线程绘图问题
我用MFC做了个绘图程序,在一个窗口上显示图像,现在我想添加一个右键旋转图像的功能,绘图是在OnPaint里面实现的,请问该怎么做啊?
mfc对话框picture控件用OpenGL画图
求mfc对话框下点击按钮弹出新对话框用picture 控件画图的方法,已经添加了新对话框类,该如何在新类下设置才能用OpenGL画图? ps:原对话框已经画了一幅图,需要点开按钮再画一幅不一样的图的方法 谢谢各位大神了!!!
mfc与opencv,OpenGL等库的结合
想用mfc做个界面,图像处理的过程和数据用opencv和OpenGL来运行,但是一直没找到合适的办法,做过相关的能解释一下吗?
基于MFC的opengl实现路径飞行
基于MFC的opengl,现已进行了房屋绘制和纹理贴图光照,三维漫游等,接下来的功能是指定几个点构成路径,让相机沿着这个路径进行飞行,希望大神可以指导一下如何实现这个功能?
opengl+mfc刷新一会加卡
我在MFC的CView上用openGL画了一个三维坐标系,想让这个坐标系可以随着鼠标的拖动随时旋转。现在生成项目后,转动一会就卡了。到底是哪部分的问题?我在onPaint事件中绘制,然后在鼠标转动事件中用InvalidateRect或Invalidate来刷新。可是一开始不卡,一会就卡了。问题出在哪?代码太多也不能贴出来....................
MFC中自定义OPENGL控件问题
我在MFC中制作了动态的OPENGL控件,在空间中设定TIMER通过INVALIDRECT的方式刷新屏幕,这个控件在对话框中成功实现,但是在CFORMVIEW中控件动画却不能刷新,你遇到过这样的问题或者知道原因吗?
怎么把opengl的显示功能添加到MFC中的某一个模块。
做了一个MFC的界面,然后想在界面中的右下角显示一个三维点云,这个三维点云目前 能用opengl编的程序单独显示出来,但是现在希望把它放到MFC中,求问需要看什么资料或者有什么思路。谢谢!!
Android OpenGL导入模型后的背景颜色可以设置吗
Android OpenGL导入模型的背景颜色都是黑色,然而我想将背景设置为透明,然后将模型设置到另外一个activity中显示(此时背景也是这个activity的)请问怎么实现
VS+MFC+opengl系统开发的问题?(初学)
对着书在学利用MFC建立基于多文档的应用程序框架, 书中第二章是建了一个多文档的MFC程序,最终运行结果我也调试的和书本一样,如下图 ![图片说明](https://img-ask.csdn.net/upload/201912/28/1577520327_431703.png) 但是到了第章三,他是这样说的将在MFC AppWizard产生的应用程序框架的基础上,区具体组织一个基本三维图形编辑系统的开发,(我的理解就是在上一章我建立的文件上继续扩展) 如下图 ![图片说明](https://img-ask.csdn.net/upload/201912/28/1577520535_736243.png) 接下来我发现要完成他说的步骤就一定要建立一个MFC的对话框,但是上一章是MFC的多文档。这是这一章的第一步,要建立一个对话框。 ![图片说明](https://img-ask.csdn.net/upload/201912/28/1577520786_964099.png) 我的困惑是请问这两章是如何衔接的,如果按照第二章建立了这样一个文件后要如何衔接完成下一章的工作,第二章最后是建立了这样一个文档 ![图片说明](https://img-ask.csdn.net/upload/201912/28/1577520871_238209.png) 如果建立了一个对话框,我发现就会出现两个不同的文档, ![图片说明](https://img-ask.csdn.net/upload/201912/28/1577521018_401371.png) 所以:请问如果要在上一个文档3DEditor(MFC多文档)的基础上添加对话框该怎么操作?
MAC的Opengl程序清除窗口中所有物体
在MFC中用Opengl进行三维绘图,如果想清除当前窗口中所绘物体,应该怎么做。我试过用glclearColor()和glclear(),但是发现这是清除背景颜色为某一种颜色的。希望各位大神可以帮我。
学习计算机图形学OpenGL绘图
正在学习 计算机图形学OpenGL,遇到一个问题,弄不了,谁能帮忙绘制一个正平行六面体的正三测图
OpenGL绘图在32位和64位机器上的疑惑
大家好, 本人项目中采用VS2013+OpenGL绘图并对图形进行拷贝,先前一直在win7 32位机器上编写程序,前段时间将编写好的程序拷贝至win10 64位机器上,发现图形能够正常显示,但拷贝功能出现了问题,几经调试也无法解决。下面是以一个简单的测试程序描述该问题。 测试程序为一个基于对话框的工程,在主对话框中有一个自定义控件用于绘图,该控件旁边有一个按钮控件Copy,其响应函数OnBnClickedButtonCopy()中对自定义控件中的图形做拷贝。自定义控件CGraphCtrl中的OnPaint函数如下: void CGraphCtrl::OnPaint() { CPaintDC dc(this); // device context for painting // TODO: 在此处添加消息处理程序代码 //MFC绘图 CRect rc; GetClientRect(&rc); dc.MoveTo(0, 0); dc.LineTo(rc.right, rc.bottom); dc.MoveTo(rc.right, 0); dc.LineTo(0, rc.bottom); //OpenGL绘图 wglMakeCurrent(m_hDC, m_hRC); DrawGraph(); SwapBuffers(m_hDC); wglMakeCurrent(m_hDC, NULL); } 主对话框按钮控件Copy的响应函数如下: void CUsingGlut32Dlg::OnBnClickedButtonCopy() { //m_GraphCtrl.WriteBmpToFile(hBitmap, _T("WriteBmpToFile.bmp")); HBITMAP hBitmap = m_GraphCtrl.GetBmpHandle(); m_GraphCtrl.CopyBmpToClipBoard(hBitmap); } 下面图形分别为程序在win7 32位机器上的运行效果和点击按钮Copy后剪贴板中的内容: ![图片说明](https://img-ask.csdn.net/upload/201605/26/1464225417_373890.png) ![图片说明](https://img-ask.csdn.net/upload/201605/26/1464225551_446684.png) 运行效果和拷贝都与期望相同。 下面为该程序在win10 64位机器上的运行效果和点击按钮Copy后剪贴板中的内容: ![图片说明](https://img-ask.csdn.net/upload/201605/26/1464225594_750790.png) ![图片说明](https://img-ask.csdn.net/upload/201605/26/1464225641_235376.png) 运行效果相同,但拷贝似乎只针对MFC绘图部分,而没有拷贝OpenGL所绘制的内容。 下面将程序中MFC绘图部分和OpenGL绘图部分的代码顺序做了交换,如下所示: void CGraphCtrl::OnPaint() { CPaintDC dc(this); // device context for painting // TODO: 在此处添加消息处理程序代码 //OpenGL绘图 wglMakeCurrent(m_hDC, m_hRC); DrawGraph(); SwapBuffers(m_hDC); wglMakeCurrent(m_hDC, NULL); //MFC绘图 CRect rc; GetClientRect(&rc); dc.MoveTo(0, 0); dc.LineTo(rc.right, rc.bottom); dc.MoveTo(rc.right, 0); dc.LineTo(0, rc.bottom); } 这次,程序在win7 32位机器上的运行效果和点击按钮Copy后剪贴板中的内容如下: ![图片说明](https://img-ask.csdn.net/upload/201605/26/1464226013_720590.png) ![图片说明](https://img-ask.csdn.net/upload/201605/26/1464226057_333525.png) 运行效果和拷贝也都与期望相同。 下面为该程序在win10 64位机器上的运行效果和点击按钮Copy后剪贴板中的内容: ![图片说明](https://img-ask.csdn.net/upload/201605/26/1464226145_869143.png) ![图片说明](https://img-ask.csdn.net/upload/201605/26/1464226196_96484.png) 运行效果没有显示OpenGL的内容,而且拷贝也是只针对MFC绘图部分,没有拷贝OpenGL所绘制的内容。 上述问题很让人难以理解,DC所绘内容在哪儿?RC所绘内容与DC不在同一个缓存里?显示的是后半段缓存里的内容,拷贝的是前半段缓存里的内容?OpenGL绘图结束后,调用SwapBuffers函数后,前后台缓存应该做了交换啊!难道是内存错位问题?OpenGL不兼容64位?希望那位老师或大侠能给出解释和解决方案。非常感谢!
hadoop jni 如何实现opengl绘图
我做一个尝试,hadoop+jni可以实现hadoop调用C++代码。将C++做好JNI接口函数,代码编译成动态链接库.so,hadoop代码调用.so中的接口函数函数。.so实现的功能,是调用opengl库(一个用于绘图的库)的API,在窗口中绘制一个茶壶。但运行报错。.so分发到节点机运行时,有没有什么注意事项,比如运行权限,.so能不能找到自己的依赖库等等。我附上了我的代码,很少的能帮我看一看,我哪里做错了吗?谢谢。c++中opengl代码在单机JNI调用下是能运行,所以排除了代码不正确的原因。 [代码地址](http://pan.baidu.com/s/1bnErsUb "")
以mfc为框架的opengl,为什么连背景都没有显示啊。
自己按照网上的尝试了下mfc框架的opengl,但是根本就没有绘图,连背景都没有显示。求帮助。以下是代码,我自己创建了一个继承CWnd的类,如下: C/C++ code IMPLEMENT_DYNAMIC(COpenGL, CWnd) COpenGL::COpenGL() { } COpenGL::~COpenGL() { wglMakeCurrent(NULL,NULL); wglDeleteContext(hglrc); ::ReleaseDC(m_hWnd,hdc); } BEGIN_MESSAGE_MAP(COpenGL, CWnd) ON_WM_CREATE() ON_WM_PAINT() END_MESSAGE_MAP() // COpenGL 消息处理程序 int COpenGL::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CWnd::OnCreate(lpCreateStruct) == -1) return -1; // TODO: 在此添加您专用的创建代码 MySetPixelFormat(::GetDC(m_hWnd)); hdc = ::GetDC(m_hWnd); hglrc = wglCreateContext(hdc); CRect rect; this->GetWindowRect(&rect); wglMakeCurrent(hdc,hglrc); glShadeModel(GL_SMOOTH); glClearColor(1.0f,1.0f,1.0f,1.5f); glClearDepth(1.0f); glEnable(GL_DEPTH_TEST); glDepthFunc(GL_LEQUAL); glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); glViewport (0, 0, rect.Width(),rect.Height()); glMatrixMode (GL_PROJECTION); glLoadIdentity (); gluPerspective(65.0, (GLfloat)rect.Width()/(GLfloat)rect.Height(), 1, 1000); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); return 0; } void COpenGL::OnPaint() { //CPaintDC dc(this); // device context for painting // TODO: 在此处添加消息处理程序代码 // 不为绘图消息调用 CWnd::OnPaint() glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); //清除颜色缓存和深度缓存 glLoadIdentity(); gluLookAt(0,5,2, 0,0,0, 0,0,1); glColor3f(0.5f,0.5f,1.0f); // 一次性将当前色设置为蓝色 glBegin(GL_QUADS); // 绘制正方形 glVertex3f(300.0f, 300.0f, 0.0f); glVertex3f(300.0f, -300.0f, 0.0f); glVertex3f(-300.0f, -300.0f, 0.0f); glVertex3f(-300.0f, 300.0f, 0.0f); glEnd(); SwapBuffers(hdc); } int COpenGL::MySetPixelFormat(HDC hdc) { PIXELFORMATDESCRIPTOR pfd = { sizeof(PIXELFORMATDESCRIPTOR), 1, PFD_DRAW_TO_WINDOW| PFD_SUPPORT_OPENGL| PFD_DOUBLEBUFFER, PFD_TYPE_RGBA, 24, 0 ,0 ,0 ,0 ,0 ,0 , 0 , 0 , 0 , 0 ,0 ,0 ,0 , 32 , 0 , 0 , PFD_MAIN_PLANE, 0 , 0 ,0 ,0 }; int iPixelFormat; if(iPixelFormat = ChoosePixelFormat(hdc,&pfd) == 0) { ::MessageBox(NULL,"ChoosePixelFormat Failed","error",MB_OK); return 0; } if(SetPixelFormat(hdc,iPixelFormat,&pfd)) { ::MessageBox(NULL,"SetPixelFormat Failed","error",MB_OK); return 0; } return 1; } 另外 在主对话框中有如下代码: C/C++ code BOOL CMyProjectDlg::OnInitDialog() { CDialogEx::OnInitDialog(); // 将“关于...”菜单项添加到系统菜单中。 // IDM_ABOUTBOX 必须在系统命令范围内。 ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX < 0xF000); CMenu* pSysMenu = GetSystemMenu(FALSE); if (pSysMenu != NULL) { BOOL bNameValid; CString strAboutMenu; bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX); ASSERT(bNameValid); if (!strAboutMenu.IsEmpty()) { pSysMenu->AppendMenu(MF_SEPARATOR); pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); } } // 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动 // 执行此操作 SetIcon(m_hIcon, TRUE); // 设置大图标 SetIcon(m_hIcon, FALSE); // 设置小图标 // TODO: 在此添加额外的初始化代码 CRect rect; GetDlgItem(IDC_STATIC)->GetWindowRect(rect); ScreenToClient(rect); m_pDisplay->Create(NULL, NULL, WS_CHILD|WS_CLIPSIBLINGS|WS_CLIPCHILDREN|WS_VISIBLE, rect, this, 0); return TRUE; // 除非将焦点设置到控件,否则返回 TRUE }
64位机器上使用OpenGL绘图时,单缓冲和双缓冲绘图的结果不同?
大家好,最近在64位机器上使用OpenGL绘图,分别用PFD_SUPPORT_GDI和PFD_DOUBLEBUFFER初始化OpenGL时,绘制的结果有差异。 当我使用PFD_SUPPORT_GDI初始化OpenGL时,绘制完成后继续使用MFC绘图,绘制结果如下: ![图片说明](https://img-ask.csdn.net/upload/201606/02/1464856615_19354.png) 但使用PFD_DOUBLEBUFFER初始化OpenGL时,绘制的结果如下: ![图片说明](https://img-ask.csdn.net/upload/201606/02/1464856630_170040.png) 程序的主要代码如下: void CGraphCtrl::OnPaint() { CPaintDC dc(this); // device context for painting if (m_SDI) { InitOpenGL1(dc.m_hDC); //使用PDF_SUPPORT_GDI设置并选定像素格式 m_hRC = wglCreateContext(dc.m_hDC); wglMakeCurrent(dc.m_hDC, m_hRC); DrawGraph(); //draw a red cube with OpenGL glFlush(); //刷新绘图命令,此时所有未执行的OpenGL命令被执行 //SwapBuffers(dc.m_hDC); //把RC绘制的结果传给DC,使用SwapBuffers后不再需要glFlush wglMakeCurrent(NULL, NULL); //释放与m_hDC对应的 RC wglDeleteContext(m_hRC); //删除渲染描述表RC } else { InitOpenGL2(dc.m_hDC); // 使用PDF_DOUBLEBUFFER设置并选定像素格式 m_hRC = wglCreateContext(dc.m_hDC); wglMakeCurrent(dc.m_hDC, m_hRC); DrawGraph(); //draw a red cube with OpenGL //glFlush(); //刷新绘图命令,此时所有未执行的OpenGL命令被执行 SwapBuffers(dc.m_hDC); //把RC绘制的结果传给DC,使用SwapBuffers后不再需要glFlush wglMakeCurrent(NULL, NULL); //释放与m_hDC对应的 RC wglDeleteContext(m_hRC); //删除渲染描述表RC } //Draw a rectangle with MFC CRect rc; GetClientRect(&rc); rc.InflateRect(-rc.Width() / 4, -rc.Height() / 4); dc.SelectStockObject(NULL_BRUSH); dc.Rectangle(&rc); }
DXVA2 native硬解码后数据如何和opengl绘图在不同线程进行
**背景:** 1. 对4K高清视频的播放目前采用的方案是DXVA2 native硬解码+opengl glsl绘图。 2. DXVA2 硬解码后数据不拷贝回cpu内存,直接传递给opengl绘图。 **问题:** 目前的方法中解码后数据因为IDirect3DSurface9_LockRect和IDirect3DSurface9_UnLockRect无法传递到该函数外部,只能在解码后立即调用opengl绘图。 **目前的实现代码:** ``` static int dxva2_retrieve_data(AVCodecContext *s, AVFrame *frame) { LPDIRECT3DSURFACE9 surface = (LPDIRECT3DSURFACE9)frame->data[3]; InputStream *ist = (InputStream *)s->opaque; DXVA2Context *ctx = (DXVA2Context*)ist->hwaccel_ctx; D3DSURFACE_DESC surfaceDesc; D3DLOCKED_RECT LockedRect; HRESULT hr; int ret; IDirect3DSurface9_GetDesc(surface, &surfaceDesc); hr = IDirect3DSurface9_LockRect(surface, &LockedRect, NULL, D3DLOCK_READONLY); if (FAILED(hr)) { av_log(NULL, AV_LOG_ERROR, "Unable to lock DXVA2 surface\n"); return AVERROR_UNKNOWN; } picture->data[0] = (uint8_t*)LockedRect.pBits; picture->data[1] = (uint8_t*)LockedRect.pBits + LockedRect.Pitch * surfaceDesc.Height; frameWidth = frame->width; frameHeight = frame->height; //opengl draw start Draw(); //opengl draw end picture->data[0] = nullptr; picture->data[1] = nullptr; IDirect3DSurface9_UnlockRect(surface); return 0; } ``` **期望:** 1. 想把DXVA解码和opengl绘图分开到不同线程中,想知道是否有方法将DXVA2解码后数据传递到不同线程中? 2. 利用DXVA是否有gpu内部拷贝的功能可以保存解码线程中的数据?这样也实现了解码和绘图的分开。
求解答。。OPengl绘图系统的问题!
一个Opengl的绘图系统,怎样才能既可以绘制二维图形,又可以绘制三维图形,我觉得是Onsize里面出了问题,可是不知到怎么改,求高手解答,代码如下: void CMy123View::OnSize(UINT nType, int cx, int cy) { CView::OnSize(nType, cx, cy); //设定视口大小 if (m_shape == 1 || m_shape == 2 || m_shape == 3) { glLoadIdentity(); glOrtho(-cx / 2, cx / 2, -cy / 2,cy / 2, -10, 10); glMatrixMode(GL_PROJECTION); glLoadIdentity(); glViewport(0, 0, cx, cy); } if (m_shape == 4) { //设定视口大小 // glViewport(0, 0, cx, cy); glLoadIdentity(); glMatrixMode(GL_PROJECTION); glLoadIdentity(); glFrustum(-0.5, 1, -0.5, 1, 1, 20); ///透视矩阵或者透视视见体范围(左,右,下,上,前,后); glMatrixMode(GL_MODELVIEW); glShadeModel(GL_FLAT); glViewport(0, 0, cx, cy); glClearColor(1, 1, 1, 1); glClear(GL_COLOR_BUFFER_BIT); }
MFC 64位下OpenGL使用FreeType 绘制文字编译不通过
如题,默认库函数名称冲突,使用的是FreeType 2.6.5版本, 用控制台测试32位正常,然后将FreeType编译成64位,再去控制台测试就报错(无法正常启动程序0x000000c7,可能是我编译FreeType库lib错了吧,请问这个64位怎么编译?)
终于明白阿里百度这样的大公司,为什么面试经常拿ThreadLocal考验求职者了
点击上面↑「爱开发」关注我们每晚10点,捕获技术思考和创业资源洞察什么是ThreadLocalThreadLocal是一个本地线程副本变量工具类,各个线程都拥有一份线程私有的数
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
此博客仅为我业余记录文章所用,发布到此,仅供网友阅读参考,如有侵权,请通知我,我会删掉。 补充 有不少读者留言说本文章没有用,因为天气预报直接打开手机就可以收到了,为何要多此一举发送到邮箱呢!!!那我在这里只能说:因为你没用,所以你没用!!! 这里主要介绍的是思路,不是天气预报!不是天气预报!!不是天气预报!!!天气预报只是用于举例。请各位不要再刚了!!! 下面是我会用到的两个场景: 每日下
面试官问我:什么是消息队列?什么场景需要他?用了会出现什么问题?
你知道的越多,你不知道的越多 点赞再看,养成习惯 GitHub上已经开源 https://github.com/JavaFamily 有一线大厂面试点脑图、个人联系方式,欢迎Star和完善 前言 消息队列在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在消息队列的使用和原理方面对小伙伴们进行360°的刁难。 作为一个在互联网公司面一次拿一次Offer的面霸,打败了无数
8年经验面试官详解 Java 面试秘诀
    作者 | 胡书敏 责编 | 刘静 出品 | CSDN(ID:CSDNnews) 本人目前在一家知名外企担任架构师,而且最近八年来,在多家外企和互联网公司担任Java技术面试官,前后累计面试了有两三百位候选人。在本文里,就将结合本人的面试经验,针对Java初学者、Java初级开发和Java开发,给出若干准备简历和准备面试的建议。   Java程序员准备和投递简历的实
究竟你适不适合买Mac?
我清晰的记得,刚买的macbook pro回到家,开机后第一件事情,就是上了淘宝网,花了500元钱,找了一个上门维修电脑的师傅,上门给我装了一个windows系统。。。。。。 表砍我。。。 当时买mac的初衷,只是想要个固态硬盘的笔记本,用来运行一些复杂的扑克软件。而看了当时所有的SSD笔记本后,最终决定,还是买个好(xiong)看(da)的。 已经有好几个朋友问我mba怎么样了,所以今天尽量客观
程序员一般通过什么途径接私活?
二哥,你好,我想知道一般程序猿都如何接私活,我也想接,能告诉我一些方法吗? 上面是一个读者“烦不烦”问我的一个问题。其实不止是“烦不烦”,还有很多读者问过我类似这样的问题。 我接的私活不算多,挣到的钱也没有多少,加起来不到 20W。说实话,这个数目说出来我是有点心虚的,毕竟太少了,大家轻喷。但我想,恰好配得上“一般程序员”这个称号啊。毕竟苍蝇再小也是肉,我也算是有经验的人了。 唾弃接私活、做外
大学四年自学走来,这些珍藏的「实用工具/学习网站」我全贡献出来了
知乎高赞:文中列举了互联网一线大厂程序员都在用的工具集合,涉及面非常广,小白和老手都可以进来看看,或许有新收获。
《阿里巴巴开发手册》读书笔记-编程规约
Java编程规约命名风格 命名风格 类名使用UpperCamelCase风格 方法名,参数名,成员变量,局部变量都统一使用lowerCamelcase风格 常量命名全部大写,单词间用下划线隔开, 力求语义表达完整清楚,不要嫌名字长 ...
Python爬虫爬取淘宝,京东商品信息
小编是一个理科生,不善长说一些废话。简单介绍下原理然后直接上代码。 使用的工具(Python+pycharm2019.3+selenium+xpath+chromedriver)其中要使用pycharm也可以私聊我selenium是一个框架可以通过pip下载 pip install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple/ 
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
你知道的越多,你不知道的越多 点赞再看,养成习惯 本文 GitHub https://github.com/JavaFamily 已收录,有一线大厂面试点思维导图,也整理了很多我的文档,欢迎Star和完善,大家面试可以参照考点复习,希望我们一起有点东西。 前前言 为啥今天有个前前言呢? 因为你们的丙丙啊,昨天有牌面了哟,直接被微信官方推荐,知乎推荐,也就仅仅是还行吧(心里乐开花)
Java工作4年来应聘要16K最后没要,细节如下。。。
前奏: 今天2B哥和大家分享一位前几天面试的一位应聘者,工作4年26岁,统招本科。 以下就是他的简历和面试情况。 基本情况: 专业技能: 1、&nbsp;熟悉Sping了解SpringMVC、SpringBoot、Mybatis等框架、了解SpringCloud微服务 2、&nbsp;熟悉常用项目管理工具:SVN、GIT、MAVEN、Jenkins 3、&nbsp;熟悉Nginx、tomca
Python爬虫精简步骤1 获取数据
爬虫的工作分为四步: 1.获取数据。爬虫程序会根据我们提供的网址,向服务器发起请求,然后返回数据。 2.解析数据。爬虫程序会把服务器返回的数据解析成我们能读懂的格式。 3.提取数据。爬虫程序再从中提取出我们需要的数据。 4.储存数据。爬虫程序把这些有用的数据保存起来,便于你日后的使用和分析。 这一篇的内容就是:获取数据。 首先,我们将会利用一个强大的库——requests来获取数据。 在电脑上安装
Python绘图,圣诞树,花,爱心 | Turtle篇
1.画圣诞树 import turtle screen = turtle.Screen() screen.setup(800,600) circle = turtle.Turtle() circle.shape('circle') circle.color('red') circle.speed('fastest') circle.up() square = turtle.Turtle()
作为一个程序员,CPU的这些硬核知识你必须会!
CPU对每个程序员来说,是个既熟悉又陌生的东西? 如果你只知道CPU是中央处理器的话,那可能对你并没有什么用,那么作为程序员的我们,必须要搞懂的就是CPU这家伙是如何运行的,尤其要搞懂它里面的寄存器是怎么一回事,因为这将让你从底层明白程序的运行机制。 随我一起,来好好认识下CPU这货吧 把CPU掰开来看 对于CPU来说,我们首先就要搞明白它是怎么回事,也就是它的内部构造,当然,CPU那么牛的一个东
破14亿,Python分析我国存在哪些人口危机!
2020年1月17日,国家统计局发布了2019年国民经济报告,报告中指出我国人口突破14亿。 猪哥的朋友圈被14亿人口刷屏,但是很多人并没有看到我国复杂的人口问题:老龄化、男女比例失衡、生育率下降、人口红利下降等。 今天我们就来分析一下我们国家的人口数据吧! 更多有趣分析教程,扫描下方二维码关注vx公号「裸睡的猪」 即可查看! 一、背景 1.人口突破14亿 2020年1月17日,国家统计局发布
听说想当黑客的都玩过这个Monyer游戏(1~14攻略)
第零关 进入传送门开始第0关(游戏链接) 请点击链接进入第1关: 连接在左边→ ←连接在右边 看不到啊。。。。(只能看到一堆大佬做完的留名,也能看到菜鸡的我,在后面~~) 直接fn+f12吧 &lt;span&gt;连接在左边→&lt;/span&gt; &lt;a href="first.php"&gt;&lt;/a&gt; &lt;span&gt;←连接在右边&lt;/span&gt; o
在家远程办公效率低?那你一定要收好这个「在家办公」神器!
相信大家都已经收到国务院延长春节假期的消息,接下来,在家远程办公可能将会持续一段时间。 但是问题来了。远程办公不是人在电脑前就当坐班了,相反,对于沟通效率,文件协作,以及信息安全都有着极高的要求。有着非常多的挑战,比如: 1在异地互相不见面的会议上,如何提高沟通效率? 2文件之间的来往反馈如何做到及时性?如何保证信息安全? 3如何规划安排每天工作,以及如何进行成果验收? ......
作为一个程序员,内存和磁盘的这些事情,你不得不知道啊!!!
截止目前,我已经分享了如下几篇文章: 一个程序在计算机中是如何运行的?超级干货!!! 作为一个程序员,CPU的这些硬核知识你必须会! 作为一个程序员,内存的这些硬核知识你必须懂! 这些知识可以说是我们之前都不太重视的基础知识,可能大家在上大学的时候都学习过了,但是嘞,当时由于老师讲解的没那么有趣,又加上这些知识本身就比较枯燥,所以嘞,大家当初几乎等于没学。 再说啦,学习这些,也看不出来有什么用啊!
别低估自己的直觉,也别高估自己的智商
所有群全部吵翻天,朋友圈全部沦陷,公众号疯狂转发。这两周没怎么发原创,只发新闻,可能有人注意到了。我不是懒,是文章写了却没发,因为大家的关注力始终在这次的疫情上面,发了也没人看。当然,我...
这个世界上人真的分三六九等,你信吗?
偶然间,在知乎上看到一个问题 一时间,勾起了我深深的回忆。 以前在厂里打过两次工,做过家教,干过辅导班,做过中介。零下几度的晚上,贴过广告,满脸、满手地长冻疮。   再回首那段岁月,虽然苦,但让我学会了坚持和忍耐。让我明白了,在这个世界上,无论环境多么的恶劣,只要心存希望,星星之火,亦可燎原。   下文是原回答,希望能对你能有所启发。   如果我说,这个世界上人真的分三六九等,
为什么听过很多道理,依然过不好这一生?
记录学习笔记是一个重要的习惯,不希望学习过的东西成为过眼云烟。做总结的同时也是一次复盘思考的过程。 本文是根据阅读得到 App上《万维钢·精英日课》部分文章后所做的一点笔记和思考。学习是一个系统的过程,思维模型的建立需要相对完整的学习和思考过程。以下观点是在碎片化阅读后总结的一点心得总结。
B 站上有哪些很好的学习资源?
哇说起B站,在小九眼里就是宝藏般的存在,放年假宅在家时一天刷6、7个小时不在话下,更别提今年的跨年晚会,我简直是跪着看完的!! 最早大家聚在在B站是为了追番,再后来我在上面刷欧美新歌和漂亮小姐姐的舞蹈视频,最近两年我和周围的朋友们已经把B站当作学习教室了,而且学习成本还免费,真是个励志的好平台ヽ(.◕ฺˇд ˇ◕ฺ;)ノ 下面我们就来盘点一下B站上优质的学习资源: 综合类 Oeasy: 综合
如何优雅地打印一个Java对象?
你好呀,我是沉默王二,一个和黄家驹一样身高,和刘德华一样颜值的程序员。虽然已经写了十多年的 Java 代码,但仍然觉得自己是个菜鸟(请允许我惭愧一下)。 在一个月黑风高的夜晚,我思前想后,觉得再也不能这么蹉跎下去了。于是痛下决心,准备通过输出的方式倒逼输入,以此来修炼自己的内功,从而进阶成为一名真正意义上的大神。与此同时,希望这些文章能够帮助到更多的读者,让大家在学习的路上不再寂寞、空虚和冷。 ...
雷火神山直播超两亿,Web播放器事件监听是怎么实现的?
Web播放器解决了在手机浏览器和PC浏览器上播放音视频数据的问题,让视音频内容可以不依赖用户安装App,就能进行播放以及在社交平台进行传播。在视频业务大数据平台中,播放数据的统计分析非常重要,所以Web播放器在使用过程中,需要对其内部的数据进行收集并上报至服务端,此时,就需要对发生在其内部的一些播放行为进行事件监听。 那么Web播放器事件监听是怎么实现的呢? 01 监听事件明细表 名
3万字总结,Mysql优化之精髓
本文知识点较多,篇幅较长,请耐心学习 MySQL已经成为时下关系型数据库产品的中坚力量,备受互联网大厂的青睐,出门面试想进BAT,想拿高工资,不会点MySQL优化知识,拿offer的成功率会大大下降。 为什么要优化 系统的吞吐量瓶颈往往出现在数据库的访问速度上 随着应用程序的运行,数据库的中的数据会越来越多,处理时间会相应变慢 数据是存放在磁盘上的,读写速度无法和内存相比 如何优化 设计
Linux 命令(122)—— watch 命令
1.命令简介 2.命令格式 3.选项说明 4.常用示例 参考文献 [1] watch(1) manual
Linux 命令(121)—— cal 命令
1.命令简介 2.命令格式 3.选项说明 4.常用示例 参考文献 [1] cal(1) manual
记jsp+servlet+jdbc实现的新闻管理系统
1.工具:eclipse+SQLyog 2.介绍:实现的内容就是显示新闻的基本信息,然后一个增删改查的操作。 3.数据库表设计 列名 中文名称 数据类型 长度 非空 newsId 文章ID int 11 √ newsTitle 文章标题 varchar 20 √ newsContent 文章内容 text newsStatus 是否审核 varchar 10 news...
Python新型冠状病毒疫情数据自动爬取+统计+发送报告+数据屏幕(三)发送篇
今天介绍的项目是使用 Itchat 发送统计报告 项目功能设计: 定时爬取疫情数据存入Mysql 进行数据分析制作疫情报告 使用itchat给亲人朋友发送分析报告(本文) 基于Django做数据屏幕 使用Tableau做数据分析 来看看最终效果 目前已经完成,预计2月12日前更新 使用 itchat 发送数据统计报告 itchat 是一个基于 web微信的一个框架,但微信官方并不允
相关热词 c# 压缩图片好麻烦 c#计算数组中的平均值 c#获取路由参数 c#日期精确到分钟 c#自定义异常必须继承 c#查表并返回值 c# 动态 表达式树 c# 监控方法耗时 c# listbox c#chart显示滚动条
立即提问