Java面试题
文章平均质量分 88
挽风如你
别看我 我就是一个学渣
展开
-
斗鱼面试官:Thread.sleep(0) 到底有什么用?
我们可能经常会用到 Thread.Sleep 函数来吧使线程挂起一段时间。那么你有没有正确的理解这个函数的用法呢?思考下面这两个问题:假设现在是 2008-4-7 12:00:00.000,如果我调用一下 Thread.Sleep(1000) ,在 2008-4-7 12:00:01.000 的时候,这个线程会不会被唤醒?某人的代码中用了一句看似莫明其妙的话:Thread.Sleep(0) 。既然是 Sleep 0 毫秒,那么他跟去掉这句代码相比,有啥区别么?我们先回顾一下操作系统原理。操作系统中原创 2021-03-13 19:01:10 · 136 阅读 · 0 评论 -
面试被问:Redis 内存满了怎么办?
目录Redis占用内存大小Redis的内存淘汰LRU算法LRU在Redis中的实现LFU算法问题Redis占用内存大小我们知道Redis是基于内存的key-value数据库,因为系统的内存大小有限,所以我们在使用Redis的时候可以配置Redis能使用的最大的内存大小。1、通过配置文件配置通过在Redis安装目录下面的redis.conf配置文件中添加以下配置设置内存大小//设置Redis最大占用内存大小为100Mmaxmemory 100mbredis的配置文件不一定使用的是安装目录下面原创 2021-02-24 20:20:08 · 125 阅读 · 0 评论 -
总结一波 Redis 面试题,收藏起来
本文的面试题如下:Redis 持久化机制缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题热点数据和冷数据是什么Memcache与Redis的区别都有哪些?单线程的redis为什么这么快redis的数据类型,以及每种数据类型的使用场景,Redis 内部结构redis的过期策略以及内存淘汰机制Redis 为什么是单线程的,优点如何解决redis的并发竞争key问题Redis 集群方案应该怎么做?都有哪些方案?有没有尝试进行多机redis 的部署?如何保证数据一致的?对于大量的请求原创 2021-02-20 17:11:49 · 191 阅读 · 0 评论 -
搜狗面试题:JAVA使用for循环会重复调用list.size()吗?
最近,有朋友讨论说for循环里不要用list.size(),这样会导致每次都调用一次list.size()接口会耗性能,建议我们在外面使用一个变量来存储这个list.size()的值再放到循环里面,真的是这样吗?我做了个小测试,代码如下:public class Test2 { public static void main(String[] args) { List list = new ArrayList<String>(); list.add原创 2020-12-05 16:36:11 · 361 阅读 · 0 评论 -
数据类型
八种数据类型数据类型是指数据的类型。Java中主要有八种基本数据类型:byte、short、int、long、float、double、boolean、char。概念:byte:8位、有符号的以二进制补码表示的整数min : -128(-2^7)max: 127(2^7-1)default: 0对应包装类:Byte占用1个字节short:16位、有符号的以二进制补码表示的整数min : -32768(-2^15)max: 32767(2^15 - 1)原创 2020-10-21 22:29:17 · 474 阅读 · 3 评论 -
说说Session实现机制以及和Cookie的区别?
1、为什么有Session和Cookie?.根据早期的HTTP协议,每次request-reponse时,都要重新建立TCP连接。TCP连接每次都重新建立,所以服务器无法知道上次请求和本次请求是否来自于同一个客户端。因此,HTTP通信是无状态的。服务器认为每次请求都是一个全新的请求,无论该请求是否来自同一地址。但是这也带来了问题,假如不使用Session或Cookie,那么就意味着假如你登录了某个购物网站,你的每次请求因为无状态,购物网站的服务器都无法判断你的身份和登陆与否,意味着为了保持登陆你必须浏览原创 2020-10-17 09:44:16 · 202 阅读 · 2 评论 -
使用sql语句查出每门课成绩都大于80分的学生姓名
根据表的结构来使用sql语句查询建表SQL如下:create table stu_grade(name varchar(20),coursevarchar(20),grade int);– 插入数据INSERT INTO stu_grade VALUES (‘张三’, ‘语文’, ‘81’);INSERT INTO stu_grade VALUES (‘张三’, ‘数学’, ‘75’);INSERT INTO stu_grade VALUES (‘李四’, ‘语文’, ‘76’);INS原创 2020-10-21 15:25:28 · 30019 阅读 · 1 评论 -
写一段代码在遍历ArrayList时移除一个元素(假设条件remove为true时移除)
1. Java中Iterator用法整理概念: 迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构。迭代器通常被称为“轻量级”对象,因为创建它的代价小。Java中的Iterator功能比较简单,并且只能单向移动:(1) 使用方法iterator()要求容器返回一个Iterator。第一次调用Iterator的next()方法时,它返回序列的第一个元素。注意:iterator()方法是java.lang.Iterable接口,被Collection继承原创 2020-10-21 15:04:47 · 472 阅读 · 2 评论 -
冒泡排序法
冒泡排序(Bubble Sort)冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。概念:从前向后(或从后向前)依次比较相邻的元素,若发现逆顺序,则交换。小的向前换,大的向后换,像水底的气泡逐渐向上冒,顾名思义冒泡排序法。通俗一点就是把大的往上挪!向冒泡一样。是交换式排序法的一种。冒泡排序法效率较原创 2020-10-21 14:42:08 · 490 阅读 · 0 评论 -
try-catch-finally执行的顺序问题
问题:try{}里有一个return语句,那么紧跟在这个try后的finally{}里的代码会不会被执行,什么时候被执行,在return前还是后?不管有没有出现异常,finally代码块都会执行;不管try和catch的代码块中有没有return时,finally仍会执行,且如果finally代码块也有return,则此代码肯定会返回finally执行的return值.分有return和没有return来讨论try-catch-finally执行顺序的情况:1. 无return如:try {转载 2020-10-21 14:32:09 · 1074 阅读 · 2 评论 -
集合Set、Map、List三种集合的区别
List、Map、Set的区别与联系一、结构特点List和Set是存储单列数据的集合,Map是存储键值对这样的双列数据的集合;List中存储的数据是有顺序的,并且值允许重复;Map中存储的数据是无序的,它的键是不允许重复的,但是值是允许重复的;Set中存储的数据是无顺序的,并且不允许重复,但元素在集合中的位置是由元素的hashcode决定,即位置是固定的(Set集合是根据hashcode来进行数据存储的,所以位置是固定的,但是这个位置不是用户可以控制的,所以对于用户来说set中的元素还是无序的)原创 2020-10-21 13:00:06 · 486 阅读 · 0 评论 -
“equals“和“==“和“compareTo”的区别
1. 功能不同"=="是判断两个变量或实例是不是指向同一个内存空间。"equals"是判断两个变量或实例所指向的内存空间的值是不是相同2. 定义不同"equals"在JAVA中是一个方法。"=="在JAVA中只是一个运算符合。3.比较不同"=="是指对内存地址进行比较"equals"是对字符串的内容进行比较总结:==是指引用是否相同equals指的值是否相同一图胜千言举个例子:public class EqualsTest { public static vo原创 2020-10-21 12:28:53 · 2212 阅读 · 3 评论