一页书

你永远不会过度准备

01. JAVA中的几种基本数据类型是什么,各自占用多少字节?

JAVA的八种基本数据类型

  • 整型
    • byte 、 short 、 int 、 long
  • 浮点型
    • float 、 double
  • 字符型
    • char
  • 布尔型
    • boolean

1. 缓存穿透

缓存穿透:key中对应的缓存数据不存在,导致去请求数据库,造成数据库的压力倍增的情况。

解决方案:

  1. 采用布隆过滤器(BloomFilter)进行数据拦截,在查询的时候先去 BloomFilter 去查询 key 是否存在,如果不存在就直接返回,存在再走查 缓存 -> 查 DB。
  2. 如果请求的数据为空,我们可以将空值也进行一次缓存(过期时间设置短点),这样再请求的时候就会返回null。
  3. 后端接口层增加 用户鉴权校验,参数做校验等。
  4. 单个IP每秒访问次数超过阈值直接拉黑IP,关进小黑屋1天。

1. 单独仓库配置

  • 打开Maven配置文件 apache-maven-3.6.3\conf\settings.xml
  • <mirrors></mirrors>标签里新增一个mirror配置即可。
<mirrors>
    <mirror>
        <id>aliyun</id>
        <name>aliyun maven</name>
        <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
        <mirrorOf>*</mirrorOf>
    </mirror>
</mirrors>

1. 什么是Java反射机制?

java反射机制就是java程序在运行的时候 动态创建类并调用类的方法以及属性

2. 反射的原理?

简单来说就是类加载时,jvm通过字节码class文件,生成相应的对象。

1. 基本概念

1.1 HashMap:

HashMap是一个实现了Map接口的基于哈希表的类。

查找时,给出一个关键字key,我们可以根据hash算法计算出key-value的存储位置然后取出value。

存储时,我们根据哈希算法计算出该键值对应该存储的位置,将其存进去。

HashMap是以键值对的形式存储和操作数据的容器类型。插入和查询“键值对”的开销是固定的,可以通过构造器设置容量和加载因子,以调整容器性能。

推介加载因子为0.75,0.75是一个折中选择后的推介值,能解决大多数场景问题。

0%