自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java面试题系列(18)

十九、JVM说一下 jvm 的主要组成部分?及其作用?类加载器(ClassLoader)运行时数据区(Runtime Data Area)执行引擎(Execution Engine)本地库接口(Native Interface)组件的作用: 首先通过类加载器(ClassLoader)会把 Java 代码转换成字节码,运行时数据区(Runtime Data Area)再把字节码加载到内存中,而字节码文件只是 JVM 的一套指令集规范,并不能直接交个底层操作系统去执行,因此需要特定的命令解析器执

2021-09-04 09:00:56 123

原创 Java面试题系列(17)

十八、Redisredis 是什么?都有哪些使用场景?Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。Redis 使用场景:数据高并发的读写海量数据的读写对扩展性要求高的数据redis 有哪些功能?数据缓存功能分布式锁的功能支持数据持久化支持事务支持消息队列redis 和 memecache 有什么区别?memcached所有的值均是简单的字符串,redis作为其替代者,支持更为

2021-09-04 09:00:34 124

原创 Java面试题系列(16)

十八、Redisredis 是什么?都有哪些使用场景?Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。Redis 使用场景:数据高并发的读写海量数据的读写对扩展性要求高的数据redis 有哪些功能?数据缓存功能分布式锁的功能支持数据持久化支持事务支持消息队列redis 和 memecache 有什么区别?memcached所有的值均是简单的字符串,redis作为其替代者,支持更为

2021-09-04 09:00:14 125

原创 Java面试题系列(15)

十七、MySql数据库的三范式是什么?第一范式:强调的是列的原子性,即数据库表的每一列都是不可分割的原子数据项。第二范式:要求实体的属性完全依赖于主关键字。所谓完全依赖是指不能存在仅依赖主关键字一部分的属性。第三范式:任何非主属性不依赖于其它非主属性。一张自增表里面总共有 7 条数据,删除了最后 2 条数据,重启 mysql 数据库,又插入了一条数据,此时 id 是几?表类型如果是 MyISAM ,那 id 就是 18。表类型如果是 InnoDB,那 id 就是 15。InnoDB

2021-09-04 09:00:04 128

原创 Java面试题系列(14)

十六、Zookeeperzookeeper 是什么?zookeeper 是一个分布式的,开放源码的分布式应用程序协调服务,是 google chubby 的开源实现,是 hadoop 和 hbase 的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。zookeeper 都有哪些功能?集群管理:监控节点存活状态、运行请求等。主节点选举:主节点挂掉了之后可以从备用的节点开始新一轮选主,主节点选举说的就是这个选举的过程,使用 zook

2021-09-04 08:59:54 66

原创 Java面试题系列(13)

十五、Kafkakafka 可以脱离 zookeeper 单独使用吗?为什么?kafka 不能脱离 zookeeper 单独使用,因为 kafka 使用 zookeeper 管理和协调 kafka 的节点服务器。kafka 有几种数据保留的策略?kafka 有两种数据保存策略:按照过期时间保留和按照存储的消息大小保留。kafka 同时设置了 7 天和 10G 清除数据,到第五天的时候消息达到了 10G,这个时候 kafka 将如何处理?这个时候 kafka 会执行数据清除工作,时间和

2021-09-04 08:59:44 57

原创 Java面试题系列(12)

十四、RabbitMQrabbitmq 的使用场景有哪些?①. 跨系统的异步通信,所有需要异步交互的地方都可以使用消息队列。就像我们除了打电话(同步)以外,还需要发短信,发电子邮件(异步)的通讯方式。②. 多个应用之间的耦合,由于消息是平台无关和语言无关的,而且语义上也不再是函数调用,因此更适合作为多个应用之间的松耦合的接口。基于消息队列的耦合,不需要发送方和接收方同时在线。在企业应用集成(EAI)中,文件传输,共享数据库,消息队列,远程过程调用都可以作为集成的方法。③. 应用内的同步变异步,比

2021-09-04 08:59:34 73

原创 Java面试题系列(11)

十三、Mybatismybatis 中 #{}和 ${}的区别是什么?#{}是预编译处理,${}是字符串替换;Mybatis在处理#{}时,会将sql中的#{}替换为?号,调用PreparedStatement的set方法来赋值;Mybatis在处理时,就是把{}时,就是把时,就是把{}替换成变量的值;使用#{}可以有效的防止SQL注入,提高系统安全性。mybatis 有几种分页方式?数组分页sql分页拦截器分页RowBounds分页mybatis 逻辑分页和物理分页的区别是

2021-09-04 08:59:22 111

原创 Java面试题系列(10)

十二、Hibernate为什么要使用 hibernate?对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现。他很大程度的简化DAO层的编码工作hibernate使用Java反射机制,而不是字节码增强程序来实现透明性。hibernate的性能非常好,因为它是个轻量级框架。映射的灵活性很出色。它支持各种关系数据库,从一对一到多对多的各种复杂关系。什么是 ORM 框架?对象-关系映射(Obj

2021-09-03 15:26:09 71

原创 Java面试题系列(9)

十一、Spring Boot / Spring Cloud什么是 spring boot?在Spring框架这个大家族中,产生了很多衍生框架,比如 Spring、SpringMvc框架等,Spring的核心内容在于控制反转(IOC)和依赖注入(DI),所谓控制反转并非是一种技术,而是一种思想,在操作方面是指在spring配置文件中创建,依赖注入即为由spring容器为应用程序的某个对象提供资源,比如 引用对象、常量数据等。SpringBoot是一个框架,一种全新的编程规范,他的产生简化了框架的使用

2021-09-03 15:24:05 88

原创 Java面试题系列(8)

九、设计模式说一下你熟悉的设计模式?参考:常用的设计模式汇总,超详细!简单工厂和抽象工厂有什么区别?简单工厂模式:这个模式本身很简单而且使用在业务较简单的情况下。一般用于小项目或者具体产品很少扩展的情况(这样工厂类才不用经常更改)。它由三种角色组成:工厂类角色:这是本模式的核心,含有一定的商业逻辑和判断逻辑,根据逻辑不同,产生具体的工厂产品。如例子中的Driver类。抽象产品角色:它一般是具体产品继承的父类或者实现的接口。由接口或者抽象类来实现。如例中的Car接口。具体产品角色:工

2021-09-03 15:21:53 141

原创 Java面试题系列(7)

网络http 响应码 301 和 302 代表的是什么?有什么区别?答:301,302 都是HTTP状态的编码,都代表着某个URL发生了转移。区别:301 redirect: 301 代表永久性转移(Permanently Moved)。302 redirect: 302 代表暂时性转移(Temporarily Moved )。forward 和 redirect 的区别?Forward和Redirect代表了两种请求转发方式:直接转发和间接转发。直接转发方式(Forward),客户

2021-09-03 15:18:03 66

原创 Java面试题系列(6)

异常throw 和 throws 的区别?throws是用来声明一个方法可能抛出的所有异常信息,throws是将异常声明但是不处理,而是将异常往上传,谁调用我就交给谁处理。而throw则是指抛出的一个具体的异常类型。final、finally、finalize 有什么区别?final可以修饰类、变量、方法,修饰类表示该类不能被继承、修饰方法表示该方法不能被重写、修饰变量表示该变量是一个常量不能被重新赋值。finally一般作用在try-catch代码块中,在处理异常的时候,通常我们将一定要

2021-09-03 15:14:11 69

原创 Java面试题系列(5)

Java Webjsp 和 servlet 有什么区别?jsp经编译后就变成了Servlet.(JSP的本质就是Servlet,JVM只能识别java的类,不能识别JSP的代码,Web容器将JSP的代码编译成JVM能够识别的java类)jsp更擅长表现于页面显示,servlet更擅长于逻辑控制。Servlet中没有内置对象,Jsp中的内置对象都是必须通过HttpServletRequest对象,HttpServletResponse对象以及HttpServlet对象得到。Jsp是Servlet

2021-09-03 15:12:55 89

原创 Java面试题系列(4)

什么是反射?反射主要是指程序可以访问、检测和修改它本身状态或行为的一种能力Java反射:在Java运行时环境中,对于任意一个类,能否知道这个类有哪些属性和方法?对于任意一个对象,能否调用它的任意一个方法Java反射机制主要提供了以下功能:在运行时判断任意一个对象所属的类。在运行时构造任意一个类的对象。在运行时判断任意一个类所具有的成员变量和方法。在运行时调用任意一个对象的方法。什么是 java 序列化?什么情况下需要序列化?简单说就是为了保存在内存中的各种对象的状态(也就是实例变.

2021-09-03 15:11:45 72

原创 Java面试题系列(3)

并行和并发有什么区别?并行是指两个或者多个事件在同一时刻发生;而并发是指两个或多个事件在同一时间间隔发生。并行是在不同实体上的多个事件,并发是在同一实体上的多个事件。在一台处理器上“同时”处理多个任务,在多台处理器上同时处理多个任务。如hadoop分布式集群。所以并发编程的目标是充分的利用处理器的每一个核,以达到最高的处理性能。线程和进程的区别?简而言之,进程是程序运行和资源分配的基本单位,一个程序至少有一个进程,一个进程至少有一个线程。进程在执行过程中拥有独立的内存单元,而多个线程共享.

2021-09-03 15:07:29 86

原创 Java面试题系列(2)

java 容器都有哪些?常用容器的图录:Collection 和 Collections 有什么区别?java.util.Collection 是一个集合接口(集合类的一个顶级接口)。它提供了对集合对象进行基本操作的通用接口方法。Collection接口在Java 类库中有很多具体的实现。Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式,其直接继承接口有List与Set。Collections则是集合类的一个工具类/帮助类,其中提供了一系列静态方法,用于对集合中元.

2021-09-03 15:06:09 83

原创 Java面试题系列(1)

JDK 和 JRE 有什么区别?JDK:Java Development Kit 的简称,java 开发工具包,提供了 java 的开发环境和运行环境。JRE:Java Runtime Environment 的简称,java 运行环境,为 java 的运行提供了所需环境。具体来说 JDK 其实包含了 JRE,同时还包含了编译 java 源码的编译器 javac,还包含了很多 java 程序调试和分析的工具。简单来说:如果你需要运行 java 程序,只需安装 JRE 就可以了,如果你需要编写 ja.

2021-09-03 15:01:21 63

原创 centos7下mysql配置主从复制

1.先去主库修改配置文件vim /etc/my.cnflog_bin=mysql_bin #二进制日志文件,master产生,slave使用进行复制操作。 server_id=1 #给数据库服务的唯一标识 binlog_do_db=DB1 #复制的数据库(当该数据库有改变时,在从库中会有相对应的修改) binlog_ignore_db=DB2 #不复制的数据库2.重启mysqlsystemctl restart mysqld.service3.进入mysql增加从库读取日志文件账号权限

2020-12-29 16:57:56 101

原创 centos7离线安装mysql

//查看是否安装mariadbrpm -qa|grep mariadb//删除mariadbrpm -e --nodeps mariadb-libs//解压离线安装包tar -xvf mysql-8.0.15-1.el7.x86_64.rpm-bundle.tar//逐个安装rpm -ivh mysql-community-common-8.0.15-1.el7.x86_64.rpmrpm -ivh mysql-community-libs-8.0.15-1.el7.x86_64.rpmr

2020-12-28 17:52:32 76

原创 mybatis集成redis实现二级缓存

import lombok.extern.slf4j.Slf4j;import org.apache.ibatis.cache.Cache;import org.springframework.context.ApplicationContext;import org.springframework.data.redis.core.RedisCallback;import org.springframework.data.redis.core.RedisTemplate;import org.sp

2020-12-28 15:37:15 99

原创 aop自定义注解实现

先创个package 再创个注解接口@Target({ElementType.METHOD, ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface Zhujie { String value() default "";}然后用aop实现要做的功能@Aspect@Componentpublic class Cutmian { @Pointcut("@annotat

2020-12-24 16:05:06 122 1

原创 函数接口类型表

2020-12-24 11:05:19 230 1

原创 java :: 用法

主要分为四种class a{ private Integer id; private String name; public a(Integer id, String name) { this.id= id; this.name =name; } public static void b() { System.out.println("bbb"); } public void c(

2020-12-24 10:34:47 152

原创 学习悲观锁与乐观锁

乐观锁:顾名思义乐观锁即任务每一次查询的人都不是要修改这条数据的人,保持乐观心态的,实现原理无非是在每条数据后加一个字段Version字段,每次更新去比较这个字段,字段一致则没有人更新过此条数据并将更新后的数据进行version+1即可悲观锁:悲观锁即分为意向锁和排他锁,意向锁又为读锁,排他锁为写锁,意向锁的实现查询语句后加lock in share mode,意向锁对于谁先取锁并不重要,重要的是谁先修改,先修改的会修改成功,后修改的则不会执行,排他锁的实现查询语句后加for update,排他锁对于谁先

2020-12-01 15:25:32 93

原创 spring data mongo详解

用了很久的spring data mongo,对spring data mongo的一些基础操作进行个总结spring data mongo的实现分为两种方式第一种数据层继承MongoRepository第二种注入MongoTemple 模板化操作个人较为倾向于第二种,方便多数据源的切换MongoTemple的CRUD操作新增 mongoTemplate.insert(实体类,"集合名");修改 mongoTemplate.save(实体类, "集合名");删除当然也可以findAn

2020-11-23 15:56:19 1600

原创 java 文件下载跨域问题

response.reset();response.setContentType(“application/octet-stream; charset=utf-8”);response.addHeader(“Access-Control-Allow-Origin”, httpServletRequest.getHeader(“Origin”));response.addHeader(“Access-Control-Expose-Headers”,“token,uid,Content-Dispositi

2020-08-24 15:14:42 2171

原创 spring data mongo 重复字段条件查询

criteria1=new Criteria();criteria1.orOperator(list.stream().toArray(Criteria[]::new));query=new Query(criteria1);A a=mongoTemplate.findOne(query,A.class);

2020-08-24 15:12:36 313

原创 spring data mongo 分组查询

spring data mongo 分组查询GroupOperation groupOperation = Aggregation.group(“字段1”, “字段2”).count().as(“count”);Aggregation agg = Aggregation.newAggregation(查询条件或映射类,groupOperation);Aggregation.project(“字段1”,“字段2”,“字段3”);AggregationResults results = mongoTem

2020-08-24 15:07:16 383

原创 Java jdk List转map

List转map 使用JDK1.8Map<Long, User> maps = userList.stream().collect(Collectors.toMap(User::getId,Function.identity()));看来还是使用JDK 1.8方便一些。另外,转换成map的时候,可能出现key一样的情况,如果不指定一个覆盖规则,上面的代码是会报错的。转成map的时候,最好使用下面的方式:Map<Long, User> maps = userList.stream

2020-08-24 15:02:38 636

原创 故因事务需要搭建mongodb副本集多端口

mongodb服务搭建副本,一台服务器多个端口一、创建副本集1、建立文件夹C:\MongoDB\Server\bin> mkdir C:\MongoDB\mdb0C:\MongoDB\Server\bin> mkdir C:\MongoDB\mdb1C:\MongoDB\Server\bin> mkdir C:\MongoDB\mdb22、关闭服务器端口我的电脑找到管理 暂停mongodb服务C:\Windows\system32> net stop mongodb

2020-06-05 16:58:39 563

原创 java 下载ERR_RESPONSE_HEADERS_MULTIPLE_CONTENT_DISPOSITION解决方法

查看你下载的文件名字是否包含逗号

2020-04-24 09:02:24 1164 1

原创 java使用jna调用c或c++的dll文件

java使用jna调用c或c++的dll文件首先引入jna.jar<dependency> <groupId>net.java.dev.jna</groupId> <artifactId>jna</artifactId> <version>5.5...

2020-04-03 09:46:57 313

原创 java实现文件下载两种方式(一)

java实现文件下载两种方式(一)前端直接超链接即可,修改文件类型需修改contenttype中的类型import org.apache.commons.io.FileUtils;public void export(HttpServletResponse response) throws IOException {File f=new File(“文件路径”);response.res...

2020-04-03 09:25:32 507

原创 java实现在线预览txt转pdf

java实现在线预览txt转pdf首先引入itext的jar包<dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> <version>5.5.13....

2020-04-02 16:12:29 884 1

原创 java批量下载打成zip

**java批量下载打成zip首先引入所需jar包<dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3...

2020-04-02 16:00:47 139

空空如也

空空如也

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

TA关注的人

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