自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Java_feng的博客

年轻又创意和时间,年老有资历和经验

  • 博客(252)
  • 资源 (1)
  • 问答 (2)
  • 收藏
  • 关注

原创 编译OpenJDK8

最近在读<深入理解Java虚拟机>,看完第一部分想着自己动手编译一套JDK,毕竟想要深入了解JDK内部实现,跟踪调试JDK源码时最便捷的路径(不过不一定能看懂,哈哈)。闲话不多说,正文开始。1. 获取OpenJDK源码我使用的OpenJDK版本:openjdk-8u40-src-b25-10_feb_2015从官网下载:http://jdk.java.net/java-se-ri...

2019-05-07 19:08:47 9413 1

原创 Java进程内存结构及监控

2019-04-29 18:56:25 638

原创 HTTP协议介绍

2019-04-29 18:52:34 358

转载 RabbitMQ基础概念详细介绍

转至:http://www.ostest.cn/archives/497引言      你是否遇到过两个(多个)系统间需要通过定时任务来同步某些数据?      你是否在为异构系统的不同进程间相互调用、通讯的问题而苦恼、挣扎?      如果是,那么恭喜你,消息服务让你可以很轻松地解决这些问题。消息服务擅长于解决多系统、异构系统间的数据交换(消息通知/通讯)问题,你也可以把它用于系统间服务

2018-03-19 11:16:19 335

转载 TCP/IP协议(一)网络基础知识

参考书籍为《图解tcp/ip》-第五版。这篇随笔,主要内容还是TCP/IP所必备的基础知识,包括计算机与网络发展的历史及标准化过程(简述)、OSI参考模型、网络概念的本质、网络构建的设备等  下面是协议层从底层至顶层的一个模型图: 一、计算机网络的背景1.1 计算机的发展有人说:“20世纪最伟大的发明就是计算机”,自诞生伊始,计算机经历了一系列发展,从大型通用计算机、超级计算机、小型机、个人电脑、工

2018-01-15 14:16:22 6738

转载 Git忽略规则.gitignore梳理

对于经常使用Git的朋友来说,.gitignore配置一定不会陌生。废话不说多了,接下来就来说说这个.gitignore的使用。首先要强调一点,这个文件的完整文件名就是”.gitignore”,注意最前面有个“.”。一般来说每个Git项目中都需要一个“.gitignore”文件,这个文件的作用就是告诉Git哪些文件不需要添加到版本管理中。实际项目中,很多文件都是不需要版本管理的,比如Python的

2018-01-04 11:52:18 5359

转载 每天一个linux命令:lsof命令

lsof(list open files)是一个列出当前系统打开文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以如传输控制协议 (TCP) 和用户数据报协议 (UDP) 套接字等,系统在后台都为该应用程序分配了一个文件描述符,无论这个文件的本质如何,该文件描述符为应用程序与基础操作系统之间的交互提供了通用接口。因为应用程序打开

2017-12-27 16:46:22 351

转载 基于springCloud的分布式架构体系

Spring Cloud作为一套微服务治理的框架,几乎考虑到了微服务治理的方方面面,之前也写过一些关于Spring Cloud文章,主要偏重各组件的使用,本次分享主要解答这两个问题:Spring Cloud在微服务的架构中都做了哪些事情?Spring Cloud提供的这些功能对微服务的架构提供了怎样的便利? 我们先来简单回顾一下,我们以往互联网架构的发展情况: 传统架构发展史 单体架构 单体架构在小

2017-12-20 18:27:53 1722

转载 OSI七层协议模型、TCP/IP四层模型学习笔记

1. OSI七层和TCP/IP四层的关系1.1 OSI引入了服务、接口、协议、分层的概念,TCP/IP借鉴了OSI的这些概念建立TCP/IP模型。1.2 OSI先有模型,后有协议,先有标准,后进行实践;而TCP/IP则相反,先有协议和应用再提出了模型,且是参照的OSI模型。1.3 OSI是一种理论下的模型,而TCP/IP已被广泛使用,成为网络互联事实上的标准。TCP:transmission con

2017-12-20 16:29:23 450

转载 亿级Web系统搭建——单机到分布式集群

<p>  当一个Web系统从日访问量10万逐步增长到1000万,甚至超过1亿的过程中,Web系统承受的压力会越来越大,在这个过程中,我们会遇到很多的问题。为了解决这些性能压力带来问题,我们需要在Web系统架构层面搭建多个层次的缓存机制。在不同的压力阶段,我们会遇到不同的问题,通过搭建不同的服务和架构来解决。</p>  Web负载均衡  Web负载均衡(Load Balancing),简单地说就是给

2017-12-20 13:42:25 557

转载 使用JDB调试Java程序

Java程序中有逻辑错误,就需要使用JDB来进行调试了。调试程序在IDE中很方便了,比如这篇博客介绍了在Intellj IDEA中调试Java程序的方法。我们课程内容推荐在Linux环境下学习,有同学问如何在命令行下调试Java程序,我们就要使用JDB了。学习建议:Linux Bash下打开三个标签页我们提倡在Linux命令行下学习Java编程。学习时在Ubuntu Bash中通过Ctrl+Shif

2017-12-19 11:34:08 1331

转载 jstack日志深入理解

在分析线上问题时常使用到jstack <PID>命令将当时Java应用程序的线程堆栈dump出来。面对jstack 日志,我们如何查看?首先要清楚线程的状态线程的状态有:new、runnable、running、waiting、timed_waiting、blocked、dead线程状态变迁图:各状态说明:New: 当线程对象创建时存在的状态,此时线程不可能执行;Runnable:当调用thread

2017-12-08 19:01:39 916

转载 python with as的用法

With语句是什么?有一些任务,可能事先需要设置,事后做清理工作。对于这种场景,Python的with语句提供了一种非常方便的处理方式。一个很好的例子是文件处理,你需要获取一个文件句柄,从文件中读取数据,然后关闭文件句柄。如果不用with语句,代码如下:file = open("/tmp/foo.txt")data = file.read()file.close()这里有两个问题。一是可能

2017-12-04 15:20:10 221

转载 MySQL之权限管理

一、MySQL权限简介    关于mysql的权限简单的理解就是mysql允许你做你全力以内的事情,不可以越界。比如只允许你执行select操作,那么你就不能执行update操作。只允许你从某台机器上连接mysql,那么你就不能从除那台机器以外的其他机器连接mysql。    那么Mysql的权限是如何实现的呢?这就要说到mysql的两阶段验证,下面详细介绍:第一阶段:服务器首先会检查你是否允许

2017-11-08 11:39:39 240

转载 CentOS下的sudo相关配置的总结归纳

CentOS下的sudo相关配置的总结归纳1 基础部分1.1 常用的命令行123456man sudoers #参阅帮助 visudo #编辑sudoers的命令 sudo -l #查看可执行或禁止执行的命令 sudo -u user1 /bin/ls #指定user1用户的身份执行命令 sudo -g gp1 /bin/ls #指以gp1组的身份执行 sudo -u us

2017-11-07 16:57:54 961

转载 ActiveMQ (二) 常用配置简介

ActiveMQ的主要配置文件ActiveMQ的一些常用的属性很多可以在对应的配置文件中进行配置的。比如访问web console的管理端的端口,用户名密码,连接MQ时的用户名和密码,持久化设置,是否启用消息优先级的设置等。 1. 配置ActiveMQ的web Console控制台端口:在jetty.xml文件中:<bean id="jettyPort" class="org.apache.act

2017-11-06 15:54:57 758

转载 centos7编译安装git最新版

假如系统已经安装了git,先删除。如果是通过yum安装的,直接在终端使用以下指令删除:yum remove git如果是通过源码编译安装的,参考以下文章:Linux ./configure && make && make install 编译安装和卸载通过源码安装git。源码可以安装到最新版本的git,安装包的方式虽然安装容易卸载也容易,可惜版本总有延后性。对于技术人员来说,要敢于尝试新东西,敢于

2017-11-03 14:00:31 624

转载 Java is-a、has-a和like-a、组合、聚合和继承 两组概念的区别

is a 代表的是类之间的继承关系,比如PC机是计算机,工作站也是计算机。PC机和工作站是两种不同类型的计算机,但都继承了计算机的共同特性。因此在用 Java语言实现时,应该将PC机和工作站定义成两种类,均继承计算机类。   has a 代表的是对象和它的成员的从属关系。同一种类的对象,通过它们的属性的不同值来区别。比如一台PC机的操作系统是Windows,另一台PC机的操作系统是Linux。操作系

2017-10-25 11:18:04 1476

转载 代码覆盖度-代码覆盖度概念以及度量方法

本文主要是介绍什么是代码覆盖度,引入代码覆盖度的好处,代码覆盖度的度量方法以及对应的测试用例设计方法1. 什么是代码覆盖度代码覆盖率分析实际上一种度量方式,间接度量质量的方法的过程,是在保证测试质量的时候潜在保证实际产品的质量,在程序中寻找没有被测试用例测试过的地方的流程,创建新的测试用例来增加覆盖率的流程。代码覆盖分析是一种结构测试技术,属于白盒测试的范畴,结构化测试是以源代码的意图表现为依据来

2017-10-16 13:15:14 3260

转载 MySQL Explain详解

最近慢慢接触MySQL,了解如何优化它也迫在眉睫了,话说工欲善其事,必先利其器。最近我就打算了解下几个优化MySQL中经常用到的工具。今天就简单介绍下EXPLAIN。 内容导航idselect_typetabletypepossible_keyskeykey_lenrefrowsExtra环境准备 MySQL版本:创建测试表 复制代码CREATE TABLE people(

2017-10-12 11:32:01 310

转载 深入理解SQL的四种连接-左外连接、右外连接、内连接、全连接

1、内联接(典型的联接运算,使用像 = 或 <> 之类的比较运算符)。包括相等联接和自然联接。 内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行。例如,检索 students和courses表中学生标识号相同的所有行。 2、外联接。外联接可以是左向外联接、右向外联接或完整外部联接。 在 FROM子句中指定外联接时,可以由下列几组关键字中的一组指定: 1)LEFT JOIN或L

2017-10-11 10:24:43 410

转载 MySQL5.7 JSON类型使用介绍

转载:http://blog.csdn.net/yueliangdao0608/article/details/49760213     JSON是一种轻量级的数据交换格式,采用了独立于语言的文本格式,类似XML,但是比XML简单,易读并且易编写。对机器来说易于解析和生成,并且会减少网络带宽的传输。<br>    JSON的格式非常简单:

2017-10-09 09:36:43 2144

转载 Ubuntu16.04 安装L2TP Client

添加源 sudo add-apt-repository ppa:nm-l2tp/network-manager-l2tp update sudo apt update安装network-manager-l2tp sudo apt install network-manager-l2tp安装UI sudo apt install network-manager-l2tp-gnome

2017-09-25 17:27:57 6148 1

转载 Maven生成可以直接运行的jar包的多种方式

Maven可以使用mvn package指令对项目进行打包,如果使用java -jar xxx.jar执行运行jar文件,会出现”no main manifest attribute, in xxx.jar”(没有设置Main-Class)、ClassNotFoundException(找不到依赖包)等错误。要想jar包能直接通过java -jar xxx.jar运行,需要满足:1、在jar包中的M

2017-09-21 13:31:36 239

转载 Linux FTP命令详解

FTP命令是Internet用户使用最频繁的命令之一,不论是在DOS还是LINUX操作系统下使用FTP,都会遇到大量的FTP内部命令。熟悉并灵活应用FTP的内部命令,可以大大方便使用者,并收到事半功倍之效。[root@www ~]# yum install ftp 安装ftp支持 RedHat系列版本下命令 [root@www ~]# ftp 输入ftp命令 FTP> open 连接 命令 F

2017-09-18 09:50:24 1048

转载 基于最少使用频次的LRU,LFU缓存淘汰算法

概念分析 LFU(Least Frequently Used)即最近最不常用.看名字就知道是个基于访问频次的一种算法。以前写过几篇关于用python实现lru算法的模块,有兴趣的朋友可以看看。 LRU是基于时间的,会将时间上最不常访问的数据给淘汰,在算法表现上是放到列表的顶部;LFU为将频率上最不常访问的数据淘汰.既然是基于频率的,就需要有存储每个数据访问的次数.从存储空间上,较LRU会多出一些

2017-09-06 15:16:16 1079

转载 Ubuntu默认防火墙安装、启用、配置、端口、查看状态相关信息

Ubuntu附带了一个相对iptables简单很多的防火墙 配置工具:ufwufw防火墙 即uncomplicated firewall,不复杂的防火墙,繁琐部分的设置还是需要去到iptables查看防火墙状态?1sudo ufw status防火墙版本?1sudo ufw version1.安装?1sudo apt-get install ufw2.启用  ?12sudo ufw

2017-08-25 17:03:40 1087

转载 Ubuntu16.04LTS安装zsh+oh-my-zsh+autojump

转:http://blog.csdn.net/shengzhu1/article/details/54590158安装zsh一定要用apt-get安装,命令是sudo apt-get updatesudo apt-get install zsh1212安装成功后,改变系统的默认shell,使用命令chsh -s /bin/zsh,输入密码后回车,修改成功。这里有个坑:总是报错chsh: P

2017-08-25 10:15:13 768

转载 Ubuntu16.04安装wps并解决系统缺失字体问题

进入WPS官网下载deb包:http://linux.wps.cn/ 安装,打开终端:cd 下载sudo dpkg -i wps-office_10.1.0.5672~a21_amd64.deb  解决打开WPS时出现的系统缺失字体问题:下载https://pan.baidu.com/s/1eS6xIzowps_symbol_fonts.zip 将wps_symbol_fonts.zip解

2017-08-24 16:37:13 5985

转载 linux ubuntu 16.04 deb文件的安装

pkg 是Debian Package的简写,是为Debian 专门开发的套件管理系统,方便软件的安装、更新及移除。所有源自Debian的Linux发行版都使用dpkg,例如Ubuntu、Knoppix 等。以下是一些 Dpkg 的普通用法:1、sudo dpkg -i <package.deb>安装一个 Debian 软件包,如你手动下载的文件。2、sudo dpkg -c <packag

2017-08-23 11:25:57 1402

转载 linux之find命令详解

查找文件find ./ -type f查找目录find ./ -type d查找名字为test的文件或目录find ./ -name test查找名字符合正则表达式的文件,注意前面的‘.*’(查找到的文件带有目录)find ./ -regex .*so.*\.gz查找目录并列出目录下的文件(为找到的每一个目录单独执行ls命令,没有选项-print时文件列表前一行不会显示目录名称)find ./ -t

2017-08-22 17:14:04 426

转载 Docker学习笔记:Dockerfile

Docker 可以通过 Dockerfile 的内容来自动构建镜像。Dockerfile 是一个包含创建镜像所有命令的文本文件,通过docker build命令可以根据 Dockerfile 的内容构建镜像,在介绍如何构建之前先介绍下 Dockerfile 的基本语法结构。Dockerfile 有以下指令选项:FROMMAINTAINERRUNCMDEXPOSEENVADDCO

2017-08-21 15:51:26 346

转载 Docker命令详解

最近学习Docker,将docker所有命令实验了一番,特整理如下:# docker --helpUsage: docker [OPTIONS] COMMAND [arg...] docker daemon [ --help | ... ] docker [ -h | --help | -v | --version ]A self-sufficient runtime

2017-08-16 14:08:52 546

转载 Docker的save和export命令的区别

摘要: 最近在做Docker的镜像的迁移,遇到的了问题了,不知怎么解决,发现这篇好文,解决了我的问题~就翻译过来的。http://tuhrig.de/difference-between-save-and-export-in-docker/ 我最近在玩docker,一种应用程序容器和Linux的虚拟技术。它太酷了,创建Docker镜像和容器只需要几分钟。所有的工作都是开箱即用的。在结束我一天的工作

2017-08-16 14:05:34 577

转载 jersey的简单介绍及与spring-boot的集成使用

转载:http://blog.csdn.net/zhangjq520/article/details/54314256一、什么是jersey?Jersey RESTful 框架是开源的RESTful框架, 实现了JAX-RS (JSR 311 & JSR 339) 规范。它扩展了JAX-RS 参考实现, 提供了更多的特性和工具, 可以进一步地简化 RESTful service 和 clien

2017-08-09 16:11:06 2107

转载 springboot(十四)使用spring retry

转载:http://blog.csdn.net/u011493599/article/details/70171977在调用第三方接口或者使用mq时,会出现网络抖动,连接超时等网络异常,所以需要重试。1、引入jar包[java] view plain copy print?<dependency>              <groupId>org.springframework.retry<

2017-08-09 15:44:05 1651

转载 Spring Boot集成lombok让代码更简洁

转:http://www.jianshu.com/p/dd5349ac8473 lombok的威力简化代码IntelliJ IDEA安装lombok插件1.菜单栏File > Settings > Plugins > Browse repositories…安装插件2.搜索 Lombok Plugin 安装后,重启IDEA即可生效安装lombokSpring Boot项目中

2017-08-09 15:14:36 941

转载 Quartz使用总结

转:http://www.cnblogs.com/drift-ice/p/3817269.html废话的前言以前凭借年轻,凡事都靠脑记。现在工作几年后发现,很多以前看过、用过的东西,再次拿起的时候总觉得记不牢靠。”好记性不如烂笔头”应该是某位上了年纪的大叔的切肤之痛(仅次于上了年纪的难言之瘾)。我觉得这事得怪怪中国的应试教育,中国的考试方式就是要求把脑袋当数据库,以前中学那点知识,确实还能装得

2017-08-09 10:32:31 329

转载 关于Java并发编程的总结和思考

编写优质的并发代码是一件难度极高的事情。Java语言从第一版本开始内置了对多线程的支持,这一点在当年是非常了不起的,但是当我们对并发编程有了更深刻的认识和更多的实践后,实现并发编程就有了更多的方案和更好的选择。本文是对并发编程的一点总结和思考,同时也分享了Java 5以后的版本中如何编写并发代码的一点点经验。为什么需要并发  并发其实是一种解耦合的策略,它帮助我们把做什么(目标)和什么时候做(时机)

2017-08-03 11:50:39 261

原创 java8-StampedLock

import java.util.concurrent.locks.StampedLock;public class Test { private String str = "init"; private final StampedLock stampedLock = new StampedLock(); public static void main(String[] arg

2017-08-02 10:18:38 344

C语言标准库函数大全

C语言标准库函数大全.chm

2015-12-28

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

TA关注的人

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