自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 CSDN博客专家申请成功了~

2016年11月12号是我第第一次在CSDN写博客,写的内容是Linux基础命令,那个时候大二刚开始学习Linux刚开始博客浏览量不多,慢慢的大二暑假去一个不是很大的公司实习,看着自己的博客访问量破千,破万,到今年暑假破十万。。博客的内容比较杂,记录的都是自己的学习历程,之前也没想着能给其他人带来一些帮助,后来发现,有些东西还是帮助看部分人,非常感慨接下来,继续记录成长历程,一起加油...

2019-03-15 10:08:11 333

原创 Java核心技术第一周学习总结

第三章:Java的基本程序设计结构一、基本数据类型列举byte(字节型)、short(短整型)、int(整型)、long(长整型)、float(单精度浮点型)、double(双精度浮点型)、boolean(布尔型)、char(字符型)对应包装类java.lang.Byte、java.lang.Short、java.lang.Integer、java.lang.Long、java...

2018-12-02 19:03:56 2842 12

原创 Java成神之路-学习周计划

开这篇博客,意在从头到尾系统学习Java,按周计划进行,没有特别意外情况,都是每周日更新blog~一、11.19-11.25:Java基础知识-阅读源代码1、String源码:https://www.hollischuang.com/archives/992、threadlocal源码:https://www.sczyh30.com/posts/Java/java-concurre...

2018-12-01 18:36:28 1315 6

原创 了解HTTP协议,这一篇就够了

1、HTTP协议简介1.1、HTTP协议是超文本传输协议的简称,工作于应用层,用于从服务器传输超文本到本地浏览器。HTTP协议本身是一种无状态的,也没法自己传输数据,底层的数据传输协议是TCP协议。HTTP协议工作于客户端-服务端架构为上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。Web服务器根据接收到的请求后,向客户端发送响应信息。 左图为HTTP的请...

2018-11-25 14:20:48 1205 2

原创 flyway遇到的问题Caused by: java.lang.ClassNotFoundException: org.flywaydb.core.api.callback.FlywayCallbac

问题环境是springboot2.1.8+flyway6.0.4,尝试编译出错,异常堆栈的信息是找不到flywaycallback类解决过程1、flywaycallback找不到,导致org.springframework.boot.autoconfigure.flyway.FlywayAutoConfiguration$FlywayConfiguration这个bean创建失败...

2019-10-04 18:35:37 1662

原创 ES基础与实践

前言:Elasticsearch(ES)是什么Elasticsearch是一个基于Lucene构建的开源、分布式、RESTful接口全文搜索引擎。ES还是一个分布式文档数据库,其中每个字段均是被索引的数据且可以被搜索,它可以扩展至数以百计的服务器存储以及处理PB级别的数据。它可以在很短的时间内存储、搜索和分析大量的数据。它通常作为具有负责搜索常见情况下的核心发动机。优点 横向扩展...

2019-09-13 17:17:06 144

原创 Intellij IDEA 启动项目ClassNotFoundException

idea创建mvc项目,使用jetty作为web server启动的时候报错报错信息为:Java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener去lib目录下查看ContextLoaderListener类依赖的jar包是否存在,检查后确认存在。分析得,jar包没有...

2019-05-04 18:12:47 237

转载 深入理解Java内存模型(二)

深入理解Java内存模型(二)——重排序本文属于作者原创,原文发表于InfoQ:http://www.infoq.com/cn/articles/java-memory-model-2数据依赖性如果两个操作访问同一个变量,且这两个操作中有一个为写操作,此时这两个操作之间就存在数据依赖性。数据依赖分下列三种类型:名称 代码示例 说明 写后读 a = 1;b = ...

2018-12-08 17:46:00 108

转载 深入理解Java内存模型(一)

深入理解Java内存模型(一)——基础本文属于作者原创,原文发表于InfoQ:http://www.infoq.com/cn/articles/java-memory-model-1并发编程模型的分类在并发编程中,我们需要处理两个关键问题:线程之间如何通信及线程之间如何同步(这里的线程是指并发执行的活动实体)。通信是指线程之间以何种机制来交换信息。在命令式编程中,线程之间的通信机制有两...

2018-12-08 17:33:34 97

转载 Java内存模型

Java内存模型原文地址  作者:Jakob Jenkov 译者:张坤Java内存模型规范了Java虚拟机与计算机内存是如何协同工作的。Java虚拟机是一个完整的计算机的一个模型,因此这个模型自然也包含一个内存模型——又称为Java内存模型。如果你想设计表现良好的并发程序,理解Java内存模型是非常重要的。Java内存模型规定了如何和何时可以看到由其他线程修改过后的共享变量的值,以及在...

2018-12-08 15:38:29 103

转载 MySQL性能优化的最佳20条经验

今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显。关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我们程序员需要去关注的事情。当我们去设计数据库表结构,对操作数据库时(尤其是查表时的SQL语句),我们都需要注意数据操作的性能。这里,我们不会讲过多的SQL语句的优化,而只是针对MySQL这一Web应用最多的数据库。希望下面的这些优化技巧对你有用。1. 为查询...

2018-08-16 10:15:35 186

原创 2019秋招后台开发面试记录(阿里巴巴蚂蚁金服、百度、360、美团点评)

蚂蚁金服二面1、自我介绍2、项目3、10亿数字找最大100个数,不考虑内存问题,问的很细4、索引 B+树和二叉树5、腾讯可以留吗?给你offer了吗?你是不是要优先选择腾讯5、其他的个人问题聊了很多,哎前面都快被怼死了。。建议我考研之类的。。感觉都凉透了。。最后又给我说,面试表现还可以,前面的建议和面试结果没关系百度大搜视频检索组一面-25分钟面试官自我介绍,部门以及做的事情1...

2018-08-16 10:03:47 3105 11

原创 route、ping、traceroute、nestat、vmstat命令介绍

查看Linux系统网络状况相关的命令1. route查看和设置Linux系统的路由信息。Linux系统的route命令用于显示和操作IP路由表(show / manipulate the IP routing table)。要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器,或者同时位于两个网络的网关来实现。在Linux系统中,设置路由通常是为了解决以下问题:该Linux系统在一...

2018-07-24 19:52:45 484

转载 STL源码剖析之map和set

之前分析二叉搜索树和平衡二叉树时,真心感觉树的实现真是难,特别是平衡二叉树,不平衡之后需要调整,还要考虑各种情况,累感不爱.今天看到这个红黑树,发现比平衡二叉树还难,但是红黑树比平衡二叉树使用的场景更多,所以平常使用时,我们需要了解红黑树的实现原理,如果有能力,可以自己实现,但是如果实在做不出来,也没关系,因为STL和linux内核都有现成的红黑树实现,拿来用即可,前提是了解红黑树原理.红黑树...

2018-07-21 14:22:52 847

原创 C++ 判断左值和右值 (使用代码判断)

C++的左值和右值的概率继承自C语言里。C++11之后引入右值。左值和右值的根本区别就是左值可以使用&取地址,而右值是不可以取地址的。还有一点就是,右值是可以赋值给左值,但是反过来就不行,即左值不能赋值给右值。通俗的讲,就是左值在=左边,右值在右边。其实我们如果在判断左值和右值的时候,抓住上面的概念,在代码里是非常容易判断左值和右值的,但是假如让我们使用代码去判断左值和右值我们又该...

2018-07-21 14:20:23 1646 1

原创 梯度下降解决线性回归

今天主要是想和大家分享一下使用梯度下降解决线性回归问题,使用的框架是TensorFlow,开发环境在Linux ubuntu其中需要用到的Python库有numpy和matplotlib,大家对这两个库不清楚的可以直接Google 或者百度一下哈。首先我们使用numpy的正态分布函数随机生成100个点,这些(x,y)对应的线性方程为y=0.1*x+0.2,weigth=0.1,bias=0.2;然...

2018-05-05 17:30:13 429

原创 TCP性能优化

在讲这个TCP传输数据优化这块前,希望大家对TCP协议的三次握手要很熟悉哈,如果不熟悉,可以看我之前写的这篇博客http://blog.csdn.net/zhang_guyuan/article/details/62236579如果我们都很清楚三次握手过程,我就可以开始讲第一个优化方案有一点我们必须清楚,就是在tcp是在三次握手之后才开始真正传输数据的;tcp的每次握手都需要耗费1.5个RTT时间...

2018-03-15 13:16:12 1040 3

原创 18年春招实习面试网易游戏、腾讯、美团、腾讯阿里记录

 背景介绍:某河南双非本科,学校就不不说了,各位大佬感兴趣看我个人主页,即可。然后我是大二下学期开始找实习,当时暑假去了一家创业公司,期间面试了百度测开实习生,面到三面挂。然后大二暑假回学校,开始准备考研的事情,一直在准备考研复习。某日在某社交平台看到一个大三的孩子找到网易实习,我当时突然也想试一下,看看自己到底能不能拿到大厂offer。然后我从17年11月份开始找投简历,我记得当时收到的第一...

2018-03-14 22:53:12 4504 7

转载 MapReduce原理与设计思想

//转载自:  http://blog.jobbole.com/80619/简单解释 MapReduce 算法一个有趣的例子你想数出一摞牌中有多少张黑桃。直观方式是一张一张检查并且数出有多少张是黑桃?MapReduce方法则是:给在座的所有玩家中分配这摞牌让每个玩家数自己手中的牌有几张是黑桃,然后把这个数目汇报给你你把所有玩家告诉你的数字加起来,得到最后的结论拆分MapReduce合并了两种经典函...

2018-02-11 21:01:06 320

转载 大型网站架构系列:负载均衡详解(上)

//转载自:http://blog.jobbole.com/97957/面对大量用户访问、高并发请求,海量数据,可以使用高性能的服务器、大型数据库,存储设备,高性能Web服务器,采用高效率的编程语言比如(Go,Scala)等,当单机容量达到极限时,我们需要考虑业务拆分和分布式部署,来解决大型网站访问量大,并发量高,海量数据的问题。从单机网站到分布式网站,很重要的区别是业务拆分和分布式部署,将应用拆...

2018-02-11 20:55:33 310

原创 Redis之初识Redis

前言:一直对Redis很感兴趣,很多做技术的人就算没有学过redis,但至少听说过redis;redis是一个远程基于内存的数据库,不仅性能强劲,而且还具有复制特性以及解决问题而生的一种独一无二的数据模型。redis提供了5种不同类型的数据结构,这些数据结构致力于帮助用户解决问题,此外,通过复制、持久化和客户端分片等特性,用户可以很方便的将redis扩展成一个能包含数百GB数据每秒可以处理

2017-12-10 21:14:04 262

原创 面试百度新浪头条b站阿里的研发实习生面试记录

上周开始投简历,然后周四开始收到滴滴的面试通知,这是第一个面试通知,接着周五下午没课我就开始去图书馆复习,准备周一下午的面试,然后周五下午又收到百度面试通知,蛮开心的。因为一直觉得没有很好的学校,也没有出色的实习经历,也没有很高大上的项目,没有很大的信心。后来又去投了b站的简历,后来陆续收到面试邀请有头条、新浪、百度、盛大游戏、还有阿里巴巴,收到蛮多公司的面试邀请,我说句实话,蛮意外的。因为基本上...

2017-12-01 20:32:17 3640 5

转载 MySQL索引原理及慢查询优化

转载:https://tech.meituan.com/mysql-index.htmlMySQL凭借着出色的性能、低廉的成本、丰富的资源,已经成为绝大多数互联网公司的首选关系型数据库。虽然性能出色,但所谓“好马配好鞍”,如何能够更好的使用它,已经成为开发工程师的必修课,我们经常会从职位描述上看到诸如“精通MySQL”、“SQL语句优化”、“了解数据库原理”等要求。我们知道

2017-12-01 00:07:26 224

原创 Intellij idea 连接mysql数据库

1、下载mysql驱动需要将mysql driver导入到项目中方法如下:file->project structure->dependcies(add jar包)2、连接数据库代码如下import java.sql.*;public class JdbcTest { static final String JDBC_DRIVER = "com.mysql.jdbc.Dr

2017-09-26 15:54:26 1621

原创 Linux 安装mysql出现的问题

mysql> use mysql;Database changedmysql> update user set password=password('123456') where user='root';ERROR 1054 (42S22): Unknown column 'password' in 'field list'mysql>authentication_string

2017-09-26 13:53:43 231

原创 Linux ubtun 安装wireshark

sudo apt-get install wiresharksudo groupadd wiresharksudo usermod -a -G wireshark YOUR_USER_NAMEsudo chgrp wireshark /usr/bin/dumpcapsudo chmod 750 /usr/bin/dumpcapsudo setcap cap_net_raw,cap_net

2017-09-22 13:13:48 408

转载 C++对象模型之内存布局三(虚继承)

经过两天的摸索,今天终于搞清楚C++对象模型.前两篇已经讲解了单继承,多重继承和多继承的对象模型.今天讲解菱形继承,虽然过程艰难,但是收获丰富.简单虚继承对象模型首先编写如下的测试程序:12345678910111213141516171819202122232425262728293031323334353637383940414243444546#i

2017-09-18 15:20:10 379

转载 epoll和select的区别

先说下本文框架,先是问题引出,然后概括两个机制的区别和联系,最后介绍每个接口的用法一、问题引出 联系区别问题的引出,当需要读两个以上的I/O的时候,如果使用阻塞式的I/O,那么可能长时间的阻塞在一个描述符上面,另外的描述符虽然有数据但是不能读出来,这样实时性不能满足要求,大概的解决方案有以下几种:1.使用多进程或者多线程,但是这种方法会造成程序的复杂,而且对与进程与线程的创

2017-09-14 12:25:47 287

原创 C/C++:随机数生成

C/C++中生成随机数可以使用标准库函数rand()来生成。1、对生成的随机数的范围不限制代码如下#include#includeint main(){ printf("%d/n",rand());}2、对生成的随机数的范围有限制比如在1000以内#include#includeint main(){ print

2017-09-08 17:15:22 343

转载 C++对象模型之内存布局二

上篇文章讲了无多态和有多态下的单继承的对象内存布局,这篇文章将深入讲解多重继承和多继承.多重继承理论讲解多重继承,顾名思义,就是继承关系大于2,即至少有父类,子类,孙子类三代关系,先定义以下三个类:123456789101112131415161718192021222324252627282930313233class A{public:

2017-09-08 15:47:49 177

转载 C++对象模型之内存布局一

如果想学习在linux或者在linux平台下开发,学习C/或C++是非常好的选择.俗话说,术业有专攻,学一门技术,就尽量学得深,也可以作为行走江湖,混口饭吃的一项本领.对于C,当初我是看了C与指针这门书,这本书讲解了很多我没有了解过的知识点,特别是指针讲解的很到位.最后还设计了C运行时内存模型.对于C++的学习,我看了C++ Primer之后,进阶的书为深入理解C++对象模型,这本

2017-09-07 10:35:00 189

原创 C++之std::atmoic、std::pair、enum class

今天看别人的源码,发现C++里面的有些东西之前都没接触过,记录下来1、std::atmoicatmoic是应该模板类是C++11新出的应该新特性用来保证线程安全。保证对象是应该原子操作,即每次只能有一个线程对对象进行操作,用来保证数据安全2、std::pairstd::pairstd::pair p;p.first=1;p.second=2;std::cout<<p.fi

2017-09-04 17:46:41 337

原创 数组和链表的区别

数组:数组中的元素在内存上连续存放的,而且删除或者添加一个元素需要执行大量移动操作,效率是很低的。但是随机访问某个元素可以通过index访问,时间复杂度为O(1).数组是不允许动态定义大小,即我们在使用前必须先确定数组的大小。不能适应元素动态增减的情况,当增加元素的时候,可能数组的大小不够。链表:链表中的元素在内存上与数组是不一样的,链表中的每个元素的地址都是不连续的,相邻的元素都是通过指针联

2017-09-04 17:14:50 197

原创 设计模式-单例模式(线程安全)

前言:单例模式是设计模式中比较简单的一种,但是又因为简单常见在面试中又是经常出现的一个设计模式。所以必须要会啊。之前也只是会写线程不安全的单例模式。单例模式:一个类能返回对象一个引用(永远是同一个)和一个获得该实例的方法(必须是静态方法,通常使用getInstance这个名称);当我们调用这个方法时,如果类持有的引用不为空就返回这个引用,如果类保持的引用为空就创建该类的实例并将实例的引用赋予该

2017-09-04 10:38:14 220

原创 C++多线程编程:线程同步

前言多线程编程必须要考虑线程同步问题。线程同步就是,当多个线程共享一个内存的时候,为了保证他们都有一致的数据视图。如果每个线程使用的变量都是其他线程不会读取和修改的,那么就不存在一致性问题。同样的,如果变量是只读的,多个线程同时读取该变量也不会有一致性问题;但是,当一个线程可以修改的变量,其他线程可以读取或者修改的时候,我们就需要对这些线程进行同步,确保它们在访问变量的存储内容的时候不会访问到...

2017-08-31 15:38:55 252

原创 求字符串的所有子串(Java/C++)

题目:求一个字符串的所有子串。例如字符串abc的子串有:a,ab,b,bc,c(注意一下子串的特点)下面我将分别使用Java和C++实现算法来解决这个问题://C++实现 void getAllSubstrings(std::string str){ if(str.size()==0) return; else{...

2017-08-31 14:53:26 8932 10

转载 CMake 编译支持GDB调试

一般在调用./configure时,可以通过设置CXXFLAGS或者CFLAGS使程序可以支持调试,就是可以用GDB查看程序运行的信息,但在cmake编译时,在cmake过程和后面的make及make install都无法加入调试信息。当然可以加入调试信息的,方法如下:修改CMakeLists.txt文件,如我修改如下:# Version 2.4 mig

2017-08-30 10:47:27 453

转载 STL源码剖析之vector

C++标准模板库在日程编程应用非常的广泛,之前看到一篇大牛文章说,用C++开发,尽量用容器类+迭代器来代替数组+指针,因为数组+指针容易越界,或者内存泄露,相反,容器类和+迭代器都有国外大神将底层封装好,使用安全简单。而且标准模板库再一定程度上可以提高我们编程效率,假如要对一个结构体数组排序,写一个比较函数或者仿函数,调用sort函数即可。换做是c语言,还需自己写排序函数。。。vector是有

2017-08-29 17:52:55 257

原创 CMake 进阶篇

include_directories(${variable})添加头文件的搜索路径target_include_directories(A PRIVATE ${Boost_INCLUDE_DIRS})如果您只使用源文件(.cpp)或专用头文件(.h)中的Boost头。target_include_directories(A INTERFACE ${Boost_INCLUDE_DI

2017-08-29 17:49:40 1149

原创 Linux下clang/gcc使用pthread.h编译出错undefined reference to `pthread_create'

最近看Unix环境高级编程,关于多线程编程的部分,按照书上的代码敲了一下,编译出错undefined reference to `pthread_create';Google了一下,是链接的时候出错,需要加参数clang test.c -o test -lpthread或者g++ test.c -o test -lpthread具体代码如下#include

2017-08-18 18:36:49 1670

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