自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 排序算法——选择排序

选择排序的思想1、每轮选择当前位置,开始找出后面的较小值与该位置交换选择排序的关键1、确定总共需要选择几轮: 数组的长度-1.2、控制每轮从以前位置为基准,与后面元素选择几次。public class Test { public static void main(String[] args) { // 1、定义数组 int[] arr = {10, 14, 16, 25, 28, 30, 35, 88, 100}; System.

2022-01-10 20:15:53 296

原创 JAVA——Lambda表达式

Lambda表达式1、Lambda表达式是JDK8开始后的一种新语法形式。2、作用:简化匿名内部类的代码写法。Lambda的简化格式(匿名内部类被重写方法的形参列表)->{ 被重写方法的方法体代码。}注:->是语法形式,无实际含义。注意:Lambda表达式只能简化函数式接口的匿名内部类的写法形式。什么是函数式接口?1、首先必须是接口,其次接口中有且仅有一个抽象方法的形式2、通常我们会在接口上加一个@FunctionalInterface注解,标记该接口必须满足函数式接口。

2022-01-10 20:06:00 307

原创 JAVA——包装类、正则表达式、Arrays

包装类1、其实就是8种基本数据类型对于的引用类型基本数据类型引用数据类型byteByteshortShortintIntegerlongLongcharCharacterfloatFloatdoubleDoublebooleanBoolean为什么提供包装类?1、Java为了实现一切皆对象,为8种基本类型提供了对应的引用类型。2、后面的集合和泛型其实也只能支持保证类型,不支持基本数据类型。自动装箱:基本类型的数据

2022-01-09 23:43:57 368

原创 JAVA——常用API:Date,SimpleDateFormat,Calendar

Date类Date类的对象在Java中代表的是当前所在系统的此刻日期时间。Date的构造器名称说明public Date()创建一个Date对象,代表的是系统当前此刻日期时间。Date的常用方法名称说明public long getTime()获取时间对象的毫秒值Date类记录时间的2种形式形式1:日期对象//1、创建一个日期对象代表了:当前系统的此刻日期时间对象Date d = new Date();c形式2:时间毫秒值//2、

2022-01-09 22:12:24 440

原创 JAVA——常用API:Math,System,BigDecima

常用API什么是API?API(Application Programming interface)应用程序编程接口。简单来说:就是Java帮我们已经写好的一些方法,我们直接拿过来用就可以了。ObjectObject类的作用:1、一个类要么默认继承了Object类,要么间接继承了Object类,Object类是Java中的祖宗类。2、Object类的方法是一切子类都可以直接使用的,所以我们要学习Object类的方法。Object类的常用方法:方法名说明public St

2022-01-09 19:03:36 222

原创 JAVA——多态、内部类

面向对象三大特征之三:多态多态的概述,多态的形式什么是多态?同类型的对象,执行同一个行为,会表现出不同的行为特征。多态的场景形式父类类型 对象名称 = new 子类构造器;接口 对象名称 = new 实现类构造器;多态中成员访问特点1、方法调用:编译看左边,运行看右边。2、变量调用:编译看左边,运行也看左边。(多态侧重行为多态)多态的前提有继承/实现关系;有父类引用指向子类对象;有方法重写。多态的优势1、在多态形式下,右边对象可以实现解耦合,便于扩展和维护。Animal a =

2022-01-09 16:24:05 203

原创 JAVA语法—包、权限修饰符、final、常量、枚举、抽象类、接口

包什么是包?包是用来愤懑别类的管理各种不同类的,类似于文件夹,建包利于程序的管理和维护。建包的语法格式:package 公司域名倒写.技术名称。包名建议全部英文小写,且具备意义。比如:package com.xxx.javabean;建包语句必须在第一行,一般IDEA工具会帮助创建。导包相同包下的类可以直接访问,不同包下的类必须导包,才可以使用!导包格式:import 包名.类名;假如一个类中需要用到不同类,而这两个类的名称是一样的,那么默认只能导入一个类,另一个类要带包名访问。权限修饰

2022-01-06 23:07:41 483

原创 JAVA语法——继承

继承什么是继承?继承是类与类之间的一种关系。多个类继承单独的某个类,多个类就可以使用单独的这个类的属性和行为了。多个类成为子类(派生类),单独的这个类称为父类(基类 或超类)。为什么用继承?使用继承的好处:提高代码复用。如果要开发一个教务管理系统,需要考虑一些角色类的设计,如:学生类,老师类继承的格式在java中,继承的关键字用的是“extends”。public class 子类名 extends 父类名 {}。继承后子类的特点?子类继承父类,子类可以得到父类的属性和行为,子类可以

2022-01-05 23:08:33 1553 1

原创 Static关键字

Static关键字1、static关键字的作用static是静态的意思,可以修饰成员变量,表示该成员变量在内存中只存储一份,可以被共享访问、修改。2、成员变量的分类1、静态成员变量(有static修饰,属于类,内存中加载一次):常表示如在在线人数信息、等需要被共享的信息,可以被共享访问。访问格式:类名.静态成员变量(推荐)对象.静态成员变量(不推荐)静态成员变量放在堆内存中。2、实例成员变量(无static修饰,存在于每个对象中):常表示姓名name、年龄age、等属于每个对象的信息。访

2022-01-05 21:37:38 547

原创 JavaSE——对象内存

JavaSE——对象内存对象内存图class TestCar { public static void main(String[] args) { Car c1 = new Car(); c1.color = "red"; c1.type = "Audi"; c1.run(); }}/** A:车的属性 * 车的颜色 * 车的品牌* B:车的行为 * 车运行*/class Car{

2022-01-03 22:41:41 367

原创 linux 查看日志文件

Linux日志文件在/var/log目录下,可以通过命令查看日志文件。1,cat messages可以查看某个日志文件。2,要达到实时更新,可以通过tail命令查看更新的数据,例如tail -f messages。3,tail命令参数:-f 循环读取-q 不显示处理信息-v 显示详细的处理信息-c<数目> 显示的字节数-n<行数> 显示行数–pid=PID...

2019-03-29 20:14:14 8733

原创 http 协议 get post put 几个区别

简单的说就是整套CRUD(增删改查)操作,C对应POST,R对应GET,U对应PUT,D对应DELETE。在实际的做的时候,很多人却没有按照HTTP规范去做,导致这个问题的原因有很多,比如说:1.很多人贪方便,更新资源时用了GET,因为用POST必须要到FORM(表单),这样会麻烦一点。2.对资源的增,删,改,查操作,其实都可以通过GET/POST完成,不需要用到PUT和DELETE。3...

2019-03-29 20:12:07 350

原创 Makefile的懒人用法

makefile的具体用法看我的另一篇博客.PHONY:clean allCC=gccCFLAGS=-Wall -gBIN=//这里输入我要实现的二进制文件all:$(BIN)%.o:%.c $(CC) $(CFLAGS) -c $&lt; -o $@clean: rm -f *.o $(BIN)...

2019-01-20 21:52:07 146

原创 面经总结

c++的析构函数能否为虚函数父类指针可以指向子类的对象(多态性),如果删除该指针delete []p;就会调用该指针指向的子类析构函数,而子类的析构函数又自动调用父类的析构函数,这样整个子类的对象完全被释放。如果析构函数不被声明成虚函数,则编译器实施静态绑定,在删除父类指针时,只会调用父类的析构函数而不调用子类析构函数,这样就会造成子类对象析构不完全。所以,将析构函数声明为虚函数是十分必要的。...

2018-09-13 16:47:10 233

原创 BSTree

头文件 BSTree.h#ifndef __BSTREE_H__#define __BSTREE_H__#include&lt;iostream&gt;using namespace std;template&lt;class Type&gt;class BSTree;template&lt;class Type&gt;class BSTNode{ fri...

2018-08-01 16:50:41 497

原创 二叉树

头文件#ifndef __BINTREE_H__#define __BINTREE_H__#define ElemType chartypedef struct BinTreeNode{ ElemType data; BinTreeNode *leftChild; BinTreeNode *rightChild;}BinTreeNode;typede...

2018-07-31 20:36:37 141

原创 队列:Queue

逻辑线性结构,先进先出FIFO;队列是两端出入数据,堆栈是单端出入数据; 入队列在队尾,出队列在队首; 头文件 Queue.h#ifndef _QUEUE_H_#define _QUEUE_H_typedef unsigned char boolean;#define DEFAULT 10#define IN 1#define OUT 0template&lt...

2018-07-30 12:42:30 160

原创 栈:Stack

头文件stack.h#ifndef __STACK_H__#define __STACK_H__#include&amp;amp;lt;iostream&amp;amp;gt;#include&amp;amp;lt;assert.h&amp;amp;gt;using namespace std;#define ElemType int#define STACK_INIT_SIZE 8typedef struct Stack{ ...

2018-07-29 18:54:47 235

原创 链表3.0

双层循环链表 头文件DCList.h#ifndef __DCLIST_H__#define __DCLIST_H__#include&lt;iostream&gt;#include&lt;assert.h&gt;using namespace std;#define ElemType inttypedef struct ListNode{ ElemType d...

2018-07-29 14:46:13 111

原创 链表2.0

头文件 SList.h#ifndef __SLIST_H__#define __SLIST_H__#include"Utili.h"#include&lt;assert.h&gt;#define ElemType inttypedef struct ListNode{ ElemType data; struct ListNode *next;}ListNod...

2018-07-28 18:03:12 111

原创 链表

SList#include&amp;lt;iostream&amp;gt;#include&amp;lt;assert.h&amp;gt;using namespace std;#define ElemType inttypedef struct ListNode{ ElemType data; struct ListNode *next;}ListNode;typedef ListN...

2018-07-28 11:04:11 125

原创 顺序表2.0

顺序表 头文件: Utili.h#ifndef __UTILI_H__#define __UTILI_H__#include&lt;iostream&gt;using namespace std;#endifSeqList.h#ifndef __SEQLIST_H__#define __SEQLIST_H__#include"Utili.h"#include&...

2018-07-26 15:59:20 102

原创 编译器驱动程序

大多数编译器提供编译器驱动程序,它代表用户在需要时调用语言处理器、编译器、汇编器和构造器 驱动程序首先运行C预处理器(cpp),它将C的源程序eg.c翻译成一个ASCII码的中间文件eg.icpp [other arguments] eg.c eg.i接下来,驱动程序运行C编译器(cc1),它将eg.i翻译成一个ASCII汇编语言文件eg.scc1 eg.i -0g [oth...

2018-07-25 22:00:41 636

原创 利用多继承计算程序员工资(抽象类编程)

C++中没有接口的概念,C++类中科院使用纯虚函数实现接口,接口类中只有函数原型定义,没有任何数据的定义。#include&lt;iostream&gt;using namespace std;class programer{public: virtual void getmoney()=0;};class dijiprogramer:public programer...

2018-07-24 15:07:38 460

原创 多态

#include&lt;iostream&gt;using namespace std;class FirstHero{public: virtual int power() { return 10; }private:};class Devil{public: int power() { return ...

2018-07-23 17:57:32 113

原创 C++的运算符重载

编译器给提供了一种机制,让用户自己去完成自定义类型的加减操作,这个机制就是运算符重载 运算符重载的本质是一个函数!函数!函数! 语法为:类型 类名::operatro op(参数) 写的时候先写operator,然后在写后边的操作,比方说&lt;,&gt; ,= ,!=,==,&lt;&lt;,&gt;&gt;这样,之后写()里的内容,比方说你对运算符+号进行重载,然后你可以是一个类的对象,...

2018-07-21 21:15:44 130

原创 顺序表

顺序表这里是头文件#ifndef _SEQLIST_H#define _SEQLIST_H#include"Utili.h"#include&lt;assert.h&gt;#define ElemType int#define SEQLIST_DEFAULT_SIZE 8typedef struct SeqList{ ElemType *base;//线性表存...

2018-05-28 14:41:10 225

原创 二分查找

二分查找#include&lt;iostream&gt;#include&lt;vector&gt;#include&lt;stdlib.h&gt;#include&lt;stdio.h&gt;using namespace std;int binary_search(vector&lt;int&gt; &amp;vec,int num){ int begin = 0;...

2018-05-22 08:56:53 118

原创 快排算法

快排算法#include&lt;iostream&gt;#include&lt;vector&gt;#include&lt;stdlib.h&gt;using namespace std;int partition(vector&lt;int&gt; &amp;vec,int low,int high){ int temp = vec[low]; while(lo...

2018-05-22 08:52:43 3421

原创 进程基础

程序与进程 No. 进程 程序 1 动态 静态 2 有生命周期 指令集合 3 只能对应一个程序 可以对应多个进程概念 进程:程序在计算机上的一次执行过程,执行中的程序。 进程是一个抽象概念 NO. 组成 含义 类比 1 一个独立的逻辑控制流 独占处理器 工人/机器 2 一个私有的地址空间 独占存储器系统

2018-05-08 18:17:57 139

原创 日志实现

日志的实现简介日志:记录程序日常运行状态。按条记录,记录内容包括:时间、模块、日志级别(致命、出错、警告、信息、调试)、输出位置(文件、终端、系统日志) 格式说明日志信息格式yyyy-mm-dd hh-MM-ss [Level] module file:line func:message日期 + 级别 +模块+ 文件名+行号+函数+具体的信息日志文件名格式yyyy-mm-dd-XXXX.

2018-05-07 17:15:01 499

原创 c语言基础(十五)

线程进程可以完成多任务,实现宏观上的并行。 进程短板:1、通信 2、切换开销很大。 为什么需要线程? 其实,在真实的操作系统中,程序运行的最小单位是线程,进程的实质是分配资源。 多线程隶属于一个进程,实现并发,独立运行。通信方便。 不好的地方:同步和互斥就是关键的处理地方。 现代多核心计算机

2018-05-07 16:41:44 205

原创 c语言基础(十五)

信号量信号量:解决进程之间通信时,资源的一个同步和互斥。 对信号量由两个操作(PV操作),这两个操作都是原子的。 原子操作:要不执行,要不执行,一旦执行肯定可以完成。 信号量对于某种资源(buffer),是一个非负的整型值。信号量&gt;0时,就表示资源可以用, 你就可以进行原子操作。信号量==0,这里就不能操作这个资源,...

2018-05-07 16:23:25 256

原创 c语言基础(十四)

消息队列消息队列:默认发送端将信息放在前一个信息的后面,接收消息端可以指定接受哪一个消息。 1、msgget:创建和打开一个消息队列 int msgget(key_t key, int msgflg) 键值,这个键值就可以创建不同进程的消息对列。 参数1:键值;参数2:权限有关 ftok获得特定的键值。

2018-05-07 16:20:00 479

原创 c语言基础(十三)

1、进程结束后资源处理的问题 每一个进程结束之后都会涉及到资源清理的问题:资源1:操作系统会回收里的进程中涉及到资源(栈、堆(malloc)、文件IO);资源2:进程建立时,会自动产生一个task_struct(8KB),这个就是你这个当前进程 包含所有信息的一个结构体(来自于父进程),这个结构体相当于(文件描述符),他是进程描述符。存在于进程管理表中,这里的资源操(进程运行也是需要栈)作系统无

2018-05-07 15:57:48 156

原创 c语言基础(十二)

1、main函数:一个程序运行起来就是一个进程,我们真实的代码是先进行链接,就是把C文件各个段进行 组合起来,这个需要链接器,为我们程序作引导的那部分代码此时也就链接到我们的.o文件里(其中最重要的是main函数里的参数就是此时进入目标文件的)。接着就需要加载器,将我们的代码加载固定的虚拟地址。这个就是一个进程的 完整步骤。 2、(1)程序正常终止:方式:exit _exit return

2018-05-07 15:49:02 330

原创 c语言基础(十一)

文件: 1、静态文件(inode) 硬盘中的文件,就是静态文件。文件都是以多个块和多个扇区组成的。一般情况,一个扇区(512字节),64个扇区组成一个块。在硬盘中,对文件管理有一个特定规则(文件管理表+真实的内容):文件管理表,这个表中是以文件为单位提供了各个文件的所有信息 (每一个文件信息表就对应一个结构体,这个结构体就称之为inode,也叫i节点,这个文件的包含的多少块、多少扇区),而我们通

2018-05-07 15:32:42 131

原创 Main函数中的argc与argv

argc 是 argument count的缩写,表示传入main函数的参数个数;argv 是 argument vector的缩写,表示传入main函数的参数序列或指针,并且第一个参数argv[0]一定是程序的名称,并且包含了程序所在的完整路径,所以argc至少为1(文件名本身也算一个参数),确切的说需要我们输入的main函数的参数个数应该是argc-1个;#include <stdio.h>

2018-05-07 15:11:34 170

原创 C语言学习大纲

一、C语言基础1、C语言特点及其运行环境2、C语言和面向对象语言C++、JAVA的比较3、介绍基本数据类型、运算符、关系表式4、条件判断语句if+else、If + else if + else、switch +Csae语句5、循环语句:while、do + while、for6、位操作运算符:&、|、~、^  逻辑运算符:&&、||、!。二、C语言函数 1、自定义的函数声明和定义、以

2018-05-01 17:59:36 301

原创 拷贝构造函数、运算符重载、深浅拷贝

#include<iostream>#include<string.h>using namespace std;class Student{public: Student(){m_strName="Jim";} /* 默认的拷贝构造函数: Student(const Student &stu){} */

2018-04-27 17:57:57 130

空空如也

空空如也

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

TA关注的人

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