- 为什么重写 equals 还要重写 hashcode?
hashMap中如果key使用自定义类型,要重写hashcode和equals - == 和 equals 比较的区别?
- 对于==,比较的是值是否相等 (其实==比较的不管是基本数据类型,还是引用数据类型的变量,比较的都是值,只是引用类型变量存的值是对象的地址)
- 如果作用于基本数据类型的变量,则直接比较其存储的 值是否相等,
- 如果作用于引用类型的变量,则比较的是所指向的对象的地址是否相等。
- 对于equals方法,比较的是是否是同一个对象
- equals()方法不能作用于基本数据类型的变量,
- equals()方法存在于Object类中,而Object类是所有类的直接或间接父类,所以说所有类中的equals()方法都继承自Object类,在没有重写equals()方法的类中,调用equals()方法其实和使用==的效果一样,也是比较的是引用类型的变量所指向的对象的地址,不过,Java提供的类中,有些类都重写了equals()方法,重写后的equals()方法一般都是比较两个对象的值,比如String类。
- 为啥有时会出现 4.0 - 3.6 = 0.40000001 这种现象?
在二进制系统中无法精确地表示分数1/10,这就好像十进制无法精确地表示分数1/3一样。 - final 关键字的作用
final作用 - 介绍 Java 的集合类
java中的集合 - ArrayList 和 linkedList 的区别
区别 - 反射三种方式
- 通过类的对象来进行获取:Student stu = new Student(); Class clazz = stu.getClass();
- 通过类名来进行获取:Class clazz = Student.class;
- 通过类的相对路径来进行获取:Class clazz = Class.forName(“com.jdbc.mysql.Driver”);
- 协程
讲解一
讲解二
- java 8 有哪些新特性?
- 谈谈你理解的 HashMap,讲讲其中的 get put 过程。HashMap详解
- 有没有线程安全的并发容器?
并发容器JUC(java.util.concurrent)
并发容器里面提供的线程安全的集合和map。
ArrayList—>CopyOnWriteArrayList
HashSet—>CopyOnWriteArraySet
TreeSet—>ConcurrentSkipListSet
HashMap(线程不安全)—>ConcurrentHashMap
TreeMap—>ConcurrentSkipListMap - ConcurrentHashMap 是如何实现的?(目前还不理解)
ConcurrentHashMap - HashMap 为什么不用跳表替换红黑树呢?理解
- java中实现多线程的方式解释
- springboot中异步操作是怎么实现的?
常见问题
算法与数据结构- leetcode100题目
- leetcode初级算法书籍
- 什么是死锁?死锁产生的条件?解释
- 线程有哪几种状态?解释
- 有哪些进程调度算法?解释
进程调度算法 - 什么是缓冲区溢出?解释
- 计算机网络各层有哪些协议?解释
- TCP 和 UDP 协议的区别?解释
- TCP 为什么需要三次握手和四次挥手?解释
- HTTP 和 HTTPS 协议的区别?解释
- get和post的区别?解释
- cookie和session的区别?解释
- MySQL 索引的最左原则解释
- InnoDB 和 MyIsam 引擎的区别?解释
- 有哪些优化数据库性能的方法?解释
- 如何定位慢查询?解释
- MySQL 支持行锁还是表锁?分别有哪些优缺点?解释
- mysql事务隔离级别 换读 脏读 解释1 解释2
- redis中的数据类型
包括String,List,Set,Zset,Hash - 题目总结
- 如何查看某个进程的运行状态?
- 如何在 Linux 上查看 2 G 的大文件?
- Linux 软链接和硬链接的区别
- 查看进程PID以及进程详细信息?
Linux在启动一个进程时,系统会在/proc下创建一个以PID命名的文件夹,在该文件夹下会有我们的进程的信息,其中包括一个名为exe的文件即记录了绝对路径,通过ll或ls –l命令即可查看。 - linux中查看进程的命令 解释
ll /proc/PID
cwd符号链接的是进程运行目录
exe符号连接就是执行程序的绝对路径
cmdline就是程序运行时输入的命令行命令
environ记录了进程运行时的环境变量
fd目录下是进程打开或使用的文件的符号连接
- 介绍:该模块主要实现的是游戏中的业务逻辑,与客户端进行交互。
- 开发流程:(1)业务分析 (2)与客户端进行沟通完成消息协议与数据库协议的制定 (3)进行业务的开发 (4)与客户端进行联调,测试业务的功能
- 开发中的重点:协程的使用,当时学习到了netty
- 介绍:基于web的游戏管理平台,主要管理公司内部的游戏,比如玩家的管理、服务器管理、游戏活动管理以及道具管理等。
- 技术框架:
- 前端使用阿里的飞冰框架进行搭建,飞冰是一个基于 React 的研发解决方案,围绕应用研发框架 icejs 提供基础的构建、路由、调试等基础能力以及微前端、一体化等领域能力,同时结合可视化操作、物料复用等方案降低研发门槛。
- 后端使用springboot框架进行搭建,我实现的功能是前后端权限的校验。权限校验的粒度细致到每一个接口,这个功能模块总共涉及4张数据表,分别是 接口表,权限组表,角色表以及用户表。 用户在登陆成功以后,系统会为其生成一个密钥,然后以键值对的形式存入至redis中,其值为该用户所有的权限的url,同时将这个密钥返回给用户,接下来用户每次在访问接口的时候,都会带上这个密钥,在后端的拦截器中会截取到密钥,然后在redis中进行查找,如果找不到则说明key过期了,重定向到登录页面,如果能够找到,则将其拿到,判断一下她是否包含当前的这个访问路径,包含的话则正常请求,如果不包含的话,则阻止请求。
基础java



