自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

muzi木子

把简单的事做好,就是不简单! 把平凡的事做好,就是不平凡!

  • 博客(45)
  • 资源 (1)
  • 收藏
  • 关注

原创 【面试题解析】-- 20200228Java软件开发工程师面试题解析

1. 请说出Java中的基本数据类型各占几个字节类型所占字节数byte1字节boolean1字节short2字节char2字节int4字节double8字节float4字节long8字节2. 在分布式系统中你如何实现session共享?在分布式系统中实现session共享一般都是采用token+redis缓存策...

2020-02-29 08:50:18 287

原创 【面试题解析】-- 20200227Java软件开发工程师面试题解析

1. ==与equals()方法之间有何区别?==主要用来比较值类型数据的值是否相等,通过==也可以比较引用数据类型的堆内存地址是否相等,equals()方法用于比较引用数据类型的值。2. 线程中的sleep()、join()、yield()方法之间有何区别?sleep()方法可以使得一个线程休眠,调用了join()方法的线程会优先执行,其他线程会等待调用了join()方法的线程结束,然后再...

2020-02-27 23:59:13 161

原创 【面试题解析】--20200226Java软件开发工程师面试题解析

1. ArrayList与LinkedList之间的区别是什么?ArrayList与LinkedList都实现了List接口,ArrayList被称为列表,而LinkedList是链表,ArrayList的查找效率比较高,LinkedList的插入、删除元素的效率比较高。2. HashMap与HashTable之间的区别是什么?HashMap与HashTable都实现了Map接口,但是Has...

2020-02-27 09:36:54 211

原创 【面试题解析】-- 20200225Java软件开发工程师面试题解析

1. 什么是乐观锁?什么是悲观锁?乐观锁指的是程序会记录一个标记值,当接收到请求时,会对相关值进行判断,而悲观锁指的是不管是否发生冲突,只要存在可能性就会对没次访问都进行加锁。2. 什么是重载?什么是重写?重载发生在本类中,表示的是方法名相同,参数列表不同的两个方法,重载与返回值类型、访问修饰符无关。重写是指在子类中,方法的名称、返回值相同,访问修饰符的范围小于等于父类同名方法。3. t...

2020-02-26 09:56:24 209

原创 【面试题解析】-- 20200224Java软件开发工程师面试题解析

1. Class.forName()的作用是什么?Class.forName()用于加载字符串参数的指定类,如果需要加载的已经被加载过了,那么将直接返回类的实例对象,如果该类还没有被加载那么会按照类的委托机制曲搜索并加载该类,如果所有的类都不能够找到该类,则会抛出ClassNotFoundException异常,如果该类已经被加载那就可以实例化了。2. 请问你平时最常见到的runtime ex...

2020-02-25 09:10:29 126

原创 【面试题解析】--20200223Java软件开发工程师面试题解析

1. 负载均衡的策略有哪些?负载均衡策略大致有以下四种:轮询策略:在nginx轮询策略是默认的负载均衡策略,它就是将请求平均的分配到每一个服务器上。weight权重策略:因为在实际项目中每个服务器的性能上肯定存在差异,性能较好的服务器可以设置高一些的权限。iphash策略:在分布式系统中session共享问题是一个令人头疼的问题,但是使用iphash策略就可以解决分布式系统session...

2020-02-24 00:42:18 153

原创 【面试题解析】-- 20200222Java软件开发工程师面试题解析

1. Java中是否存在内存泄漏?在Java中可能存在内存泄漏的情况,但是Java虚拟机提供了垃圾回收机制,它可以不定时地对无任何引用的对象进行垃圾回收,在一定程度上减少了内存泄漏的发生。2. 谈谈JVM加载Class类文件的原理机制JVM加载类文件靠的是ClassLoader与它的子类实现的,ClassLoader是Java运行时一个重要的系统组件,它用于搜索并加载指定的类,JVM加载类时...

2020-02-23 00:50:22 168

原创 【面试题解析】-- 20200221Java软件开发工程师面试题解析

1. cookie与session之间的区别是什么?session表示的是会话,session在一定时间内会保存在服务器端。cookie是保存在客户端浏览器上的,从安全性上来讲session要更为安全,从性能的角度来分析使用cookie性能会更好,因为session会占用服务器端内存。2. Web应用程序的四大作用域是什么?page对象代表的事一个页面相关的对象和属性,一个页面由一个编译好...

2020-02-22 00:41:10 166

原创 【面试题解析】-- 20200220Java软件开发工程师面试题解析

1. 什么是序列化?序列化就是指将一个程序中的对象转换为字节流,或者是将字节流转换成程序中的对象,序列化是为了让信息能够在网络上进行传输而实现的,在java中可以实现Serializable接口,标识一个类是可以被序列化的。2. HashMap与HashTable之间的区别是什么?HashTable是线程安全的,HashMap是非线程安全的。HashTable基于Dictionary类实...

2020-02-21 00:21:31 129

原创 【面试题解析】-- 20200219Java软件开发工程师面试题解析

1. 谈谈你所理解的多线程是什么?多线程是为了让程序能够在同一时间做多个任务而实现的,它是以提高资源的使用率,进而来提高程序效率的一种方式。2. Java中如何实现多线程?在Java中实现多线程的方式有两种:一个是继承Thread类,一种是实现Runnable接口。因为Java语言是一门单继承的语言所以我们一般会选中实现Runnable接口的方式来实现多线程。//继承thread类实现多...

2020-02-20 00:32:14 217

原创 【开发技巧/经验分享】在Zuul网关服务中实现限流、用户鉴权(访问鉴权) 、跨域访问

1. 在zuul网关服务中实现限流1.1 为什么需要限流?限流是为了保证服务器的负载量处于正常状态,因为如果太多的访问量可能会直接导致服务的崩溃。1.2 如何实现限流1.2.1 令牌桶算法简介在zuul中实现限流是通过创建一个filter实现的,底层算法采用的是令牌桶算法,令牌桶会每秒往桶中投放一定数量的令牌,如果令牌桶中的令牌达到了临界值,新产生的令牌就会丢弃,当请求到达zuul网关后...

2020-02-19 14:05:11 2192 1

原创 【面试题解析】-- 20200218Java软件开发工程师面试题解析

1. 谈谈什么是服务雪崩?服务雪崩是互联网项目总常见的问题,它指的是一个服务的不可用而导致其他服务也奔溃进而导致整个应用程序不可用,导致服务雪崩的原因有:当个服务存在bug、请求访问量的激增、服务器硬件问题也可能导致服务雪崩。2. 什么是单点故障?单点故障一般发生在微服务项目中,比如我们通过服务网关调用其他服务,如果这个时候服务网关宕机了,那么其他服务也就不能够正常访问了,但是它们都还在正常...

2020-02-19 00:15:36 118

原创 【面试题解析】-- 20200217Java软件开发工程师面试题解析

1. Hibernate与JDBC操作数据库的区别是什么?Hibernate是一个ORM框架,它能够自动生成SQL语句,并且它是面向对象的数据库操作,使用HIbernate编写的程序可移植性比较好。JDBC是底层的数据访问操作,所以性能上会相对于比较高一些,但是它不是面向对象的数据库操作,并且操作起来也比较复杂,而且对于数据库的依赖程度也相当的高。2. 什么是Spring中的MVC框架?S...

2020-02-18 00:04:03 148

原创 【开发技巧/经验分享】使用zuul构建服务网关ApiGetaway

1. 什么是服务网关?服务网关就好比是一个请求的转发者,它能够根据相关的请求规则调用对应的服务提供者,它有点像nginx起到了一个代理的作用,使用服务网关可以实现限流、服务鉴权、请求处理、请求参数验证等操作。2. 什么是zuul?zuul是服务网关的实现之一,zuul作为一个边界性质的应用程序,它提供了动态路由、监控、弹性负载和安全功能。Zuul底层利用各种filter实现如下功能:认...

2020-02-17 22:17:48 1002

原创 【开发技巧/经验分享】使用SpringCloudStream操作RabbitMQ(内附重复消费的情况,并有相关解决方案)

1. 什么是SpringCloudStream?SpringCloudStream是SpringCloud中对于消息中间件操作的封装包,目前支持的消息中间件有RabbitMQ、Kafka,一下是SpringCloudStream的模型图。从上图可以发现消息的发送由output接口提供,消息的接收由input输入。应用程序与消息中间件通过Binder进行链接。2. 为什么要使用SpringC...

2020-02-16 20:45:49 1031

原创 【开发技巧/经验分享】SpringBoot快速使用RabbitMQ

1. 为什么需要使用MQ消息中间件?在实际开发中,有很多操作都是可以不同步执行的,比如邮件信息、短信的发送操作都不需要同步执行,还有一些服务的掉用也是可以不同步执行的,如果这一部分操作全都同步执行那么可能导致客户端阻塞的情况,并且会增加服务器的压力。而消息中间件就起到了一个,消息异步通知、流量削峰的作用。2. 主流的MQ中间件有哪些?ActiveMQ、RabbitMQ、Kafka等。3. ...

2020-02-16 17:43:48 221

原创 【开发中遇到的小问题】SpringCloudBus配置Webhooks不生效(无法发送请求/monitor)以及能够发送请求但是无法刷新客户端配置解决方案

1. 配置Webhooks不生效以及能够发送请求解决方案根据查阅官方文档以及其他资料发现,是因为缺少了依赖包<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-monitor</artifactId...

2020-02-16 12:28:41 747

原创 【开发技巧/经验分享】使用SpringCloudCofig实现远程配置管理(服务端、客户端实现)

1. 为什么需要需要远程配置管理?首先我们分析传统的配置管理,传统项目中我们的配置文件都是写死在项目中,如果更改一些配置可能导致整个应用需要重新编译,并且我们在开发中也是整个开发团队一起开发的,如果其中一个人修改了配置那么所有的配置都将受到影响,所以在这一方面会有配置冲突的问题,而下面要提到的SpringCloudConfig就是为了解决以上问题而衍生出来的。2. 如何使用SpringClou...

2020-02-14 17:00:01 302

原创 【面试题解析】-- 20200213Java软件开发工程师面试题解析

1. 什么是SpringData?SpringData是Spring开源组织下的一个子项目,SpringData为数据访问提供了一个一致的、统一的基于Spring的编程模型,它使得数据访问更加简单,它封装了当前使用的比较多的一些关系型与非关系型数据库。2. 你如何在SpringBoot中实现异常处理?在SpringBoot中可以使用@ControllerAdvice注解与@Exception...

2020-02-13 23:39:35 79

原创 【面试题解析】-- 20200212Java软件开发工程师面试解析

1. 谈谈你对mybatis的理解mybatis是一个半自动化的ORM框架,mybatis提供了SQL到实体属性之间的映射关系,它提供了9大动态SQL标签,便于开发者灵活地动态构造SQL语句,mybatis的入门门槛相比较于Hibernate要低(mybatis简单易学),使用mybatis构建的软件系统系统可设计度比使用全自动ORM映射框架的系统要高很多。2. 谈谈你对spring的理解s...

2020-02-12 23:22:17 132

原创 【面试题解析】-- 20200211Java软件开发工程师面试题解析

1. Set、List、Map之间有什么区别?Set、List都继承自Collection接口,List在Collection的基础上增加了有序的特性,Set在Collection的基础上增加了唯一的特性。Map接口是一个Key/Value键值对组成的对象,它提供了Key到Value的映射。2. int和Integer之间的区别是什么?Integer是int的包装类,Integer在J...

2020-02-11 23:35:10 75

原创 【开发中遇到的小问题】无法发送https协议的请解决方案 PKIX path building failed: sun.security.provider.certpath.SunCertPathB

控制台异常堆栈输出:sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested targe...

2020-02-11 19:44:14 2257 1

原创 【开发技巧/经验总结】--使用RestTemplate的调用其他服务的方式

1. 什么是远程调用?远程调用指的就是,程序通过某种协议调用其他服务的一种方式,一般说远程调用有两种方式一种是基于HTTP的Restful轻量级通信,一种是基于RPC的远程调用方式。2. HTTP调用与RPC调用的区别是什么?http调用是发送一个http请求去调用服务接口,它的典型实现框架有SpringCloud,而RPC是一种高性能的远程调用方式,它比http调用性能更优,它的典型实现是...

2020-02-11 18:18:30 303

原创 【面试题解析】-- 20200210Java软件开发工程师面试题解析

1. 设计数据库的三大范式是什么?第一范式(1NF):要求数据库中的每一个字段具有原子性不可再分,所有的关系型数据库都满足第一范式。第二范式(2NF):要求数据库中的每一列都可以被唯一的区分,并且它还要求非主关键字必须完全依赖于主关键字。第三范式(3NF):要求数据表中的字段不能存在其他表中已经存在的非主关键字。2. 在实际开发中你如何优化SQL语句?通过加索引的方式提高数据的检索速度...

2020-02-10 23:25:07 96

原创 【面试题解析】-- 20200209Java软件开发工程师面试题解析

1. 谈谈你对static关键字的理解被static修饰的变量被称为类变量或者是静态变量,静态变量可以通过类名.属性名的方式直接调用,被static修饰的变量不属于任何一个对象它只属于类本身。同样的被static修饰的方法被称为静态方法,在静态方法中只能调用静态成员。2. 谈谈你所理解的单例模式是什么?所谓的单例模式指的就是在程序中有且仅有一个实例,单例模式有两种比较经典的实现分别是,懒汉模...

2020-02-10 00:19:28 112

原创 【开发技巧/经验总结】--使用eureka实现服务注册与发现并且实现eureka服务的高可用(基于SpringBoot2.x版本)

1. eureka的介绍以及基本实现1.1 什么是eureka?eureka是netflix开发的一个服务注册发现组件,它是微服务中必不可少也是最基础的一部分。1.2 为什么要使用eureka?在SpringCloud中eureka对netflix的eureka进行了再次封装,使用起来更加方便与便捷,并且eureka支持异构化处理,也就说我们的调用者使用的底层语言可不必为Java,在其他语...

2020-02-09 21:18:17 322

原创 【面试题解析】--20200208Java软件开发工程师面试题解析

1. 在实际开发中你如何解决各种可能出现的乱码问题?如果在servlet获取请求参数乱码,可以通过request.setCharacterEncoding()方法来对请求参数统一进行编码设置。如果是jsp页面乱码可以在<%page %>指令中添加contentType属性。如果是访问数据库获取数据乱码可以通过添加参数useUnicode=true&characterEn...

2020-02-08 23:17:14 99

原创 【开发技巧】-- 使用同步关键字sychronized与基于redis分布式锁分别实现秒杀业务

1. 秒杀业务下需要解决的问题有哪些?秒杀业务当然对于系统服务的可用性要求、以及数据的一致性是要求非常严格的,当然服务的高可以可以通过服务器集群化来解决,而数据的一致的的话这个解决起来要复杂很多,可能我们习惯会用sychronized来解决秒杀系统下的超卖问题,但是这样是有局限性的,sychronized会使得我们的服务器的请求响应速度变慢,并且sychronized并不适合分布式系统,而我们如...

2020-02-08 20:29:23 490

原创 【面试题解析】-- 20200207Java软件开发工程师面试题解析

1. String类的常用方法有哪些?length():获取字符串长度。substring():截取字符串。split():拆分字符串。concat():字符串拼接。2. final、finally、finalize之间的区别是什么?final是一个常量关键字,使用它声明的变量在程序中是不可以被改变的。finally是异常处理语句块中的一部分表示的事总是会执行的那一部分语句。...

2020-02-07 23:55:22 85

原创 【开发技巧】-- 实现websocket实现即时消息推送(后端基于SpringBoot实现)

1. 什么是WebSocket?websocket是HTML5中的即时通信解决方案,它使用客户端与服务器端的数据交互变得更加简单。2. 如何使用websocket使用websocket需要在客户端(网页中)编写相关客户端实现,然后还需要一个websocket后端服务实现。2.1 html websocket客户端实现<script> var webSocket=nul...

2020-02-07 13:03:26 392

原创 【第三方组件使用方法】--实现微信推送模板消息

如果是在开发中我们想要使用微信发送模板消息,我们可以使用测试号来实现,当项目真正上线的时候也可以将测试号无缝替换为正式公众号。1. 微信模板消息的使用步骤1.1 在微信公众平台的测试号中定义一个微信消息模板这里需要注意的是参数需要以.DATA结尾感谢您使用微信点餐平台 您的订单: {{orderId.DATA}} 当前状态为:{{orderStatus.DATA}} {{tip.DA...

2020-02-07 12:10:37 1093

原创 【面试题解析】-- 20200206Java软件开发工程师面试题解析

1. 请谈谈Integer的缓存问题在Java中为了保证程序性能,在程序初始化的时候就设置了区间为[-128 ,127]的Integer值缓存,当我们在声明Integer是如果我们的值在缓存值的区间里边那么如果我们通过==比较两个值大小的话是相等的,而如果我们声明的值不在范围中那么则会通过new Integer()的方式创建一个新对象,而这个对象如果使用 ==比较的话将返回false,在Java...

2020-02-06 23:14:54 161

原创 【面试题解析】-- 20200205Java软件开发工程师笔试题解析

1. 负载均衡的意义是什么?现在我们的互联网项目面临的跳转是高并发以及高可用,在原始的架构中我们只要有一个应用服务器就够了,但是随着我们业务的不断扩张,以及用户量的不断增加,原始的架构就无法满足日常需求了,所以我们通过水平扩展的方式将程序部署在多个应用服务上,那么这个时候就面临着一个问题,我们的域名无法统一。这个时候负载均衡机制也就运营而生,负载均衡可以以特殊的负载均衡策略将请求分配到应用服务器...

2020-02-05 23:56:23 103

原创 【开发技巧】--使用AOP实现用户鉴权操作

1.为什么要使用AOP实现用户鉴权?因为AOP是面向切面编程,它可以对原始代码无侵入而实现相关功能,在现在的互联网项目中对于用户鉴权操作也是极为重要的,因为在系统中有些内容不是所有用户都可见的,比如一些后台的数据对于普通用户而言我们不希望它能够范问,所以用户鉴权操作就和盘托出了。2.如何使用AOP实现用户鉴权操作?1. 创建用户授权交易切面SellerAuthorizeAspect@Asp...

2020-02-05 16:34:21 2760

原创 【笔试题解析】-- 20200204Java软件开发工程师笔试题解析

1.1 现在有字符串String codes=”a,b,c,d,0000”,请写出代码要求剔除0,将剩下的字母以逗号间隔转换为一个字符串数组。public static void main(String[]args){String codes=”a,b,c,d,0000”;//截取字符串codes=codes.substring(7); //按,分隔字符String[]...

2020-02-05 14:19:13 288

原创 【面试题解析】--20200204Java软件开发工程师面试题解析

1. mybatis是否支持延时加载?mybatis是支持延时加载的,mybatis即支持association关联对象查询还支持collection关联集合对象查询,association其实就是一对一关联对象查询,collection关联集合查询其实就是多对多查询。如果要启用mybatis的延时加载可以在mybatis的配置文件中加上lazyloadingEnable=true。2. My...

2020-02-04 23:48:12 109

原创 【第三方组件使用方法】--使用JWT+Redis实现微信登录

1.1 为什么要使用jwt+redis实现用户登录?因为如今的互联网应用基本上都是分布式的,正因为分布式的原因所以我们的程序面临着session共享的问题,我们都知道session只能在目标服务器中才能够保存,在多节点的分布式应用中这样显然不是特别好,所以我们需要使用jwt+redis实现分布式共享session的一个操作。2.1 能够使用nginx的iphash负载均衡策略就能实现sessi...

2020-02-04 21:12:51 1161

原创 【概念分析】浅谈分布式系统、集群、分布式计算以及微服务之间的区别

1. 什么是分布式系统?所谓的分布式系统就是将一个系统的各个功能模块拆分出来,部署到不同的节点上,它们之间会有相互通信。2. 什么是集群?集群就是讲一个功能模块相同的系统部署在多个服务器节点上,它们之间是不需要互相通信的。3. 什么是分布式计算?分布式计算就好比在厨房中有多个炒菜的大厨,每个人负责一部分任务,最后组合成一个产品,即分布式计算就是将一个计算任务划分到多个节点上进行,最终整合...

2020-02-04 12:24:16 535

原创 【笔试题解析】-- 20200203Java软件开发工程师笔试题解析

1. 有x=1,y=2两个变量,在不声明任何空间的情况下将其调换。public static void main(String[]args){ Integer x=1,y=2; x=y-x+(y=x); }2. 写一个多线程public class testClass{ public static void mian(Stirng[]args){ Threa...

2020-02-04 00:30:37 167

原创 【面试题解析】-- 20200203Java软件开发工程师面试题解析

1. 谈谈你所理解的AOP和IOC是什么?AOP(Aspect Orident Programming,面向切面编程),它允许我们对横切关注点、横切职责分界线上的行为进行模块化,它的核心内容是切面,它就是将程序中可以影响多个类的程序抽取出来成为一个公共的模块。IOC,即控制反转/依赖注入,IOC是一个容器,在Spring中IOC创建了所有JavaBean对象,并且IOC可以将各个组件连接起来,...

2020-02-04 00:24:12 113

mysql-connector-java-5.1.44.rar

mysql-connector-java-5.1.44.jar——JDBC访问mysql数据库所必须jar包

2019-10-07

空空如也

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

TA关注的人

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