自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 35 个 Java 代码性能优化总结

前言代码优化,一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用,但是,吃的小虾米一多之后,鲸鱼就被喂饱了。代码优化也是一样,如果项目着眼于尽快无BUG上线,那么此时可以抓大放小,代码的细节可以不精打细磨;但是如果有足够的时间开发、维护代码,这时候就必须...

2018-09-17 13:21:00 145

转载 Java必备技能:clone浅克隆与深克隆

介绍一直以来只知道Java有clone方法,该方法属于Object的,对于什么是浅克隆与深克隆就比较模糊了,现在就来补充学习一下。概念浅拷贝(浅克隆)复制出来的对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象。深拷贝(深克隆)复制出来的所有变量都含有与原来的对象相同的值,那些引用其他对象的变量将指向复制出来的新对象,而不再是原有的那些被...

2018-09-17 13:20:00 151

转载 七年开发浅谈Nginx负载均衡

一 特点1.1 应用情况Nginx做为一个强大的Web服务器软件,具有高性能、高并发性和低内存占用的特点。此外,其也能够提供强大的反向代理功能。俄罗斯大约有超过20%的虚拟主机采用Nginx作为反向代理服务器,在国内也有腾讯、新浪、网易等多家网站在使用Nginx作为反向代理服务器。据Netcraft统计,世界上最繁忙的网站中有11.48%使用Nginx作为其服务器或者代理服务器。...

2018-09-17 13:19:00 126

转载 七分钟理解 Java 的反射 API

像java一样,一种具有反射功能的语言。允许开发人员在运行时检查类型、方法、字段、注解等,并在程序运行时决定是否使用。 为此,Java的反射API提供类,类,字段,构造函数,方法,注释和其他。 使用它们可以与编译时未知的类型进行交互,例如创建未知类的实例并对它们调用方法。这个快速提示旨在让您深度了解什么是反射,它在Java中的使用,以及它可以用于什么。 之后,你将准备好开始或工作更长...

2018-09-17 13:19:00 128

转载 Java 进阶面试问题必备

面向对象编程的基本理念与核心设计思想解释下多态性(polymorphism),封装性(encapsulation),内聚(cohesion)以及耦合(coupling)。继承(Inheritance)与聚合(Aggregation)的区别在哪里。你是如何理解干净的代码(Clean Code)与技术负载(Technical Debt)的。描述下常用的重构技巧。阐述下...

2018-09-17 13:17:00 76

转载 阿里P7整理20个非常有用的Java程序片段,你知道吗?

1、字符串有整型的相互转换String a = String.valueOf(2);//integer to numeric stringint i = Integer.parseInt(a); //numeric string to an int2、向文件末尾添加内容BufferedWriter out = null;try {out =...

2018-09-14 19:24:00 104

转载 七年开发经验教你如何正确、安全地停止 SpringBoot 应用

引言Spring Boot,作为Spring框架对“约定优先于配置(Convention Over Configuration)”理念的最佳实践的产物,它能帮助我们很快捷的创建出独立运行、产品级别的基于Spring框架的应用,大部分Spring Boot应用只需要非常少的配置就可以快速运行起来,是一个与微服务(MicroServices)相当契合的微框架。 网络上关于Spring B...

2018-09-13 15:49:00 115

转载 Dubbo 高级特性实践-泛化调用

引言当后端Java服务用Dubbo协议作为RPC方案的基础,但部分消费方是前端Restful的PHP服务,不能直接调用,于是在中间架设了Router服务提供统一的基于HTTP的后端调用入口。而Router调用后端Java服务就应用了Dubbo的高级特性–泛化调用直接消费方(Router服务)不需要引入接口jar包通过GenericService接口来处理所有服务请求...

2018-09-13 15:48:00 177

转载 一文看懂Java Worker 设计模式

Worker模式想解决的问题异步执行一些任务,有返回或无返回结果使用动机有些时候想执行一些异步任务,如异步网络通信、daemon任务,但又不想去管理这任务的生命周。这个时候可以使用Worker模式,它会帮您管理与执行任务,并能非常方便地获取结果结构很多人可能为觉得这与executor很像,但executor是多线程的,它的作用更像是一个规划中心。而Worker则只...

2018-09-13 15:48:00 201

转载 聊Java中的任务调度的实现方法及比较

前言任务调度是指基于给定时间点,给定时间间隔或者给定执行次数自动执行任务。本文由浅入深介绍四种任务调度的 Java 实现:TimerScheduledExecutor开源工具包 Quartz开源工具包 JCronTab此外,为结合实现复杂的任务调度,本文还将介绍 Calendar 的一些使用方法。Timer相信大家都已经非常熟悉 ja...

2018-09-13 15:46:00 105

转载 七年总结常用 Git 命令清单

我每天使用 Git ,但是很多命令记不住。一般来说,日常使用只要记住下图6个命令,就可以了。但是熟练使用,恐怕要记住60~100个命令。下面是我整理的常用 Git 命令清单。几个专用名词的译名如下。Workspace:工作区Index / Stage:暂存区Repository:仓库区(或本地仓库)Remote:远程仓库一、新建代码库...

2018-09-13 15:46:00 61

转载 Spring Boot 揭秘与实战之RabbitMQ

Spring Boot 整合 RabbitMQSpring Boot 整合 RabbitMQ 是非常容易,只需要两个步骤。首先,在 pom.xml 中增加 RabbitMQ 依赖。<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring...

2018-09-13 15:45:00 90

转载 一个让Java事半功倍的反射库

在Java和Android中,我们常常会使用反射来达到一些兼容的目的。Java原生提供的反射很是麻烦,使用起来很是不方便。比如我们想要调UserManager的静态方法get,使用原生的实现如下try { final Method m = UserManager.class.getMethod("get", Context.class); m.setAccessible(true);...

2018-09-13 15:43:00 80

转载 七年开发经验详解JVM的GC 算法

概述GC 是 JVM 自带的功能,它能够自动回收对象,清理内存,这是 Java 语言的一大优势,但是GC绝不仅伴随着Java,相反,GC历史比Java更悠久。关于GC,我认为有四个问题需要解决:为什么了解 GC?哪些内存需要回收?什么时候回收?如何回收?为什么了解 GCGC 已经比较成熟,绝大部分情况下都“自动化”运行。之所以还需要了解GC,是因为当需...

2018-09-12 16:43:00 101

转载 阿里面试官总结40 个 Java 多线程问题

前言这篇文章主要是对多线程的问题进行总结的,因此罗列了40个多线程的问题。这些多线程的问题,有些来源于各大网站、有些来源于自己的思考。可能有些问题网上有、可能有些问题对应的答案也有、也可能有些各位网友也都看过,但是本文写作的重心就是所有的问题都会按照自己的理解回答一遍,不会去看网上的答案,因此可能有些问题讲的不对,能指正的希望大家不吝指教。40个问题汇总1、多线程有...

2018-09-12 16:42:00 99

转载 七年开发小结MyBatis 在 Spring 环境下的事务管理

MyBatis的设计思想很简单,可以看做是对JDBC的一次封装,并提供强大的动态SQL映射功能。但是由于它本身也有一些缓存、事务管理等功能,所以实际使用中还是会碰到一些问题——另外,最近接触了JFinal,其思想和Hibernate类似,但要更简洁,和MyBatis的设计思想不同,但有一点相同:都是想通过简洁的设计最大限度地简化开发和提升性能——说到性能,前段时间碰到两个问题:在...

2018-09-12 16:41:00 212

转载 阿里P7教你如何使用 Spring 配置动态数据源实现读写分离

最近搭建的一个项目需要实现数据源的读写分离,在这里将代码进行分享,以供参考。关键词:DataSource 、AbstractRoutingDataSource、AOP首先是配置数据源<!--读数据源配置--><bean id="readDataSource" class="com.alibaba.druid.pool.DruidDataSource" ini...

2018-09-12 16:40:00 134

转载 阿里P7详细解答JVM性能调优之监控工具

javap 和 javacjavac -verbose 类名.javajava -verbose 类名javap -c 类名javap -verbose 类名JAVAP -HELP用法: javap其中, 可能的选项包括:-help –help -? 输出此用法消息-version 版本信息-v -verbose 输出附加信息-l ...

2018-09-12 16:38:00 72

转载 一语道破Java 11的ZGC为何如此高效

GC是大部分现代语言内置的特性,Java 11 新加入的ZGC号称可以达到10ms 以下的 GC 停顿,本文作者对这一新功能进行了深入解析。同时还对还对这一新功能带来的其他可能性做了展望。ZGC是否可以达到该性能目标,请看高可用架构志愿者翻译的文章。Java 11的新功能已经完全冻结,其中有些功能绝对非常令人兴奋,本文着重介绍ZGC。Java 11包含一个全新的垃圾收集器–ZGC...

2018-09-11 12:15:00 139

转载 还想免费继续使用JDK吗?从java11以后别从Oracle下载了

Java生态系统一直以来是建立在一个高质量的免费(零成本)JDK之上的,它可以从甲骨文(Oracle)和以前的Sun获得。 今天的情况和以前一样。Java现在每六个月发布一次版本,这个版本是指提供带有安全补丁和重要bug修复的更新版本。到目前为止,包括Java 8在内,已经提供了多年的免费支持,当使用Java 9以及遭遇六个月的发布周期时,这种免费的支持现在被控制得更严格了。事实...

2018-09-11 12:14:00 312

转载 开发六年mybatisplus使用小结

最近在项目里用到了一个第三方库,叫mybatisplus,是一个mybatis的增强库,简单来说就是增强了mybatis的功能,让mybatis更好用,mybatisplus给的官方定义是Mybatis-Plus(简称MP)是一个 Mybatis 的增强工具,在 Mybatis 的基础上只做增强不做改变,为简化开发、提高效率而生。http://mp.baomidou.com/#/这是my...

2018-09-11 12:13:00 152

转载 去“BAT”这样面试,拿到offer的几率是80%

一、概述面试,难还是不难?取决于面试者的底蕴(气场+技能)、心态和认知及沟通技巧。面试其实可以理解为一场聊天和谈判,在这过程中有心理、思想上的碰撞和博弈。其实你只需要搞清楚一个逻辑:“面试官为什么会这样问?他希望听到什么答案?”然后针对性的准备和回答就行了,无他。“你的优势是什么?”多年前我觉得这个问题很无聊,现在我经常这么问面试者,因为我真的想知道他的优势是什么,能给公司带来什...

2018-09-11 12:12:00 156

转载 阿里P7级教你如何在Spring Boot应用程序中使用Redis

在Spring Boot应用程序中使用Redis缓存的步骤:1、要获得Redis连接,我们可以使用Lettuce或Jedis客户端库,Spring Boot 2.0启动程序spring-boot-starter-data-redis默认使用了Lettuce。要获得Redis的池化连接工厂,我们需要在类路径上提供commons-pool2,下面展示使用Lettuce情况下的Maven依...

2018-09-11 12:11:00 71

转载 为什么Java大数据能带你走上人生巅峰

国内大多数大型互联网公司的程序员被称作研发工程师,但实际上国内几乎没有研发项目,只能叫做开发。开发程序员的工作大多是重复性劳动,容易产生疲惫感,薪资在工作2-5年内就达到了一个峰值,再要提升就比较困难,这样就导致了很多程序员最终转行做了其他行业。JAVA的精密、强大,拥有其它语言不可替代的性能和可维护性,早已经是成为最受欢迎的编程语言之一,很多人想进入IT行业,首选的第一门语言就...

2018-09-11 12:10:00 115

转载 惊呆!Java程序员等级一览

凡人:买本书凑凑热闹,听得多写的少,过段时间就把老师教的都忘了。这个阶段是刷掉人最多的阶段,也是从凡人到程序员本质区别的阶段。你的日后成就在于你的习惯与态度。隔一段时间整理自己的知识体系是重中之重。如果你做得多于看代码,那么恭喜你,你进入下一阶段。筑基:评价标准:懂了怎么配置环境变量,懂得bin目录下都有什么,java命令行基本懂点。明白了变量类型,也碰过...

2018-09-07 09:11:00 157

转载 不要做一个只会面向搜索编程的程序员

在当今前端开发人员的世界里,JavaScript 疲劳已非常普遍。似乎每天都会出现新的框架、架构、命令行工具或 SaaS 服务。新事物的持续涌动让开发人员倍感疲倦。为了避免这种情况,树立一种可靠的本能很重要——即甄别那些值得花时间去研究的技术和产品的能力,有些技术和产品在历经昙花一现后就销声匿迹,关于它们的文章在科技博客上也被归档,最后连正反两面的评论也都被遗忘了。...

2018-09-07 08:50:00 113

转载 三年总结出来的11个JPA和Hibernate查询配置小技巧

JPA和Hibernate提供了一系列暗示hints能够帮助你更好地定制你的查询语言,这些小暗示或暗语是一种附加信息,你可以利用这些暗语做很多事情,比如设置查询的timeout,使用实体图或定义查询缓存的缓存。在我们介绍一系列暗语之前,首先我们看看如何使用查询暗语,你可以在EntityManager.find 方法中使用它,EntityManager.find接受一个HashMap&...

2018-09-06 15:34:00 389

转载 阿里高级架构师教你使用Spring JMS处理消息事务源码案例

消费者在接收JMS异步消息的过程中会发生执行错误,这可能会导致信息的丢失。该源码展示如何使用本地事务解决这个问题。这种解决方案可能会导致在某些情况下消息的重复(例如,当它会将信息储存到数据库,然后监听执行失败)。之所以出现这种情况是因为JMS交易是独立于像数据库等事务性资源。如果您的处理不是幂等或者如果您的应用程序不支持重复消息检测,那么你将不得不使用分布式事务。分布式事务是超出了本源码...

2018-09-06 15:23:00 66

转载 阿里高级架构师教你使用Spring Cloud Sleuth跟踪微服务

随着微服务数量不断增长,需要跟踪一个请求从一个微服务到下一个微服务的传播过程,Spring Cloud Sleuth 正是解决这个问题,它在日志中引入唯一ID,以保证微服务调用之间的一致性,这样你就能跟踪某个请求是如何从一个微服务传递到下一个。Spring Cloud Sleuth在日志中增加两种ID 类型, 一个是trace ID,另外一个是span ID,span ID代表工作基...

2018-09-06 15:22:00 77

转载 阿里高级架构师教你如何使用Spring Cloud Ribbon重试请求

在微服务调用中,一些微服务圈可能调用失败,通过再次调用以达到系统稳定性效果,本文展示如何使用Ribbon和Spring Retry进行请求再次重试调用。在Spring Cloud中,使用load balanced RestTemplate对外部服务进行请求调用,创建一个负载平衡的RestTemplate是非常简单:@Configurationpublic class My...

2018-09-06 15:21:00 53

转载 面试总结关于Spring面试问题(精选)

1、什么是Spring?Spring是一个反转控制IOC和AOP的开发框架和平台。2、解释一下Spring?轻量 : Spring 在大小和透明度上是轻量的,Spring基本核心版本大概只有1M,处理开销也非常小反转控制Inversion of control (IoC) : Spring使用IOC实现松耦合,对象不是自己主动去寻找依赖而是依赖主动推给了自己。面向...

2018-09-06 15:20:00 68

转载 去阿里、网易、京东等互联网公司面试必备技巧

计算机网络计算机网络分为哪几层?计算机网络如果是ISO模型的话,分为七层。TCP/IP协议簇模型的话,分为四层。这一个你需要能够说出来每一层叫做什么,大概做了什么事情,网上查一查就知道了,我就不具体说了。TCP和UDP有什么区别?什么场景使用TCP,什么场景什么UDP?哪些应用层协议使用了TCP,哪些使用了UDP?传输层绝壁是你在面试的时候最常被问到的,这一块你需要好好看...

2018-09-06 12:00:00 148

转载 阿里P7分享如何面对枯燥的源码

一个软件开发人员,工作到了一定的年限(一般是3、4年左右),如果他还没学会阅读源码,那么他就会遇到瓶颈。因为到了这个时候的开发,他应该不仅仅只会做那些 CURD 的业务逻辑,而应该会根据公司的实际情况去写框架。而基本上没有谁能像天才一样从零写出一个框架,很多人写框架其实都是从模仿开始的。而你要模仿,那么你首先得看得懂框架源码才行。所以说阅读源码才显得那么重要。我在工作一两年的时候有尝...

2018-09-05 11:16:00 53

转载 Java 10 的 10 个新特性,你颤抖了吗?

Java 9才发布几个月,很多玩意都没整明白,现在Java 10又快要来了。。这时候我真尼玛想说:线上用的JDK 7 甚至JDK 6,JDK 8 还没用熟,JDK 9 才发布不久不知道啥玩意,JDK 10……刚学Java的同学是不是感觉一脸蒙逼?!!!就连我这个老司机也同样感觉如此!Java 更新越来越快,我们做技术的也要跟上步伐,不然总会慢别人一拍,这新东西从国外到国内...

2018-09-05 11:06:00 60

转载 程序员干到了30岁,改如何规划自己的人生?

今年我一个玩的好的同事刚好步入 30 岁大关,从 06 年上大学以来,就一直被冠以「程序员」的美名,所以今天这个就让我来说道:30 岁左右的中高级程序员如何规划自己的职业生涯?这个问题主要关键词有:30 岁中高级职业生涯下面就来说说我对这三个词的理解。30 岁的程序员30 岁刚好是 2010 年大学本科毕业,如果没读研,迄今有 8 年左右的工作经验...

2018-09-05 10:56:00 283

转载 阿里P7告诉你什么是java并发包、线程池、锁

并发包java.util.concurrent从jdk1.5开始新加入的一个包,致力于解决并发编程的线程安全问题,使用户能够更为快捷方便的编写多线程情况下的并发程序。同步容器同步容器只有包括Vector和HashTable,相比其他容器类只是多用了Synchronize的技术Vector与ArrayList区别1.ArrayList是最常用的List实现类,内部是通过...

2018-09-04 09:16:00 81

转载 「那个程序员还不错」是怎样炼成的?

前言已经记不清有多少读者问过:博主,你是怎么学习的?像我这样的情况有啥好的建议嘛?也不知道啥时候我居然成人生导师了。当然我不排斥这些问题,和大家交流都是学习的过程。因此也许诺会准备一篇关于学习方面的文章;所以本文其实准备了很久,篇幅较长,大家耐心看完希望能有收获。以下内容仅代表我从业以来所积累的相关经验,我会从硬技能、软实力这些方面尽量阐述我所认为的 “不那么差的程序...

2018-09-04 08:47:00 106

转载 美团Java工程师面试题(2018秋招)

第一次面试1.小数是怎么存的2.算法题:N二进制有多少个13.Linux命令(不熟悉4.JVM垃圾回收算法5.C或者伪代码实现复制算法6.volatile7.树的先序中序后序以及应用场景8.Mysql存储记录的数据结构9.索引数据结构10.为什么不用AVL和红黑树存?11.说实习项目12.redis用了哪些12.持久化和复制13.g...

2018-09-04 08:21:00 102

转载 阿里P7浅谈Java的Spring Bean

1、简单java 类,实现 Serializable 接口package com.curtis.bean;import java.io.Serializable;@SuppressWarnings("serial")public class Person implements Serializable {private String name;private Integer ...

2018-09-03 17:23:00 73

转载 谁还不知道Java String的那点事

String是我们平时接触最多的一种数据类型之一,不同语言有自己内部的实现,今日一起看下Java中String的内部实现。常问问题面试中常被提及的String问题String为什么是Final的?new String("abc")创建了几个对象?String.intern()有什么用途?顺着字符串可能往下问到JVM相关的东西,一般Java开发最后都会问到JVM相关...

2018-08-31 20:58:00 43

空空如也

空空如也

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

TA关注的人

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