自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 从0开始手写基于http服务器

首先利用main函数处理端口号,利用start()调用,其次java是一门面向对象编程的语言,这里的对象我们可以理解成为接口,将接口管理起来放在一个包里面,使用哪个方法直接进行调用就可以了。http协议发送一个请求到服务端一般经历三个阶段:请求、处理、响应;请求也调用了接口的使用,http协议里面有一个首行的概念,这里面包括method(方法)、uri、version(版本号),首行调用完...

2018-09-27 15:53:16 356

原创 今天有两道算法题关于入栈、出栈操作

一、用两个栈来实现一个队列,完成队列的push和pop操作,队列中的元素为int类型思路:两个栈实现队列,根据栈先进后出的原则,为了保证队列输出的顺序,必须进行两次入栈的操作。两种解法大致相同。。。。import java.util.Stack;public class Solution { Stack<Integer> stack1 = new Stac...

2018-08-12 22:20:45 1390

原创 JavaSE 三个特殊的类

java中有三个特殊的类,分别是string、object和包装类,下面我们就来阐述一下这三个类。一.string类1.1对象实例化模式有两种:直接赋值  传统方法(new一下)两者的区别:1.1.1直接赋值方法中,不管新建了多少个string对象,他们不同的栈内存地址都是指向同一个堆内存地址,并没有开辟新的堆内存空间,极大地节省了开销,推荐使用。原因:string的设计采用了...

2018-08-10 23:20:40 207

原创 数据结构排序算法

排序:就是将一组杂乱无章的数据按照一定的规律组织起来。按照大类分为稳定排序和不稳定排序。稳定排序就是指两个大小相同的顺序在排序之后顺序不变,而不稳定排序那就不一定了。快速排序、希尔排序、堆排序、直接选择排序不是稳定的排序算法。详细图解如下: //在这里:N(log2N)是指log以2为底N的对数稳定排序的适用条件:1.本来就有序 2.数组比较短 在这篇博客中会详细讲...

2018-07-25 18:23:08 179

原创 javaSE 面向对象三大特征以及关键字

面向对象三大特征:1.封装性    2.继承性   3.多态性类:共性概念 组成:1.方法(操作的行为) 2.属性(变量,描述每个对象的具体特点)类名称 对象名称=new 类名称     new表明在堆上开辟了内存(注意一下内存分析)对象:一个具体的、可以使用的事物private(私有)只允许内部访问 访问私有类型:1.setter方法:对属性内容进行设置和修改  2.getter方法:取得属性内...

2018-07-06 13:29:32 453

原创 java基础知识(二)——数据类型、运算符

每一个变量必须声明一种类型,这就有了类型的概念java运算符:1.基础运算符:x++ 先算后加  ++x 先加后算2.三目运算符:布尔表达式?满足输出值:不满足输出值3.关系运算符:= <    >    <=     >=4.逻辑运算符:&(与) 判断所有条件 ; &&(短路与)只要满足条件直接输出(栗子:后面条件有错,&&无法检测...

2018-06-13 01:37:43 378

原创 java基础知识(一)——特性、程序结构、标识符

学习java也好久了,也没有系统的回顾一下java的整体框架,努力捡捡捡,想个办法把他们全部都捡起来!在java的世界里面一切皆对象首先从基础开始说起:Java的发展史java语言源自1991年Sun公司的Ork项目,1995年正式起名为java,1996年1月Java1.0正式发布,提出虚拟机的概念,1998年12月,Java1.2——Java史上第一个里程碑的版本,这一次将...

2018-06-13 01:03:14 253

原创 了解linux下面的一些重要目录

今天就重点说重要目录/proc, /sys, /SElinux, /bin, /usr/lib, /usr/local, /var, /tmp/proc 存放进程和系统的消息,proc是一个伪文件系统,它只存在内存当中,而不占用外存空间。/proc/net/proc/scsi 可读科可写的,并且读写的格式不一样,代表不同的操作;/proc/sys 可写,并且可以通过它来访问或修改内核的参数。sy...

2018-06-10 12:52:18 135

原创 linux目录权限和修改

文件权限:就是对某事项进行决策程度和范围,规定哪些事可以做、哪些事不可以做!在linux中对于一个目录有操作权限有三类人:拥有者u(电脑的主人)、所在组g(可以理解为拥有者的队友)、其他o(可以理解为你的团队以外的人)利用ll指令查看,依次按照这个的权限顺序组合;对于一个目录有三种操作权限有读权限:r    没有读权限:-      有写权限:w  没有写权限:-    有执行权限:x 没有执行权...

2018-06-09 00:26:14 5508

原创 linux基本指令思维导图

2018-06-07 13:13:29 862

原创 循环写计算器

#include <stdio.h> int add(int a, int b){ return a + b;}int sub(int a, int b){ return a - b;}int mul(int a, int b){ return a*b;}int div(int a, int b){ return a / b;}int main()...

2018-05-27 17:30:26 1130

原创 一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。找出这两个数字,编程实现。

//对数据进行整体异或,结果用一个标签检测二进制序列哪一位是1,从最低bit位开始检测,用该bit位对整体数据进行分类,再局部异或!void find_data(int arr[], int size){ assert(arr); assert(size > 0); int res = arr[0]; int i = 1; //step1 for (; i < size...

2018-05-24 19:35:04 130

原创 可变参数的源码剖析和理解

不错

2018-05-24 16:52:06 165

原创 递归及习题训练

函数调用自身的编程称之为递归,极大地减少了代码量,属于大事化小的一种编程手段递归要满足的两个条件:存在限制条件,满足条件时,递归将不再继续;递归调用之后越来越接近这个限制条件上段代码跑一下:利用递归和非递归分别实现求第n个斐波那契数。#include <stdio.h>#include <windows.h>int fib_1(int n){//利用循环求解 int...

2018-05-22 23:22:34 1005

原创 指针其实也可以很可爱(这个是一定会持续性补充的!)

写在前面的话:在学习C语言的过程中,指针无疑是一种最主要的编程风格,没办法忽视,也不能忽视,不要怕,勇敢闯过去,指针也可以很可爱!指针是什么?指针简单来说就是地址——通过它可以找到以它为地址的内存单元,指针(pointer)属于编程语言中的一个对象,利用地址,它的值直接指向存在电脑存储器中另一个地方的值。     区分三个概念:指针:地址;                            指...

2018-05-13 23:20:07 129

原创 栈帧——汇编语言详解

原来我以为在C语言中指针已经是非常麻烦了,没想到栈帧给我甜蜜一击,晕到现在不能自拔啊!

2018-05-13 18:01:35 3811

原创 字符串(一):旋转和匹配

首先了解一下字符串:字符串就是一串零个或者多个字符,并且以一个位模式全0的NUL字节结尾。NUL字节是字符串的终止符,但它并不计做字符串的一部分,所以计算长度时也并不计算在里面。字符串是一种重要的数据结构,在实际的编程过程中实用性很高,比如:复制、查找字符或子串等等。今天,我们学习一下字符串的左移问题,首先上一段代码:#include <stdio.h>#include <st...

2018-05-10 17:56:45 441

原创 Linux环境之下写程序

首先我们要明白Linux两个概念,gcc编译器,gdb调试器;在一个程序的实现中,存在四个过程:1.预处理:宏替换 去注释 头文件展开 条件编译gcc -E test.c -o test.i   <-o:生成新文件,预处理产生的结果都放在test.i文件之中>vim test.c 进入vim编译器进行程序的编写,按i我们进入插入模式,然后编辑文本编辑好以后shift + ;,进入底行模...

2018-05-06 16:16:41 191

原创 Linux的基本指令

写在前面的话,与我而言,Linux就是一个面向开发者的操作系统,支持32位和64位的pc运行。脱离了鼠标和熟悉的界面,我们需要用到大量的指令来进行操作,如下所示:常见指令有:ls-显示当前目录下的文件<绿色是文件,蓝色是目录>cd-进入上层目录   mkdir-创建目录   pwd-显示当前路径  cd-返回当前目录上一级  touch xxx.c-创建新文件  rm-删除操作   r...

2018-05-06 15:37:25 135

原创 LINK : fatal error LNK1168: cannot open Debug

这是在VC++6.0程序下编译时遇到的错误,基本出现在第二次修改再运行时;查询原因可得,VC++6.0在win7.0以上的版本不兼容,重新运行程序时,需要先删除原先的exe文件,但是这个文件被锁定,或者是正在运行无法进行删除操作:解决办法:打开资源管理器,将正在运行的关掉;或者Ctrl+x剪切掉正在运行的程序,新建一个工程运行;注意点!!!!如果运行成功,出现结果窗口,不能直接关掉返回程序,必须采...

2018-04-19 23:22:37 1550

原创 1.#INF00请按任意键继续. . .

在编一个很小的程序时,不管怎么修改一直遇到这个错误,后来了解到:主要是因为进行的除0操作,程序无法识别;错误代码:for (i = 0; i<101; i++){ sum =sum+flag*1.0 / i;}在这里i++就是i,不会因为没有满足条件就自加1,再进行计算;修改过后:for (i = 1; i<100; i++){ sum =sum+flag*1.0 / i;...

2018-04-19 23:12:02 2753

原创 //计算1/1-1/2+1/3-1/4+1/5......+1/99-1/100的值(稍后会进行跟进)

#include <stdio.h>#include<stdlib.h>//计算1/1-1/2+1/3-1/4+1/5......+1/99-1/100的值int main(){ int i = 0; int flag = 1; double sum = 0.0; for (i = 1; i<100; i++){ sum =sum+flag*1.0 / i; ...

2018-04-19 23:05:37 261

原创 请输入100-200之间的素数

在编译之前,说以下C语言编译软件:Dev大概是我用过最简单,最直接的编译软件了,不用新建工程,也不用分c和c++,内存占用小,调试方便,适合小型程序,但是这个软件无法识别system("pause");//暂定系统运行,在实际编译过程中,日常崩溃!!!!vc++6.0这个软件功能相当强大,但是由于开发时间太早,相比起来比较老土,同样无法识别system("pause");可以通过添加头文件#inc...

2018-04-14 23:53:34 488

原创 开启程序媛的第一篇博客

大概这个世界上面,只有你拥有无法被替代的并且可以创造价值的能力,才不会被替代吧!关于我自己:java、c在学,目前对于前端很感兴趣。(持续更新中)编程的意义大概是利用算法解决世界上所有无意义的劳动。语言都是不同的工具,各有优缺点,只有不断优化的算法才是一个人编程能力的体现。我的目标是在不断学习的过程中找到比昨天更加优化的算法。关于c的学习要点了解C语言的基本语法;数据;语句;操作符和表达式;关键字...

2018-04-14 11:03:52 132

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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