自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

java 开发

记录学习

  • 博客(31)
  • 收藏
  • 关注

原创 kubernetes K8S

K8S,就是基于容器的集群管理平台,它的全称,是kubernetesK8S的创造者,是众人皆知的行业巨头——Google。一个K8S系统,通常称为一个K8S集群(Cluster)。这个集群主要包括两个部分:一个Master节点(主节点)一群Node节点(计算节点)Master节点主要还是负责管理和控制。Node节点是工作负载节点,里面是具体的容器Master节点:Master节点包括API Server、Scheduler、Controller manager、etcd。API Serve

2021-09-11 18:09:01 166 1

原创 Docker介绍

Docker是开发、运输和运行应用程序的开放平台。Docker使您能够将应用程序与基础结构分离,以便快速交付软件。使用Docker,您可以使用与管理应用程序相同的方式管理基础设施。通过利用Docker的方法来快速地发送、测试和部署代码,您可以显著减少编写代码和在生产中运行代码之间的延迟。docker平台:1、Docker提供了在一个称为容器的松散隔离环境中打包和运行应用程序的能力。隔离和安全性允许您同时在给定主机上运行多个容器。容器是轻量级的,因为它们不需要hypervisor的额外负载,而是直接运行在主机

2021-09-11 18:06:01 99

原创 Java的封装特性

this关键字 1.this关键字代表当前对象  this.属性 操作当前对象的属性  this.方法 调用当前对象的方法。 2.封装对象的属性的时候,经常会使用this关键字。 3.当getter和setter函数参数名和成员函数名重合的时候,可以使用this区别。如: ...

2021-09-08 13:39:57 112

原创 面向对象的特征是什么

面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物,是一种是软件开发方法面向对象主要有四大特性1、抽象忽略一个主题中与当前目标无关的东西,专注的注意与当前目标有关的方面。(就是把现实世界中的某一类东西,提取出来,用程序代码表示,抽象出来的一般叫做类或者接口)。抽象并不打算了解全部问题,而是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一个数据抽象,而是过程抽象。数据抽象 -->表示世界中一类事物的特征,就是对象的属性。比如鸟有翅膀,羽毛等(类的属性)过程

2021-09-08 13:34:54 126

原创 jdk1.7和jdk1.8hashmap的区别 concurrenthashmap的区别

看完了整个 HashMap 和 ConcurrentHashMap 在 1.7 和 1.8 中不同的实现方式相信大家对他们的理解应该会更加到位。其实这块也是面试的重点内容,通常的套路是:谈谈你理解的 HashMap,讲讲其中的 get put 过程.1源码有.不坐过多解释:存取方式 1.7 数组+链表。1.8数组+链表+红黑树。1.8 做了什么优化?主要做了链表遍历的优化–>改为红黑树遍历。concurrentHashMap 是同理: 分段锁 修改为 cas 和 syn是线程安全的嘛

2021-09-08 13:33:34 249

原创 常见线程池类型有哪些

newFixedThreadPool:创建固定大小的线程池,每次提交一个任务就创建一个线程,直到线程达到线程池的最大大小;newCachedThreadPool:创建一个可缓存的线程池,此线程池不会对线程池大小做限制,线程池大小完全依赖于操作系统(或者说JVM)能够创建的最大线程大小;newScheduledThreadPool:创建一个大小无限的线程池,此线程池支持定时以及周期性执行任务的需求;newSingleThreadExecutor:创建一个单线程的线程池。此线程池支持定时以及周期性执行任务

2021-09-08 13:33:04 506

原创 Spring AOP JDBC DAO WEB

在Spring AOP 中,关注点和横切关注点的区别是什么?关注点是应用中一个模块的行为,一个关注点可能会被定义成一个我们想实现的一个功能。横切关注点是一个关注点,此关注点是整个应用都会使用的功能,并影响整个应用,比如日志,安全和数据传输,几乎应用的每个模块都需要的功能。因此这些都属于横切关注点。Spring中AOP的实现方式可以通过XML配置文件或者 注解的方式来使用Spring AOP解释JDBC抽象和DAO模块?通过使用JDBC抽象和DAO模块,保证数据库代码的简洁,并能避免数据库资源错误关

2021-09-08 10:50:23 57

原创 Spring框架问题

1,什么是spring?答:Spring是个Java企业级应用的开源开发框架。Spring主要用来开发Java应用,但是有些扩展是针对构建J2EE平台的web应用。Spring框架目标是简化Java企业级应用开发,并通过POJO为基础的编程模型促进良好的编程习惯。2, 使用Spring框架的好处是什么?答:特点:<1.方便解耦,简化开发通过Spring提供的IoC容器,我们可以将对象之间的依赖关系交由Spring进行控制,避免硬编码所造成的过度程序耦合。有了Spring,用户不必再为单实例

2021-09-08 10:49:17 175

原创 简单的谈一下SpringMVC的工作流程

流程1、用户发送请求至前端控制器DispatcherServlet2、DispatcherServlet收到请求调用HandlerMapping处理器映射器。3、处理器映射器找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。4、DispatcherServlet调用HandlerAdapter处理器适配器5、HandlerAdapter经过适配调用具体的处理器(Controller,也叫后端控制器)。6、Controller执行完成返回M

2021-09-08 10:48:18 139

原创 如何解决POST请求中文乱码问题,GET的又如何处理呢

(1)在web.xml中引入过滤器<filter> <filter-name>CharacterEncodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encodin

2021-09-08 10:47:31 109

原创 讲下SpringMvc的核心入口类是什么,Struts1,Struts2的分别是什么

springMvc的核心入口是DispatchServ;et struts1 是ActionServlet Struts2 是StrutsPrepareAndExecuterFilter

2021-09-08 10:46:29 724

原创 java中JSch,ChannelSftp,Session,SFTP

Session是会话,比如打电话,从拨号到挂断这就是一个Session;Channel是通道,我的理解是比如打电话时,Channel表示是使用联通信号或者是移动信号或者是电信信号。JSch是Java Secure Channel的缩写 JSch是一个SSH2的纯Java实现。它允许你连接到一个SSH服务器,并且可以使用端口转发,X11转发,文件传输等,当然你也可以集成它的功能到你自己的应用程序。SFTP是Secure File Transfer Protocol的缩写,安全文件传送协议。可以为传输文件提

2021-09-06 10:13:42 2641 1

原创 Java 框架面试可能问到的问题

Spring框架问题1,什么是spring?答:Spring是个Java企业级应用的开源开发框架。Spring主要用来开发Java应用,但是有些扩展是针对构建J2EE平台的web应用。Spring框架目标是简化Java企业级应用开发,并通过POJO为基础的编程模型促进良好的编程习惯。2, 使用Spring框架的好处是什么?答:特点:<1.方便解耦,简化开发通过Spring提供的IoC容器,我们可以将对象之间的依赖关系交由Spring进行控制,避免硬编码所造成的过度程序耦合。有了Sprin

2021-09-05 17:41:46 163

原创 Spring SpringMVC SpringBoot SpringCloud

Spring主要是基于IOC反转Beans管理Bean类,主要依存于SSH框架(Struts+Spring+Hibernate)这个MVC框架,所以定位很明确,Struts主要负责表示层的显示,Spring利用它的IOC和AOP来处理控制业务(负责对数据库的操作),Hibernate主要作用是数据的持久化到数据库。SpringMVC是基于Spring的一个MVC框架,用以替代初期的SSH框架;(spring Framework本身没有Web功能,Spring MVC使用WebApplicationCont

2021-09-05 17:10:08 88

原创 CPU排查问题

这个问题我在生产上没碰到过,因为我们是没法直接操作生产环境的。只能说,在测试环境曾经遇见过。操作步骤如下:下面给出两种系统环节下的排查步骤,都是一模一样的,只是命令稍有区别!查消耗cpu最高的进程Pid根据Pid查出消耗cpu最高的线程号根据线程号查出对应的java线程,进行处理。准备一行死循环代码public class TestFor { public static void main(String[] args) { int random = 0;

2021-09-03 15:27:03 81

原创 Mybatis面试问题

1:Mybatis 的 Xml 映射文件中,不同的 Xml 映射文件, id 是否可以重复?不同的XML文件,如果配置了namespace,那么id可以重复,如果没有篇日志namespace,那么id不能重复2:Mybatis 映射文件中,如果 A 标签通过 include 引用了 B 标签的内容,请问, B 标签能否定义在 A 标签的后面,还是说必须定义在 A 标签的前面?:虽然 Mybatis 解析 Xml 映射文件是按照顺序解析的,但是,被引用的 B 标签依然可以定义在任何地方, Mybat

2021-09-03 14:20:36 106

原创 Redis 分布式锁

一: 分布式锁面临的问题1.1 锁需要具备唯一性1.2 锁需要有超时时间,防止死锁1.3 锁的创建和设置锁超时时间需要具备原子性1.4 锁的超时问题1.5 锁的可重入问题1.6 集群下分布式锁的问题1.7 redis分布式锁需要考虑的其他问题二: 分布式锁面临问题的讲解和解决方案2.1 锁需要具备唯一性问题讲解:首先分布式锁要解决的问题就是分布式环境下同一资源被多个进程进行访问和操作的问题,既然是同一资源,那么肯定要考虑数据安全问题.其实和单进程下加锁解锁的原理是一样的,单进程下需要考

2021-09-03 14:14:17 126

原创 雪花算法组成

组成部分(64bit)1.第一位 占用1bit,其值始终是0,没有实际作用。 2.时间戳 占用41bit,精确到毫秒,总共可以容纳约69年的时间。 3.工作机器id 占用10bit,其中高位5bit是数据中心ID,低位5bit是工作节点ID,做多可以容纳1024个节点。 4.序列号 占用12bit,每个节点每毫秒0开始不断累加,最多可以累加到4095,一共可以产生4096个ID。SnowFlake算法在同一毫秒内最多可以生成多少个全局唯一ID呢:: 同一毫秒的ID数量 = 1024 X 4096 = 4

2021-09-03 13:58:57 559

原创 雪花算法代码实现

雪花算法在分布式架构中比较常见 特点如下:1:全局唯一性不能出现有重复的ID标识,这是基本要求。2:递增性确保生成ID对于用户或业务是递增的。3:高可用性确保任何时候都能生成正确的ID。4:高性能性在高并发的环境下依然表现良好。UUID 可以使用N亿年 但是可读性差 不递增public class SnowflakeIdWorker { /** * 开始时间截 (2021-09-03) */ private final long twepoch =

2021-09-03 13:54:48 388

原创 Mybatis都有哪些Executor执行器

Mybatis有三种基本的Executor执行器,SimpleExecutor、ReuseExecutor、BatchExecutor。SimpleExecutor:每执行一次update或select,就开启一个Statement对象,用完立刻关闭Statement对象。ReuseExecutor:执行update或select,以sql作为key查找Statement对象,存在就使用,不存在就创建,用完后,不关闭Statement对象,而是放置于Map<String, Statement&gt

2021-09-03 13:24:39 528

原创 ScheduledThreadPoolExecutor 定时线程池类的类结构图

任务提交到线程池中,任务排序的 siftUp 方法 private void siftUp(int k, RunnableScheduledFuture<?> key) { while (k > 0) { int parent = (k - 1) >>> 1; RunnableScheduledFuture<?> e = queue[parent]; .

2021-08-29 09:49:01 98

原创 Timer和TimerTask存在一些缺陷 使用 ScheduledThreadPoolExecutor 解决

使用Timer和TimerTask存在一些缺陷:1.Timer只创建了一个线程。当你的任务执行的时间超过设置的延时时间将会产生一些问题。2.Timer创建的线程没有处理异常,因此一旦抛出非受检异常,该线程会立即终止。解决方案:ScheduledThreadPoolExecutorpublic class ScheduledThreadPoolExecutorDemo { public static void main(String[] args) { ScheduledThreadPool

2021-08-29 09:40:39 953

原创 Timer TimerTask

import java.util.Date;import java.util.Timer;import java.util.TimerTask;public class TimerDemo {public static void main(String[] args) { Timer task = new Timer(); TimeC timeC =new TimeC(); task.schedule(timeC, new Date(),1000);}}class TimeC exte

2021-08-29 08:52:26 71

原创 Spring五大通知

1:环绕通知Around Advice(之前之后)2:前置通知Before advice3:后置通知 After finally advice4:返回后通知 After returning advice5:通知After throwing advice具体通知执行顺序如下:后置通知 不管是否有异常都会正常抛出,返回后通知异常的时候不抛出...

2021-08-07 10:14:50 142

原创 TCP 为啥 三次握手四次分手

三次握手:其中AB可以合并为一次 共三次为什么TCP需要三次握手开启连接?TCP需要可靠性的保障,在正式传送数据之前需要初始化两端的发送窗口与接收窗口的大小,需要确定发送字节的开始序号,完成上述的功能只需要两次握手即可,第三次握手的目的是为了防止第一个握手报文滞留在网络中造成服务器资源浪费。试想如果TCP是两次握手就建立连接,如果出现这样一种情况,客户端与服务器要建立连接,但是客户端的第一个握手报文超时了,然后客户端重传了第一个握手报文,随后客户端与服务器建立连接成功并完成了一次通信,连接关闭后

2021-07-31 17:21:30 110

原创 NIO 基本特征记录

每个Buffer都有以下的属性:1. capacity这个Buffer最多能放多少数据。capacity一般在buffer被创建的时候指定。2. limit在Buffer上进行的读写操作都不能越过这个下标。当写数据到buffer中时,limit一般和capacity相等,当读数据时,limit代表buffer中有效数据的长度。3. position读/写操作的当前下标。当使用buffer的相对位置进行读/写操作时,读/写会从这个下标进行,并在操作完成后,buffer会更新下标的值。

2021-07-31 17:17:30 53

原创 hessian 子类继承父类的时候加载顺序

ByteArrayOutputStream os = new ByteArrayOutputStream();HessianOutput hessianOutput = new HessianOutput(os);hessianOutput.writeObject(usrInfo);ByteArrayInputStream byin = new ByteArrayInputStream(bytes);HessianInput hessianInput = new HessianInput(byin)

2021-07-19 14:32:49 64

原创 eclipse xml 没有头约束问题

解决eclipse xml 没有头约束问题,增加namespacehttps://github.com/spring-projects/sts4/wiki/Installation#theia

2021-07-19 10:44:08 63

原创 hadoop 与 hads 区别

最近在学 hadoop 所以区别下 hads 名词hadoop: 是一个开源框架即分布式服务器集群上存储海量数据并运行分布式分析应用的hads 是属于hadoop里面的一个核心部件 跟mapreduce 一样的存在且 hads 是 分布式文件系统可以认为是 个分布式的,有冗余备份的,可以动态扩展的用来存储大规模数据的大硬盘MapReduce是一个计算引擎 选择让哪个服务器来干活的...

2021-06-27 19:09:00 486 2

原创 HashMap底层原理解析

HashMap底层put 的时候是key,value底层实现是 put方法调用putVal(hash(key), key, value, false, true);其中 hash(key)是计算index的static final int hash(Object key) {int h;return (key == null) ? 0 : (h = key.hashCode()) ^ (h >>> 16);}key.hashCode()与key.hashCode()右移16

2021-06-19 21:08:53 145

原创 电脑安装配置eclipse、maven

1:下载 安装jdk 配置环境变量cmd java -version 查看是否配置好2:下载安装eclipse配置jdk3:下载maven配置环境变量cmd maven -version 查看是否配置好4:在eclipse中perference中 配置 Maven user setting 设置user和gloable 都设置为maven目录下的conf的setting。xml即可5:配置git 及其公钥设置6:下载apache tomacat 在eclipse中 Server -Runt

2020-06-05 12:15:37 74

空空如也

空空如也

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

TA关注的人

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