二一点

上善若水 夫唯不争 故无尤!

JAVA NETTY 文件上传和下载

话不多说,直接上代码,文件上传和下载。 HTTP服务 public final class HttpServer { static final boolean SSL = System.getProperty("ssl") != null; ...

2018-08-25 14:54:55

阅读数 913

评论数 3

JAVA NETTY 心跳检测

使用Socket通信一般经常用来处理多个服务器之间的心跳检测,一般来讲去维护服务器集群,肯定有一台或几台服务器主机Master,还应该有n台Slave。Master常常需要知道自己下面从服务器的各方面情况,进行实时监控,这在分布式架构里叫做心跳检测或心跳监控。 如果用http发送心跳包虽然简单但...

2018-08-23 10:38:37

阅读数 488

评论数 0

linux(CentOS 7)虚拟机配置连接外网

一、首先我们需要确定本地电脑可以连接外网,配置之前需要把虚拟机的连接方式改为桥接,然后打开安装的虚拟机。 二、执行命令ifconfig 查看当前虚拟机的IP,默认系统是自动获取的。 三、因为本地电脑是配置的静态地址上网,所以需要修改网卡的IP地址,可以使用命令: vi /etc/sys...

2018-08-22 09:37:10

阅读数 2957

评论数 0

Java GC 分析,JVM生产环境参数实例及分析,JVM详细配置

什么是 Java GC Java GC(Garbage Collection,垃圾收集,垃圾回收)机制,是Java与C++/C的主要区别之一,作为Java开发者,一般不需要专门编写内存回收和垃圾清理代码,对内存泄露和溢出的问题,也不需要像C程序员那样战战兢兢。这是因为在Java虚拟机中,存在自动...

2018-08-21 11:05:27

阅读数 401

评论数 0

JVM内存结构,JAVA类的加载机制,GC算法,垃圾收集器

一、什么是类的加载 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个 java.lang.Class对象,用来封装类在方法区内的数据结构。类的加载的最终产品是位于堆区中的 Class对象, Class对象封装了类在方法区内的数据结...

2018-08-20 14:01:27

阅读数 302

评论数 0

Linux(CentOS 7) 安装 Tomcat8 及 JDK1.8配置

一、使用wget方式 wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.4/bin/apache-tomcat-8.5.4.tar.gz wget http://download.oracle.com/ot...

2018-08-06 14:26:11

阅读数 480

评论数 1

Spring boot Maven找不到spring-boot-starter-log4j2 JAR包问题,使用slf4j的logback输出日志

一、问题描述把Springboot版本升级了下,运行发现报了这样一个错误:'dependencies.dependency.version' for org.springframework.boot:spring-boot-starter-log4j:jar is missing.报错的提示是sp...

2018-07-03 13:54:30

阅读数 3252

评论数 0

JAVA基础 之 泛型详解

一、概述什么是泛型?为什么要使用泛型?泛型,即“参数化类型”。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具...

2018-05-21 16:45:27

阅读数 129

评论数 0

Java 网络IO编程 之 BIO、NIO、AIO 的用法与实现

一、BIO 编程1、传统的BIO编程网络编程的基本模型是C/S模型,即两个进程间的通信。服务端提供IP和监听端口,客户端通过连接操作想服务端监听的地址发起连接请求,通过三次握手连接,如果连接成功建立,双方就可以通过套接字进行通信。传统的同步阻塞模型开发中,ServerSocket负责绑定IP地址,...

2018-05-16 09:26:38

阅读数 319

评论数 0

Java 网络编程 之 socket 的用法与实现

一、概念TCPTCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能,用户数据报协议(UDP,下一篇博客会实现)是同一层内...

2018-05-15 09:44:00

阅读数 15700

评论数 3

Oracle SQL 之 分析函数(窗口函数)

概述分析函数是以一定的方法在一个与当前行相关的结果子集中进行计算,也称为窗口函数。一般结构为:Function(arg1 , arg2 ……) over(partition by clause order by clause windowing clause )Windowing clause :...

2018-05-04 09:49:45

阅读数 846

评论数 0

JAVA特性 之 反射(Reflection)

什么是反射?反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。用一句话总结就是反射可以实现在运行时可以知道任意一个类的属性和方法。反射能做什么?反射...

2018-04-24 11:23:08

阅读数 329

评论数 0

JAVA面向对象四大特性:多态、继承、抽象、封装

一、多态(晚绑定;运行时;一个接口,多种实现)面向对象的四大特性:封装、继承、多态、抽象。从一定角度来看,封装和继承几乎都是为多态而准备的。是最重要的知识点。多态的定义:指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。(发送消息就是函数调用)实现多态...

2018-04-20 15:40:06

阅读数 985

评论数 0

JAVA并发编程 之 LMAX Disruptor使用实例(高效解决生产者与消费者问题)

什么是Disruptor?Disruptor是一个开源的JAVA框架,它被设计用于在生产者—消费者(producer-consumer problem,简称PCP)问题上获得尽量高的吞吐量(TPS)和尽量低的延迟。Disruptor是LMAX在线交易平台的关键组成部分,LMAX平台使用该框架对订单...

2018-04-13 11:30:03

阅读数 4536

评论数 1

JAVA并发编程 之 Lock 与 Synchronized 的比较和应用 及 锁机制

synchronized是java中的一个关键字,也就是说是Java语言内置的特性。那么为什么会出现Lock呢?synchronized 的局限性 与 Lock 的优点如果一个代码块被synchronized关键字修饰,当一个线程获取了对应的锁,并执行该代码块时,其他线程便只能一直等待直至占有锁的...

2018-04-11 16:18:30

阅读数 243

评论数 0

JAVA并发编程 之 CountDownLatch、CyclicBarrier、Semaphore、Callable和Future

CountDownLatch用法CountDownLatch位于java.util.concurrent包下,利用它可以实现类似计数器的功能。比如有一个任务A,它要等待其他4个任务执行完毕之后才能执行,此时就可以利用CountDownLatch来实现这种功能了。CountDownLatch类只提供...

2018-04-11 13:56:03

阅读数 121

评论数 0

JAVA线程池,ThreadPoolExecutor实现的四种线程池

线程池在JAVA中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便。但是就会有一个问题,如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。那么有没有一种办法使得线程可以复用,就是执行完一个任...

2018-04-10 16:02:44

阅读数 305

评论数 0

多线程 - 生产者与消费者

生产者与消费者在线程世界里,生产者就是生产数据的线程,消费者就是消费数据的线程。在多线程开发当中,如果生产者处理速度很快,而消费者处理速度很慢,那么生产者就必须等待消费者处理完,才能继续生产数据。同样的道理,如果消费者的处理能力大于生产者,那么消费者就必须等待生产者。为了解决这种生产消费能力不均衡...

2018-04-09 14:47:25

阅读数 205

评论数 0

JAVA多线程之Master worker并行设计模式

在多线程程序设计中Master worker 模式是常用的并行模式之一,核心思想是由两类进程协助完成的,Master 进程负责接收和分配任务并处理保存结果集,Worker 负责处理任务, 并把结果返回给Master 进程. 这类设计模式最大的好处是 将一个大任务分配成若干个小任务并行执行。可见ma...

2018-03-30 16:29:49

阅读数 407

评论数 0

JAVA多线程之Future模式

Future模式有点类似于商品订单。比如在网购时,当看中某一个商品时,就可以提交订单,当订单处理完成后,在家里等待商品送货上门即可。或者说更形象的我们发送Ajax请求的时候,页面是异步的进行后台处理,用户无需一直等待请求的结果,可继续浏览或操作其他内容。下面看一个例子:1.客户端发送请求客户端发送...

2018-03-30 16:10:17

阅读数 127

评论数 1

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