自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 类与继承

类注意:所有的构造器默认为static的。 程序执行时,需要生成某个类的对象,java执行引擎会先检查是否加载了这个类,如果没有加载,先加载再生成对象,如果已加载直接生成对象。 在生成对象过程中,先初始化对象的成员变量,然后再执行构造器。 类加载过程中,类的static成员变量会初始化和static语句块会执行,执行顺序同代码顺序。 初始化顺序:父类的构造器调用以及初始化过程一定在子类

2018-01-31 15:14:38 395

原创 计算机存储计量单位

字节 8个二进制位为一个字节(B),最常用的单位。计算机存储单位一般用B,KB,MB,GB,TB,PB,EB,ZB,YB,BB来表示,它们之间的关系是: 1B(Byte字节)=8bit1KB (Kilobyte 千字节)=1024B,1MB (Mega byte 兆字节 简称“兆”)=1024KB,1GB (Giga byte 吉字节 又称“千兆”)=1024MB,

2018-01-31 13:56:30 1258

转载 TCP/IP详解

一、TCP/IP模型TCP/IP协议模型(Transmission Control Protocol/Internet Protocol),包含了一系列构成互联网基础的网络协议,是Internet的核心协议。基于TCP/IP的参考模型将协议分成四个层次,它们分别是链路层、网络层、传输层和应用层。下图表示TCP/IP模型与OSI模型各层的对照关系。TCP/IP协议族按

2018-01-31 10:45:22 272 1

转载 分布式锁三种实现方式

一、为什么要使用分布式锁我们在开发应用的时候,如果需要对某一个共享变量进行多线程同步访问的时候,可以使用我们学到的Java多线程的18般武艺进行处理,并且可以完美的运行,毫无Bug!注意这是单机应用,也就是所有的请求都会分配到当前服务器的JVM内部,然后映射为操作系统的线程进行处理!而这个共享变量只是在这个JVM内部的一块内存空间!后来业务发展,需要做集群,一个应用需要部署

2018-01-31 08:51:15 9610

转载 Chrome插件

Chrome在全世界能够如此受欢迎,除了它的稳定性强,速度快这些优点外,还有就是它的插件是非常丰富强大的!最重要的是作为一个程序员,如果不使用Chrome的话你还谈什么是程序员!有人说不装插件的Chrome就像飞机没有安装机翼,对此我表示一定程度的赞同!安装一些强大实用的插件可以让我们的工作学习的效率大大提高。下面我结合自己所用的插件以及别人的推荐,给大家介绍一些强大实用的插件,希望可

2018-01-30 15:02:23 585

原创 Java类的生命周期

初始化过程类的初始化过程是这样的:按照顺序自上而下运行类中的变量赋值语句和静态语句,如果有父类,则首先按照顺序运行父类中的变量赋值语句和静态语句。在类的初始化阶段,只会初始化与类相关的静态赋值语句和静态语句,也就是有static关键字修饰的信息,而没有static修饰的赋值语句和执行语句在实例化对象的时候才会运行。

2018-01-30 10:10:52 312

转载 Java设计模式【全】

本文转载自公众号  Java知音23种设计模式(1)-单例模式23种设计模式(2)-工厂模式23种设计模式(3)-原型模式23种设计模式(4)-生成器模式23种设计模式(5)-适配器模式23种设计模式(6)-装饰者模式23种设计模式(7)-代理模式23种设计模式(8)-外观模式23种

2018-01-30 09:11:30 199

原创 Nginx配置

工作进程、连接数worker_processes  auto; #工作进程数量,默认是1,最安全的设置是autoworker_connections  1024; #与worker_processes直接绑定。它指定一个工作进程可以一次打开多少个连接。worker_rlimit_nofile 2048; #linux系统改变系统最大打开文件数最大连接数最大连接数=worker_

2018-01-30 08:46:25 178

原创 什么是区块链

区块链,英文 Blockchain,本质上是一种去中心化的分布式数据库。任何人只要架设自己的服务器,接入区块链网络,都可以成为这个庞大网络的一个节点。区块链的本质是数据库区块链的基本单元:区块(Block)一个区块分为两大部分:区块头:区块头里面存储着区块的头信息,包含上一个区块的哈希值(PreHash),本区块体的哈希值(Hash),以及时间戳(TimeStamp)等等。

2018-01-29 11:13:42 527

转载 高性能队列—Disruptor

背景Disruptor是英国外汇交易公司LMAX开发的一个高性能队列,研发的初衷是解决内存队列的延迟问题(在性能测试中发现竟然与I/O操作处于同样的数量级)。基于Disruptor开发的系统单线程能支撑每秒600万订单,2010年在QCon演讲后,获得了业界关注。2011年,企业应用软件专家Martin Fowler专门撰写长文介绍。同年它还获得了Oracle官方的Duke大奖。目

2018-01-28 11:54:01 280

转载 Java类加载机制

本文转载自公众号  占小狼的博客前言Java源代码被编译成class字节码,最终需要加载到虚拟机中才能运行。整个生命周期包括:加载、验证、准备、解析、初始化、使用和卸载7个阶段。 加载1、通过一个类的全限定名获取描述此类的二进制字节流; 2、将这个字节流所代表的静态存储结构保存为方法区的运行时数据结构; 3、在java堆中生成

2018-01-28 11:13:25 152

原创 多线程理解

现代处理器大多含有多个CPU核心,那么对于运算量大任务,可以用多线程的方式拆解成多个小任务并发的执行,提高计算的效率。JAVA内存划分方法区:存储类信息、常量、静态变量等,线程共享堆:new出的实例对象都存储在这个区域,是GC的主战场,线程共享。虚拟机栈:进出栈。每个方法的执行都会创建栈帧,用于存储局部变量、操作数栈、动态链接等,虚拟机栈主要存储这些信息,线程私有本地方法栈:虚

2018-01-28 10:23:35 185

转载 Linux目录结构

来源:小宁哥www.cnblogs.com/xningge/p/8331631.htmllinux下各文件夹的结构说明及用途介绍:/bin:二进制可执行命令。/dev:设备特殊文件。/etc:系统管理和配置文件。/etc/rc.d:启动的配 置文件和脚本。/home:用户主目录的基点,比如用户user的主目录就

2018-01-28 09:33:43 149

原创 SpringBoot SpringCloud JVM学习网站

纯洁的微笑博主网站:http://ityouknow.com/网址:https://mp.weixin.qq.com/s/GTBH1aEMPcBlYido78OTAw?scene=25#wechat_redirect服务网关Zuul高级篇:http://mp.weixin.qq.com/s/h5RiyMwHcQtoqU1N4dcmMg

2018-01-27 15:46:35 321

转载 java8新特性整理

本文转载自:http://blog.csdn.net/54powerman/article/details/73188951ava9快来了,必须得梳理一下java8了。官方文档:http://docs.oracle.com/javase/specs/jls/se8/html/index.html一、接口的默认方法和静态方法接口里也可以写方法体了,实现该接口的类不

2018-01-27 13:37:12 317

转载 Java9的十大新特性

modularity System 模块系统Java 9中主要的变化是已经实现的模块化系统。Modularity提供了类似于OSGI框架的功能,模块之间存在相互的依赖关系,可以导出一个公共的API,并且隐藏实现的细节,Java提供该功能的主要的动机在于,减少内存的开销,在JVM启动的时候,至少会有30~60MB的内存加载,主要原因是JVM需要加载rt.jar

2018-01-27 13:27:16 224

原创 jvm详解图

2018-01-27 12:27:50 297

原创 RSS订阅

RSS订阅是站点用来和其他站点之间共享内容的一种简易方式,即Really Simple Syndication(简易信息聚合)。通过RSS阅读器自定制需要的RSS新闻消息,就会按需要的展示出来,带来很大的方便。

2018-01-26 16:38:11 677

原创 线程并发库

创建多线程1.继承Thread类,重写run方法是覆盖Thread类run方法2.创建Runnable,重写run方法,是Thread的target定时器 (java.util.Timer)schedule:调度3.线程互斥线程安全:多个线程同时操作一个共享对象。对象锁(必须是同一个锁)  类锁4.线程互斥和通信要用到共同数据(包括锁)要设计到同一个方法上,是高

2018-01-24 17:40:15 637

原创 Druid

配置文件中加密数据库连接密码java -cp druid-1.0.0.jar com.alibaba.druid.filter.config.ConfigTools wusc.321Obsbr4gd1oVyYr+k4KQdUMNYgKMWdDibsNJTabnph+yPmxjc6tUrT1GNsPDqa9ZvTF9QvaRD86H+Zn/H+yz2jA\=\=

2018-01-23 14:12:43 797

原创 日志系统

日志由来SLF4J:Simple Logging Facade for Java,多种日志的统一接口SLFJ4+Logback效率最高,大有超越Apache Common Logging + Log4j 之势。日志功能1.日志消息除了能打印到控制台,还可以输出到文件,甚至可以通过邮件发送出去(例如生成环境出错的消息)2.日志内容应该可以做格式化,例如变成

2018-01-23 11:02:29 223

转载 发送邮件那些事

邮件协议发送邮件的本质是将一个人的信息传输给另外一个人,那么如何传输就需要商量好标准,这些标准就是协议。最初只有两个协议:SMTP协议SMTP 的全称是“Simple Mail Transfer Protocol”,即简单邮件传输协议。它是一组用于从源地址到目的地址传输邮件的规范,通过它来控制邮件的中转方式。它的一个重要特点是它能够在传送中接力传送邮件,即邮件可以通过不同网

2018-01-23 08:10:27 638

原创 垃圾回收算法

常用垃圾收集算法:1. 标记-清除2. 复制算法3. 标记-整理算法4. 分代收集算法1.标记-清除:最基础的收集算法“标记-清除”(Mark-Sweep)算法,算法分为“标记”和“清除”两个阶段,首先标记需要回收的对象,在标记完成后统一回收所有被标记的对像。之所以称为最基础的收集算法,是因为后续的算法都是基于这种思路并对其不足进行改进而得到的。他的主要不足在于空间问题,标记清除之后会产生大量不连...

2018-01-22 15:54:39 162

转载 单例模式及扩展

1前言前几天无意中看到一篇文章,讲到了老生常谈的单例,抱着复习一下的心态点了进去,还是那些熟悉的内容,可是却发现自己思考的角度变了,以前更多的是去记忆,只停留在表面,而现在更多的是去思考为什么会这么做。所以今天我也来总结一下 Java 中常见的单例,并记录下自己的思考。2正文Java 中常见的几类单例:饿汉式单例双重检查锁单例静态内部类单

2018-01-22 11:07:02 715 1

原创 windows

一、win查看路由表cmd -- route print

2018-01-21 13:23:16 155

原创 SpringBoot pom.xml常用配置

project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.or

2018-01-21 13:09:03 1601

原创 linux关闭防火墙、添加访问策略

1.centos7systemctl stop firewalld.service #停止firewallsystemctl disable firewalld.service #禁止firewall开机启动firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)2、iptables防火墙(这里iptables已

2018-01-19 09:09:31 7312

原创 linux命令2

1.进程树Linux中每个进程都存在于进程树中,pstree查看进程树,编码是utf8,树的根是init,进程号是1,每个进程都有一个父进程,一个进程可以有很多子进程。文章参考:https://www.oschina.net/translate/important-penetration-testing-cheat-sheet

2018-01-19 08:56:19 123

原创 SpringCloud

场景开发环境,服务提供者和消费者直连,不注册到Eureka Server配置文件:spring.cloud.service-registry.auto-registration.enabled=false或@EnableDiscoveryClient(autoRegister=false)生产环境,提供者和消费者注册到Eureka Server(默认是自动注册的)版本sprin

2018-01-19 08:50:23 492

原创 秒杀

1.数据库实现(乐观锁)update t_seckill set num=num-#{buys}where sku=#{sku} and num-${buys}>=0问题:数据库并发量小,瓶颈2.redis实现(原子自增锁)java实现jedis3.针对秒杀场景的系统优化页面优化:灰色、抢商品静态化 CDN代理层拦截:挡大流量应用层:业务层CAS防止超卖

2018-01-18 16:24:38 280 1

原创 Spring Boot修改内置Tomcat端口号

最简单方法Spring Boot默认配置文件为CLASSPATH下的application.properties在application.properties中添加server.port=8011,可将tomcat默认端口号修改为8011参考文章:http://blog.csdn.net/argel_lj/article/details/49851625

2018-01-17 16:45:08 1388

原创 Redis--集群--主从模式--哨兵模式

主从复制1.一个redis服务有多个该服务的复制品,这个redis服务称为master,其他复制品称为slaves2.主从会保持数据同步3.只有master可以执行写命令,slave只能执行读命令(默认)4.主从复制的创建1)创建一个从节点:redis-server --port 6379 --slaveof master-ip master-port2)先启动一个redi

2018-01-16 16:54:13 4904 1

原创 CentOS 7添加开机启动服务/脚本

一、添加开机自启服务在CentOS 7中添加开机自启服务非常方便,只需要两条命令(以Jenkins为例):systemctl enable jenkins.service #设置jenkins服务为自启动服务sysstemctl start  jenkins.service #启动jenkins服务二、添加开机自启脚本在centos7中增加脚本有两种常用的方法,以脚

2018-01-15 13:52:40 85560 4

原创 Tomcat

1.基本调优bin/catalina.sh加一行 JAVA_OPTS='-Xms128m -Xmx512m -XX:PermSize=128m'2.设置脚本开机启动/etc/rc.local加一行su - user -c '/home/user/edu/web/boss-tomcat/bin/startup.sh'

2018-01-14 16:38:18 169

原创 ZooKeeper

一、安装有单机集群和多机集群,也有单节点1.配置文件zoo.cfgdataDir=zk/datadataLogDir=zk/logsclientPort=2181server.1=zk1:2888:3888server.2=zk2.2888:3888server.3=zk3.2888:38882.mkdir zk/data   cd zk/data  v

2018-01-13 17:50:27 225

原创 DUBBO

1.架构

2018-01-13 17:47:15 217

原创 Atomic、volatile、synchronized、ThreadLocal优缺点比较

1.AtomicAtomicInteger、AtomicLong、AtomicBoolean、AtomicReferenceCAS机制只实现单个变量原子操作Synchronized从偏向锁到轻量级锁再到重量级锁的过度。compare and swap:比较并替换CAS机制使用了3个基本操作数,内存值V,旧的预期值A,要修改的新值BSynchronized属于悲观锁,CAS属

2018-01-11 16:42:45 2447

原创 HTTP2

1.基本介绍http2主要提升了性能,http2的所有帧都采用二进制编码帧:http2最小单位消息:逻辑上的http消息,由一个或多个帧组成流:连接中的一个虚拟通道,可以承载双向的消息http2的连接都是持久化的2.SPDY协议SPDY协议是Google提出的基于传输控制协议(TCP)的应用层协议,通过压缩、多路复用和优先级来缩短加载时间。该协议是一种更加快速的

2018-01-11 16:31:04 512

原创 TCP三次握手和四次挥手

1.三次握手(1)第一次握手:Client将标志位SYN置为1,随机产生一个值seq=J,并将该数据包发送给Server,Client进入SYN_SENT状态,等待Server确认。(2)第二次握手:Server收到数据包后由标志位SYN=1知道Client请求建立连接,Server将标志位SYN和ACK都置为1,ack (number )=J+1,随机产生一个值seq=K,并将该数据

2018-01-10 17:57:54 215

原创 Nginx

0.常用互联网架构1.高可用 Keepalived(有虚IP)+Nginx2.正向代理:代理在客户端   反向代理:代理在服务端3.架构,Nginx涉及Master进程和Worker进程4.nginx.conf文章参考:https://www.jianshu.com/p/5eab0f83e3b4

2018-01-10 17:24:53 186

空空如也

空空如也

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

TA关注的人

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