垃圾收集与几种常用的垃圾收集算法

垃圾收集与几种常用的垃圾收集算法

前言:  首先思考垃圾收集(Garbage Collection,GC)需要完成的三件事情  1)哪些内存需要回收?  2)什么时候回收?  3)如何回收?  在上一个博客中提到了Java内……

Python使用Fabric模块实现自动化运维

Python使用Fabric模块实现自动化运维

简介:Fabric是基于Python实现的SSH命令行工具,简化了SSH的应用程序部署及系统管理任务,它提供了系统基础的操作组件,可以实现本地或远程shell命令,包括:命令执行、文件上传、下载及完整……

跟我学Spring Security配置(使用Java配置和注解)

跟我学Spring Security配置(使用Java配置和注解)

Spring Security 借助一系列Servlet Filter 来提供安全性功能,但是借助Spring的小技巧,我们只需要配置一个Filer就可以了,DelegatingFilterProxy……

C语言常见类型占用字节数

C语言常见类型占用字节数

前言最近笔试经常遇到C语言各类型变量所占字节数的问题,这里做一个总结好了。类型常见的有char、int、long、short、float、double及指针等.字符类型这里单只char,ch……

使用Netty3或Netty4发布Http协议服务

使用Netty3或Netty4发布Http协议服务

今天给大家简单的介绍一下Netty,让大家以后在使用到Netty的时候能够有一定的了解和基础,这样深入学习Netty以及以后灵活应用这门技术也就不在话下了,万丈高楼平地起,程序猿们平时还是要注重积累,……

Python列表list的用法

Python列表list的用法

#!usr/bin/env python# -*-coding:utf-8-*-#以下方法全在python2.7.x版本运行,请3.x以上的小伙伴们在print(放入括号内执行)#list列表的常用方……

Spring Boot入门学习笔记

Spring Boot入门学习笔记

1. 如果你的配置文件写在根目录,则使用@ComponentScan不需要任何参数,所有配置的组件(@Component,@Service, @Repository, @Controller 等)都会……

Java 8 Optional类介绍及其源码

Java 8 Optional类介绍及其源码

阅读目录什么是Optional对象使用Optional对象的好处源码及示例参考资料什么是Optional对象Java 8中所谓的Optional对象,即一个容器对象,该对象可以包含一个nu……

浮点数float累加误差分析与解决

浮点数float累加误差分析与解决

1. 浮点数IEEE 754表示方法要搞清楚float累加为什么会产生误差,必须先大致理解float在机器里怎么存储的, 这里只介绍一下组成由上图可知(摘在[2]), 浮点数由: 符号位 + ……

谈谈关于Python里面小数点精度控制的问题

谈谈关于Python里面小数点精度控制的问题

基础浮点数是用机器上浮点数的本机双精度(64 bit)表示的。提供大约17位的精度和范围从-308到308的指数。和C语言里面的double类型相同。Python不支持32bit的单精度浮点数。如果程……

Python根据操作系统自动调用创建文件目录小脚本

Python根据操作系统自动调用创建文件目录小脚本

工作中经常碰到这种情况:脚本开发是在本地(Windows),然后等脚本写好测好后放到生产服务器(Linux)。这就涉及到脚本在两种操作系统上的迁移和文件目录使用问题。以下小脚本虽然简单但还是很实用的。……

Python 函数深入理解

Python 函数深入理解

1. 函数简介函数是组织好的,可重复使用的,用来实现单一或相关联功能的代码段。函数能提高应用的模块性,和代码的重复利用率。Python提供了许多内建函数,比如print();也可以自己创建函数,这……

Java 8使用lambda实现Java的尾递归

Java 8使用lambda实现Java的尾递归

前言本篇介绍的不是什么新知识,而是对前面讲解的一些知识的综合运用。众所周知,递归是解决复杂问题的一个很有效的方式,也是函数式语言的核心,在一些函数式语言中,是没有迭代与while这种概念的,因为此类……

通过RTCP进行媒体流实时丢包重传的方法

通过RTCP进行媒体流实时丢包重传的方法

在RTP/RTCP传输媒体流的过程中,RTCP报文的主要作用在于RR(ReceiverReport),即接收者报告,来反馈统计收到包的数量,丢包数量等信息,来使发送者来及时的调整编码策略,但是由于RT……

STM32单片机是如何启动的?

STM32单片机是如何启动的?

STM32单片机是如何启动的?STM32中的内存STM32中的内存包含两块主要区域:flash memory(只读)、static ram memory(SRAM,读写)。其中,flash mem……

Java虚拟机类加载机制

Java虚拟机类加载机制

我是家宝Java虚拟机类加载机制定义虚拟机把描述类的数据从Class文件加载到内存,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。类加载的过程类的加载过程分为5个步骤……

JavaScript的简单测试环境

JavaScript的简单测试环境

在《JavaScript忍者秘籍》2.4测试条件基础知识中,作者给出了一个精简版的assert和assert组的实现,对于初学者而言,这无疑是一个很好的例子,既让我们得到了一个好用的小工具,又让我们看……

C#实现正则表达式入门实战教程

C#实现正则表达式入门实战教程

  如果有人和你说,如果不将字符串转换为数字,你要如何判断字符串是否由全数字组成?把字符串拆成char数组,然后放入一个循环,来判断每个char是否为数字?那你要如何判断手机号是否合法?IP是否合法呢……

Java Swing 去掉按钮文字周围的焦点框

Java Swing 去掉按钮文字周围的焦点框

闲来无事,写了个swing界面,运行后看到当点击按钮时,中间文字会出现一个刚好把文字围住的小方框,这是按钮获得焦点的标志,我是觉得一个字:丑!怎么去掉呢?万能的度娘告诉我,设置下button的setF……

Python中的正则表达式

Python中的正则表达式

'py.'可以匹配'pya'、'pyb'、'py!'等等。强化篇re模块s = 'ABC\-001' # Python的字符串# 对应的正则表达式字符串变……

Go语言之函数方法

Go语言之函数方法

函数funcmain(){ sum:=add(1,2) fmt.Println(sum)}funcadd(a,bint)int{ returna+b}……

Java IO 文件拷贝功能的实现

Java IO 文件拷贝功能的实现

如果要想实现文件的拷贝操作,有以下两种方法:方法1、将所有文件的内容一次性读取到程序之中,然后一次性输出;这样的话就需要开启一个跟文件一样大小的数据用于临时保存这些数据,但是当文件过大的时候呢?程序……

Python实现离散和线性图形

Python实现离散和线性图形

本程序是在Ubuntu Linux环境下,使用PyCharm软件编写成的。用Python程序画图需要安装科学计算包Numpy和科学测绘包Matplotlib。Linux操作系统中,安装这两个包的命令……

从JavaScript的事件循环到Promise

从JavaScript的事件循环到Promise

JS线程是单线程运行机制,就是自己按顺序做自己的事,浏览器线程用于交互和控制,JS可以操作DOM元素,说起JS中的异步时,我们需要注意的是,JS中其实有两种异步,一种是基于浏览器的异步IO,比如Aja……

SpringMVC参数校验

SpringMVC参数校验

使用SpringMVC时配合hibernate-validate进行参数的合法性校验,能节省一定的代码量.使用步骤1.搭建Web工程并引入hibernate-validate依赖 org.hi……

数据结构二叉树知识点总结

数据结构二叉树知识点总结

数据结构二叉树知识点总结术语1. 2. 叶节点或终端节点:度为零的节点;3. 非终端节点或分支节点:度不为零的节点;4. 父亲节点或父节点:若一个节点含有子节点,则这个节点称为其子节点的父节……

源码解析Flask的配置文件

源码解析Flask的配置文件

在flask里,我们常在主文件中定义某些配置,比如:app.debug = Trueapp.secret_key = ‘helloworld!!’实际上,flask中默认可以……

JavaScript变量提升的本质

JavaScript变量提升的本质

变量提升先说三句总结性的话:let 的「创建」过程被提升了,但是初始化没有提升。var 的「创建」和「初始化」都被提升了。function 的「创建」「初始化」和「赋值」都被提升了。所以,我……

TypeScript 2.8引入条件类型

TypeScript 2.8引入条件类型

最新发布的TypeScript 2.8包含了若干主要特性和一些问题修复,其中最为重要的是新增了条件类型,开发人员可以根据其他类型的特征为变量选择适当的类型。条件类型最适合与泛型组合在一起使用。如果一……

C++ 编译器的函数名修饰规则

C++ 编译器的函数名修饰规则

函数名字修饰(Decorated Name)方式函数的名字修饰(Decorated Name)就是编译器在编译期间创建的一个字符串,用来指明函数的定义或原型。LINK程序或其他工具有时需要指定函数的……

C++将一个vector中的内容复制到另一个vector结尾

C++将一个vector中的内容复制到另一个vector结尾

在使用vector容器的时候,需要将一个vector中的内容复制到另一个vector结尾,如何实现呢?使用vector的insert方法template void insert (iterat……

Java 10 var关键字深度解读

Java 10 var关键字深度解读

北京时间2018年3月21日,Java 10如约而至。虽然这一版本带来的特性并不是非常多,但其中有一项仍然成为大家关注的热点,它就是局部变量类型推断(JEP 286)。JEP 286引入了var,用于……

PHP外观模式简析

PHP外观模式简析

外观(Facade)模式当使用子系统的代码时,你也许会发现自己过于深入地调用子系统的逻辑代码。如果子系统代码总是在不断变化,而你的代码却又在许多不同地方与子系统代码交互,那么随着子系统的发展,你也许……

使用Spring框架实现远程服务暴露与调用

使用Spring框架实现远程服务暴露与调用

一、前言Spring框架提供了通过HTTP协议实现远程调用的方式,具体是调用方使用HttpInvokerProxyFactoryBean生成一个代理对象,通过代理对象远程通过http服务调用服务提供……

C++的命名空间意义解读

C++的命名空间意义解读

程序中不能有两个函数名一摸一样的,但是程序做大了,就很可能会造成两个同名同参的函数;这样就会导致歧义而错误。所以做出命名空间,可以做到只要是不同的空间中可以同名同参函数,这样以后其他人来做了,可以不……

bash脚本中 if 语句 和 for 语句使用方法

bash脚本中 if 语句 和 for 语句使用方法

在bash shell脚本中,我们要先了解三种执行顺序顺序执行 (从左到右,从上到下的执行)选择执行 (条件满足或者不满足的时候,才会执行某段结构)循环执行 (重复执行某段结构)今天所写的if……

Protocol Buffers数据描述语言

Protocol Buffers数据描述语言

1.简介Protocol Buffers是Google开发的一种数据描述语言,能够将数据进行序列化,可用于数据存储、通信协议等方面.可以理解成更快、更简单、更小的JSON或者XML,区别在于Prot……

Qt编写OpenMP程序:HelloWorld+双循环+循环测试

Qt编写OpenMP程序:HelloWorld+双循环+循环测试

Qt编写OpenMP程序:HelloWorld本程序是在Ubuntu Linux环境下编写成的。这里包括C++语言程序和C语言程序,两者在Qt项目设置参数上略有不同,需要注意。OpenMp提供并行……

Python初认识

Python初认识

本文主要介绍Python的一些相关知识,包括以下内容:1.Python的诞生和发展史2.Python的应用领域3.Python的特点和优缺点4.Python解释器5.Python2与3的区别6.字符……