- 博客(25)
- 收藏
- 关注
转载 各类消息队列简述
ActiveMQ 是 Apache 出品的、采用 Java 语言编写的完全基于 JMS1.1 规范的面向消息的中间件,为应用程序提供高效的、可扩展的、稳定的和安全的企业级消息通信。不过由于历史原因包袱太重,目前市场份额没有后面三种消息中间件多,其最新架构被命名为 Apollo,号称下一代 ActiveMQ(在实际物联网的项目中 采用了Apollo作为智能设备和服务器通信的中转broker,效果还不...
2018-05-25 20:19:13
307
原创 数据库的多种连接查询操作
数据库的多种连接查询操作说明在数据库中涉及到多表查询的时候,有多种连接查询操作,分别如下所示:inner join onleft join onleft join on where*right join onright join on whereoutlier join onfrom table1, table2 where table1.condition1=table2....
2018-05-18 16:39:45
1790
原创 VNC使用笔记
记录在使用VNC过程中经常会忘的两条命令(Ubuntu环境下): 1. 打开一个链接,下面命令的x为此链接的编号,这是在Ubuntu中打开服务链接的命令。vncserver :x 在Windows下链接服务器的命令,如下ip:x 2. 断开Ubuntu服务器中的链接vncserver -kill :x...
2018-04-19 15:00:16
249
原创 Java中线程安全的实现方法
线程安全听起来似乎是一件由代码如何编写来决定的事情,确实,如何实现线程安全与代码编写有很大的关系,但虚拟机提供的同步和锁机制也起到了非常重要的作用。1. 互斥同步 互斥同步是常见的一种并发正确性保障手段。同步是指在多个线程并发访问共享数据时,保证共享数据在同一个时刻只被一个线程使用。而互斥是实现同步的一种手段,临界区、互斥量和信号量都是主要的互斥实现方式。因此,在这4个字里面,互斥是...
2018-04-18 22:48:42
838
原创 Java语言中的线程安全
在叙述Java语言中的线程安全之前,先给出线程安全的定义:“当多个线程访问一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方进行任何其他的协调操作,调用这个对象的行为都可以获取正确的结果,那么这个对象就是线程安全的”。出自《Java Concurrency In Practice》。 为了更加深入地理解线程安全,在这里我们可以不把线程...
2018-04-17 23:12:48
183
原创 JAVA与线程
并发不一定要依赖多线程(如PHP中很常见的多进程并发),但是在Java里面谈论并发,大多数都与线程脱不开关系。1.线程的实现 我们知道,线程是比进程更轻量级的调度执行单位,线程的引入,可以把一个进程的资源分配和执行调度分开,各个线程既可以共享进程资源(内存地址、文件I/O等),又可以独立调度(线程是CPU调度的基本单位)。 实现线程主要有3种方式:使用内核线程实现、使用用户线程...
2018-04-16 21:12:48
132
原创 HotSpot虚拟机对象的内存布局
HotSpot虚拟机的对象头分为两部分信息,第一部分用于存储对象自身的运行时数据,如哈希码,GC分代年龄等,这部分数据的长度在32bit和64bit的虚拟机中分别为32bit和64bit,官方称为“Mark Word”。另一部分用于存储指向方法区对象类型数据的指针,如果是数组对象的话,还会有一个额外的部分用于存储数组的长度。对象头信息是与对象自身定义的数据无关的额外存储成本,考虑到虚拟机的空间效率...
2018-04-16 19:01:15
225
原创 HotSpot虚拟机各种锁优化技术
高效并发是从JDK1.5到JDK1.6的一个重要改进,HotSpot虚拟机开发团队在这个版本上花费了大量的精力去实现各种锁优化技术,如自旋,适应性自旋,锁消除、锁粗化、轻量级锁和偏向锁等,这些技术都是为了在线程之间更高效地共享数据,以及解决竞争问题,从而提高程序的执行效率。自旋锁和自适应自旋 如果物理机器有一个以上的处理器,能让两个或以上的线程同时并行执行,我们就可以让后面请求锁的那个线程“稍等
2018-04-15 18:19:16
225
转载 Errors were encountered while processing: /var/cache/apt/archives/apport_2.20.1-0ubuntu2.4_all.deb
I encountered the error as below:Errors were encountered while processing: /var/cache/apt/archives/apport_2.20.1-0ubuntu2.4_all.debE: Sub-process /usr/bin/dpkg returned an error code (1)I have tri
2018-01-26 15:22:55
10378
转载 微服务的概念
微服务架构是一种贾某模式,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调,为用户提供最终价值。每个服务运行在其独立的集成中,服务与服务间采用轻量级的通信机制互相沟通(通常是基于HTTP的RESTful API)。每个服务都围绕着具体业务进行构建,并且能够被独立地部署到生产环境、类生产环境等。另外,应尽量避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根据业务上下文,选择合适的语言
2017-08-09 11:28:50
370
原创 ssh免密码登录
在使用ssh-keygen命令生成公钥和私钥后,使用命令:cat ~/.ssh/id_rsa.pub >> authorized_keys这句命令的意思就是把公钥中的信息,重定向到已认证的keys文件中,下次再使用ssh localhost链接本机的时候,就不用再输入密码了。如果要远程链接,无密码登录,需要把本机的公钥文件,先使用scp命令发送到远程主机中,然后再使用上述命令,即可完成无密码远程登录
2017-07-24 09:26:17
271
原创 关于PHP中的sha1和md5的加密函数
sha1和md5函数在计算摘要的时候,不能处理数组类型的数据,处理这种类型的数据,会报错,并产生false。
2017-07-07 19:18:12
903
原创 Gitosis使用方法介绍
gitosis是一个第三方工具,可以用来管理自己搭建的git server上的项目仓库和项目用户的使用权限。在服务器上装好gitosis后,管理可以通过命令:git clone 服务器用户名@服务器ip:gitosis.git,来获取git服务器的配置文件。1、gitosis配置首先介绍gitosis配置文件和公钥目录。1)gitosis文件gitosis文件是gitosis.conf,文件中的语
2017-06-05 10:16:37
2280
原创 Density Peaks聚类算法
最近看了一篇关于基于密度的聚类算法---Density Peaks Algortihm, 把自己对该聚类算法的理解,写在这篇文献笔记中。一、算法思想 这个DP算法假设聚类中心被较低局部密度的点所围绕,并且这些点距离具有较高局部密度的点有相对更大的距离。因此,对于数据集中的任何数据点i, DP算法计算出两个参数值: (1) 局部密度 计算局部密度需
2017-06-01 22:18:17
6092
1
原创 在Ubuntu上搭建Git server
在Ubuntu系统上搭建Git Server主要包含以下几个步骤:安装openssh, 确保客户端可以通过ssh访问服务器安装git, git-core安装gitosis,这是一款第三方Git Server权限管理的软件。具体步骤1、 安装opensshubuntu:~$sudo apt-get install openssh-server2、 安装Gitubuntu:~$sudo apt
2017-05-28 19:15:28
1099
原创 Nginx --sendfile配置
Nginx高级篇sendfile配置 sendfile: 设置为on表示启动高效传输文件的模式。sendfile可以让Nginx在传输文件时直接在磁盘和tcp socket之间传输数据。如果这个参数不开启,会先在用户空间(Nginx进程空间)申请一个buffer,用read函数把数据从磁盘读到cache,再从cache读取到用户空间的buffer,再用write函数把数据从用户空间的buffer写
2017-04-26 16:50:07
19361
原创 Python实现Huffman Code
class Node: def __init__(self, weight): self.weight = weight self.parent = -1 self.charCode = -1 self.tag = 0def Huffman(consequent): """ This function creat
2017-03-17 17:18:33
1009
转载 Linux有问必答:如何在Apache网站服务器上关闭服务器签名
Linux有问必答:如何在Apache网站服务器上关闭服务器签名编译自:http://ask.xmodulo.com/turn-off-server-signature-apache-web-server.html原创:LCTT https://linux.cn/article-3642-1.html译者: GOLinux本文地址:https://linux.cn/ar
2016-07-18 10:18:08
1520
原创 Ubuntu16.04 配置PHP7.0开发环境
Ubuntu16.04 LTS 系统默认安装PHP7.0 。配置PHP7.0的开发环境,只需要安装apache2和mysql;即可开发php程序。步骤一: 安装apache2的命令为:sudo apt-get install apache2 apache2在Ubuntu下的配置文件路径:/etc/apache2 apache2在Ubuntu下的项目根目录默认为:/var/www/html 项
2016-07-17 16:33:50
4221
原创 正则表达式语法
字符匹配.匹配任意字符(除了\n)[...]匹配字符集\d匹配数字\D匹配非数字\s匹配空白字符\S匹配非空白字符\w匹配单词字符[a-zA-Z0-9]字符\W匹配非单词字符
2016-07-17 14:07:36
322
转载 Git冲突
今天用Git pull来更新代码,遇到了下面的问题:[html] view plain copy error: Your local changes to the following files would be overwritten by merge: xxx/xxx/xxx.java Please, commit y
2016-07-16 16:28:53
203
原创 Largest Number(最大数字)
Largest Number要求:给定一个非负整数的列表,排列它们形成最大的整数,考虑到整数的取值范围,最后的结果可采用字符串的形式表示。例子:[2,256]=>2562,[824,8247]=>[8248247]第一种方法: 刚开始做这道题的时候,整个思路停留在基数排序上,想着把这个排序过程,通过修改基数排序完成(太复杂了,想了好长时间)。算法实现:def largeNum(nums):
2016-07-07 12:27:41
959
原创 链表排序(Sort List)
链表排序所用到的语言和方法: **1、语言:Python 2、时间复杂度O(nlogn) 3、空间复杂度为常数 4、用的排序算法:二路归并排序**具体实现算法如下所示: class ListNode(object): def __init__(self, x): self.val = x self.next = Nonedef sortList
2016-07-05 11:30:37
696
原创 链表排序
链表排序(采用插入排序)# Definition for singly-linked list.# class ListNode(object):# def __init__(self, x):# self.val = x# self.next = Noneclass Solution(object): def insertionSortLis
2016-07-04 22:46:47
268
原创 Python的5个基本排序算法
重点内容# 欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用
2016-05-18 12:52:22
490
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人