自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

转载 设计模式-模板方法(TemplateMethod)

什么是模板方法设计模式?使用了JAVA的继承机制,在抽象类中定义一个模板方法,该方法引用了若干个抽象方法(由子类实现)或具体方法(子类可以覆盖重写);解决的问题?1、当功能内部一部分是确定,一部分实现是不确定的。这时可以把不确定的部分暴露出去,让子类去实现。2、编写一个抽象方法,父类提供了多个子类的通用方法,并把一个或者多个方法留给子类去实现,就是一种模板模式。这个博主有详细解...

2019-03-10 22:26:43 107

原创 java基础-抽象类(Abstract)

什么是抽象类?随着继承层次中一个个新子类的定义,类变得越来越具体,而父类则更一般,更通用。类的设计应该能够保证父类和子类共享特性。有时将一个父类设计的非常抽象,以至于他没有具体的实例,不能被实例化,只能被继承,这样的类叫做抽象类。关键字:Abstract(可以用来修饰类和方法)Abstract修饰类和方法的使用1、Abstract 修饰类,抽象类1)不可被实例化;2)抽象类...

2019-03-10 18:31:32 532

翻译 设计模式-单例模式(Singleton)

什么是单例模式? 就是采取一定的方法保证整个软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法。如果我们要让一个类在虚拟机中只产生一个对象,首先我们必须将类的构造方法的访问权限设置为private,这样就不能通过new操作符在类的外部产生对象了。但在类的内部仍可以产生该类的对象。因为在类的外部无法产生该对象,只能调用该类的某个静态方法来返回内部创...

2019-03-07 22:42:02 64

转载 多线程-线程终止

1. interrupt()说明在介绍终止线程的方式之前,有必要先对interrupt()进行了解。关于interrupt(),java的djk文档描述如下:http://docs.oracle.com/javase/7/docs/api/Interrupts this thread.Unless the current thread is interrupting itself, ...

2018-11-13 23:12:29 84

转载 多线程-线程等待 (join)

1. join()介绍join() 定义在Thread.java中。join() 的作用:让“主线程”等待“子线程”结束之后才能继续运行。这句话可能有点晦涩,我们还是通过例子去理解:// 主线程public class Father extends Thread { public void run() { Son s = new Son(); ...

2018-11-13 23:04:11 180

转载 多线程-线程休眠(sleep)

1. sleep()介绍sleep() 定义在Thread.java中。sleep() 的作用是让当前线程休眠,即当前线程会从“运行状态”进入到“休眠(阻塞)状态”。sleep()会指定休眠时间,线程休眠的时间会大于/等于该休眠时间;在线程重新被唤醒时,它会由“阻塞状态”变成“就绪状态”,从而等待cpu的调度执行。2. sleep()示例下面通过一个简单示例演示sleep()的...

2018-11-13 23:01:17 3225

转载 多线程-线程让步(yield)

1. yield()介绍yield()的作用是让步。它能让当前线程由“运行状态”进入到“就绪状态”,从而让其它具有相同优先级的等待线程获取执行权;但是,并不能保证在当前线程调用yield()之后,其它具有相同优先级的线程就一定能获得执行权;也有可能是当前线程又进入到“运行状态”继续运行!2. yield()示例下面,通过示例查看它的用法。 // YieldTest.jav...

2018-11-13 22:56:17 117

转载 多线程-线程等待与唤醒

线程等待/唤醒方法进行介绍。涉及到的内容包括:1. wait(), notify(), notifyAll()等方法介绍2. wait()和notify()3. wait(long timeout)和notify()4. wait() 和 notifyAll()5. 为什么notify(), wait()等函数定义在Object中,而不是Thread中wait(), notify(), ...

2018-11-06 23:27:49 373

转载 多线程-synchronized关键字

1. synchronized原理在java中,每一个对象有且仅有一个同步锁。这也意味着,同步锁是依赖于对象而存在。当我们调用某对象的synchronized方法时,就获取了该对象的同步锁。例如,synchronized(obj)就获取了“obj这个对象”的同步锁。不同线程对同步锁的访问是互斥的。也就是说,某时间点,对象的同步锁只能被一个线程获取到!通过同步锁,我们就能在多线程中,实现对“对象...

2018-11-06 23:21:20 84

翻译 多线程-线程两种实现方法(继承类、实现接口)

实现多线程的2种方式:继承Thread和 实现Runnable接口。Thread和Runnable简介Runnable是一个接口,该接口中只包含了一个run()方法。它的定义如下:public interface Runnable { public abstract void run();}Runnable的作用,实现多线程。我们可以定义一个类A实现Runna...

2018-11-06 22:51:28 732

原创 Kafka操作命令

启动zookeeper服务: bin\windows\zookeeper-server-start.bat  config\zookeeper.properties 启动kfaka服务: bin\windows\kafka-server-start.bat  config\server.properties停止kafkabin\windows\kafka-server-stop.bat...

2018-11-04 12:04:52 2398 2

原创 Kafka学习分享

hi all kafka学习简单分享 1、kafka内名词简介 什么是主题?什么是分区?Kafka的消息通过 主题 (Topic)进行分类,一个主题被分为多个分区(Partitions)。消息以追加的方式写入分区,然后按照先进先出的方式进行读取。主题的分区可以分布在不同服务器上,也就意味着主题是可以横跨多个服务器的。 生产者和消费者生产者:创建消息的,消...

2018-11-03 00:12:23 96

原创 邮件发送方法

public BaseResult sendEmail(String to,String Content) { try { /*** 1、创建Session ***/ Properties props = new Properties(); /* // 开启调试模式 ...

2018-10-24 16:58:14 417

原创 多线程(基础篇一) 线程五种状态

线程从创建到销毁死亡总共有五种状态:状态扭转图 1:新建状态(New):线程对象被创建后进入新建状态。例如: Thread thread = new Thread();2:就绪状态(Runnable):也被成为可运行状态,线程对象被创建后,其他线程调用了该对象的 start() 方法,从而来启动线程。处于就绪状态的线程,随时可能被 cp...

2018-10-17 22:58:24 135

原创 Mysql内置函数(字符串、日期、数子)

mysql操作函数数值操作ABS(N):返回绝对值CEIL(N):返回不小于参数的最小整数值CEILING(N):返回不小于参数的最小整数值CONV(N,FROM_BASE,TO_BASE):数字的进制转换EXP(N):返回e的n次方FLOOR(N) :返回不大于参数的最大整数值MOD(N,M) :返回余数POW(X,Y) POWER(X,Y) :返回X的Y次方RAND():随机返回一个浮点值...

2018-10-15 18:21:43 127

原创 WebSocket四种事件详解 入门篇(二)

  示例代码  在文章最下方,可以根据示例代码和讲解来理解整个WebSocket流程。代码用SpringBoot 和 maven搭建 服务端和客户端四种事件1、打开事件    此事件发生在端点上建立新连接时并且在任何其他时间发生之前。    方法级注解:@OnOpen                        使用注解的的方法是没有任何返回值的公有方法,这些方法...

2018-09-18 23:19:59 4216

原创 WebSocket 入门篇(一)

WebSocket 基础知识1、WebSocket 实例化      JavaScript中实例化            var ws = new WebSocket(url,protocols);      实例化时可以接受两个变量      1)、指向目标url,也就是服务请求的地址,url有两种方案:               一、WS   非加密流量  例如:"ws:...

2018-09-18 23:14:12 172

原创 WebSocket消息类型 入门篇(三)

WebSocket实现通讯基础(消息类型,消息转码/解码基础)WebSocket协议支持三种本地消息类型1、文本消息   2、二进制消息   3、Ping消息 和 Pong消息  无论是注解式端点还是变成是端点,实现其发送消息的API都是相同的    RemoteEndPoint接口和他的子类RemoteEndPoint.Basic(同步发送) 和  RemoteEndpoin...

2018-09-18 22:41:26 3655

原创 Mysql 锁

MySQL支持多种存储引擎,不同的存储引擎对应着不同的锁机制,用来适应不同的业务需求。MySQL有三种锁:1、表级锁:开销小、加锁快;不会出现死锁;锁定粒度大,发生锁冲突概率最高,并发度低。(MyISAM引擎,MEMORY引擎)            表级锁适合已查询为主,只有少量按索引更新的数据的应用。2、行级锁:开销大、加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并...

2018-09-18 22:01:53 95

原创 Mysql 运维优化必须知道的几个命令

针对SQL语句维护,运行的命令以及命令详解#显示当前session中所有的统计参数(对于所有存储引擎的表操作都会有累计),常关心的几个参数show status like 'Com_%';Com_select:执行select次数,一次查询只累加1Com_insert:执行insert次数,对于批量插入,只累计1Com_update:执行update次数,执行update次数Com_delete:...

2018-07-12 19:34:13 956 2

原创 Socket 简单交互案例

简单的Socket交互案例分为三步:第一步:实现客户端,向服务端发送信息第二步:实现客户端,接收客户端信息,并向客户端回复第三步:循环监听等待客户端连接实现案例(案例内每一步有注解,这边就不详细解释了)第一步package com.socket;import java.io.*;import java.net.Socket;/** * 客户端 */public class clin...

2018-07-11 21:41:37 490

翻译 java8 自定义收集器

java8自定义收集器package com.java8.CustomCollector;import java.util.*;import java.util.function.*;import java.util.stream.Collector;public class PrimeNumbersCollector implements Collector<Integer,M...

2018-07-11 21:12:00 557

翻译 正则表达式(胡乱记)

本文从菜鸟教程Copy,脑容量不够,留为学习笔记,以备后时之需。正则表达式语法正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。例如:runoo+b,可以匹配 runoob、runooob、runoooooob 等,+ 号代表前面的字符必须至少出现一次(1次或多...

2018-07-11 21:02:09 185

原创 mysql 慢查询日志开启与mysqldumpslow分析

一、Mysql慢查询日志开启 慢查询日志常用语句#查看慢查询日志输出方式show variables like '%output%'#查看慢查询文件输出位置show variables like '%slow_query_log_file%'#查看慢查询是否开启,及文件输出位置show variables like '%slow_query_log%'#查看慢查...

2018-07-11 20:52:04 945

翻译 java8 Collectors收集器的简单方法

案例变量:menu为一个菜单列表(list),内含有name(名字)、calories(热量)、type(类型)属性。1)    toList()                                List<T>                    将流中所有的项目收集到一个List使用示例:List<Dish> dishes = menuStream.col...

2018-07-03 21:44:59 441

原创 Java的两个类 InetAddress类 和 URL 类

Java的两个类 InetAddress类  和  URL  类1、InetAddress类 IntAddress 类用于标识网络上的硬件资源,标识互联网协议(IP)地址。InetAddress类的使用public static void main(String[] arg) throws UnknownHostException { //InetAddress InetAddre...

2018-06-29 16:31:06 207

原创 Sock学习1 (网络基本知识、Sock简介)

网络基本知识两台计算机之间的通信必须满足一下一些必然的条件1)两台主机需要一个唯一的标识,标识他们所在的位置(ip地址)2)他们需要有共同的源(协议)3)每台主机需要相应的端口号,每台主机有不同的应用程序通讯,每个通讯就是通过端口号来区分的。端口号的范围为0~65535,但是其中0~1023 被系统保留。TCP/IP协议TCP/IP协议 是目前世界上应用最广泛的协议。是以TCP/IP为基础的不同层...

2018-06-29 00:42:14 340

原创 java8 数值流 装箱和拆箱讲解

1、原始类型流特化首先引入两个概念原始类型:int、double、byte、char引用类型:Integer、Byte、Object、List在Java中,①将原始类型转换为对应的引用类型的机制,这个机制叫做装箱。②将引用类型转换为对应的原始类型,叫做拆箱。但是在java中装箱和拆箱是自动完成的,例如: List<Integer> list = new A...

2018-06-28 09:19:21 1182

原创 在线文档

http://shouce.jb51.net/

2018-06-26 17:10:26 192

翻译 java8 stream流操作的flatMap(流的扁平化)

flatMap的用法和含义住要通过一个案例来讲解,案例:对给定单词列表 ["Hello","World"],你想返回列表["H","e","l","o","W","r","d"]第一种方式 String[] words = new String[]{"Hello","World&quot

2018-06-26 09:45:37 46781 15

翻译 Java8 Stream简单的应用

java8 Stream常见的操作主要有以下几个方面1)过滤筛选:filter2)排序:sort3)去重:distinct4)映射:map5)查找匹配:anyMatch、allMatch、noneMatch、findFirst、findAny6)归约:reduce几种类型的实际应用案例案例:执行交易的交易员。你的经理让你为八个查询找到答案1)找出2011年发生的所有交易,并且按照交易额排序(从低到...

2018-06-25 13:01:20 224

原创 java8 lambda学习分享

lambda学习经验分享(由邮件中copy,可以跟着思路,但不必揪其中类名不懂)lambda的组成:表达式分为三个部分组成    1)参数列表   2)箭头 ->  3) lambda主体语法规则(parameters) ->  expression  (parameters)    -> { statements;}lambda学习之前你需要了解的理论知识(简单概括):1)行为...

2018-06-14 00:04:31 586

原创 MySql 操作表结构

mysql 一些简单对表操作的语句一、创建表 和 创建临时表创建表CREATE  TABLE  TABLE_NAME( COLUMN_ONE int, COLUMN_TWO varchar(20));创建临时表CREATE  TEMPORARY  TABLE TABLE_NAME( COLUMN_ONE int, COLUMN_TWO varchar(20));二、修改表结构①、添加列ALTER ...

2018-02-09 21:36:12 218

翻译 Spring依赖注入

我们经常见到的控制翻转(Inversion of Control-IOC) 和依赖注入(dependency injection-DI),在Spring 环境下等同的概念,控制翻转是通过依赖注入实现的。所谓依赖注入指的是容器负责创建对象和维护对象间的依赖关系,而不是通过对象本身负责自己的创建和解决自己的依赖。 Spring IOC容器(ApplicationContext)负责创建Bean ,并通

2018-01-18 18:48:56 151

原创 IDEA 快速搭建Gradle项目

IDEA快速构建Gradle项目第一步:安装Gradle⑴下载Gradle ,解压到指定文件夹例如C:\WrokInstall\gradle-2.9(2)配置Gradle环境这边提示:Gradle默认下载到的本地存储仓库是 Gradle 解压文件夹下的 lib 文件夹下 查看gradle是否安装配置成功,命令行操作界面 Gradle -v 命令查看Gradle安装是

2018-01-10 22:47:11 6523

原创 Gson实用案例

Gson是google一个谷歌提供用来解析Json。Gson提供了两种方法:⑴toJson  将对象转化为  Json 对象 ⑵fromJson 实现从 Json 对象转化为实体类对象额外提供Json对象和XML对象的转化案例,这个不属于google提供的。/*实体类*/package com.mark;public class TestPerson { pub

2018-01-10 22:23:53 185

原创 VARCHAR 和 TEXT 长度问题

关于varchar、text字段类型的长度问题探究结果VARCHAR :varchar在mysql中满足最大行限制,也就是 65535(16k)字节,在mysql中使用 uft-8(mysql中的 utf-8 和我们正常的编码utf-8不同)字符集一个字符占用三个字节,①使用 utf-8 字符编码集  varchar 最大长度是   (65535-1)/3=21844  个字符

2018-01-06 22:18:15 9283 3

原创 索引的创建

索引的创建创建主键索引PRIMARY KEY:ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` ) 创建唯一索引UNIQUE :ALTER TABLE `table_name` ADD UNIQUE ( `column` ) 创建普通索引INDEX:ALTER TABLE `table_name` ADD

2018-01-01 23:42:35 170

转载 索引的原理

下面是一位牛人写得关于数据库索引的精品之作,因为很好,不敢修饰,转载至此与博友共享。原文链接:MySQL索引背后的数据结构及算法原理本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于B

2018-01-01 22:30:04 164

原创 MYSql 存储过程自定义跳出

MYSql存储过程自定义跳出 我们有时会在存储过程中进行一些判断,当判断条件达成时候我们有时会直接跳出存储过程。 但是存储过程不支持return直接返回的操作, 所以我们只能采用另一种方法,'leave',定义返回标记,当满足条件再离开存储过程。 我们定义直接跳出存储过程,这种用法和 Loop 循环的用法很类似,定义跳出判定。create procedure

2017-12-28 11:31:33 3662 2

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