[置顶] 【Java高级开发工程师】近一个月的面试总结

时隔两年,再一次的面临离职找工作,这一次换工作有些许的不舍,也有些许的无奈。个人所在的技术团队不错,两年时间成长了很多,也很不舍这个团队。但是,由于公司的某些原因和对于自身未来发展的综合考虑,又不得不得离去,去寻找更合适的地方成长和发展。相比于两年前,现在找工作没有那么的着急,也没有那么的迫切,也没有特别想去的公司,反正去大厂互联网公司基本都是加班加点的。也许,这是工作三年的我即将面临的一个坎吧。...
阅读(19945) 评论(27)

[置顶] 几种Java序列化方式的实现

0、前言 本文主要对几种常见Java序列化方式进行实现。包括Java原生以流的方法进行的序列化、Json序列化、FastJson序列化、Protobuff序列化。 1、Java原生序列化 Java原生序列化方法即通过Java原生流(InputStream和OutputStream之间的转化)的方式进行转化。需要注意的是JavaBean实体类必须实现Serializable接口,否则无法序列化。...
阅读(2051) 评论(2)

[置顶] 【读书体会】《精进》:如何成为一个很厉害的人

preface       最近读了采铜所著的《精进》这本书,有所感触。书中比较全面地阐述了如何让自己成为一个很厉害的人,我比较认同作者大多数的观点。他主要从若干不同方面进行分析,来阐述观点。个人觉得,在当前浮躁的社会中,年轻人如何对职业和生活进行理性的认知和规划是很重要,有待深入思考。 chapter1       人人都想成功,在我个人看来,成功最基本的条件是需要时间投入。就比如你想...
阅读(2031) 评论(5)

[置顶] Guava Futures异步回调机制源码解析

1、前言           在前两篇文章中简单阐述了Java Future 和Guava ListenableFuture及其相关的应用。我们发现Guava ListenableFuture提供了比Java Future更加强大的功能,而在Google Guava并发包中,某些情况下,Futures这个类起到了不可或缺的作用,而ListenableFuture实现非阻塞的原理是其提供了回调机制...
阅读(4340) 评论(0)

[置顶] 设计模式09_观察者模式

1、定义          观察者模式定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。(摘自Head First中文版51页)2、说明          在通常情况下,软件系统会包含各种对象,就像大海孕育着形色各异的动植物一样。在浩瀚的海洋中,各种动植物彼此依赖和约束,形成一个个生物链。某一种生物的行为状态变化可能会造成其它生物作出相应行动。同样,在...
阅读(2092) 评论(3)

[置顶] 设计模式08_适配器模式

1、定义           适配器模式将一个类的接口,转换成客户期望的另一个接口。适配器让原本不兼容的类可以合作无间。(摘自Head First中文版243页) 2、说明           通常情况下的适配器模式有两种形式:对象适配器和类适配器。类的适配器模式采用继承实现,而对象适配器采用对象组合方式实现。           类适配器使用继承的方式(静态方式),这样就使得...
阅读(6894) 评论(0)

[置顶] 设计模式07_代理模式

1、定义           代理模式为另一个对象提供替身或占位符以控制对这个对象的访问。使用代理模式创建代表对象,让代表对象控制某对象的访问,被代理的对象可以是远程的对象、创建开销大的对象或需要安全控制的对象。(摘自Head First 中文版第460页) 2、说明           代理模式中,代理类(proxy class)对它的客户隐藏了对象的具体信息。因此,在使用代理模式...
阅读(7021) 评论(0)

[置顶] 设计模式06_装饰者模式

本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/515315191、定义          动态将职责添加到对象身上。若要扩展功能,装饰者模式提供了比继承更加灵活的替代方案。(摘自Head First 中文版第91页)2、说明          通常情况下,在使用继承设计子类的行为,是在编译时静态决定的,所有的...
阅读(3843) 评论(0)

[置顶] 基于AsyncRestTemplate异步HTTP请求的一种轻量级技术实现

本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/51428562Ⅰ、前言          在上一篇博客中讲述ListenableFuture通过异步回调机制来实现请求的非阻塞。通常情况下,客户端获取数据并不会只发送一次http请求,可能会有多个http请求。这样,使用上一篇博客中的方法,就会产生大量的冗余代码...
阅读(11475) 评论(0)

[置顶] 从Java future 到 Guava ListenableFuture实现异步调用

本文是在学习中的总结,欢迎转载但请注明出处: 前言      随着移动互联网的蓬勃发展,手机App层出不穷,其业务也随之变得错综复杂。针对于开发人员来说,可能之前的一个业务只需要调取一次第三方接口以获取数据,而如今随着需求的增加,该业务需调取多个不同的第三方接口。通常,我们处理方法是让代码同步顺序的去调取这些接口。显然,调取接口数量的增加必然会造成响应时间的增加,势必会对系统性能造成一定影响。...
阅读(8162) 评论(0)

[置顶] 2016年的学习计划

最近几个月感觉好忙,忙的都没时间写博客。我想,也许说忙是一种借口,是的,的确是一种借口,说到底还是自己偷懒,不愿意动手。虽说技术博客应该讨论和分享一些和技术相关的话题,但是偶尔的一两次碎碎念可能带来别一番的意境吧。离开之前的传统软件公司并加入到新的互联网公司,差不多将近半年时间了,期间学习到了很多新的知识和技能,收获很多,感慨也很多。了解和学习了之前从未接触过的技术,包括springmvc、mem...
阅读(713) 评论(4)

[置顶] 近一个月的面试总结

本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/46753275 前言       打算换个工作,近一个月面试了不少的公司,下面将一些面试经验和思考分享给大家。另外校招也快要开始了,为在校的学生提供一些经验供参考,希望都能找到满意的工作。         刚开始面试的几家公司,就是备受各种打击、就是一顿狂问,结果答上来的问题没几个,开始给自己的信心造成了一定的影响,后来经过调整后,又恢复到了信心满满的状态。一方面是工...
阅读(11835) 评论(53)

[置顶] 优化代码的重要性

本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/45131085 工作将近一年了,从事软件开发也有三年多了,也写过不少的代码,但整体上来看,代码质量很差。一方面是缺乏编程方面的经验,写出的代码不能够考虑全面地情形;另一方面可能是需求设计的频繁性变动,导致代码的结构的不稳定性变动。这些都直接或间接地影响代码的质量,而代码质量的好坏将会直接影响到产品的性能和用户体 验。这些都会无形中影响用户...
阅读(5055) 评论(7)

[置顶] 重构笔记——移除中间人

本文是在学习中的总结,欢迎转载但请注明出处:http://write.blog.csdn.net/postedit/44022341         在上一篇文章中介绍了“隐藏委托关系”。本文将介绍“移除中间人”这种重构手法。         下面让我们来学习这种重构手法吧。 开门见山         发现:某个类做了过多的简单委托动作。         解决:让客户直接调用受托类。 动机...
阅读(3238) 评论(0)

[置顶] 新的一年

新的一年,为自己加油! 新的一年,坚持学习技术,持续提高自己!...
阅读(1566) 评论(4)

[置顶] Leetcode_172_Factorial Trailing Zeroes

本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/42417535 Given an integer n, return the number of trailing zeroes in n!. Note: Your solution should be in logarithmic...
阅读(2153) 评论(0)

[置顶] 重构笔记——以查询取代临时变量

本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/42167015         在上一篇文章中介绍了“ 内联临时变量“。本文将介绍“以查询取代临时变量”这种重构手法。         下面让我们来学习这种重构手法吧。 开门见山         发现:你的程序以一个临时变量保存...
阅读(2072) 评论(0)

[置顶] 重构笔记——内联临时变量

本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/42167015         在上一篇文章中介绍了“ 内联函数“。本文将介绍“内联临时变量”这种重构手法。         下面让我们一起来学习该重构手法把。(PS:虽然某些重构手法看起很简单,但是和其它重构手法结合起来使用,会产生异曲同工的...
阅读(2163) 评论(2)

[置顶] 重构笔记——内联函数

本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/42261333 在上一篇文章中介绍了“提炼函数“。本文将介绍“内联函数”这种重构手法。 下面让我们一起来学习该重构手法把。...
阅读(2533) 评论(7)

[置顶] 重构笔记——提炼函数

本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/42214393 在前面的三篇文章中介绍了重构入门篇、代码的坏味道(上)、代码的坏味道(下)。本文将正式开启重构之旅。从本文开始在后续的文章中会陆续介绍92种重构手法,每一种重构手法都会对应于一种代码坏味道。在介绍的过程中,每一种重构手法也将对应一篇文章,可能有的重构手法比较简短,但是为了便于整理还是单独将其列为一篇。(PS:不管怎样,我都会坚持把这些...
阅读(2465) 评论(4)

[置顶] 重构笔记——构筑测试体系

本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/42167015 作为一名程序员,不知你是否在开发过程中也很少甚至不写测试程序,可能大多数人觉得这很正常,其实从个人角度来看也很正常,因为毕竟有测试人员专门进行测试的嘛!但是,如果能够认真观察程序员把最多时间耗在哪里,你就会发现,编写代码其实只占非常小的一部分。有些时间用来决定下一步干什么,另一些时间花在设计上,最多的时间则是用来调试。我敢肯定每一位读者...
阅读(2718) 评论(0)

[置顶] JAVA中IO流总结

本文是在学习中的总结,欢迎转载但请注明出处:http://write.blog.csdn.net/postedit/42119261 我想你对JAVA的IO流有所了解,平时使用的也比较的多,但是对于其具体分类和继承体系可能知道的并不多,可能也很少去看相关的API文档,找出其中的关系和各自的应用 情形。本文简单对常用的IO流进行分类整理,并简单举例说明其应用。希望本文对你有所帮助。...
阅读(3838) 评论(10)

[置顶] 重构笔记——代码的坏味道(下)

本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/42083495 在重构笔记——代码的坏味道(上)中介绍了22种坏味道中的11种,本文将介绍其余的11种坏味道。之所以将其分为两篇文章介绍,是因为一篇文章介绍22种方法显得篇幅太长,担心读者难以坚持看完。(PS:在对这些"代码的坏味道“了解和熟悉后,我们就要开始有针对性地进行重构了,但是在进行重构之前,我们似乎还缺少点什么!对了,我们还缺少测试环境!在开发的...
阅读(2984) 评论(0)

[置顶] 重构笔记——代码的坏味道(上)

本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/42041757 在重构入门篇中,简单地介绍了重构的定义、为何重构、何时重构等。我想对于重构是如何运作的,你已经有了较好的理解了。但是对于代码中的坏味道,你可能知道的并不多。坏味道可能是无形中产生的,也可能是开发人员偷懒造成的,还可能是其它某些因素导致的。不管怎么样,代码中的坏味道对程序没有半点好处,它会促使程序腐烂,甚至变质。对于开发人员,真的是很有必要...
阅读(6291) 评论(19)

[置顶] 谁能给你机会,让你如愿以偿

别总是抱怨自己怀才不遇,工资太少,先去想想怎么提高自己的能力,怎样让老板赏识吧。   近段时间,已经不止听到一个人对我抱怨:“公司给我这么点钱,我就干这么点事,凭什么多干,他又不给我涨工资。”我忍不住小声嘀咕:如果我是老板,我也不会重用你。反观,也难怪这些人做了一两年仍然原地踏步,先别说涨工资,哪怕你就是再干上十年,估计老板也不会给你涨,说不定哪天碰到经济不景气,就把你裁了,不是没可能的。...
阅读(3258) 评论(8)

[置顶] 重构笔记——入门篇

程序员经常会遇到晦涩难懂的代码,尤其是他人写的代码,可能是同事离职后转交给你维护的,也可能是项目遗留下来的。不管怎么样,当你被迫从一个2000行代码的类或一个500行代码的方法中去寻找并解决bug,我想大多数人都会头疼,对于没有一点注释的代码,甚至想死的心都有。这时候我们少不了会在心中默默诅咒写出这样代码的人。我想不管对于你还是我自己,当我们在开发的过程中,经常会抱以只要程序能正常运行就行,而不管代码是否整洁的心态。这样的做法其实是在坑自己,不要等到后续代码维护时再后悔当初没有把代码写好,那时再对代码进行修...
阅读(3727) 评论(5)

[置顶] 从"按层次输出二叉树"到"求解二叉树深度"的总结

本文是在学习中的总结,欢迎转载但请注明出处:http://write.blog.csdn.net/postedit/41964669 最近在刷LettCode上的算法题,发现好多题目的解题思路大体是一致的,甚至会出现一解对多题的情形,可能一方面原因是我刷的都是简单题,另一方面原因可能是网站有意来提高我们的信心和联想能力。比如有求解二叉树最大深度和求解二叉树最小深度的题目,也有判断两颗树是否完全一致和判断两个树是否轴对称的题目,还有按层次从树根往下输出每层元素和按层次从下往树根输出每层元素的题目等。 昨天...
阅读(2609) 评论(0)

[置顶] Leetcode_112_Path Sum

本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/41910495 Given a binary tree and a sum, determine if the tree has a root-to-leaf path such that adding up all the values along the path equals the given sum. 思路: (1)题意为给定一个(每个节点带有数值)二叉...
阅读(2021) 评论(0)

[置顶] 20-30岁,我拿十年做什么 (转)

一:这10年,一定要有自己的方向       1、没有方向感,是最要命的      2、不管起点有多低,都要坦然接受       3、围绕自己的兴趣爱好选择职业       4、做自己最擅长的事       5、从最容易实现的目标开始做起  二:这10年,要做哪些准备?       1、要过语言关  2、要有一样看家本领  3、掌握工作的全部  4、把知识变成能力  ...
阅读(2468) 评论(0)

[置顶] 瞬间学会数据结构常用排序算法

本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/40625351 瞬间学会数据结构常用排序算法。本文是用JAVA语言实现数据结构中7种基本排序算法:直接插入排序、希尔排序、冒泡排序、快速排序、直接选择排序、堆排序、归并排序。 希望对您有所帮助。...
阅读(2763) 评论(0)

Hadoop+Hive+Mysql环境搭建

1、了解 学习链接: http://hadoop.apache.org/ http://spark.apache.org/ http://hive.apache.org/ https://github.com/apache/spark/tree/master/examples/src/main/java/org/apache/spark/examples...
阅读(99) 评论(0)

java nio socket简单示例

1、说明java nio底层基于Reactor模型,采用多路复用IO模型,由一个专门的线程来处理所有的 IO 事件,并负责分发。基于事件驱动机制能够在事件到的时触发,而不是同步的去监视事件。 线程之间的通讯是通过 wait、notify等方式通讯,保证每次上下文切换都是有意义的,减少无谓的线程切换。 服务端和客户端各自维护一个管理通道的对象selector,其能检测一个或多个通道 (channel)...
阅读(574) 评论(0)

设计模式12-断路器模式

4月份没时间撰写。今天4月最后一天,务必先标记下,五月份补上。未完待续。。。...
阅读(340) 评论(0)

Linux搭建memcached服务

1、安装libevent首先检查系统中是否安装了libeventrpm -qa | grep libevent 如果安装了,查看libevent的安装路径,后续安装时需要用到rpm -ql libevent 如果没有安装,则需要先安装libevent安装libevent: 下载libevent安装包 wget http://www.monkey.org/~provos/libevent-1.4....
阅读(367) 评论(0)

Java RMI

1、前言RMI是远程方法调用(Remote Method Invocation)的简称,其是一种计算机之间利用远程对象互相调用实现双方通讯的一种通讯机制,它能够让一个Java虚拟机上的对象调用另一个Java虚拟机上对象的方法。Java RMI在JDK1.1中实现的,其它可以被看作是RPC的Java版本。但是传统RPC并不能很好地应用于分布式对象系统。而Java RMI 则支持存储于不同地址空间的程序...
阅读(482) 评论(0)

Java IO示例代码

在较深入学习Java IO后,给出常用的字符流和字节流的示例代码。通过示例进一步了解和学习Java IO的整体架构和设计思想,并将其应用到实际开发中。 Java中I/O操作主要是指使用Java进行输入、输出操作。机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列。简而言之:数据流是包括输入流和输出流的一组有序的有起点和终点的字节的数据序列。 当程序需要读取数据的...
阅读(610) 评论(0)

内存缓存GuavaCache源码解析

1、前言Guava Cache是一个全内存的本地缓存,它提供了线程安全的实现机制。其简单易用、性能好是本地缓存的不二之选。Guava Cache与ConcurrentMap很相似,但也不完全一样。最基本的区别是ConcurrentMap会一直保存所有添加的元素,直到显式地移除。相对地Guava Cache为了限制内存占用,通常都设定为自动回收元素。在某些场景下,尽管LoadingCache不回收元素...
阅读(486) 评论(0)

Linux上面搭建redis集群服务

最近项目组要搭建redis集群,顺手就在服务器上搭建了,中途也遇到了一些问题,不过最后也都解决了,本文作为笔记记录。本文用单台虚拟机模拟6个节点,创建出3 master、3 salve 环境。说明:https://redis.io/上的最新版本是3.2.8,考虑到新版本可能有坑,所以下载3.2.7版本。1、下载解压wget http://download.redis.io/releases/redi...
阅读(504) 评论(0)
200条 共20页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:348800次
    • 积分:5845
    • 等级:
    • 排名:第4380名
    • 原创:190篇
    • 转载:10篇
    • 译文:0篇
    • 评论:200条
    博客专栏
    最新评论