自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 使用Spring Security和JWT保护REST API实战源码

设计REST API时,必须考虑如何保护REST API,在基于Spring的应用程序中,Spring Security是一种出色的身份验证和授权解决方案,它提供了几种保护REST API的选项。最简单的方法是使用HTTP Basic,当你启动基于Spring Boot的应用程序时,默认情况下会激活它,这有利于开发,可在开发阶段经常使用,但不建议在生产环境...

2018-08-31 19:30:00 195

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

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

2018-08-31 16:49:00 1013

原创 Springboot -- 用更优雅的方式发HTTP请求(RestTemplate详解)

RestTemplate是Spring提供的用于访问Rest服务的客户端,RestTemplate提供了多种便捷访问远程Http服务的方法,能够大大提高客户端的编写效率。我之前的HTTP开发是用apache的HttpClient开发,代码复杂,还得操心资源回收等。代码很复杂,冗余代码多,稍微截个图,这是我封装好的一个post请求工具:...

2018-08-31 16:29:00 195

原创 Java面试题大全(流行的框架部分)

1、什么是MVC模式?MVC (Model View Controller) 是一个设计模式,使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。M是指数据模型,V是指用户界面,C则是控制器。使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以应用于不同的表现形式。MODEL: 封装了所有的商业逻辑以及规则。通常被J...

2018-08-31 16:04:00 216

原创 深入学习SpringMVC以及学习总结

一、优点:1.SpringMVC简化web程序开发;2.SpringMVC效率很好(单例模式);3.SpringMVC提供了大量扩展点,方便程序员自定义功能;①.DispatcherServlet:核心控制器(springMVC的心脏)中转作用;②.HandlerMapping:映射处理器(处理请求,找到对应的Handler);③.Handle...

2018-08-30 15:27:00 165

原创 连mysql锁的机制都不了解,怎么做架构师

连mysql锁的机制都不了解,怎么做架构师科技伍小黑2018-08-05 21:39:23引言数据库锁定机制简单来说就是数据库为了保证数据的一致性而使各种共享资源在被并发访问变得有序所设计的一种规则;对于任何一种数据库来说都需要有相应的锁定机制,Mysql也不例外。mysql 事务一般来说,事务是必须满足4个条件(ACID):原子性(Atomicity,...

2018-08-29 20:20:00 76

原创 为什么你的MySQL性能差?死代码牵连问题解决了吗?

MySQL存储过程、函数和触发器是开发人员常打交道的三大名词,但是,这三个过程可能会对数据库性能造成严重影响,尤其是函数中出现“死”代码时,其它两个过程都会受到牵连。以下是作者进行的一些基本测试,通过对比更好地衡量三者对数据库性能的影响。触发器和存储过程对性能影响的重要原因是函数“死”代码。尽管所有开发人员都知道“死”代码(永远不会被运行的代码)不应该出现...

2018-08-29 16:45:00 139

原创 程序员应该如何自我驱动,迅速获得成长?

初入公司,从CRUD到运维支持一年之前,我还是一个只会CRUD的普通程序员,常年与业务打交道,一套花式SSM框架三板斧从头玩到底。我入职了一个初创型的互联网项目团队,在迅速融入工作环境以后,我就开始上手写起了CRUD代码。虽然不知道底层原理, 但是SSM模版代码已经烂熟于心,再加上有一些在以前工作时学习到的基础和避坑的经验,比如空值验证,防止重复提交等, ...

2018-08-29 15:51:00 140

原创 微服务架构基础之构建微服务

学习微服务架构,不但要了解微服务中的基本概念和重要组件,更重要的是实践。本文将会以一个电商中的常见业务场景为例构建微服务。在本文中,主要使用最新的SpringCloud( version:Finchley.SR1)体系进行构建。1 准备在开始本文之前,需要以下预备知识:熟悉Spring和SpringBoot了解微服务本文会使用SpringCloud中的一些...

2018-08-28 15:47:00 167

原创 redis整合Spring之序列化对象与反序列化

写在最前面1.Spring必须是4.2.6及以上版本才支持redis2.jar包版本建议统一需要准备jar包1.aopalliance-1.0.jar2.spring-data-commons-1.8.4.RELEASE.jar3.spring-data-redis-1.8.4.RELEASE.jar正文1.在spring配置文件中添加配置该值 且 空闲连...

2018-08-28 15:28:00 564

原创 java web是什么原理?

如果你是70、80后的程序员,你一定要看一看这篇文章,保证满满的回忆。如果你是90后,那你更要看看这篇文章,因为你能找到java web发展的历史。言归正传,Java语言能长期霸占语言排行榜一个重要的原因就是强大的web开发能力,web开发是java的基石(在EJB推出的时候当时的Sun用基石来描述EJB),所以了解java web开发原理是非常重要的。如...

2018-08-27 17:36:00 317

原创 2018年5-8月面试经历总结:阿里面试题

第一轮:电话初面第二轮:技术面谈【技术职位尽量避免多谈管理上的工作】第三轮:高管复试第四轮:HR最后确认一面:首先确认对阿里的意向度(如果异地更会考虑对工作地点(杭州)的意向度!阿里很看重这个);其次面试官一般会针对您所做过的项目来做具体技术的交流,会比较关注个人对项目细节是不是掌握到位,主要考察java的技术基础和原理,比如Spring框架以...

2018-08-27 16:18:00 373

原创 mybatisplus使用小结

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

2018-08-27 16:04:00 244

原创 为什么说Java程序员必须掌握 Spring Boot?

Spring Boot 2.0 的推出又激起了一阵学习 Spring Boot 热,那么, Spring Boot 诞生的背景是什么?Spring 企业又是基于什么样的考虑创建 Spring Boot? 传统企业使用 Spring Boot 会给我们带来什么样变革?带着这些问题,我们一起来了解下 Spring Boot 到底是什么?Spring 历史说起 ...

2018-08-26 20:25:00 116

原创 架构师带你玩转分布式锁

大多数互联网系统都是分布式部署的,分布式部署确实能带来性能和效率上的提升,但为此,我们就需要多解决一个分布式环境下,数据一致性的问题。当某个资源在多系统之间,具有共享性的时候,为了保证大家访问这个资源数据是一致的,那么就必须要求在同一时刻只能被一个客户端处理,不能并发的执行,否者就会出现同一时刻有人写有人读,大家访问到的数据就不一致了。一、我们为什么需要分...

2018-08-26 19:24:00 46

原创 程序员这样面试,拿到offer的几率是80%

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

2018-08-24 17:24:00 138

原创 如何在Spring Boot应用程序中使用Redis?

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

2018-08-24 16:52:00 97

原创 Java面试:投行的15个多线程和并发面试题

多线程和并发问题已成为各种 Java 面试中必不可少的一部分。如果你准备参加投行的 Java 开发岗位面试,比如巴克莱银行(Barclays)、花旗银行(Citibank)、摩根史坦利投资公司(Morgan Stanley),你会遇到很多有关多线程的面试题。多线程和并发是投行面试的热门知识点,尤其是在面试有关电子交易开发工作时,他们喜欢用棘手的 Java ...

2018-08-23 21:23:00 505

原创 java多线程的杂谈

java的多线程的概念,向来都是很复杂、笼统、抽象的。现实世界只有将知识点抽象过后才能有效的传播,但是传播的过程中,只有将抽象的知识点具象化,我们才能习得。所以我们会将个别内容点进行一个具象化进而解剖。当我们理解完了之后最终将其抽象成一个个名词:多线程、资源、锁等。本文仅从以下的范围内容来谈谈java的多线程。何为线程,线程的作用资源的控制,锁的介绍线程池...

2018-08-23 21:14:00 300

原创 深度学习三大框架(对比)

人工智能的浪潮正席卷全球,诸多词汇时刻萦绕在我们的耳边,如人工智能,机器学习,深度学习等。“人工智能”的概念早在1956年就被提出,顾名思义用计算机来构造复杂的,拥有与人类智慧同样本质特性的机器。经过几十年的发展,在2012年后,得益于数据量的上涨,运算力的提升和机器学习算法(深度学习)的出现,人工智能开始大爆发。但目前的科研工作都集中在弱人工智能部分,即...

2018-08-22 16:50:00 2566

原创 为什么要用Redis

最近阅读了《Redis开发与运维》,非常不错。这里对书中的知识整理一下,方便自己回顾一下Redis的整个体系,来对相关知识点查漏补缺。按照五点把书中的内容进行一下整理:为什么要选择Redis:介绍Redis的使用场景与使用Redis的原因;Redis常用命令总结:包括时间复杂度总结与具体数据类型在Redis内部使用的数据结构;Redis的高级功能:包括持久...

2018-08-22 16:37:00 74

原创 一分钟理解Java包装类型

Java 一直标榜自己是一个纯粹的面向对象语言,自作聪明的为所有的值类型都提供相应的引用类型(不明白这两个概念,看之前的《一分钟理解传值和传引用》)比如:int 类型对应的有 Integer,前者是一个值,后者是一个引用。为了方便二者的转换又一个叫“自动拆装箱”的特性,把本来清晰的概念搞的乱七八糟。一个优秀的语言应该语法简单,语义单一、清晰。本文讨论...

2018-08-21 22:42:00 78

原创 一文让你彻底理解 Java NIO 核心组件

同步、异步、阻塞、非阻塞首先,这几个概念非常容易搞混淆,但NIO中又有涉及,所以总结一下[1]。同步:API调用返回时调用者就知道操作的结果如何了(实际读取/写入了多少字节)。异步:相对于同步,API调用返回时调用者不知道操作的结果,后面才会回调通知结果。阻塞:当无数据可读,或者不能写入所有数据时,挂起当前线程等待。非阻塞:读取时,可以读多少数据就读多少然...

2018-08-21 22:23:00 65

原创 这可能是目前最全的Redis高可用技术解决方案总结

本文主要针对Redis常见的几种使用方式及其优缺点展开分析。一、常见使用方式Redis的几种常见使用方式包括:Redis单副本;Redis多副本(主从);Redis Sentinel(哨兵);Redis Cluster;Redis自研。二、各种使用方式的优缺点1、Redis单副本Redis单副本,采用单个Redis节点部署架构,没有备用节点实时同步数据,不...

2018-08-21 15:43:00 131

原创 Java大数据带你走上人生巅峰

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

2018-08-19 20:28:00 174

原创 Java工程师校招面经总结

讯飞一面(电话面 1对2) 2016年8月23日 时间 40分钟左右 Ø 自我介绍 Ø 说说项目 Ø 数据库内外网交换怎么做的,如果交换给你做,你怎么做 Ø 你知不知道一些第三方的组件能够完成数据库的交换 Ø Web service的介绍,是怎么编写的 Ø L...

2018-08-18 20:24:00 604

原创 Java工程师常用Linux命令大全

JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。一:Class类在面向对象的世界里,万物皆对象。类也是对象,类是java.lang.Class类的实例对象。Class类的实例表示正在运行的 Java 应用程...

2018-08-17 22:29:00 101

原创 SpringBoot整合Mybatis+Druid

1.SpringBoot 作为一款约定大于配置的微服务框架,得到了业界的大量推广和应用。对SpringBoot的学习使用可以有效的帮助开发简化开发流程,配置过程,部署过程。2.数据库的交互是开发过程中很常见的一种业务,数据层的接入方式众多,JDBC,Spring JdbcTemplate,Hibernate,Mybatis等等。传统的JDBC因为模板代码众...

2018-08-16 19:49:00 328

原创 大型互联网公司必备的架构技术栈——分布式架构、高可扩展、高性能、高并发、性能优化、Spring boot、Redis、ActiveMQ、Nginx、Mycat、Netty、Jvm大型分布式项目实......

性JVM调优Java程序性能优化TomcatMysqlSpring IOCSpring AOPSpring MVCSpring 5新特性Mybatis分布式架构架构核心服务层技术架构关键技术设施分布式消息通讯 异步于MQ分布式缓存RedisMemcachedMongoDB数据存储高并发分流技术Nginx分布式解决方案应用框架源码解读...

2018-08-11 19:49:00 707

原创 12个提高Java程序员工作效率的工具!

Java开发者常常都会想办法如何更快地编写Java代码,让开发过程变得更加轻松,更加高效。目前,市面上涌现出越来越多的高效编程工具。团长总结了几个常用的工具,其中包含了大多数开发人员已经使用、正在使用或将来一定会用到的高效工具。1、EclipseEclipse是最有名也最广泛使用的Java集成开发环境(IDE),允许开发者结合语言支持和其他功能到任何的默认...

2018-08-11 17:19:00 140

空空如也

空空如也

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

TA关注的人

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