自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 java建造者模式--给一个你一看就懂的建造者模式

  在开始写这个建造者模式的文章前,我也确实看了挺多次其他介绍这个模式的文章。感觉看了很多次才有一点对建造者模式明白透彻的感觉。细心想来,可能是接口的理解不好,平时工作比较少用到过建造者模式,所以理解的比较慢。所以看通了建造者模式,就可以加深自己对接口的理解。  好了,接下来让我们进入正题,建造者模式呢,很多其他介绍这个文章的内容中都提到了4个角色。什么builder,director的一时让...

2018-05-06 18:55:59 33215 62

原创 分布式事务解决方案总结

分布式事务在分布式架构的项目中是不可避免的一个问题。这个知识点在面试中也是经常会被问到。下面是我的学习总结。没有很详细,但是可以作为总结性的笔记。典型方案关于分布式事务,工程领域讨论的是强一致性和最终一致性的解决方案。典型方案包括:两段式提交(2PC)方案eBay事件队列方案TCC补偿模式缓存数据最终一致性理论支撑分布式事务的目的是保障分库数据一致性,而跨库事务会遇到各种不可的问题。所以需要分布式事务解决方案来保证数据一致性。而著名的CAP理论决定了,在解决一致性问题时,其实和系统可用性,分

2021-07-06 11:04:34 166

原创 真正学透AQS

在java的并发中,我们会接触到很多工具类,比如说ReentranLock,CountDownLatch,Semaphore,Condition。而这些工具类都是同门师兄弟来的,它们共同的师父就是我们这次文章讲的AQS,全名:AbstractQueuedSynchronizer。这个AQS几乎是java里面所有同步器和锁实现所依赖的框架。在面试中,也会有不少面试官会问到这个AQS。假如说你可以很明白的讲解出来AQS,那可是加分项。在学习一个新框架或者新技术的时候,我们其实可以围绕3个点来去了解。

2021-05-14 10:45:31 589

原创 记一次内存溢出的经历

内存溢出对于我们做开发的人来说肯定是听说过的,但是对于java开发程序员想要遇到一次真正的内存溢出还挺不容易的。因为java自己会有内存回收机制,所以我们一般都是分配好内存后只管使用,不管回收,不用担心内存的问题。而这次居然让我碰上了一次。可得好好记录一下。 首先问题的表象是这样的。项目中有一个服务是提供了前端报表页面的数据查询统计功能,而这个服务后来发现一直在启动...

2019-12-13 17:59:39 497

原创 java内存分配看书笔记分享

作为一个java开发人员,懂不懂java内存分配成为你是否为高级java工程师的标准。为什么这么说呢?因为java虚拟机(也就是jvm)有着自己的自动内存管理机制,在我们写代码的过程中不会去管理内存的分配和回收,所以如果想进行性能调优或者内存问题的排查就必须了解内存的分配了,而内存的回收要和垃圾收集器一起学。自己是看了《深入理解Java虚拟机》周志明 著 第2版 来了解的。这本书真的不负盛名。...

2019-12-08 17:28:25 289

原创 redis数据结构

最近在项目中用到redis的地方不少,所以决定对redis做一个全面的学习。来记录自己的redis知识点。所以可能一直会更新文章内容。 Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API(官方介绍)。redis是现在主流的非关系型数据库,而redis的集群redis cluster也是主...

2019-11-16 00:19:45 228

原创 java8的新特性-新的日期API-LocalDate的用法笔记

在java8的新特性中,新的日期API是挺容易被忽略的一个,因为原来的Date类用的太久了,很多人都懒得改习惯了。而且很多项目中对应数据库的实体类也是Date。所以要用localDate的话,真的不是一件想用就用的事情。但是新的日期API在我了解后发现有很多官方的方法挺有用的,而且还是线程安全的。嗯,看来推出来还是比较有诚意的。先学习学习。大不了为了用这些方法,先把Date转换为localDate...

2019-08-16 20:15:51 505

原创 程序员职业规划之换工作篇

  前段时间博客停止了一段时间,因为这段时间自己刚好在找工作,入职新公司后又特别忙。难得周末有空闲时间在家,刚好写一篇关于换工作的感想。希望对于年后将要换工作的同学,会有一点帮助。  在我们IT行业,跳槽,也就是换工作几乎是每个人都会经历的。有些人跳槽的频率很高,几乎一年一跳,也有人几年一换。在这里我们要思考什么时候要换工作,什么样的原因会让你换工作。  换工作的大部分原因有那么几个:工资...

2019-02-02 10:40:03 1262 1

原创 使用WdatePicker插件如何设定2个时间在都在同一天

最近因为数据库的日志查询要做成按天分表来查询,所以前端需要对日志的查询时间范围限制在同一天内,而前端用来设置时间的是WdatePicker插件。比如下面的2个时间要设置为同一天,百度了一下,发现了一篇文章,但是写的模糊,没有解决问题。后来看了几篇其他关于WdatePicker插件的设定的文章,终于自己搞定了这个功能。现在把代码贴出来,方便大家使用,也给博客增加点人气,虽然是前端的知识,哈哈哈。...

2018-10-29 18:57:42 1180 1

原创 java外观模式--程序员都明白的模式

   好了。上一篇我们讲完了代理模式,这篇文章,我们来认识一下外观模式。外观模式其实很简单,因为这个模式我们大多数程序员都会经常用到,只是我们不知道这就叫外观模式。比如说,领导让你完成一个excel表格导入日志数据的功能。那你需要写一个读取excel表格数据的工具类。然后再写一个从读取到的数据筛选出符合格式的日志数据的方法,然后再写一个日志入库的方法。这几个方法都是不同的作用,只为了完成导入的功能...

2018-07-27 10:26:39 488

原创 java代理模式--和装饰器模式有点像的模式

   大家好,上一篇博客讲到了装饰器模式,而这一篇,我们要讲到代理模式。这篇代理模式酝酿了好久。为什么呢?因为我在写这些模式系列的博客中,都会先阅读网上的介绍这些模式的博客,看看别人是怎么写的,有什么问题别人是还没有解释清楚的,有什么我是可以补充并且增加的,或者换一种介绍的方式。从而写出具有自己特色的,有价值的博客。    有一些代理模式的文章举的例子很像装饰器模式,所以很多人会在评论下面留言...

2018-07-24 16:51:30 986 1

原创 java装饰器模式--一个厨师也懂的模式,你懂了吗?

  这篇博客我们来继续讲结构型模式,上一篇的适配器模式,如果读者有看过的话,应该会知道结构型模式关键还是在于类的继承,接口的实现。互相组合来实现我们想要的代码结构。那这一次的装饰模式该从何讲起呢?...

2018-06-10 19:53:49 1722

原创 java适配器模式--可能是你经常用的模式

  在本博客之前的设计模式中,已经把创建型模式的讲完了。这篇文章,我们来开始接触结构型模式,结构型模式有7种之多,不过博主我会陪你一个一个来探讨,逐个击破。来吧,我们先来看看适配者模式。...

2018-06-05 15:57:07 659

原创 linux的crontab定时配置全过程

今天因为业务需求,需要在服务器上配置定时任务,所以使用到了linux 的crontab。特此记录,分享一下自己的过程。

2018-05-30 21:59:40 20096 2

原创 java原型模式--来聊聊代码里面的克隆

上一篇设计模式介绍的是建造者模式,这次我们就来讲解一下最后一个创建型模式-原型模式。 原型模式其实主要就是理解2个概念。一个是浅复制,一个是深复制。这里的复制就是...

2018-05-20 15:32:21 677

原创 JAVA比较2个Timestamp类型的时间大小-由此引发的思考

  今天忽然要对2个Timestamp变量的类型进行比较。没怎么用过,百度发现居然很多都是转换类型的。后面发现Timestamp自己都有方法进行比较。但是百度一堆都是那些要转换类型的。我就想简单的知道2个Timestamp的时间哪个早哪个晚嘛。  来吧。public class MyTest { public static void main(String[] args) throws ...

2018-05-19 18:59:07 47715 1

原创 Abnormal build process termination--解决IDEA启动web项目报错

报错的原因如下:Error:Abnormal build process termination: "C:\Program Files\Java\jdk1.8.0_121\bin\java" -Xmx700m -Djava.awt.headless=true -Djava.endorsed.dirs=\"\" -Djdt.compiler.useSingleThread=true -Dpreloa...

2018-04-27 13:51:00 49403 22

原创 java单例模式

  好了,上一篇我们把工厂模式都讲了一遍,我们这篇就讲到单例模式。单例模式,这里的单例就是说的单个对象。在这篇文章中,那我们先来看看单例模式是什么吧。先写一个简单的单例模式。  public class SingleCar { //私有化构造函数,不让外部类调用 private SingleCar(){ } //定义私有的静态对象变量并赋值为null pri...

2018-04-24 10:05:01 340

原创 java工厂方法模式

  想了很久,还是决定写设计模式这一个系列的文章。为什么呢?因为自己的现阶段对代码有了一定的功底,需要更上一层楼,这需要总结和提炼。所以想借编写设计模式这个系列的文章来让自己的编程水平有所沉淀。其实网上也有不少这方面的文章了,但正所谓“纸上得来终觉浅,绝知此事要躬行”。看着别人造轮子,自己也要动手才可以提高。希望自己可以完成这个系列的编写。给自己加油!  java的设计模式有三大类:创建型模式,共...

2018-04-03 21:05:43 1138

原创 java中获取当前时间的前一天等操作

写代码中不时会进行对时间进行获取并修改,特此记录,方便自己使用和温习获取当前时间的前一天,后十分钟,前30秒任君发挥public static void main(String[] args) throws Exception{ Date now = new Date(); System.out.println("now:"+now); SimpleDateFo...

2018-02-27 16:22:43 2753

原创 java类型转换,例如String转double保留N位小数

类型转换是平时写代码中经常遇到的,所以特此记录。方便自己使用和温习。首先是string类型转换成double类型,并保留小数点后的N位数字。public static void main(String[] args) throws Exception{        double aa = stringToDouble("12.23");        System.out.println("...

2018-02-27 15:35:47 15298 1

原创 PLSQL在xshell中命令总结

今天总结一下用xshell连接到PLSQL数据库后操作的命令。本来觉得这个应该不算什么的。今天突然发现上网查了半天。都查不出来。PLSQL这么冷门吗?连正确的命令都没有多少文章介绍。好的,下面列出来。首先,使用xshell登录到服务器。使用命令psql -U postgres 登录到plsql的终端,其中postgres为用户名输入密码后进入到终端使用命令 \l 可以查看所有库。使用命令\s 可以...

2017-11-02 17:53:55 1386

原创 写博客的目的

之前开通博客的时候,我的动机是向其他技术大牛一样拥有自己的技术博客,可以将自己掌握的一些牛逼的技术贴出来,就感觉很厉害。这才是技术达人。看着别人一篇又一篇的博客,说到很多高大上的技术,评论的人也很多,总觉得好牛逼。心里想着自己以后也有一个这样的博客,那贴出来,多威风,多证明自己是一个技术大牛。   于是我便开始写博客,可是自己的技术并没有那么厉害,也写不出那些牛逼的技术分享,老是想写博

2017-04-15 10:29:43 667 3

原创 使用httpclient实现get请求(4.X版本的)

前阵子需要做新浪微博模拟登录的例子。最后终于使用httpclient模拟请求做出来了。现在先简单总结下下怎么使用httpclient的4.x版本来模拟get请求。      如果你之前用过httpclient,那你可能会知道httpclient3.x和httpclient4.x版本的改动可是非常大的。连定义httpclient的方式都变了。我还真的是比较吃惊。因为这样改变的例子还真少见。 

2017-04-10 15:01:03 3199

原创 java中堆和栈的概念解析

作为一个java程序员,面试的时候有些公司的面试官也许会问到java中堆和栈的概念。当然了,这个中高级java程序员才需要掌握的吧。初级java程序员如果可以弄明白这方面的知识,肯定也会加分。最近在面试的我就遇到了一个面试官给我出了这个问题。没有了解过的我很尴尬。回来一看才发现,也就是那么回事吧。       本人看的概念来自于《深入理解Java虚拟机》这本书,这本书可谓是讲解JVM原理的一本

2017-04-10 09:45:02 8391

原创 关于谷歌浏览器调试的笔记(一)

谷歌浏览器的各种按钮功能探索

2017-01-04 17:10:12 1301

原创 2016年的回顾

开篇言        人生的确需要总结,总结过去,吸取教训,展望未来。古人常说,吾日三省吾身,也是很有道理。很多事情你经历过,已经吃过苦头了,你可能自己觉得已经记住了,但是总结写出来更有深刻的印象,让自己更牢记。进入主题       总结写点什么好?我觉得不是应付工作上的总结,只是写自己的经历总结,可以自己写自己想总结的东西,说出来有点废话,对我来说,总结就是总结些自己在过去一年中的跌

2016-12-31 22:07:49 379 2

原创 Java读取excel表格的信息

public static Map>> readXls(String srcDir) throws FileNotFoundException,IOException,BiffException{//Map>>Map>> map = new HashMap>>();File xlsFile = new File(srcDir);if(!xlsFile.exists())thro

2016-10-27 16:59:11 491

原创 如何在jsp页面调用的java类中获取当前线程的request和session

当在jsp页面中调用的java类进行数据的处理,查库操作,然后需要操作session的时候可以这样获取到当前线程的session。HttpServletRequest request = ((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest();HttpSession sess

2016-10-12 17:26:23 3308

原创 oracle的存储过程中新建表后,怎么往表里面插入数据。

如果想在oracle存储过程中新建表后往表里插入数据,可能会这样写。其中i为前面定义的number变量。可以看到我想在新建的表的第一列插入其他的表的字段的数据user_id。然后在第二列插入-1这个值。

2016-08-29 17:24:46 8013

原创 好好温习下java容器类

容器类是什么?如果你真的用java做过项目,那list和map你肯定用过很多了。我也是,但是我当我拿起书本才发现原来还有其他容器自己一直没用到。首先来了解下容器的概念吧。容器可以管理对象的生命周期、对象与对象之间的依赖关系,您可以使用一个配置文件(通常是XML),在上面定义好对象的名称、如何产生(Prototype 方式或Singleton 方式)、哪个对象产生之后必须设定成为某个

2016-06-25 18:34:26 316

原创 数据库添加新表时如何判断原来是否存在该表

因为是从事javaweb开发工作,所以工作中经常需要编写数据库脚本,几天前碰到一个问题。在数据库中如何添加新表前判断之前是否存在该表。看似简单的问题,但是如果脚本写的不好,就会造成数据损失。  工作中的数据库脚本一般需要支持重复执行,所以怎么判断是否存在同样名称的表呢?   很多人会觉得,反正是新插入一个表,里面一般肯定是没有同样名字的表的。直接先删除同样名字的表,然后新增,就可以支持重复

2016-04-19 23:31:35 3045 1

原创 学习java核心技术第3章的读书笔记

不积跬步无以至千里。学习java核心技术第3章的读书笔记。

2015-08-14 23:43:29 427 1

空空如也

空空如也

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

TA关注的人

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