- 博客(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
352
原创 JAVA——Lambda表达式
Lambda表达式1、Lambda表达式是JDK8开始后的一种新语法形式。2、作用:简化匿名内部类的代码写法。Lambda的简化格式(匿名内部类被重写方法的形参列表)->{ 被重写方法的方法体代码。}注:->是语法形式,无实际含义。注意:Lambda表达式只能简化函数式接口的匿名内部类的写法形式。什么是函数式接口?1、首先必须是接口,其次接口中有且仅有一个抽象方法的形式2、通常我们会在接口上加一个@FunctionalInterface注解,标记该接口必须满足函数式接口。
2022-01-10 20:06:00
362
原创 JAVA——包装类、正则表达式、Arrays
包装类1、其实就是8种基本数据类型对于的引用类型基本数据类型引用数据类型byteByteshortShortintIntegerlongLongcharCharacterfloatFloatdoubleDoublebooleanBoolean为什么提供包装类?1、Java为了实现一切皆对象,为8种基本类型提供了对应的引用类型。2、后面的集合和泛型其实也只能支持保证类型,不支持基本数据类型。自动装箱:基本类型的数据
2022-01-09 23:43:57
435
原创 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
531
原创 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
259
原创 JAVA——多态、内部类
面向对象三大特征之三:多态多态的概述,多态的形式什么是多态?同类型的对象,执行同一个行为,会表现出不同的行为特征。多态的场景形式父类类型 对象名称 = new 子类构造器;接口 对象名称 = new 实现类构造器;多态中成员访问特点1、方法调用:编译看左边,运行看右边。2、变量调用:编译看左边,运行也看左边。(多态侧重行为多态)多态的前提有继承/实现关系;有父类引用指向子类对象;有方法重写。多态的优势1、在多态形式下,右边对象可以实现解耦合,便于扩展和维护。Animal a =
2022-01-09 16:24:05
235
原创 JAVA语法—包、权限修饰符、final、常量、枚举、抽象类、接口
包什么是包?包是用来愤懑别类的管理各种不同类的,类似于文件夹,建包利于程序的管理和维护。建包的语法格式:package 公司域名倒写.技术名称。包名建议全部英文小写,且具备意义。比如:package com.xxx.javabean;建包语句必须在第一行,一般IDEA工具会帮助创建。导包相同包下的类可以直接访问,不同包下的类必须导包,才可以使用!导包格式:import 包名.类名;假如一个类中需要用到不同类,而这两个类的名称是一样的,那么默认只能导入一个类,另一个类要带包名访问。权限修饰
2022-01-06 23:07:41
512
原创 JAVA语法——继承
继承什么是继承?继承是类与类之间的一种关系。多个类继承单独的某个类,多个类就可以使用单独的这个类的属性和行为了。多个类成为子类(派生类),单独的这个类称为父类(基类 或超类)。为什么用继承?使用继承的好处:提高代码复用。如果要开发一个教务管理系统,需要考虑一些角色类的设计,如:学生类,老师类继承的格式在java中,继承的关键字用的是“extends”。public class 子类名 extends 父类名 {}。继承后子类的特点?子类继承父类,子类可以得到父类的属性和行为,子类可以
2022-01-05 23:08:33
1656
1
原创 Static关键字
Static关键字1、static关键字的作用static是静态的意思,可以修饰成员变量,表示该成员变量在内存中只存储一份,可以被共享访问、修改。2、成员变量的分类1、静态成员变量(有static修饰,属于类,内存中加载一次):常表示如在在线人数信息、等需要被共享的信息,可以被共享访问。访问格式:类名.静态成员变量(推荐)对象.静态成员变量(不推荐)静态成员变量放在堆内存中。2、实例成员变量(无static修饰,存在于每个对象中):常表示姓名name、年龄age、等属于每个对象的信息。访
2022-01-05 21:37:38
580
原创 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
396
原创 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
8852
原创 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
370
原创 Makefile的懒人用法
makefile的具体用法看我的另一篇博客.PHONY:clean allCC=gccCFLAGS=-Wall -gBIN=//这里输入我要实现的二进制文件all:$(BIN)%.o:%.c $(CC) $(CFLAGS) -c $< -o $@clean: rm -f *.o $(BIN)...
2019-01-20 21:52:07
167
原创 面经总结
c++的析构函数能否为虚函数父类指针可以指向子类的对象(多态性),如果删除该指针delete []p;就会调用该指针指向的子类析构函数,而子类的析构函数又自动调用父类的析构函数,这样整个子类的对象完全被释放。如果析构函数不被声明成虚函数,则编译器实施静态绑定,在删除父类指针时,只会调用父类的析构函数而不调用子类析构函数,这样就会造成子类对象析构不完全。所以,将析构函数声明为虚函数是十分必要的。...
2018-09-13 16:47:10
270
原创 BSTree
头文件 BSTree.h#ifndef __BSTREE_H__#define __BSTREE_H__#include<iostream>using namespace std;template<class Type>class BSTree;template<class Type>class BSTNode{ fri...
2018-08-01 16:50:41
532
原创 二叉树
头文件#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
167
原创 队列:Queue
逻辑线性结构,先进先出FIFO;队列是两端出入数据,堆栈是单端出入数据; 入队列在队尾,出队列在队首; 头文件 Queue.h#ifndef _QUEUE_H_#define _QUEUE_H_typedef unsigned char boolean;#define DEFAULT 10#define IN 1#define OUT 0template<...
2018-07-30 12:42:30
187
原创 栈:Stack
头文件stack.h#ifndef __STACK_H__#define __STACK_H__#include&amp;lt;iostream&amp;gt;#include&amp;lt;assert.h&amp;gt;using namespace std;#define ElemType int#define STACK_INIT_SIZE 8typedef struct Stack{ ...
2018-07-29 18:54:47
268
原创 链表3.0
双层循环链表 头文件DCList.h#ifndef __DCLIST_H__#define __DCLIST_H__#include<iostream>#include<assert.h>using namespace std;#define ElemType inttypedef struct ListNode{ ElemType d...
2018-07-29 14:46:13
134
原创 链表2.0
头文件 SList.h#ifndef __SLIST_H__#define __SLIST_H__#include"Utili.h"#include<assert.h>#define ElemType inttypedef struct ListNode{ ElemType data; struct ListNode *next;}ListNod...
2018-07-28 18:03:12
138
原创 链表
SList#include&lt;iostream&gt;#include&lt;assert.h&gt;using namespace std;#define ElemType inttypedef struct ListNode{ ElemType data; struct ListNode *next;}ListNode;typedef ListN...
2018-07-28 11:04:11
148
原创 顺序表2.0
顺序表 头文件: Utili.h#ifndef __UTILI_H__#define __UTILI_H__#include<iostream>using namespace std;#endifSeqList.h#ifndef __SEQLIST_H__#define __SEQLIST_H__#include"Utili.h"#include&...
2018-07-26 15:59:20
127
原创 编译器驱动程序
大多数编译器提供编译器驱动程序,它代表用户在需要时调用语言处理器、编译器、汇编器和构造器 驱动程序首先运行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
689
原创 利用多继承计算程序员工资(抽象类编程)
C++中没有接口的概念,C++类中科院使用纯虚函数实现接口,接口类中只有函数原型定义,没有任何数据的定义。#include<iostream>using namespace std;class programer{public: virtual void getmoney()=0;};class dijiprogramer:public programer...
2018-07-24 15:07:38
480
原创 多态
#include<iostream>using namespace std;class FirstHero{public: virtual int power() { return 10; }private:};class Devil{public: int power() { return ...
2018-07-23 17:57:32
137
原创 C++的运算符重载
编译器给提供了一种机制,让用户自己去完成自定义类型的加减操作,这个机制就是运算符重载 运算符重载的本质是一个函数!函数!函数! 语法为:类型 类名::operatro op(参数) 写的时候先写operator,然后在写后边的操作,比方说<,> ,= ,!=,==,<<,>>这样,之后写()里的内容,比方说你对运算符+号进行重载,然后你可以是一个类的对象,...
2018-07-21 21:15:44
148
原创 顺序表
顺序表这里是头文件#ifndef _SEQLIST_H#define _SEQLIST_H#include"Utili.h"#include<assert.h>#define ElemType int#define SEQLIST_DEFAULT_SIZE 8typedef struct SeqList{ ElemType *base;//线性表存...
2018-05-28 14:41:10
248
原创 二分查找
二分查找#include<iostream>#include<vector>#include<stdlib.h>#include<stdio.h>using namespace std;int binary_search(vector<int> &vec,int num){ int begin = 0;...
2018-05-22 08:56:53
140
原创 快排算法
快排算法#include<iostream>#include<vector>#include<stdlib.h>using namespace std;int partition(vector<int> &vec,int low,int high){ int temp = vec[low]; while(lo...
2018-05-22 08:52:43
3627
原创 进程基础
程序与进程 No. 进程 程序 1 动态 静态 2 有生命周期 指令集合 3 只能对应一个程序 可以对应多个进程概念 进程:程序在计算机上的一次执行过程,执行中的程序。 进程是一个抽象概念 NO. 组成 含义 类比 1 一个独立的逻辑控制流 独占处理器 工人/机器 2 一个私有的地址空间 独占存储器系统
2018-05-08 18:17:57
156
原创 日志实现
日志的实现简介日志:记录程序日常运行状态。按条记录,记录内容包括:时间、模块、日志级别(致命、出错、警告、信息、调试)、输出位置(文件、终端、系统日志) 格式说明日志信息格式yyyy-mm-dd hh-MM-ss [Level] module file:line func:message日期 + 级别 +模块+ 文件名+行号+函数+具体的信息日志文件名格式yyyy-mm-dd-XXXX.
2018-05-07 17:15:01
535
原创 c语言基础(十五)
线程进程可以完成多任务,实现宏观上的并行。 进程短板:1、通信 2、切换开销很大。 为什么需要线程? 其实,在真实的操作系统中,程序运行的最小单位是线程,进程的实质是分配资源。 多线程隶属于一个进程,实现并发,独立运行。通信方便。 不好的地方:同步和互斥就是关键的处理地方。 现代多核心计算机
2018-05-07 16:41:44
238
原创 c语言基础(十五)
信号量信号量:解决进程之间通信时,资源的一个同步和互斥。 对信号量由两个操作(PV操作),这两个操作都是原子的。 原子操作:要不执行,要不执行,一旦执行肯定可以完成。 信号量对于某种资源(buffer),是一个非负的整型值。信号量>0时,就表示资源可以用, 你就可以进行原子操作。信号量==0,这里就不能操作这个资源,...
2018-05-07 16:23:25
306
原创 c语言基础(十四)
消息队列消息队列:默认发送端将信息放在前一个信息的后面,接收消息端可以指定接受哪一个消息。 1、msgget:创建和打开一个消息队列 int msgget(key_t key, int msgflg) 键值,这个键值就可以创建不同进程的消息对列。 参数1:键值;参数2:权限有关 ftok获得特定的键值。
2018-05-07 16:20:00
560
原创 c语言基础(十三)
1、进程结束后资源处理的问题 每一个进程结束之后都会涉及到资源清理的问题:资源1:操作系统会回收里的进程中涉及到资源(栈、堆(malloc)、文件IO);资源2:进程建立时,会自动产生一个task_struct(8KB),这个就是你这个当前进程 包含所有信息的一个结构体(来自于父进程),这个结构体相当于(文件描述符),他是进程描述符。存在于进程管理表中,这里的资源操(进程运行也是需要栈)作系统无
2018-05-07 15:57:48
194
原创 c语言基础(十二)
1、main函数:一个程序运行起来就是一个进程,我们真实的代码是先进行链接,就是把C文件各个段进行 组合起来,这个需要链接器,为我们程序作引导的那部分代码此时也就链接到我们的.o文件里(其中最重要的是main函数里的参数就是此时进入目标文件的)。接着就需要加载器,将我们的代码加载固定的虚拟地址。这个就是一个进程的 完整步骤。 2、(1)程序正常终止:方式:exit _exit return
2018-05-07 15:49:02
405
原创 c语言基础(十一)
文件: 1、静态文件(inode) 硬盘中的文件,就是静态文件。文件都是以多个块和多个扇区组成的。一般情况,一个扇区(512字节),64个扇区组成一个块。在硬盘中,对文件管理有一个特定规则(文件管理表+真实的内容):文件管理表,这个表中是以文件为单位提供了各个文件的所有信息 (每一个文件信息表就对应一个结构体,这个结构体就称之为inode,也叫i节点,这个文件的包含的多少块、多少扇区),而我们通
2018-05-07 15:32:42
154
原创 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
222
原创 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
343
原创 拷贝构造函数、运算符重载、深浅拷贝
#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
150
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人