自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 Linux下将Python脚本变成Service实现开机启动

1.新建dreamtech.sh脚本文件: #!/bin/bash filepath="/home/OPERATE/start.pyc"start(){ nohup python3 $filepath>/dev/null 2>&1 & echo 'dreamtech service OK'}stop(){ serverpid=`ps ...

2019-09-21 12:14:00 522

转载 应用最广的设计模式——单例模式

介绍 单例模式是应用最广的模式之一,也可能是很多初级工程师唯一会使用的设计模式。在应用这个模式时,单例对象的类必须保证只有一个实例存在。许多时候整个系统只需拥有一个全局对象,这样有利于我们协调系统整体的行为。 定义 确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例 使用场景 确保某个类有且只有一个对象的场景,避免产生多个对象消耗过多的资源...

2019-09-21 09:51:00 107

转载 走向灵活软件之路——面向对象的六大原则

优化代码的第一步——单一职责原则 让程序更稳定、更灵活——开闭原则 定义:软件中的对象(类、模块、函数等)应该对于扩展是开放的,对于修改是封闭的。当软件的需求发生变化时,应尽量通过扩展的方式来实现变化,而不是通过修改已有代码来实现。 构建扩展性更好的系统——里氏替换原则 定义: 第一种定义:如果对每一个类型为S的对象O1,都有...

2019-09-21 09:14:00 87

转载 解决解耦的钥匙——观察者模式

介绍: 观察者模式是一个使用率非常高的模式,它最常用的地方是GUI系统、订阅——发布系统。因为这个模式的一个重要作用就是解耦,将被观察者和观察者解耦,使得它们之间的依赖性更小,甚至做到毫无依赖。以GUI系统来说,应用的UI具有易变性,尤其是前期随着业务的改变或者产品的需求修改,应用界面也会经常性变化,但是业务逻辑基本变化不大,此时GUI系统需要一套机制来应对这种情况,是的UI层...

2019-09-20 17:29:00 137

转载 UDP

UDP 是一个简单的传输层协议。有如下特点: UDP 缺乏可靠性。UDP 本身不提供确认,序列号,超时重传等机制。UDP 数据报可能在网络中被复制,被重新排序。即 UDP 不保证数据报会到达其最终目的地,也不保证各个数据报的先后顺序,也不保证每个数据报只到达一次。 UDP 数据报是有长度的。每个 UDP 数据报都有长度,如果一个数据报正确地到达目的地,那么该数据报的长度将...

2019-09-17 18:07:00 105

转载 TCP

TCP特点: TCP是面向连接的传输层协议: 应用程序在使用TCP协议之前必须先建立TCP连接。在传送数据结束后,必须释放已经建立的TCP连接 每一条TCP连接只能有两个端点: 每一条TCP连接只能是点对点的 TCP提供可靠交付的服务: 通过TCP连接传送的数据...

2019-09-17 14:37:00 198

转载 JVM内存模型

主内存与工作内存 Java内存模型的主要目标是定义程序中各个变量的访问规则,即在虚拟机中将变量存储到内存和从内存中取出变量这样的底层细节。Java内存模型规定了所有的变量都存储在主内存(Main Memory)中。每条线程还有自己的工作内存(Working Memory),线程的工作内存中保存了被该线程使用到的变量的主内存副本拷贝,线程对变量的所有操作都必须在工作内存中进行,而...

2019-09-17 11:08:00 49

转载 JVM类加载机制

类从被加载到虚拟机内存中开始,到卸载出内存开始,它的整个生命周期如下 加载 连接初始化 验证 准备 解析 使用 卸载 加载、验证、准备、初始化和卸载这5个阶段的顺序是确定的,类的加载过程必须按照这种顺序按部就班的开始,而解析阶段则不一定:它在某些情况下可以在初始化阶段之后再开始,这是为了支持Java语言的运行时绑定(也称...

2019-09-13 11:44:00 47

转载 CMS与G1垃圾收集器

CMS收集器 CMS(Concurrent Map Sweep)收集器是一种以最短回收停顿时间为目标的收集器,通常用于JavaWeb程序上,重视服务响应速度,希望系统时间停顿最短,而它是基于"标记-清除"算法。 整个过程分为四个步骤: 初始标记 只是标记一下GC Roots能直接关联到的对象,速度很快。 并发标...

2019-09-10 15:54:00 47

转载 JVM垃圾收集

对象已死吗? Java堆几乎存放了所有的对象实例,垃圾回收器在进行回收之前,首先确定的就是哪些对象存活,哪些对象死亡。 可达性分析算法: 由于引用计数算法无法处理“循环引用”的情况,所以主流的商用程序语言(Java、C#等)都是通过可达性分析来判定对象是否存活的。 这个算法的基本思想就是:通过一系列的称为“GC Roots”的对象作为起始点,从这些节点开始向下...

2019-09-09 18:25:00 65

转载 Java GC、新生代、老年代

1、堆内存Java 中的堆是 JVM 所管理的最大的一块内存空间,主要用于存放各种类的实例对象。 在 Java 中,堆被划分成两个不同的区域:新生代 ( Young )、老年代 ( Old )。新生代 ( Young ) 又被划分为三个区域:Eden、From Survivor、To Survivor。 这样划分的目的是为了使 JVM 能够更好的管理堆内存中的对象,包括内存的分配以及回收...

2019-09-09 15:51:00 60

转载 HotSpot虚拟机对象

对象的创建: new指令:虚拟机开始创建对象 类加载检查:检查new指令的参数是否能在常量池中定位到某个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没有,那必须先执行相应的类加载过程。 分配内存:类加载检查通过后,虚拟机将为新生对象分配内存。对象所需的内存大小在类加载完成之后便可以确定。为对象分配空间的任务等同于把一块确定大小的内存从Ja...

2019-09-09 14:46:00 63

转载 Java内存区域与内存溢出异常

Java运行时数据区域 程序计数器 Java虚拟机栈 本地方法栈 Java堆 方法区 运行时常量池 直接内存 程序计数器: 程序计数器是一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号治时期。在虚拟机的概念模型里,字节码解释器工作时就是通过改变这个计数器的值来选取吓一跳需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都...

2019-09-09 10:45:00 41

转载 剑指Offer-用两个栈实现队列

题目描述: 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 import java.util.Stack; public class Solution { Stack<Integer> stack1 = new Stack<Integer>(); Stack<Integer>...

2019-09-02 22:35:00 54

转载 剑指Offer-重构二叉树

题目描述: 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 public class Solution { class TreeNode { int v...

2019-09-02 22:23:00 62

空空如也

空空如也

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

TA关注的人

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