自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(91)
  • 资源 (1)
  • 收藏
  • 关注

转载 运算符

.右移运算符>>(有符号)用来将一个数的各二进制位全部右移若干位.例如:a = a>>2,使a的各二进制位右移两位,移到右端的低位被舍弃,最高位则移入原来高位的值. (正数右移是正数,负数右移是负数)如:a = 00110111,则a>>2=00001101,b=11010011,则b>>2 = 11110100 右移一位相当于除2 取商,而且...

2018-08-31 19:18:32 332

原创 从内存溢出看Java 环境中的内存结构

作为有个java程序员,我想大家对下面出现的这几个场景并不陌生,倍感亲切,深恶痛绝,抓心挠肝,一定会回过头来问为什么为什么为什么会这样,嘿嘿,让我们看一下我们日常在开发过程中接触内存溢出的异常:  Exception in thread "main" [Full GCjava.lang.OutOfMemoryError: Java heap space at java.util.A...

2018-08-31 17:45:08 163

转载 Java GC如何判断对象是否为垃圾

查找内存中不再使用的对象 引用计数法  引用计数法就是如果一个对象没有被任何引用指向,则可视之为垃圾。这种方法的缺点就是不能检测到环的存在。  2.根搜索算法  根搜索算法的基本思路就是通过一系列名为”GC Roots”的对象作为起始点,从这些节点开始向下搜索,搜索所走过的路径称为引用链(Reference Chain),当一个对象到GC Roots没有任何引用链相...

2018-08-31 14:44:07 198

转载 JVM如何判断一个Java对象是否可以回收

总所周知,Java将程序员从内存管理中解放出来,使得我们在编写代码的时候不用手动的分配和释放内存,内存管理的任务由JVM承担起来。本文就将讲解JVM在回收对象之前,如何判断一个对象是否应该被回收。在此之前,我们先来复习一个和Java对象回收有关的知识,那便是finalize方法,这是一个在Object类中定义的方法,如果我们重写了finalize方法,那么在对象被回收之前将会调用finaliz...

2018-08-31 14:19:43 3627

转载 内存溢出的解决思路

内存溢出是指应用系统中存在无法回收的内存或使用的内存过多,最终使得程序运行要用到的内存大于虚拟机能提供的最大内存。   引起内存溢出的原因有很多种,常见的有以下几种:  1.内存中加载的数据量过于庞大,如一次从数据库取出过多数据;  2.集合类中有对对象的引用,使用完后未清空,使得JVM不能回收;  3.代码中存在死循环或循环产生过多重复的对象实体;  4.使用的第三方软件中的BUG;...

2018-08-31 12:06:24 522

转载 不得不知道的Java内存溢出之在经常调用的方法内不要new大对象

相信只要你看过Java的书,你一定会看到类似这样的话:千万不要假想内在处理器已经帮你把内存处理好了去做事。看过,真的就只是看过。和C还有C++相比,Java在大部分时间都可以省去了对内存的手动释放操作,不得不说,这个真的挺好使的,因为当初看C++的时候,用个数组,需要释放内在,真心闹不懂啊,这也是为什么当初没有真正走进编程世界的原因吧。但出来...

2018-08-31 11:48:50 721

转载 JAVA中因为书写不规范,容易产生内存溢出的注意事项

对于有语言编译基础的同志,要注意了.如果你是刚学java的.那么下面你必须要看.当然本人也是一样.也会出现下面某些错误.所以本人总结了一些.当然都是个人看法.不代表就是对的.也许有些是错的.同时也希望熟悉JAVA的高高手指出.或者有更好的看法或建议.都可以和我沟通.大家一齐来学习.同时这也是对自己的一种提高.在项目应用中.往往都是面临复杂的业务.而且用户量增加.内存使用自然就会增大.还...

2018-08-31 11:39:04 503

转载 现在有三个线程T1,T2,T3,怎么保证线程按照T1,T2,T3的顺序顺序执行。

 解决思路是:使用join();来保证上一个线程执行完后,再执行现在的线程执行。thread.Join把指定的线程加入到当前线程,可以将两个交替执行的线程合并为顺序执行的线程。比如在线程B中调用了线程A的Join()方法,直到线程A执行完毕后,才会继续执行线程B。t.join();      //调用join方法,等待线程t执行完毕t.join(1000);  //等待 t 线程,等...

2018-08-31 09:29:26 1901

转载 jvm的优化设置及设置的意义的总结

一、概述JVM的性能优化基本上是面试过程中经常问到的问题,今天在这里做的总结。垃圾回收机制只负责回收堆内存中的对象,不会回收任何物理资源(如数据库连接,网络IO等资源)虽然java不需要开发人员显示的分配和回收内存,这对开发人员确实降低了不少编程难度,但也可能带来一些副作用:1. 有可能不知不觉浪费了很多内存2. JVM花费过多时间来进行内存回收3. 内存泄露因此,作...

2018-08-31 00:13:04 324

转载 Linux中shell脚本的编写

1.显示当前目录1 .$0 当前Shell程序的文件名2.dirname $0,获取当前Shell程序的路径3.cd `dirname $0`,进入当前Shell程序的目录Linux下获取当前的目录,需执行以下命令:$(cd `dirname $0`;pwd)其中,dirname $0,取得当前执行的脚本文件的父目录cd `dirname $0`,进入这个目录(切...

2018-08-30 18:38:05 114

原创 高性能MySql---查询性能优化

 查询优化,索引优化、库表结构优化需要齐头并进,一个不落。为什么查询速度会慢?慢查询基础:优化数据访问查询性能低下最基本的原因是访问的数据太多。某些查询可能不可避免的要筛选大量数据,这并不常见。大部分性能低下的查询可以通过减少访问的数据量的方式进行优化。对于低效的查询,我们发现通过下面两个步骤来分析总是很有效。1.确认应用程序是否在检索大量超过需要的数据。这通常意味着访问了太多行,...

2018-08-29 21:54:04 170

转载 MySql常用函数大全讲解

 MySQL数据库中提供了很丰富的函数。MySQL函数包括数学函数、字符串函数、日期和时间函数、条件判断函数、系统信息函数、加密函数、格式化函数等。通过这些函数,可以简化用户的操作。例如,字符串连接函数可以很方便的将多个字符串连接在一起。在这一讲中将讲解的内容包括:数学函数字符串函数日期和时间函数条件判断函数系统信息函数加密函数格式化函数       MySQL函数是MySQL数据...

2018-08-29 19:54:43 151

转载 Java阻塞队列详解

更新日志日期 更新内容 备注 2017-11-03 添加转载标志 持续更新 阻塞队列阻塞队列是一种队列,一种可以在多线程环境下使用,并且支持阻塞等待的队列。也就是说,阻塞队列和一般的队列的区别就在于:多线程环境支持,多个线程可以安全的访问队列 支持生产和消费等待,多个线程之间互相配合,当队列为空的时候,消费线程会阻塞等待队列不为空;当队列满了的时候,生...

2018-08-27 23:17:26 783

转载 DelayQueue原理分析

DelayQueue基本简介DelayQueue是一个无界阻塞队列,只有在延迟期满时才能从中提取元素。该队列的头部是延迟期满后保存时间最长的Delayed 元素。DelayQueue是一个用来延时处理的队列,所谓延时处理就是说可以为队列中元素设定一个过期时间,相关的操作受到这个设定时间的控制。DelayQueue使用场景a) 关闭空闲连接。服务器中,有很多客户端的连接,空闲一段时间...

2018-08-27 20:19:23 578

转载 学会输出

我们每个人的生活,基本上都是信息的投入产出组成的,你看视频、刷新闻,读公众号,都是一种输入,当你开始输出的时候你的投入才会通过大脑的si思考和逻辑,内化成对你而言有价值的东西。因此,不论是打游戏成瘾,还是看电视剧看到疯魔,在我眼里,都是一种失控的输入,是一种零输出,是一种对生活完全的透支。最可怕的地方在于,输出的能力是需要培养和训练的。就好比我们高中的时候,练作文,你光看范文半点用没有,必...

2018-08-27 20:07:08 220

转载 Spring 自定义注解,配置简单日志注解

java在jdk1.5中引入了注解,spring框架也正好把java注解发挥得淋漓尽致。下面会讲解Spring中自定义注解的简单流程,其中会涉及到spring框架中的AOP(面向切面编程)相关概念。不清楚java注解的,可以先了解java自定义注解:Java自定义注解一、创建自定义注解requestUrl 为我们自定义的一个参数package com.sam.annotati...

2018-08-24 16:00:55 136

转载 用自定义注解做点什么

请看前言你不一定听过注解,但你一定对@Override不陌生。当我们重写父类方法的时候我们就看到了@Override。我们知道它表示父类方法被子类重写了。现在告诉你,@Override就是一个注解。也许你会疑惑注解是什么?注解(annotation)是JDK5之后引进的新特性,是一种特殊的注释,之所以说它特殊是因为不同于普通注释(comment)能存在于源码,而且还能存在编译期跟...

2018-08-24 15:51:06 1521 1

转载 自定义注解(spring)--包含使用AOP创建日志系统

终于有时间可以在这里写一篇博文了,今天写一下我在项目中用到的自定义注解,就是在每次操作项目的时候,想把它的操作加在我的数据库中,简单地说就是日志管理,这些东西都写完之后,我就问我自己,问什么要自定义注解写,而不是什么模式(代理模式,装饰器模式…),原始代码等等,一下子楞了,于是学习了这个东西,今天就在这里总结一下。。。 编程思想:垂直化编程,就是A—B—C—D…等执行下去,一个逻辑一个逻辑完了再...

2018-08-24 15:38:44 138

转载 instanceof关键字的使用

可以用instanceof判断一个类是否实现了某个接口,也可以用它来判断一个实例对象是否属于一个类。instanceiof的语法格式如下:对象 instanceof 类(或者接口),它的返回值为boolean型。...

2018-08-24 15:11:33 213

转载 SpringMvc中的HandlerMethodArgumentResolver的作用

SpringMvc中的HandlerAdapter会对Controller层方法的参数执行 HandlerMethodArgumentResolver(对参数的解析器)中的方法.首先HandlerMethodArgumentResolver接口主要有两个方法,supportsParameter和resolveArgument。supportsParameter方法boolean su...

2018-08-24 15:03:38 1307

转载 推荐几个好用的maven仓库镜像站

以下4个镜像站于2016年11月1日测试正常。1、阿里云的镜像站(首推,新站,速度暴快)顺便给阿里云栖开发者社区做个广告,点这里来云栖社区看看吧。<mirror> <id>nexus-aliyun</id> <name>Nexus aliyun</name> <url>http://maven...

2018-08-24 11:47:41 822

转载 MySQL创建用户以及授权

grant all on *.* to 'user1' identified by 'passwd'; #创建user1赋予all所有权限。 grant SELECT,UPDATE,INSERT on db1.* to 'user2'@'192.168.133.1' identified by 'passwd'; #创建user2并指定登陆IP为192.168.133.1,然后赋予se...

2018-08-23 20:26:52 133

转载 分库分表的面试题3

1、面试题 如何设计可以动态扩容缩容的分库分表方案? 2、面试官心里分析 (1)选择一个数据库中间件,调研、学习、测试(2)设计你的分库分表的一个方案,你要分成多少个库,每个库分成多少个表,3个库每个库4个表(3)基于选择好的数据库中间件,以及在测试环境建立好的分库分表的环境,然后测试一下能否正常进行分库分表的读写(4)完成单库单表到分库分表的迁移,双写方案...

2018-08-23 20:18:26 4331 1

转载 MyCAT简易入门

MyCAT是mysql中间件,前身是阿里大名鼎鼎的Cobar,Cobar在开源了一段时间后,不了了之。于是MyCAT扛起了这面大旗,在大数据时代,其重要性愈发彰显。这篇文章主要是MyCAT的入门部署。一、安装java因Mycat是用java开发的,所以需要在实验环境下安装java,官方建议jdk1.7及以上版本Java Oracle官方下载地址为:http://www.oracle...

2018-08-23 20:02:33 112

转载 分区表的工作原理

适用场景1、表非常大,无法全部存在内存,或者只在表的最后有热点数据,其他都是历史数据。2、分区表的数据更易维护,可以对独立的分区进行独立的操作。3、分区表的数据可以分布在不同的机器上,从而高效适用资源。4、可以使用分区表来避免某些特殊的瓶颈5、可以备份和恢复独立的分区限制1、一个表最多只能有1024个分区2、5.1版本中,分区表表达式必须是整数,5.5可以使用列分区3、分区表字段如果...

2018-08-23 19:35:59 542

转载 千万数据的分库分表(一)

单表数据量达到1000W以后,就要拆了.背景情况用户表达到了 几千万级别,在做很多操作都比较吃力,.所以,考虑对其进行分表.常用的切分方案数据的切分(Sharding)根据其切分规则的类型,可以分为两种切分模式。一种是按照不同的表(或者Schema)来切分到不同的数据库(主机)之上,这种切可以称之为数据的垂直(纵向)切分;另外一种则是根据表中的数据的逻辑关系,将同一个表中的数据按照...

2018-08-23 19:08:23 524

转载 Mysql中的分表分库需要考虑的问题

1.数据库的切分引申的 数据源管理思考   可以理解为数据库的路由问题。即进行数据库的操作的时候,选择哪个数据库。    主要有两种思路:A. 客户端模式,在每个应用程序模块中配置管理自己需要的一个(或者多个)数据源,直接访问各个数据库,在模块内完成数据的整合; B. 通过中间代理层来统一管理所有的数据源,后端数据库集群对前端应用程序透明;可能 90%以上的人在面对上面这两种解决...

2018-08-23 18:52:43 990

转载 RocketMQ(四)——消息重试(producer重试和Consumer的重试)

一、 Producer端重试 二、 Consumer端重试 1. Exception 2. Timeout 总结 对于MQ,可能存在各种异常情况,导致消息无法最终被Consumer消费掉,因此就有了消息失败重试机制。很显示,消息重试分为2种:Producer端重试和Consumer端重试。一、 Producer端重试生产者端的消息失败,也就是Producer往MQ上发消...

2018-08-22 10:02:26 2721

转载 分库后如何高效的做分页

现在连接6台mysql数据库,路由分库算法是根据id的hash值%6,根据值不同分别存入6台数据库。现在不知道如何做分页查询列表?先决原则:数据分库时尽量选择索引字段,最好此字段还是唯一的。数据分库时建表时结合业务,选择where后查询比较频繁的字段。 解决方案泛泛之谈:1、直接使用跨库的多表联合查询。不建议。2、向6台数据库server均发送一个查询请求,然后对所...

2018-08-21 22:45:43 1312

转载 如何对分库后的数据进行分页查询?

分库分表的排序1. 对于单库,冗余一个汇总所有数据表,用于全部数据的排序,但是当数据量大,汇总表将会成为瓶颈。这不是一个很好的方案2. 无论单库还是多个分库,都由程序读取需要数据并作排序。   排序的几种方式:    大都是按时间排序的,如果在客户端可以直接判断在哪个分表最好,可以直接读取指定分表并作排序    例如:    汇总表td_test_all;而分表是按compan...

2018-08-21 22:44:16 1401

转载 Spring声明式事务原理分析

 引言  要想对某个技术学习的比较好,就需要我们对其原理和源码有一定的了解,如果只停留在会用的层面是很难理解到这门技术的精髓所在的。最近小编对spring的声明式事务学习了一下,下面就总结一下。  声明式事务处理概念理解  声明式:程序员告诉spring容器生么样的目标方法采用什么样的事务策略  事务处理:spring容器所做的事情  在这种框架下,程序员只需要做好CRUD操作...

2018-08-21 20:15:21 369

转载 Spring的四种事务管理(一种编程式事务+三种声明事务)

一、Spring事务的介绍二、编程式事务xml的配置注入后直接在service层调用模板的方法使用三、基于AOP方式的声明式事务管理使用AOP声明式事务是时service层必须注入代理类四、基于AspectJ的声明式事务基于AspectJ的xml配置传播行为的配置五、基于注解方式的声明式事务管理在需要使用事务的...

2018-08-21 19:53:26 252

转载 Java设计模式之模板(template)方法模式

一,概述这是写的第二遍Java设计模式的解析了,不过与其说是解析,不如说是自己写的一个Demo,一篇个人笔记。二,对模板方法模式的一些个人理解模板方法模式是结构最简单的行为型模式,有时,我们完成一件事情时次序是固定的,只有有些步骤确实变化的。比如,当我们去银行办业务时,就是a排队取号 b办具体业务(取钱) c对工作人员评价 三个步骤,而第二个步骤是不固定的。这种情况下,使用模板方法设计...

2018-08-21 19:10:44 229

转载 Java模板模式

在模板模式中,抽象类公开了定义的方法/模板来执行它的方法。 它的子类可以根据需要重写方法实现,但调用的方式与抽象类定义的方式相同。 此模式属于行为模式类别。实现实例在这个实现实例中,将创建一个Game抽象类,它定义了一个模板方法设置为final的操作,因此它不能被覆盖。 Cricket和 Football 是扩展Game并覆盖它的方法的具体类。TemplatePatternDemo是一...

2018-08-21 19:03:44 1003

原创 实践中的问题积累

今天在Linux环境按照kafka的时候,启动成功了,一直处于启动状态,没法继续下面的操作,就把Ctrl+C掉了。再次启动的时候,就报端口占用的问题了。原因:因为这种方式为窗口运行方法,此种方式一旦窗口关闭或者执行了CTR+C,那么kafka进程就被你kill掉了,kafka服务端就被你关闭了。但是kafka很多关联的进程没有关掉,属于非正常关闭,所有才有后续的端口号的占用的问题。1.一般情...

2018-08-21 12:10:35 249

转载 java设计模式-----5、原型模式

 原型(Prototype)模式是一种对象创建型模式,他采取复制原型对象的方法来创建对象的实例。使用原型模式创建的实例,具有与原型一样的数据。  原型模式的特点:  1、由原型对象自身创建目标对象。也就是说,对象创建这一动作发自原型对象本身。  2、目标对象是原型对象的一个克隆。也就是说,通过原型模式创建的对象,不仅仅与原型对象具有相同的结构,还与原型对象具有相同的值。  3、根据...

2018-08-20 20:32:41 106

转载 深入理解JAVA序列化

如果你只知道实现 Serializable 接口的对象,可以序列化为本地文件。那你最好再阅读该篇文章,文章对序列化进行了更深一步的讨论,用实际的例子代码讲述了序列化的高级认识,包括父类序列化的问题、静态变量问题、transient 关键字的影响、序列化 ID 问题。在笔者实际开发过程中,就多次遇到序列化的问题,在该文章中也会与读者分享。引言  将Java对象序列化为二进制文件的 Java ...

2018-08-20 20:10:37 99

转载 Java序列化之排除被序列化字段(transient/静态变量)

我们都知道一个对象只要实现了Serilizable接口,这个对象就可以被序列化,java的这种序列化模式为开发者提供了很多便利,我们可以不必关系具体序列化的过程,只要这个类实现了Serilizable接口,这个类的所有属性和方法都会自动序列化。      然而在实际开发过程中,我们常常会遇到这样的问题,这个类的有些属性需要序列化,而其他属性不需要被序列化,打个比方,如果一个用户有一些敏感信息(...

2018-08-20 19:30:01 7443

转载 Java IO概要

 为了方便理解与阐述,先引入两张图:       a、Java IO中常用的类。  在整个Java.io包中最重要的就是5个类和一个接口。5个类指的是File、OutputStream、InputStream、Writer、Reader;一个接口指的是Serializable.掌握了这些IO的核心操作那么对于Java中的IO体系也就有了一个初步的认识了。 主要的类如下:...

2018-08-20 09:24:07 91

转载 MySQL 覆盖索引

  本文主要概述mysql的覆盖索引,以及几种常见的优化场景内容概要 聚集索引和辅助索引 什么是覆盖索引 几种优化场景   总体建议聚集索引和辅助索引聚集索引(主键索引)—innodb存储引擎是索引组织表,即表中的数据按照主键顺序存放。而聚集索引就是按照每张表的主键构造一颗B+树,同时叶子节点中存放的即为整张表的记录数据—聚集索引的叶子节点称为数据页,数据页,数据页!重要...

2018-08-18 20:50:24 350

rocketmq-console

想要设置为免费的,谁知道不能设置,注意将包用压缩工具打开,修改BOOT-INF中的application.properties中的rocketmq.config.namesrvAddr为自己的rocketMQ的地址。

2018-08-03

空空如也

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

TA关注的人

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