
面试
Country Programmer
无人问津的日子里,认真沉淀自己
展开
-
Java-ArrayList和LinkedList的区别
(1)ArrayList底层是顺序表(数组),LinkedList底层是链表;(2)ArrayList的数据存在在连续的内存空间上,而LinkedList不是;(3)ArrayList能够高效的进行“随机访问”,按照下标操作元素的时间复杂度为O(1);(4)ArrayList能够高效的进行“插入删除”操作,插入删除的时间复杂度为O(1);这里需要注意的一点是:由于LinkedList在指定位置插入,add()方法是通过下标来确定要插入的位置,取下标的操作仍然是O(n).(5)ArrayList在初原创 2020-08-05 14:00:16 · 168 阅读 · 0 评论 -
Java-集合
一、介绍hashMaphashMap是一个集合Collection,它是基于Map集合实现的,它存储Key-Value这样的键值对,类似于一个映射表。1、针对插入的数据,首先要根据key进行一个数学变换(把key经过一定的数学变换转成下标的过程称为“哈希函数”/“散列函数”,无论插入/删除/查找,执行之前都需计算下标,这个下标也就是哈希值。比如说:key%数组长度->数组下标key-low->数组下标2、两个相同的key,通过相同的哈希函数计算得到的hash值一定相同;3、哈希冲突:原创 2020-07-17 21:21:07 · 160 阅读 · 0 评论 -
Java-链表2
一、相交链表的起始节点public class Solution { //找两个链表的公共节点 public ListNode getIntersectionNode(ListNode headA, ListNode headB) { if (headA == null || headB == null) { return null; } int lenA = 0; int lenB = 0;原创 2020-07-17 14:25:25 · 187 阅读 · 0 评论 -
Java-链表
一、删除链表中所有值等于val的节点class Solution { public ListNode removeElements(ListNode head, int val) { //先判断链表是否为空 if(head==null){ return null; } ListNode prev=head; ListNode cur=head.next; wh原创 2020-07-16 15:33:18 · 223 阅读 · 0 评论 -
Java-类加载过程
一、请你讲讲类的加载过程以及双亲委派模型x一个.java文件从编码到最终执行,一般需要两个主要的过程:1、编译:将.java文件,通过javac命令编译成字节码文件2、运行:将编译生成.class文件交给JVM执行二、类加载过程对应的class对象的过程类加载过程指的是JVM虚拟机把.class文件中类的信息加载进内存,并运行解析生成对应的class对象JVM不是一开始就把所有的类加载进内存,而是在执行代码过程中,遇到这个类,此时内存中并没有这个类的相关信息,因此JVM就去.class文件中去原创 2020-07-15 14:39:56 · 336 阅读 · 0 评论 -
Java-方法重载和方法重写的区别
一、方法重载针对同一个类(1)方法名称一样(2)方法返回值不作要求(3)参数列表不同(参数个数不同或者参数的类型不同)二、方法重写针对不同的类(父类、子类或者接口、实现类)(1)方法名称相同(2)返回值相同或者相容(3)参数列表相同(参数类型和参数个数都要相同)(4)方法重写用@Override注解标注(5)方法重写时,子类的权限修饰符的权限>=父类的权限修饰符(6)子类不能重写权限修饰符为private的类的方法(7)静态方法不能被重写三、方法重载的目的多个方法使用同一原创 2020-07-15 13:55:24 · 292 阅读 · 0 评论 -
Java-JDK相关命令
JDK的相关命令:启动:Win+R切换盘符: 盘符名称退回根路径: cd 返回上一级:cd…查看当前内容:dir清屏:cls退出关闭:exit切换文件夹:cd 文件夹路径打开powershell窗口:shift+鼠标右键原创 2020-07-15 13:37:50 · 186 阅读 · 0 评论