自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java设计模式-单例模式:单例的六种实现

确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。UML类图单例类的构造函数是private内部私有的,确保外部不能通过new的方式创建新对象,内部自行实例化,并对外提供一个访问该单一实例的静态的方法Instance()。单例模式的实现普通饿汉式/** * 普通饿汉式 * * @author anlingyi */public cla...

2019-05-23 15:12:06 193

原创 揭秘Java Web技术内幕,别让CRUD麻木了你!

在JavaWeb学习研究中,Servlet扮演重要的作用,学好它,是后续JavaWeb学习的良好基础。无论是SSH,还是SSM,微服务JavaWeb技术,都应先学好Servlet,从而达到事半功倍的效果,本篇将主要分析Servlet的运行原理。一、UML下图为Servlet UML关系图。从图中可以看出: 抽象类HttpServlet继承抽象类GenericServlet...

2019-05-23 15:03:11 220

原创 这样讲 SpringBoot 自动配置原理,你应该能明白了吧

小伙伴们是否想起曾经被 SSM 整合支配的恐惧?相信很多小伙伴都是有过这样的经历的,一大堆配置问题,各种排除扫描,导入一个新的依赖又得添加新的配置。自从有了 SpringBoot 之后,咋们就起飞了!各种零配置开箱即用,而我们之所以开发起来能够这么爽,自动配置的功劳少不了,今天我们就一起来讨论一下 SpringBoot 自动配置原理。本文主要分为三大部分: SpringBoot 源码...

2019-05-23 14:58:18 217

原创 Java开发环境的配置

第一阶段 JAVA基础知识第一章 开发环境的配置知识铺垫:Dos 命令DOS命令,计算机术语,是指DOS操作系统的命令,是一种面向磁盘的操作命令,主要包括目录操作类命令、磁盘操作类命令、文件操作类命令和其它命令。这是什么意思呢?我们先来看一看这究竟是什么东西呢通过 快捷键Win + R可以调出 运行窗口我们输入cmd 后回车即可调出命令提示符界面,是不是感觉B格...

2019-05-22 22:08:47 203

原创 Java并发编程,深入理解ReentrantLock

ReentrantLock简介ReentrantLock重入锁,是实现Lock接口的一个类,也是在实际编程中使用频率很高的一个锁, 支持重入性,表示能够对共享资源能够重复加锁,即当前线程获取该锁再次获取不会被阻塞。 ReentrantLock还支持公平锁和非公平锁两种方式。 那么,要想完完全全的弄懂ReentrantLock的话, 主要也就是ReentrantLock同步语义的学习:...

2019-05-22 21:18:42 161

原创 Java程序员需要突破的技术要点

一、源码分析源码分析是一种临界知识,掌握了这种临界知识,能不变应万变,源码分析对于很多人来说很枯燥,生涩难懂。源码阅读,我觉得最核心有三点:技术基础+强烈的求知欲+耐心。我认为是阅读源码的最核心驱动力。我见到绝大多数程序员,对学习的态度,基本上就是这几个层次(很偏激哦):1、只关注项目本身,不懂就baidu一下。2、除了做好项目,还会阅读和项目有关的技术书籍,看wikipedi...

2019-05-22 14:23:41 201

原创 Java包装类、拆箱和装箱详解

虽然 Java 语言是典型的面向对象编程语言,但其中的八种基本数据类型并不支持面向对象编程,基本类型的数据不具备“对象”的特性——不携带属性、没有方法可调用。 沿用它们只是为了迎合人类根深蒂固的习惯,并的确能简单、有效地进行常规数据处理。这种借助于非面向对象技术的做法有时也会带来不便,比如引用类型数据均继承了 Object 类的特性,要转换为 String 类型(经常有这种需要)时只要简单调用...

2019-05-22 14:18:48 172

原创 Java程序员架构项目介绍秘籍,怎么让面试官眼前一亮对你赞不绝口。

在面试时,经过寒暄后,一般面试官会让介绍项目经验 。常见的问法是,说下你最近的(或最拿得出手的)一个项目。根据我们的面试经验,发现有不少候选人对此没准备,说起来磕磕巴巴,甚至有人说出项目经验从时间段或技术等方面和简历上的不匹配,这样就会造成如下的后果。1 第一印象就不好了,至少会感觉该候选人表述能力不强。2 一般来说,面试官会根据候选人介绍的项目背景来提问题,假设面试时会问10个问题,...

2019-05-21 14:15:04 592

原创 一个Java开发岗位秒收2000+简历!

5月15日,鹅厂腾讯发布了2019年第一季财报,财报显示,截至2019年3月31日,腾讯有5.46万名雇员,第一季度总酬金成本为人民币116.16亿元。以此计算,2019年第一季度,腾讯员工平均月薪7.09万元。在此之后,高薪的Java开发岗位也受到了许多程序员的关注,据透露,某公司一Java工作短短2天时间就收到了2143份简历,筛掉一些不满足条件的都还有1844份简历,可见目前高薪岗位...

2019-05-21 14:05:00 1157

原创 Java并发 -- Fork + Join

线程池+Future:简单并行任务 CompletableFuture:聚合任务 CompletionService:批量并行任务 Fork/Join:分治分治任务模型分治任务模型分为两个阶段:任务分解 + 结果合并 任务分解:将任务迭代地分解为子任务,直至子任务可以直接计算出结果 任务和分解后的子任务具有相似性(算法相同,只是计算的数据规模不同,往往采用递...

2019-05-21 13:59:38 326

原创 Java开发人员最常犯的10个错误

这个列表总结了10个Java开发人员最常犯的错误。Array转ArrayList当需要把Array转成ArrayList的时候,开发人员经常这样做:List<String>list=Arrays.asList(arr);Arrays.asList()会返回一个ArrayList,但是要特别注意,这个ArrayList是Arrays类的静态内部类,并...

2019-05-20 14:53:45 193

原创 深入SpringBoot核心注解原理

今天跟大家来探讨下SpringBoot的核心注解@SpringBootApplication以及run方法,理解下springBoot为什么不需要XML,达到零配置首先我们先来看段代码@SpringBootApplicationpublic class StartEurekaApplication{ public static void main(String[] args)...

2019-05-20 14:20:16 222

转载 13个Spring Boot 优质开源项目!超53K星,一网打尽!

Spring Boot 算是目前 Java 领域最火的技术栈了,也是Java开发人员不得不掌握的技术,今天给大家整理了13个优质 Spring Boot 开源项目给大家参考,希望能够帮助到正在学习 Spring Boot 的小伙伴!小伙伴简历中不知道写什么项目的或者项目没有亮点的,我只能帮你们到这了!下边的项目排名不分先后!一、mallstar 数 12.7k,项目地址:https...

2019-05-20 13:56:28 390

原创 小技巧,用最低的成本,提高你的代码稳壮性

配置参数启动时校验如果配置文件没有相关的配置,那么**启动时**就会出现以下异常:Description:Binding to target com.toby.provide.ApplicationProperties@31da6b2e failed: Property: feichao.info.name Value: null Reason: 名...

2019-05-20 13:53:37 190

原创 Java语言特点与学习

Java语言是一款面向对象的一款高级语言是由Sun Microsystems公司(现已被oracle公司收购)。由James Gosling和同事们共同研发,并在1995年正式推出,据oracle官方数据指数,目前全球已有上亿的系统是使用Java开发的。Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易...

2019-05-20 13:43:14 879

原创 Java数据结构—分析底层实现与应用注意事项

java把内存分两种:一种是栈内存,另一种是堆内存 基本类型在栈区分配空间,java的基本数据类型共有8种,即int,short,long,byte,float,double,boolean,char(注意,并没有String的基本类型 )。由于大小可知,生存期可知(这些字面值定义在某个程序块里面,程序块退出后,字段值就消失了),出于追求速度的原因,就存在于栈中。 所有的对象都在堆...

2019-05-18 14:38:38 198

原创 2019 程序员下半年跳槽如何找准方向?资深顾问告诉你!

作为一名即将求职的程序员,面对一个可能跟近些年非常不同的 2019 年,你的就业机会和风口会出现在哪里?在这种新环境下,工作应该选择大厂还是小公司?已有几年工作经验的老兵,又应该如何保持和提升自身竞争力,转被动为主动?针对这些问题,资深职业顾问Osborn将从他丰富的候选人和互联网企业客户的服务经验出发,在本文中为你分析 2019 年程序员求职的必备技能和职业规划技巧。2019 年程序...

2019-05-18 14:33:53 567

原创 Kotlin、Retrofit、RxJava优雅实现REST API请求

Retrofit是非常强大的网络请求方案,虽然官方也有adapter-rxjava2库,但是我觉得并不好用,其实通过Kotlin的拓展属性即可实现非常好用的方案。REST API每个工程师定义的REST API都不太一样,但是基本的思路都是一样。如果没有出现异常就是返回对象或者返回空对象; 如果请求出现错误,HTTP的statusCode是大于400,只有请求正常才是2xx。 如果...

2019-05-18 14:20:42 421

原创 Spring Boot 高级篇搜索之 Solr 环境搭建与简单测试

搜索可以说是非常常见的场景了,一般选择比较多的有solr和es,底层都是基于Lucene搜索引擎实现。之前简单的使用过solr,一直没有成体系的学习过,正好需要给一个内部项目封装统一的查询组件,借这个机会好好的撸一把solr的知识要点I. Solr环境搭建1. docker方式安装solr使用docker实现solr环境的搭建,快速简洁docker pull solr启...

2019-05-18 14:15:40 743

原创 Java设计模式综合运用(门面+模版方法+责任链+策略)

1.项目背景在公司的一个实际项目中,需要做一个第三方公司(以下简称GMG)的系统集成工作,把该公司的一些订单数据集成到自己公司平台下,各个订单具有一些共性,但是也有其特有的特征。 经过设计,目前我把订单分为POLICY和BOB类型(暂且这么说吧,反正就是一种订单类型,大家参照着看就OK)。在订单数据集成到公司平台前,需要对订单数据进行一些必要的业务逻辑校验操作,并且每个订单都有自己的校验逻...

2019-05-18 14:10:14 346

原创 Java锁,真的有这么复杂吗?

为什么使用synchronizedvolatile,在多线程下可以保证变量的可见性,但是不能保证原子性,下面一段代码说明:运行上面代码,会发现输出flag的值不是理想中10000,虽然volatile写入时候会通知其他线程的工作内存值无效,从主内存重写读取。i++是三步操作,读取-赋值-写入不能保证原子性。原子性:不能被中断要么成功要么失败。比如此时主内存的flag值10,线程1...

2019-05-18 14:07:19 174

原创 Java设计模式综合运用(动态代理+Spring AOP)

AOP设计模式通常运用在日志,校验等业务场景,本文将简单介绍基于Spring的AOP代理模式的运用。1. 代理模式1.1 概念代理(Proxy)是一种提供了对目标对象另外的访问方式,即通过代理对象访问目标对象。这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能。这里使用到编程中的一个思想:不要随意去修改别人已经写好的代码或者方法,如果需改修改,可以...

2019-05-18 14:06:37 270

原创 Spring Security认证提供程序

1.简介本教程将介绍如何在SpringSecurity中设置身份验证提供程序,与使用简单UserDetailsService的标准方案相比,提供了额外的灵活性。2. The Authentication ProviderSpring Security提供了多种执行身份验证的选项 - 所有这些都遵循简单的规范 - 身份验证请求由Authentication Provider处理,并且返...

2019-05-18 14:01:55 167

原创 万万没想到,竟然栽在了List手里

使用Guava做缓存,往里面存一个List,为了方便描述,称它为列表A,在另一个地方取出来,再跟列表B中的元素进行差集处理,简单来说,就像是下面这样:public class ArrayListTest { // 方便起见,这里用HashMap来做缓存 private Map<String, List<Long>> cache = new HashMa...

2019-05-18 13:55:08 196

原创 如何对两个列表进行乱序处理,同时保持它们的一一对应的关系?

如何对两个列表进行乱序处理,同时保持它们的一一对应的关系?已知我们有两个列表public class RandomizeTwoList { public static String [] file = {"H1.txt","H2.txt","H3.txt","M4.txt","M5.txt","M6.txt"}; public static ArrayList<St...

2019-05-17 15:42:42 1741

原创 Spring任务执行和调度

1 概述Spring框架分别使用TaskExecutor和TaskScheduler接口提供异步执行和任务调度的抽象。Spring还提供了这些接口的实现,这些接口支持线程池或将其委托给应用服务器环境中的CommonJ。2 TaskExecutorSpring 2.0 开始引入的新的抽像。Executors 是线程池的Java 5名称。之所以称作是“执行器”是因为不能保证底层实现实际上是...

2019-05-17 15:39:42 607

原创 Spring Cloud微服务如何设计异常处理机制?

导读今天和大家聊一下在采用SpringCloud进行微服务架构设计时,微服务之间调用时异常处理机制应该如何设计的问题。我们知道在进行微服务架构设计时,一个微服务一般来说不可避免地会同时面向内部和外部提供相应的功能服务接口。面向外部提供的服务接口,会通过服务网关(如使用Zuul提供的apiGateway)面向公网提供服务,如给App客户端提供的用户登陆、注册等服务接口。而面向内部的服务接口...

2019-05-17 15:33:41 226

原创 一文透析 Spring Boot、微服务架构和大数据治理三者之间的故事

微服务架构微服务的诞生并非偶然,它是在互联网高速发展,技术日新月异的变化以及传统架构无法适应快速变化等多重因素的推动下诞生的产物。互联网时代的产品通常有两类特点:需求变化快和用户群体庞大,在这种情况下,如何从系统架构的角度出发,构建灵活、易扩展的系统,快速应对需求的变化;同时,随着用户的增加,如何保证系统的可伸缩性、高可用性,成为系统架构面临的挑战。如果还按照以前传统开发模式,开发一个...

2019-05-17 15:30:50 200

原创 Android 开发究竟是选择 Java 还是 Kotlin?Google 有话说

Google 对于从 Java 切换到 Kotlin 时的注意事项提供了第一手的经验,本文对此作了详细阐述。来源:medium.com作者 | Nick Heath译者 | 苏本如,责编 | 屠敏出品 | CSDN(ID:CSDNnews)Google 一直在权衡是否让它的 Android 开发者从使用 Java 语言来构建应用程序切换到使用 Kotlin 语言。Goo...

2019-05-17 14:13:54 1182

原创 mysql-connector-java 插入 utf8mb4 字符失败问题处理分析

问题说明业务数据库实例的编码由 utf8 修改为 utf8mb4 后, java 业务插入表情符等宽字符(4 字节)的时候一直报错以下相关的错误:### Cause:java.sql.SQLException:Incorrect string value:\xF0\x9F\x98\x8E for column nick_name at row 1;uncategorized SQLEx...

2019-05-17 14:08:51 3493 1

原创 Java动态编程初探

动态编程是相对于静态编程而言的,平时我们讨论比较多的静态编程语言例如Java, 与动态编程语言例如JavaScript相比,二者有什么明显的区别呢? 简单的说就是在静态编程中,类型检查是在编译时完成的,而动态编程中类型检查是在运行时完成的, 所谓动态编程就是绕过编译过程在运行时进行操作的技术。动态编程使用场景通过配置生成代码,减少重复编码,降低维护成本。 AOP的一种实现方式,方便实现性...

2019-05-17 14:07:34 298

原创 查看依赖第三方jar最低要求运行的jdk版本

最近在比较阿里巴巴的easyexcel和easypoi的excel导出功能哪个强大。两者的demo我都是写在同一个工程里面的,easyexcel的demo是先写的,使用起来方便简洁。然后开始写easypoi的demo时,首先出现了依赖下载不了,依赖能下载之后,还出现了下面的乱七八糟的问题:Handler dispatch failed; nested exception is java.la...

2019-05-17 14:06:04 2056

原创 【JSP代码审计】从代码审计的角度看系统接口的安全性

0x00 前言代码审计的系统为某计费系统,本着学习交流的态度对本系统进行了审计,在审计过程中发现了诸多安全问题,本文在此列出几项比较经典的漏洞。在此感谢花茶安全团队的天堂空气提供的源码。0x01 XSS漏洞在路由userdatachange中存在XSS漏洞,此路由为用户资料修改页面,在此路由中,并不存在XSS漏洞,原因是该系统存在XSS过滤器,但是并不会影响我们保存在数据库中的数据,此...

2019-05-17 13:57:19 732

原创 【Java】NIO中Channel的注册源码分析

Channel的注册是在SelectableChannel中定义的:1 public abstract SelectionKey register(Selector sel, int ops, Object att)2 throws ClosedChannelException;3 4 public final SelectionKey regist...

2019-05-17 13:55:36 184

原创 (java)五大常用算法

算法一:分治法基本概念1.把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。2.分治策略是对于一个规模为n的问题,若该问题可以容易地解决(比如说规模n较小)则直接解决,否则将其分解为k个规模较小的子问题,这些子问题互相独立且与原问题形式相同,递归地解这些子问题,然后将各子问题的解合并得到原问...

2019-05-16 15:53:26 526

原创 程序员笔记|详解Eureka缓存机制

Eureka是Netflix开源的、用于实现服务注册和发现的服务。Spring Cloud Eureka基于Eureka进行二次封装,增加了更人性化的UI,使用更为方便。但是由于Eureka本身存在较多缓存,服务状态更新滞后,最常见的状况是:服务下线后状态没有及时更新,服务消费者调用到已下线的服务导致请求失败。本文基于Spring Cloud Eureka 1.4.4.RELEASE,在默认reg...

2019-05-16 15:46:17 262

原创 spring事务机制及一种简单的主从设置

REQUIRED: 支持事务,如果当前无事务则创建一个事务 SUPPORTS: 支持事务,如果当前无事务则在无事务环境运行 MANDATORY: 强制事务模式,如果当前无事务则抛出异常 REQUIRES_NEW:创建一个新事务,如果当前存在事务则挂起当前事务。 NOT_SUPPORTED: 不支持事务,如果当前存在事务则挂起当前事务 NEVER:不支持事务,如果当前存在事务则抛出异常 ...

2019-05-16 15:43:42 219

转载 Java之Retry重试机制详解

应用中需要实现一个功能: 需要将数据上传到远程存储服务,同时在返回处理成功情况下做其他操作。这个功能不复杂,分为两个步骤:第一步调用远程的Rest服务上传数据后对返回的结果进行处理;第二步拿到第一步结果或者捕捉异常,如果出现错误或异常实现重试上传逻辑,否则继续接下来的功能业务操作。常规解决方案try-catch-redo简单重试模式在包装正常上传逻辑基础上,通过判断返回结果或监听异常决...

2019-05-16 15:42:06 399

原创 Spring Security 入门原理及实战

Matchers("/admin/**").hasRole("ADMIN") .anyRequest().authenticated() .and() .formLogin().and() .httpBasic(); }这个配置在上一步中登录配置的基础上增加...

2019-05-16 15:08:03 672

原创 maven构建java项目工具介绍

一、maven用途java在创建项目的时候,可以自己手动创建,也可以利用工具创建,也就是maven来创建。 maven可以用来创建项目、部署项目、安装管理依赖、编译代码、管理二进制等。 maven的目的是使项目过程规范化、自动化、高效化及强大的可扩展性。 利用maven自身和插件获得代码检查报告、单元测试覆盖率、实现持续集成 maven最主要的用途是依赖管理,如果不使用maven,项目...

2019-05-16 15:03:40 283

空空如也

空空如也

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

TA关注的人

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