自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 java中的各种锁详细介绍

java中的各种锁详细介绍java中的各种锁详细介绍

2020-10-16 16:37:14 183

原创 zookeeper集群搭建

zookeeper集群搭建第一步:解压zookeeper,tar -zxvf zookeeper-3.4.6.tar.gz将zookeeper-3.4.6拷贝到/usr/local/solrcloud下,复制三份分别并将目录名改为zookeeper1、zookeeper2、zookeeper3第二步:进入zookeeper1文件夹,创建data目录。并在data目录中创建一个myid文件内容为“1”(echo 1 >> data/myid)。第三步:进入conf文件夹,把zoo_sampl

2020-09-28 11:34:58 120

原创 分布式锁-zookeeper实现

分布式锁-zookeeper实现ZooKeeper zk=null;//同步锁, 等待zookeeper连接成功CountDownLatch connectedCountDownLatch = new CountDownLatch(1);LOGGER.info("开始从zookeeper集群获取solr 节点状态");try{ zk = new ZooKeeper(zkHost, timeout, new Watcher() { @Override public void

2020-09-27 15:47:03 146

原创 分布式锁-redis实现

redis实现分布式锁锁是针对某个资源,保证其访问的互斥性,在实际使用当中,这个资源一般是一个字符串。使用 Redis 实现锁,主要是将资源放到 Redis 当中,利用其原子性,当其他线程访问时,如果 Redis 中已经存在这个资源,就不允许之后的一些操作。spring boot使用 Redis 的操作主要是通过 RedisTemplate 来实现,一般步骤如下:1.将锁资源放入 Redis (注意是当key不存在时才能放成功,所以使用 setIfAbsent方法):redisTemplate.ops

2020-09-25 10:01:47 259

原创 共享session使用-springsession

springsession使用redis支持springsession引入依赖<dependency> <groupId>org.springframework.session</groupId> <artifactId>spring-session-data-redis</artifactId></dependency>在配置文件中进行共享session的配置#spring-session#session

2020-09-25 09:37:50 82

原创 IE浏览器请求url带有中文报错

问题使用IE浏览器请求后台,如果url中带有中文参数,后台会报错Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986解决方法使用encodeURI(填入url)方法,将url进行编码,再请求后台...

2020-08-27 11:24:05 963

原创 SpringBoot自定义Starters

SpringBoot自定义Starters如何编写自动配置@Configuration //指定这类是一个配置类.@ConditionalOnxxx //在指定条件成立的情况下自动配置类生效@AutoConfigureAfter //指定自动配置类的顺序@Bean //给容器中添加组件@ConfigurationProperties 结合相关xxxProperties类来绑定相关的配置@EnableConfigurationProperties 让xxxProperties生效加入到容器中

2020-08-11 21:13:01 143

原创 Oracle11g安装报错找不到文件

用win64_11gR2_database_2of2文件夹下的Components文件夹替换win64_11gR2_database_1of2文件夹下的Components,删除掉安装的目录,重新安装。

2020-07-01 16:53:56 909

原创 springBoot启动配置原理

几个重要的的事件回调机制配置在META-INF/spring.factories中ApplicationContextInitializerSpringApplicationRunListener放在ioc容器中ApplicationRunnerCommandLineRunner创建SpringApplication对象public SpringApplication(ResourceLoader resourceLoader, Class<?>... primarySource

2020-06-20 15:44:54 124

原创 JUC多线程知识点

VolatileVolatile是Java虚拟机提供的轻量级同步机制(1.保证可见性;2.不保证原子性;3.禁止指令重排)线程需要从主内存中把数据读到自己的内存中,进行处理后再写回主内存,可见性就是现在一个线程修改了主内存中的值后,其它线程必须要知道这个值发生了改变,加了Volatile之后,变量值改变之后,所有的线程都可以知道。class MyData{ volatile int num = 0; public void addNum(){ this.num =

2020-06-19 13:34:29 200

原创 SpringMVC中解决post请求中文乱码问题

SpringMVC中解决post请求中文乱码问题post请求乱码CharacterEncodingFilter类中,两个属性,encoding、forceEncoding,代表请求编码和响应编码Web.xml中配置Get请求乱码进入tomcat服务器中,打开server.xml第一个标签中加入URIEncoding=”UTF-8即可...

2020-06-19 09:55:58 378

原创 springboot自动配置原理

springboot自动配置原理1)、SpringBoot启动的时候加载主配置类,开启了自动配置功能(@EnableAutoConfiguration)2)、@EnableAutoConfiguration作用利用AutoConfigurationImportSelector查看selectImports()方法的内容List configurations = getCandidateConfigurations(annotationMetadata,attributes);获取候选的

2020-06-18 16:21:31 140

原创 Linux常用命令

Docker常用命令Linux目录结构VI和VIM关机重启登录注销用户管理常用指令组管理权限管理Linux目录结构在Linux世界里,一切皆文件/bin(/usr/bin、/usr/local/bin) 是Binary的缩写,存放着最经常使用的命令/sbin(/usr/sbin、/usr/local/sbin)s就是Super User的意思,存放着系统管理员使用的系统管理程序/home 存放着普通用户的主目录,在Linux中的每个用户都有自己的主目录,一般目录名用账号命名/root 系统管理

2020-05-15 14:10:04 126

原创 Docker常用命令

Docker常用命令Docker配置阿里云镜像仓库Docker基本命令Docker镜像常用命令Docker推送镜像到hub服务器Docker创建并启动容器Docker宿主机和容器之间文件拷贝Docker 查看容器日志docker logsDocker查看容器进程Docker进入容器执行命令Docker提交运行时容器成为镜像docker commitDocker容器目录挂载Docker自定义网络模式...

2020-04-17 11:37:38 128

原创 leetcode637二叉树的层平均值

二叉树的层平均值思路创建一个Queue,放入根节点判断Queue不为空取出Queue的元素个数循环Queue里的节点,取出值求和,判断是否存在子节点,放入队列和与元素个数求平均值代码/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode ...

2020-04-03 09:16:37 161

原创 Docker推送镜像到hub服务器登录后推送失败

Docker推送镜像到hub服务器登录后推送失败push时即使账户密码正确也显示 [denied: requested access to the resource is denied]的问题这里要注意一个问题,给自己镜像命名的时候格式应该是: docker注册用户名/镜像名,比如我的docker用户名为 test123,那么我的镜像tag就为 test123/whalesay,不然是push...

2020-03-19 16:55:41 745

原创 Java中List

111

2020-03-03 14:39:12 177

原创 JUC计时工具类

CountDownLatchJUC里的倒计时类让一些线程阻塞直到另一些线程完成一系列操作后才被唤醒。CountDownLatch主要有两个方法,当一个或多个线程调用await方法时,调用线程会被阻塞。其它线程调用countDown方法会将计数器减1(调用countDown方法的线程不会阻塞),当计数器的值变为零时,因调用await方法被阻塞的线程会被唤醒,继续执行。 例如:火箭发射。pa...

2020-01-14 09:46:55 156

原创

公平锁和非公平锁公平锁:是指多个线程按照申请锁的顺序来获取锁,类似排队打饭,先来后到。非公平锁:是指多个线程获取锁的顺序并不是按照申请锁的顺序,有可能后申请的线程比先申请的线程优先获取锁。在高并发的情况下,有可能会造成优先级反转或者饥饿现象。并发包中的ReentrantLock的创建可以指定构造函数的boolean类型来得到公平锁或者非公平锁,默认是非公平锁。package tongbu;...

2020-01-14 09:42:46 148

原创 集合类不安全之并发修改异常

故障现象java.util.ConcurrentModificationException解决方案 new Vector<>(); Collections.synchronizedList(new Arraylist<>()); new CopyOnWriteArrayList<>();写时复制CopyOnWrite 容器即写时复制的容器,往...

2020-01-14 09:33:07 137

原创 CAS

CASCAS原理ABA问题CAS原理比较并交换原理:unsafe.getAndAddInt;底层汇编,根据变量地址获取变量值比较并交换。CAS缺点:循环时间长开销很大;只能保证一个共享变量的原子操作;ABA问题。ABA问题CAS底层使用unsafe类,当前线程根据内存地址获取值,比较值相同后交换。但如果另一个线程也操作了这个变量并且修改回原来的值,当前线程并不知道,值还是相等,修改值。...

2020-01-14 09:28:10 111

原创 Volatile

Volatilevolatile作用可见性实例代码volatile作用Volatile是Java虚拟机提供的轻量级同步机制(1.保证可见性;2.不保证原子性;3.禁止指令重排)可见性线程需要从主内存中把数据读到自己的内存中,进行处理后再写回主内存,可见性就是现在一个线程修改了主内存中的值后,其它线程必须要知道这个值发生了改变,加了Volatile之后,变量值改变之后,所有的线程都可以知道...

2020-01-14 09:17:03 83

原创 Mybatis面试题

Mybatis面试题mybatis 中 #{}和 ${}的区别是什么?mybatis 有几种分页方式?mybatis 逻辑分页和物理分页的区别是什么?mybatis 是否支持延迟加载?延迟加载的原理是什么?说一下 mybatis 的一级缓存和二级缓存?mybatis 和 hibernate 的区别有哪些?mybatis 有哪些执行器(Executor)?mybatis 分页插件的实现原理是什么?...

2019-11-09 09:43:33 1241

原创 Spring/SpringMVC面试题

Spring / Spring MVC面试题为什么要使用 spring?解释一下什么是 aop?解释一下什么是 ioc?spring 有哪些主要模块?spring 常用的注入方式有哪些?spring 中的 bean 是线程安全的吗?spring 支持几种 bean 的作用域?spring 自动装配 bean 有哪些方式?spring 事务实现方式有哪些?说一下 spring 的事务隔离?说一下 s...

2019-11-08 10:31:29 198

原创 异常面试题

异常面试题throw 和 throws 的区别?final、finally、finalize 有什么区别?try-catch-finally 中哪个部分可以省略?try-catch-finally 中,如果 catch 中 return 了,finally 还会执行吗?常见的异常类有哪些throw 和 throws 的区别?throws是用来声明一个方法可能抛出的所有异常信息,throws是将...

2019-11-01 13:14:38 288

原创 Java Web面试题

Java Web面试题jsp 和 servlet 有什么区别?jsp 有哪些内置对象?作用分别是什么?说一下 jsp 的 4 种作用域?session 和 cookie 有什么区别?说一下 session 的工作原理?如果客户端禁止 cookie 能实现 session 还能用吗?spring mvc 和 struts 的区别是什么?如何避免 sql 注入?什么是 XSS 攻击,如何避免?什么是 ...

2019-11-01 10:15:39 100

原创 对象拷贝面试题

对象拷贝面试题为什么要使用克隆?如何实现对象克隆?深拷贝和浅拷贝区别是什么?为什么要使用克隆?想对一个对象进行处理,又想保留原有的数据进行接下来的操作,就需要克隆了,Java语言中克隆针对的是类的实例。如何实现对象克隆?有两种方式:1). 实现Cloneable接口并重写Object类中的clone()方法;2). 实现Serializable接口,通过对象的序列化和反序列化实现克隆...

2019-10-25 09:24:01 109

原创 反射面试题

反射面试题什么是反射?什么是 java 序列化?什么情况下需要序列化?动态代理是什么?有哪些应用?怎么实现动态代理?什么是反射?反射主要是指程序可以访问、检测和修改它本身状态或行为的一种能力Java反射:在Java运行时环境中,对于任意一个类,能否知道这个类有哪些属性和方法?对于任意一个对象,能否调用它的任意一个方法Java反射机制主要提供了以下功能:在运行时判断任意一个对象所属的...

2019-10-24 13:58:05 582

原创 多线程面试题

多线程面试题并行和并发有什么区别?并行和并发有什么区别?

2019-10-24 10:52:09 578

原创 容器面试题

容器面试题java 容器都有哪些?Collection 和 Collections 有什么区别?List、Set、Map 之间的区别是什么?HashMap 和 Hashtable 有什么区别?如何决定使用 HashMap 还是 TreeMap?说一下 HashMap 的实现原理?说一下 HashSet 的实现原理?ArrayList 和 LinkedList 的区别是什么?如何实现数组和 List...

2019-10-17 14:13:54 884

原创 Java基础面试题

这里写自定义目录标题JDK 和 JRE 有什么区别?== 和 equals 的区别是什么?两个对象的 hashCode()相同,则 equals()也一定为 true,对吗?final 在 java 中有什么作用?java 中操作字符串都有哪些类?它们之间有什么区别?String str="i"与 String str=new String("i")一样吗?如何将字符串反转?String 类的常用...

2019-10-12 16:01:56 315

原创 SQL调优的几种方法

一.创建索引1.要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引2.(1)在经常需要进行检索的字段上创建索引,比如要按照表字段username进行检索,那么就应该在姓名字段上创建索引,如果经常要按照员工部门和员工岗位级别进行检索,那么就应该在员工部门和员工岗位级别这两个字段上创建索引。(2)创建索引给检索带来的性能提升往往是巨大的,因此在发现检索速度过慢...

2019-10-10 16:06:04 412

原创 数据库索引

索引怎么建的,怎么用的?建表时创建:CREATE TABLE 表名(字段名 数据类型 [完整性约束条件], ……,[UNIQUE | FULLTEXT | SPATIAL] INDEX | KEY[索引名](字段名1 [(长度)] [ASC | DESC]) [USING 索引方法]);说明:UNIQUE:可选。表示索引为唯一性索引。FULLTEXT:可选。表示索引为全文...

2019-10-10 15:23:19 92

原创 IOC实现原理

IOC底层实现原理主要技术①使用XML文件配置②dom4j解析xml③工厂设计模式④反射机制创建对象图例解释原理图中我们可以看出,当我们改变userService类时,只需要xml文件作出适当的改变就好了,剩余三步都是由Spring框架封装好的。大大降低了类之间的耦合度。...

2019-10-10 13:56:35 194

原创 Spring MVC的工作流程

SpringMVC工作流程一、SpringMVC简介SpringMVC是一种基于Spring实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,使用了MVC架构模式的思想,将web层进行职责解耦,并管理应用所需对象的生命周期,为简化日常开发,提供了很大便利。SpringMVC提供了总开关DispatcherServlet;请求处理映射器(Handler Mapping)和处理适配器...

2019-10-10 13:37:25 505

原创 IOC工作流程

IOC工作流程IOC容器基本分成BeanFactory和ApplicationContext两类BeanFactory是基本,ApplicationContext多用在框架继承结构如图:BeanFactory接口方法/** 根据bean的名字获取Bean*/Object getBean(String name) throws BeansException;/** 根据bea...

2019-10-10 13:37:13 922

原创 Spring Bean的生命周期

这里写自定义目录标题Spring Bean的生命周期一、Bean 的完整生命周期二、Bean 的生命周期验证Spring Bean的生命周期前言这其实是一道面试题,是我在面试百度的时候被问到的,当时没有答出来(因为自己真的很菜),后来在网上寻找答案,看到也是一头雾水,直到看到了《Spring in action》这本书,书上有对Bean声明周期的大致解释,但是没有代码分析,所以就自己上网寻找...

2019-10-10 11:12:09 80

空空如也

空空如也

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

TA关注的人

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