自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 3年Java开发都知道的Redis数据结构和通用命令

Redis的数据结构Redis支持多种不同的数据结构,包括5种基础数据结构和几种比较复杂的数据,这些数据结构可以满足不同的应用场景。五种基础数据结构 String:字符串,是构建其他数据结构的基础 Hash:哈希列表 List:列表 Set:集合,在哈希列表的基础上实现 Sort Set:有序集合 复杂的数据结构 Bitmaps:...

2019-08-31 15:16:28 172

原创 8月份21道最新Java面试题剖析(数据库+JVM+微服务+高并发)

前言纵观几年来的Java面试题,你会发现每家都差不多。你仔细观察就会发现,HashMap的出现几率未免也太高了吧!连考察的知识点都一样,什么hash碰撞啊,并发问题啊!再比如JVM,无外乎考内存结构,GC算法等!因此,如果是为了面试,完全是有套路可以准备的!记住,基础再好,也架不住面试官天马行空的问,所以刷面试题还是很有必要的!1、Map 的底层结构?(HashMap)评注:老题目...

2019-08-30 19:24:24 236

原创 35个Java代码优化的细节,你知道几个?

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

2019-08-29 21:46:10 151

原创 搞清楚Spring Cloud架构原理的这4个点,轻松应对面试

前言现在分布式系统基本上都是标配了,如果你现在还在玩儿单机,没有接触过这些东西的话,权当是为你打开一扇新的大门吧。大的单体项目以前我们做单机系统的时候,所有的代码都在一个项目里面,只是不同的模块按照包名来划分的。我们以前做的一个某省的教育项目,有学生信息和就业系统、有高校培训系统、有一个人资系统等一共六个,4个小伙伴都在一个代码里面进行开发,各个系统之间有一定的联系,但是大部分是不...

2019-08-29 17:16:59 203

原创 还不懂MySQL索引?这1次彻底搞懂B+树和B-树

前言看了很多关于索引的博客,讲的大同小异。但是始终没有让我明白关于索引的一些概念,如B-Tree索引,Hash索引,唯一索引….或许有很多人和我一样,没搞清楚概念就开始研究B-Tree,B+Tree等结构,导致在面试的时候答非所问!索引是什么?索引是帮助MySQL高效获取数据的数据结构。索引能干什么?提高数据查询的效率。索引:排好序的快速查找数据结构!索引会影响...

2019-08-28 21:53:42 282

原创 11条MySQL规范,你知道的有几个?

一、数据库命令规范· 所有数据库对象名称必须使用小写字母并用下划线分割· 所有数据库对象名称禁止使用mysql保留关键字(如果表名中包含关键字查询时,需要将其用单引号括起来)· 数据库对象的命名要能做到见名识意,并且最后不要超过32个字符· 临时库表必须以tmp_为前缀并以日期为后缀,备份表必须以bak_为前缀并以日期(时间戳)为后缀· 所有存储相同数据的列名和列类型必须一致(...

2019-08-28 17:23:18 281

原创 4个点说清楚Java中synchronized和volatile的区别

作者 : Hollis回顾一下两个关键字:synchronized和volatile1、Java语言为了解决并发编程中存在的原子性、可见性和有序性问题,提供了一系列和并发处理相关的关键字,比如synchronized、volatile、final、concurren包等。2、synchronized通过加锁的方式,使得其在需要原子性、可见性和有序性这三种特性的时候都可以作为其中一种解决...

2019-08-27 21:40:19 312

原创 还不知道如何实践微服务的Java程序员,这遍文章千万不要错过!

作者:古霜卡比前言本文将介绍微服务架构和相关的组件,介绍他们是什么以及为什么要使用微服务架构和这些组件。本文侧重于简明地表达微服务架构的全局图景,因此不会涉及具体如何使用组件等细节。要理解微服务,首先要先理解不是微服务的那些。通常跟微服务相对的是单体应用,即将所有功能都打包成在一个独立单元的应用程序。从单体应用到微服务并不是一蹴而就的,这是一个逐渐演变的过程。本文将以一个网上超市应用为...

2019-08-27 17:31:37 356

原创 14个Java并发容器,你用过几个?

作者:acupt前言不考虑多线程并发的情况下,容器类一般使用ArrayList、HashMap等线程不安全的类,效率更高。在并发场景下,常会用到ConcurrentHashMap、ArrayBlockingQueue等线程安全的容器类,虽然牺牲了一些效率,但却得到了安全。上面提到的线程安全容器都在java.util.concurrent包下,这个包下并发容器不少,今天全部翻出来鼓捣一下...

2019-08-26 20:06:04 512

原创 分布式事务解决方案,中间件 Seata 的设计原理详解

作者:张乘辉前言在微服务架构体系下,我们可以按照业务模块分层设计,单独部署,减轻了服务部署压力,也解耦了业务的耦合,避免了应用逐渐变成一个庞然怪物,从而可以轻松扩展,在某些服务出现故障时也不会影响其它服务的正常运行。总之,微服务在业务的高速发展中带给我们越来越多的优势,但是微服务并不是十全十美,因此不能盲目过度滥用,它有很多不足,而且会给系统带来一定的复杂度,其中伴随而来的分布式事务问题,...

2019-08-26 17:25:02 532

原创 一篇文章搞明白Integer、new Integer() 和 int 的概念与区别

基本概念的区分1、Integer 是 int 的包装类,int 则是 java 的一种基本数据类型2、Integer 变量必须实例化后才能使用,而int变量不需要3、Integer 实际是对象的引用,当new一个 Integer时,实际上是生成一个指针指向此对象;而 int 则是直接存储数据值4、Integer的默认值是null,int的默认值是0Integer、ne...

2019-08-25 21:29:48 598

原创 一线大厂面试官最喜欢问的15道Java多线程面试题

前言在任何Java面试当中多线程和并发方面的问题都是必不可少的一部分。如果你想获得更多职位,那么你应该准备很多关于多线程的问题。他们会问面试者很多令人混淆的Java线程问题。面试官只是想确信面试者有足够的Java线程与并发方面的知识,因为候选人中有很多只浮于表面。现在引用Java5并发包关于并发工具和并发集合的问题正在增多。那些问题中ThreadLocal、Blocking Queue、C...

2019-08-25 17:16:14 346

原创 70道阿里百度高频Java面试题(框架+JVM+多线程+算法+数据库)

基础与框架1.String类能被继承吗,为什么2.String,Stringbuffer,StringBuilder的区别?3.ArrayList和LinkedList有什么区别4.类的实例化顺序,比如父类静态数据,构造函数,字段,子类静态数据,构造函数,字段,他们的执行顺序5.用过哪些Map,都有什么区别,HashMap是线程安全的吗,并发下使用的Map是什么,他们内部原理分...

2019-08-23 19:58:36 1382 3

原创 一遍文章搞清楚VO、DTO、DO、PO的概念、区别

作者:Cat Qi一、概念 VO(View Object):视图对象,用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来。 DTO(Data Transfer Object):数据传输对象,这个概念来源于J2EE的设计模式,原来的目的是为了EJB的分布式应用提供粗粒度的数据实体,以减少分布式调用的次数,从而提高分布式调用的性能和降低网络负载,但在这里,我泛指...

2019-08-23 15:55:31 829

原创 3年Java开发10面阿里、京东、拼多多

拼多多地点:2号线娄山关路地铁站(金虹桥国际中心)环境:新的写字楼,环境很好,有种高大上的感觉。大厅进入后需要登记,然后进闸机。电梯是需要刷卡才能使用的。会议室都是用城市名称命名,例如杭州、香港等,每个会议室都配了很多纯净水等,感觉不差钱。约的是晚上面试,所以正好碰到员工吃饭时间,感觉就像赶集一样,人特别多,11 11 6的作息时间你懂得。面试流程:前台登记,填写个人信息表,然后等面试...

2019-08-22 19:50:47 390

原创 4个影响缓存命中率的因素,你知道几个?

一、缓存命中率的介绍命中:可以直接通过缓存获取到需要的数据。不命中:无法直接通过缓存获取到想要的数据,需要再次查询数据库或者执行其它的操作。原因可能是由于缓存中根本不存在,或者缓存已经过期。通常来讲,缓存的命中率越高则表示使用缓存的收益越高,应用的性能越好(响应时间越短、吞吐量越高),抗并发的能力越强。由此可见,在高并发的互联网系统中,缓存的命中率是至关重要的指标。...

2019-08-22 14:49:08 2384

原创 3年java开发面试BAT,你必须彻底搞定Maven!

前言现在的Java项目中,Maven随处可见。Maven的仓库管理、依赖管理、继承和聚合等特性为项目的构建提供了一整套完善的解决方案,如果你搞不懂Maven,那么一个多模块的项目足以让你头疼,依赖冲突就会让你不知所措,甚至搞不清楚项目是如何运行起来的...回想一下,当你新到一家公司,安装完JDK后就会安装配置Maven,很大可能性你需要修改settings.xml文件,比如你会修改本地...

2019-08-21 21:41:55 190

原创 HashMap面试必问的6个点,你知道几个?

一、HashMap的实现原理?此题可以组成如下连环炮来问 你看过HashMap源码嘛,知道原理嘛? 为什么用数组+链表? hash冲突你还知道哪些解决办法? 我用LinkedList代替数组结构可以么? 既然是可以的,为什么HashMap不用LinkedList,而选用数组? 1.你看过HashMap源码嘛,知道原理嘛?针对这个问题,嗯,当...

2019-08-21 19:58:27 483

原创 6种微服务RPC框架,你知道几个?

开源 RPC 框架有哪些呢?一类是跟某种特定语言平台绑定的,另一类是与语言无关即跨语言平台的。跟语言平台绑定的开源 RPC 框架主要有下面几种。 Dubbo:国内最早开源的 RPC 框架,由阿里巴巴公司开发并于 2011 年末对外开源,仅支持 Java 语言。 Motan:微博内部使用的 RPC 框架,于 2016 年对外开源,仅支持 Java 语言。 Tars:...

2019-08-20 21:43:11 651 2

原创 12个超好用的IntelliJ IDEA 插件!你用过几个?

一、前言IntelliJ IDEA如果说IntelliJ IDEA是一款现代化智能开发工具的话,Eclipse则称得上是石器时代的东西了。其实笔者也是一枚从Eclipse转IDEA的探索者,随着近期的不断开发实践和调试,逐步体会到这款智能IDE带来的巨大开发便利,在强大的插件功能支持下,诸如对Git和Maven的支持简直让人停不下来,各种代码提示,包括JS更是手到擒来,最终不得不被这款...

2019-08-20 17:29:49 4500

原创 3个Spring Boot核心注解,你知道几个?

Spring Boot 核心注解讲解Spring Boot 最大的特点是无需 XML 配置文件,能自动扫描包路径装载并注入对象,并能做到根据 classpath 下的 jar 包自动配置。所以 Spring Boot 最核心的 3 个注解就是:1、@Configurationorg.springframework.context.annotation.Configuration这是 ...

2019-08-19 21:05:03 259

原创 面试百度、阿里、腾讯,这134道Java面试题你会多少?

这里一共是134道Java面试题,看看你能对几道吧!Java 语言有哪些特点面向对象和面向过程的区别关于 JVM JDK 和 JRE 最详细通俗的解答Oracle JDK 和 OpenJDK 的对比Java 和 和 C++ 的区别6.什么是 Java 程序的主类 应用程序和小程序的主类有何不同Java 应用程序与小程序之间有那些差别字符型常量和字符串常量的区别构造器 Cons...

2019-08-19 19:35:29 948

原创 16个Spring注解,你知道的有几个?

@Controller标识一个该类是Spring MVC controller处理器,用来创建处理http请求的对象.@RestControllerSpring4之后加入的注解,原来在@Controller中返回json需要@ResponseBody来配合,如果直接用@RestController替代@Controller就不需要再配置@ResponseBody,默认返回json格式。...

2019-08-18 20:06:37 226

原创 一次性集中处理大量数据的定时任务,如何缩短执行时间?

作者:58沈剑问题抽象:(1)用户会员系统;(2)用户会有分数流水,每个月要做一次分数统计,对不同分数等级的会员做不同业务处理;数据假设:(1)假设用户在100w级别;(2)假设用户日均1条流水,也就是说日增流水数据量在100W级别,月新增流水在3kW级别,3个月流水数据量在亿级别;常见解决方案:用一个定时任务,每个月的第一天计算一次。//(1)查询出所有用户uids[] =...

2019-08-16 20:01:14 3020

原创 5种JVM垃圾收集器特点和8种JVM内存溢出原因

先来看看5种JVM垃圾收集器特点一、常见垃圾收集器现在常见的垃圾收集器有如下几种:新生代收集器:SerialParNewParallel Scavenge老年代收集器:Serial OldCMSParallel Old堆内存垃圾收集器:G1每种垃圾收集器之间有连线,表示他们可以搭配使用。二、新生代垃圾收集器(1)Serial 收集器Serial 是一款用于新生代的单...

2019-08-16 15:18:30 335

原创 双重检查锁单例模式为什么要用volatile关键字?

前言从Java内存模型出发,结合并发编程中的原子性、可见性、有序性三个角度分析volatile所起的作用,并从汇编角度大致说了volatile的原理,说明了该关键字的应用场景;在这补充一点,分析下volatile是怎么在单例模式中避免双检锁出现的问题的。并发编程的3个条件1、原子性:要实现原子性方式较多,可用synchronized、lock加锁,AtomicInteger等,但volat...

2019-08-15 19:23:26 3959 2

原创 一线互联网公司Redis使用精髓,你必须要掌握这4点!

先来看一下这些Redis面试题你会几道?1、什么是 Redis?简述它的优缺点?2、Redis 与 memcached 相比有哪些优势?3、Redis 支持哪几种数据类型?4、Redis 主要消耗什么物理资源?5、Redis 有哪几种数据淘汰策略?6、Redis 官方为什么不提供 Windows 版本?7、一个字符串类型的值能存储最大容量是多少?8、为什么 Redis 需要把所有数...

2019-08-15 15:11:48 354

原创 1个3年Java开发,为什么你的待遇还没新人高?

同是程序员,为什么你的薪资没有新人的高?当下程序员是个炙手可热的职位,在互联网行业打拼的人或许会遇到这个问题。老板宁愿花高薪招聘新人,而不情愿给公司的老员工加薪资,这就出现了在一个在公司工作几年的老员工的薪资没有新人高的现象,我们不妨把这种现象称之为“薪资倒挂”。那么为什么会出现“薪资倒挂” 这种现象呢?天下的老板都是傻X吗?他不怕老员工离职流失吗?答案是否定的。一般公司的涨薪制度是有规定的...

2019-08-14 20:08:40 1350

原创 有一部分程序员还不知道Java 中的注解到底是如何工作的?

作者:人晓自Java5.0版本引入注解之后,它就成为了Java平台中非常重要的一部分。开发过程中,我们也时常在应用代码中会看到诸如@Override,@Deprecated这样的注解。这篇文章中,我将向大家讲述到底什么是注解,为什么要引入注解,注解是如何工作的,如何编写自定义的注解(通过例子),什么情况下可以使用注解以及最新注解和ADF(应用开发框架)。这会花点儿时间,所以为自己准备一杯咖啡,...

2019-08-14 16:13:39 359

原创 这道面试必问的JVM面试题70%的Java程序员会做错

前言聊聊JVM,一个熟悉又陌生的名词,从认识Java的第一天起,我们就会听到这个名字,在参加工作的前一两年,面试的时候还会经常被问到JDK,JRE,JVM这三者的区别。JVM可以说和我们是老朋友了,但是在工作中的应用场景也许不如那些框架,但是在关键时候还是得靠它去搞定问题,俗话说得好,知己知彼,方能百战不殆,JVM作为前往高级工程师的一道坎,从这篇文章开始,我们会去逐步的分析,讲解,攻克这座大...

2019-08-13 20:07:14 276

原创 想要金九银十面试通关,不懂 Java多线程肯定是不行的!

作者 | 纳达丶无忌如果对什么是线程、什么是进程仍存有疑惑,请先 Google 之,因为这两个概念不在本文的范围之内。用多线程只有一个目的,那就是更好的利用 CPU 的资源,因为所有的多线程代码都可以用单线程来实现。说这个话其实只有一半对,因为反应“多角色”的程序代码,最起码每个角色要给他一个线程吧,否则连实际场景都无法模拟,当然也没法说能用单线程来实现:比如最常见的“生产者,消费者模型”。...

2019-08-13 17:19:53 181

原创 还怕不记得Spring Boot注解吗?5类注解全在这里了(建议收藏)

前言使用注解的优势:1.采用纯java代码,不在需要配置繁杂的xml文件2.在配置中也可享受面向对象带来的好处3.类型安全对重构可以提供良好的支持4.减少复杂配置文件的同时亦能享受到springIoC容器提供的功能Spring Boot的核心就是注解。Spring Boot通过各种组合注解,极大地简化了Spring项目的搭建和开发。在Spring Boot中有一些注解是其中的关键,必须...

2019-08-12 19:23:22 263

原创 Spring常用注解大全,收藏一波!!!

Spring部分1、声明bean的注解@Component 组件,没有明确的角色@Service 在业务逻辑层使用(service层)@Repository 在数据访问层使用(dao层)@Controller 在展现层使用,控制器的声明(C)2、注入bean的注解@Autowired:由Spring提供@Inject:由JSR-330提供@Resource:由JSR-250提供...

2019-08-12 16:00:10 6330 3

原创 90%的Java程序员不会的10到Java面试题

先来看看这10道Java面试题你会几道?1.为什么等待和通知是在 Object 类而不是 Thread 中声明的?2.为什么Java中不支持多重继承?3.为什么Java不支持运算符重载?4.为什么 String 在 Java 中是不可变的?5.为什么 char 数组比 Java 中的 String 更适合存储密码?6.如何使用双重检查锁定在 Java 中创建线程安全的单例?7. 编写...

2019-08-09 20:01:46 657

原创 在阿里Java大牛们都是这样对Java项目代码分层的

作者:咖啡拿铁代码分层,对于任何一个Java开发来说应该都不陌生。一个好的层次划分不仅可以能使代码结构更加清楚,还可以使项目分工更加明确,可读性大大提升,更加有利于后期的维护和升级。从另外一个角度来看,好的代码分层架构,应该是可以很好的匹配上单一职责原则的。这样就可以降低层与层之间的依赖,还能最大程度的复用各层的逻辑。本文就来介绍下Java 项目的代码到底应该如何分层。1.背景说起应用分层...

2019-08-09 15:05:52 1481

原创 一道78%的Java程序员搞不清的Spring bean面试题

熟悉Spring开发的朋友都知道Spring提供了5种scope分别是singleton、prototype、request、session、global session。如下图是官方文档上的截图,感兴趣的朋友可以进去看看这五种分别有什么不同。今天要介绍的是这五种中的前两种,也是Spring最初提供的bean scope singleton 和 prototype。Spring官方文档介绍如下...

2019-08-08 20:24:50 495

原创 20道BAT面试官最喜欢问的JVM+MySQL面试题(含答案解析)

1. 内存模型以及分区,需要详细到每个区放什么。JVM 分为堆区和栈区,还有方法区,初始化的对象放在堆里面,引用放在栈里面,class 类信息常量池(static 常量和 static 变量)等放在方法区new:方法区:主要是存储类信息,常量池(static 常量和 static 变量),编译后的代码(字节码)等数据堆:初始化的对象,成员变量 (那种非 static 的变量),所有的对...

2019-08-07 21:14:31 264

原创 70%的Java程序员不知道为啥 ConcurrentHashMap 读操作不需要加锁?

作者:上帝爱吃苹果目录1.ConcurrentHashMap的简介2.get操作源码3.volatile登场4.是加在数组上的volatile吗?5.用volatile修饰的Node6.总结我们知道,ConcurrentHashmap(1.8)这个并发集合框架是线程安全的,当你看到源码的get操作时,会发现get操作全程是没有加任何锁的,这也是这篇博文讨论的问题——为什么它不需要加...

2019-08-07 15:20:01 171

原创 Java程序员金九银十跳槽面试,微服务架构是你必须过的坎

近几年,微服务架构迅速在整个技术社区窜红,被认为是 IT 软件架构的未来方向。一线互联网公司由于具有大量的业务体量和业务场景,比如阿里、百度、网易,很早就开始入坑微服务架构。但说起微服务,不少人还是有这样的困惑:“作为一个开发,微服务架构是不是和我关系不大?那不都是架构师的事吗?”关于这个问题,我来谈谈自己的看法。微服务是当下最火热的后端架构之一。不管你是一个什么级别的程序员,也不论你在一...

2019-08-06 20:38:56 236

原创 Spring Boot 与 MVC 的区别,这些终于搞明白了!

作者:潜龙勿用Spring 框架就像一个家族,有众多衍生产品例如 boot、security、jpa等等。但他们的基础都是Spring 的 ioc和 aop ioc 提供了依赖注入的容器 aop ,解决了面向横切面的编程,然后在此两者的基础上实现了其他延伸产品的高级功能。Spring MVC是基于 Servlet 的一个 MVC 框架 主要解决 WEB 开发的问题,因为 Spring 的配置...

2019-08-06 19:53:12 356

空空如也

空空如也

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

TA关注的人

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