自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 管道符和xargs

先看一个例子今天上了一门Linux课,其中有一道题是这样的:将文件/lib/目录下所有以包含.so的文件复制到cmd_test目录下一开始看到这个题,想法是先用find命令找出包含.so的文件,然后使用管道符cp如下:find /lib -name "*.so*" | cp ./cmd_test然而上面的命令是错误的,cp命令是不支持 | 管道来传递参数的。后来搜集资料,找到了...

2020-03-03 17:58:52 1166

原创 如何理解递归

基本思想写好递归要掌握几个技巧:1 明确递归函数的作用,将递归函数看作一个黑盒我自己把该技巧称为黑盒思想,我认为黑盒思想对于理解递归有很大的作用,递归函数就是隐藏了很多细节,我们没必要去一步一步地模拟递归函数的运行,那样大脑也受不了。比如最简单的阶乘函数,我们定义一个函数int Factorial(int n),规定此函数的作用就是输入一个整数,返回该数的阶乘,我们解题的过程中需要时刻保持...

2020-02-16 17:04:49 4436 1

原创 zsh基本配置以及常用操作

自从电脑上安装wsl以后,对zsh的折腾就一发不可收拾,不可否认zsh确实可以很有效地提高我们的工作效率,在此记录一下一些基本配置以及常用操作供自己查阅。安装安装zshsudo apt-get install zsh配置默认Shellchsh -s /bin/zsh安装oh-my-zshsh -c "$(curl -fsSL https://raw.github....

2020-02-02 17:48:17 2214

原创 计网—ARP协议

为什么需要ARP协议?无论是主机到主机的通信,还是主机到路由器的通信,实质都是网卡之间的数据传递。为了传输成功,需要在已知IP地址的前提下获取目的网卡地址,这就是ARP(Address Resolution Protocol)协议所做的事情,获得某个IP的MAC地址。ARP表在每个IP节点(主机或路由器)的每个接口都有一个ARP模块,内有一个缓存表,这就是ARP表。在ARP表中记录了局域网内...

2019-12-17 14:09:24 858 2

原创 计网—CSMA/CD协议

CSMA/CD协议引出协议最初的以太网都是采用总线型的拓扑结构,将许多计算机都连接到一台主机上。如下图:总线上的每一个工作的计算机都能检测到 B 发送的数据信号。由于只有计算机 D 的地址与数据帧首部写入的地址一致,因此只有 D 才接收这个数据帧。其他所有的计算机(A, C 和 E)都检测到不是发送给它们的数据帧,因此就丢弃这个数据帧而不能够收下来。这时候就有一个问题...

2019-12-17 14:07:26 2154

原创 计网—以太网帧

MAC地址MAC地址固化在网卡中,又称物理地址,它是网络节点全球唯一的物理标识,与其物理位置无关。MAC地址是数据链路层进行寻址的依据。网络节点的每一个网络接口都有一个唯一的MAC地址。一个节点允许有多个MAC地址,取决于该站点网络接口的个数。格式总长度为48位每八位做一个分隔。在windows下输入ipconfig/all查看本机的MAC地址:MAC帧的格式常用的以太网MA...

2019-12-17 14:06:30 1497

原创 计网—TCP协议

我们经常会拿UD跟TCP进行比较,在介绍TCP之前首先介绍一下UDP协议UDP全称:用户数据报协议(UDP,User Datagram Protocol),UDP 为应用程序提供了一种无需建立连接就可以发送封装的 IP 数据报的方法。数据报格式源端口号和目的端口号:源端程序和目的端程序进程的端口号。总长度:UDP包的字节数,包括头部和数据,最小长度为8 Byte(头部长度为8...

2019-12-17 14:05:38 814

原创 计网—HTTP协议详解

HTTP协议HTTP协议(HyperText Transfer Protocol,超文本传输协议)是因特网上应用最为广泛的一种网络传输协议,所有的WWW文件都必须遵守这个标准。HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。协议报文解析HTTP报文大致可分为报文首部和报文主体两部分,两者由一个空行划分。通常,不一定要有报文主体(GET方法就...

2019-12-17 14:03:58 1025

原创 在Packet Tracer中实现远程管理交换机

使用PC远程控制交换机的方式有两种,一种是将电脑的RS 232和交换机的console口连接,这种管理方式不占用交换机的网络端口,第一次配置交换机的时候必须利用该方法;第二种方式是利用采用telnet方式远程连接交换机。下面在Packet Tracer中分别介绍这两种方式。console方式新建拓扑图点击PC0,打开Desktop->Terminal。打开Termi...

2019-12-09 15:39:23 1809

原创 计网—交换局域网

交换局域网两个概念冲突域:网络中的一组设备集合;域内的不同设备同时发出的以太网帧会互相冲突;特点为:每台主机的可用带宽很低,信息传输安全得不到保证。广播域:网络中的一组设备集合;当这些设备中的一个发出一个广播时,所有其他的设备都能接收到这个广播帧。为什么要使用交换机?使用集线器有下面几个缺点:随着共享式以太网规模的扩大,冲突域不断扩大,导致网络带宽下降。不同数据传输速率的以太网...

2019-12-09 15:18:44 1229

原创 设计模式—观察者模式

观察者模式定义观察者模式(又被称为发布-订阅(Publish/Subscribe)模式,属于行为型模式的一种,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态变化时,会通知所有的观察者对象,使他们能够自动更新自己。定义很明确,如果学过Android的童鞋肯定对Android中的广播不陌生,广播就是观察者模式的一种实现。实现下面举个例子来说明观察...

2019-11-23 13:09:48 115

原创 设计模式—工厂模式

定义工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。简单工厂模式下面给出一个《Head First设计模式》中的披萨店的例子,现在有一个披萨店,这个披萨店中有许多不同种类的披萨,芝士????、...

2019-11-22 20:21:39 111

原创 设计模式—策略模式

策略模式在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。在策略模式中,我们需要创建表示各种策略的对象和一个行为随着策略改变而改变的context对象,通过策略对象改变context对象的执行算法。学习设计模式最重要的一点就是要搞清楚设计模式的应用场景,首先举几个例子,比如我们手机支付的时候,可以使用支付宝可以使用微...

2019-11-20 21:24:16 143

原创 UML类图

UML定义:UML即统一建模语言(Unified Modeling Language),它是一种开放的方法,用于说明、可视化、构建和编写一个正在开发的、面向对象的、软件密集系统的制品的开放方法。UML展现了一系列最佳工程实践,这些最佳实践在对大规模,复杂系统进行建模方面,特别是在软件架构层次已经被验证有效。UML类图就是一种供软件设计师们看的可以表达类的关系的一种统一语言,只不过是用图的...

2019-11-20 21:22:38 216

原创 Java多线程—线程池

为什么要使用线程池?使用线程池可以:降低资源的消耗。线程本身是一种很宝贵的资源,创建线程和销毁线程会有CPU开销,是一个比较昂贵的操作。提高任务执行的响应速度。使用线程池以后,不必等到线程创建完毕以后再执行。提高线程的可管理性。可以对线程进行统一的分配。线程池处理主要流程Executor我们如果要自定义一个线程池或者使用java自带的几种线程池,都要使用ThreadPoolE...

2019-11-12 20:47:29 224

原创 Java多线程—BlockingQueue

BlockingQueue阻塞队列,所谓的阻塞是指,当队列已满时,会阻塞当前添加元素的线程,直到队列不满或者等到超时;当队列为空时,会阻塞当前获取元素的线程,直到队列不空或者等待超时。核心方法压入元素add(E e):向队尾增加元素,设置成功返回true。如果使用了capacity-restricted队列,即限定了容量的队列,推荐使用offer()方法。offer(E e):向队尾增...

2019-11-10 16:21:04 193

原创 请根据观察者模式,用Java语言设计并实现气象站程序。

请根据观察者模式,用Java语言设计并实现气象站程序。运行结果如下,和要求相同,代码很全,修改学号即可使用。详细代码:Observer.java/** * @paragram: ObserverPattern * @description: 观察者接口 * @auhor: liuergo * @date: 2019-11-04 20:24 */public interf...

2019-11-05 20:57:39 863 1

原创 设计模式—单例模式

在上次的Android项目中,数据库对象以及netty连接的对象都使用过单例模式,但是对单例模式一直也是一知半解,借着刚在软件工程导论课上讲了单例模式,深入了解一下。单例模式(singleton pattern)单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类...

2019-10-30 22:51:07 121

原创 Java多线程—volatile关键字

Java并发编程三大特性在Java并发编程中,有三个概念:1. 原子性 2. 可见性 3. 有序性。原子性(Atomicity)原子性指一个操作是不可中断的,要么全部执行成功要么全部执行失败,在数据库的事务中也有这个性质。例如,a++,对于一个共享变量a的操作实际上可以分为三个步骤:1. 读取变量a的值;2. 将a的值+1;3. 将值重新赋值给a。此操作是可分割的,所以这并不是一个原子操作...

2019-10-30 21:21:37 120

原创 Java多线程—synchonized关键字

线程安全与共享资源在《Java并发编程实战》书中对线程安全给出了下面的定义:当多个线程访问某个类时,这个类始终都能表现处正确的行为下面介绍一下各种变量的线程安全性。基础类型局部变量基础类型的局部变量储存在栈内存中,也就是说,局部变量永远不会被多个线程共享。所以说所有的基础类型的局部变量都是线程安全的。引用类型局部变量由于引用类型变量的属性都储存在堆中,但是在一般情况下,别的线程是...

2019-10-29 17:16:46 635

原创 Java多线程—创建线程的方式

多线程编程简单介绍几种创建线程的方法线程的创建方法继承Thread类,重写run方法;使用匿名内部类。//继承Thread类,重写run方法class Thread0 extends Thread { @Override public void run() { super.run(); //do something... }}...

2019-10-29 17:15:48 105 1

原创 WebService接口开发

最近有一个项目可能需要用到WebService技术,提前学习一下。WebServiceWebService是一种跨编程语言和跨操作系统平台的远程调用技术。相关概念XML,SOAP和WSDL就是构成WebService平台的三大技术。XML 扩展性标记语言 (Extensible Markup Language) 用于传输格式化的数据,是Web服务的基础。SOAP 简单对象访...

2019-10-27 11:25:59 627

原创 Java中的深拷贝和浅拷贝

在之前做项目的时候,同组的人因为深拷贝和浅拷贝的问题产生过BUG,当时不是自己负责的部分,没对这个问题做过深入的了解,今天深入学习一下????在介绍深拷贝和浅拷贝之前,先温习几个概念。数据类型Java中的数据类型有两种:基本类型:粒度最小的数据类型。主要包括4种整数类型:int、short、long、byte2种浮点数类型:float、double1种字符类型:char1种布尔...

2019-10-20 19:57:03 882

原创 Hexo部署到Github文件夹大小写问题

问题描述今天写完博客上传github时,发现algorithm标签404了,上Github仓库一看发现tags文件夹下的algorithm是大写的Algorithm,访问tags/Algorithm,可以正常显示原因查询资料发现,git是默认不区分大小写的,之前hexo生成了一个Algorithm文件夹,后来将文件夹的名称改为了algorithm,然而在Github上是不会将大写改为小写的...

2019-10-19 16:35:09 799 3

原创 LeetCode—几数之和系列

在LeetCode的ArrayTag中,有一系列的__数之和题,这几道题都有一些相似之处,在这里做一下总结。总览两数之和三数之和最接近的三数之和四数之和求解方法暴力法(不可取),时间复杂度往往为n的“几数”次方(如两数之和为O(n2)​O(n^2)​O(n2)​)。HashTable减少循环次数,降低时间复杂度。排序+双指针(推荐)。两数之和给定一个整数数组 nums...

2019-10-19 14:29:15 191

原创 Java序列化

序列化介绍**序列化:**将对象写入到IO流中**反序列化:**将对象从IO流中恢复**序列化的意义:**序列化机制允许将实现序列化的Java对象转换位字节序列,这些字节序列可以保存在磁盘上,或通过网络传输,以达到以后恢复成原来的对象。序列化机制使得对象可以脱离程序的运行而独立存在,而且这整个过程都是独立于JVM进行的。**使用场景:**所有在网络上传输的对象都需要进行序列化,比如在使用...

2019-10-19 11:59:05 158

原创 LeetCode—双指针的应用

盛最多水的容器CategoryDifficultyLikesDislikesalgorithmsMedium (58.43%)847-Tagsarray | two-pointersCompaniesbloomberg给定 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线...

2019-10-18 19:47:53 138

原创 Final arrays in Java

之前在做第一个安卓项目时,在使用TimerTask和使用Thread创建新线程的时候,发现如果在匿名方法中对局部变量进行修改的时候会报错,但是可以访问局部变量,而使用成员变量的时候就不会报错。不过,如果将其写成下面就不会报错了,但是问题又来了,明明将变量声明成了final类型,为什么可以修改其值呢?void myThread() { final int[] i = {0}; Th...

2019-10-18 19:45:35 146

原创 RandomAccess接口

通过在Java集合类中,查看类继承图和源码可以看出ArrayList和Vector都实现了RandomAccess接口,而LinkList却没有实现该接口,查看RandomAccess接口,发现里面是空的。RandomAccess.javapackage java.util;/** * 一大堆注释... */public interface RandomAccess {}其...

2019-10-18 19:44:52 349

原创 Java集合类

Java众多的集合类由两大接口衍生而来:Collection接口和Map接口CollectionList(有序,可重复)ArrayList**优点:**底层数据结构是数组,具有数组本身的特点:查询快,增删慢。**缺点:**线程不安全,效率高。类继承图ArrayList.java/** * The array buffer into which the elemen...

2019-10-18 19:42:13 172

原创 阿里云OSS+PicGo建立图床踩坑

在本地写md文档时候插入图片是一件挺麻烦的事情,使用本地图片的话,每次在给别人分享文档或者上传博客的时候就比较难顶了。网上有两种方法可以解决这个问题,一种是使用图片的base64编码,但是图片转换为base64编码之后,编码长度会很大,文档的可读性不好,而且也会使文档的体积急剧变大,这种方法显然不太好。所以,最终使用了图床的方法将图片储存在阿里云中。开通OSS服务​ 进入阿里云创建一个对象...

2019-10-18 19:39:23 5036 4

空空如也

空空如也

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

TA关注的人

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