面试题
文章平均质量分 79
不会Java的MING
Java虐我千百遍,我待Java如初恋
展开
-
为什么Java中只有值传递?
看似结果变了,但是在引用数据类型里面,student所代表的是new Student("张三")的地址,将change函数被调用的时候,实际上是将地址值赋给了形参,change函数对new Student("张三");结果没有改变,因为Java中字符串是一个常量,修改字符串不是修改了字符串的值,只是创建了一个新的字符串,然后将变量指向的地址换成了新的字符串地址,所以只是改变了形参。在这里,我们的实参没有改变,只是改变了形参的值,实参和形参都是相互独立的。1,了解值传递和引用传递的概念.原创 2023-07-24 13:30:07 · 110 阅读 · 0 评论 -
Java的数据结构
通过下标快速定位,如果为这个位置什么都没有就返回null,如果有就调用equals(),如果链表上所有的k都为false,那就返回null,负责true,就返回出这个value。如果下标处为null,那就将数据插入,如果下标不为null,将调用equals()方法,如果又返回false,将value插入到链表的末尾,如果为true,就将数据覆盖。链表是一种递归类型的数据结构,它可以为空,或者指向一个节点的引用,该节点还有另外一个元素和一个指向另外一条链表的引用。含有大量的引用,占用的内存空间大;原创 2023-07-07 16:43:15 · 577 阅读 · 0 评论 -
Java的正则表达式---超详细!!!
正则表达式不限于某一种语言,它在不同的语言之中有区别。正则表达式搜索,编辑,处理文本。正则表达式定义了字符串的模式。一个字符串就是一个正则表达式。Hello World 正则表达式匹配 "Hello World" 字符串。this\s+is\s+text,其中‘\s+’,对应的是‘ ’(空格),最终结果:this is text。,其中,‘^’定义了以什么开始,\d+ 匹配一个或多个数字?设置括号内的选项是可选的\. 匹配 "."可以匹配的实例:"5", "1.5" 和 "2.21"。原创 2023-07-06 16:24:32 · 686 阅读 · 0 评论 -
Java面试题,集合部分
使用ArrayList()创建ArrayList对象时,不会定义底层数组的长度,当第一次调用add(E e) 方法时,初始化定义底层数组的长度为10,之后调用add(E e)时,如果需要扩容,则调用grow(int minCapacity) 进行扩容,长度为原来的1.5倍。HashSet的值是作为HashMap的key存储在HashMap中的,而HashMap中的key是不能重复的,所以HashSet的元素固然不会重复。ArrayList:动态数组,提供了动态的增加和减少元素,可以灵活的设置数组的大小。原创 2023-06-11 13:23:24 · 107 阅读 · 0 评论 -
Java面试题,Java的异常问题
最大的不同就是在于处理异常的方式,受检异常需要进行显式的处理,而运行时异常不需要,受检异常也可以再代码层面上预测,从而再编写代码是比卖你出现异常的情况,而运行时异常是可以避免的。IOException:当发生某种I/O异常时,抛出此异常。throws关键字用于声明可能抛出的某类异常,通常用于在方法签名中声明方法可能会抛出的异常。运行时异常时程序再执行过程中遇到的异常情况属于是程序错误,可以再开发或者测试时避免。throw关键字用于程序中显示的抛出一个异常对象,通常用于再方法内部抛出一个异常。原创 2023-06-09 19:49:34 · 182 阅读 · 0 评论 -
2023面试,特别详细的八股
泛型指的是,参数化类型,将所操作的数据类型指定为一个参数,在不创建新类的情况下,通过参数来指定所要操作的具体类型,在创建对象或者调用方法时才可以明确具体的类型。不可以重写static,方法重写是基于运行时的动态绑定的,而static方法编译时是静态绑定的,static方法类的任何事例都不相关联。使用抽象类,如果你想添加新的方法,可以直接提供默认的实现,不用改变现有的代码。重载指的是不同的函数属于相同的函数名,但是参数的个数或者类型不同,调用时根据不同的参数来区分不同的函数。原创 2023-06-05 18:05:18 · 105 阅读 · 0 评论 -
慧点科技面经
NumberFormatException:当应用程序试图将字符串转换成一种数值类型,但该字符串不能转换为适当格式时,抛出该异常。IOException:当发生某种I/O异常时,抛出此异常。此类是失败或中断的I/O操作生成的异常的通用类。FileNotFoundException:当试图打开指定路径名表示的文件失败时,抛出此异常。NullPointerException:当应用程序试图访问空对象时,则抛出该异常。SQLException:提供关于数据库访问错误或其他错误信息的异常。原创 2023-05-31 22:11:46 · 139 阅读 · 0 评论 -
面试刷题java
利用一个队列存储每一层的元素,最开始的时候先将根节点放入队列中,然后进行循环,循环的条件就是队列不为空,先获取队列地长度,然后逐个将队列头部地元素弹出,并且将弹出地结点地儿子结点放入栈中,等到一层遍历结束,队列中地元素都是子节点地元素,也就是下一层地原素,这样就实现了树地层次遍历了。java.lang包是java语言的核心包,lang是language的缩写 java.lang包定义了一些基本的类型,包括Integer,String之类的,是java程序必备的包,有解释器自动引入,无需手动导入。原创 2023-05-24 20:36:09 · 289 阅读 · 0 评论 -
经典面试题8(IOC 和 AOP,设计模式,Spring Bean 的生命周期,延迟加载,多级缓存机制)
Servlet的生命周期就是Bean从创建到销毁的过程:实例化,属性赋值,初始化,销毁。1,实例化通过反射来推断构造函数进行实例化实例化工厂,静态工厂2,属性赋值解析自动装配,方式(byname bytype constractor none @Autowired)循环依赖3,初始化调用—Aware回调方法(BeanNameAware,BeanClassLoaderAwar,BeanFactoryAwre等)调用初始化生命周期回调(注解,intiializingBean接口,注解属性)原创 2023-04-24 16:42:49 · 705 阅读 · 0 评论 -
经典面试题7(索引的最左原则,InnoDB 和 MyIsam 引擎,优化数据库性能,慢查询,行锁,表锁)
所以MyIsam表占用空间大。mysql的索引是通过B+树来实现的,不管是普通索引还是联合索引,对于普通索引来说,就是在非节点上记录的是索引的值,叶子节点上记录的是主键索引的值,它的排序条件是根据主键的值。所以,最左前缀匹配就是:因为索引的底层是一个B+树,如果是联合索引,在构造B+树的时候,就会先按照最左的索引值排序,当左边的相同,再依次按照右边的索引来排序。对于联合索引来说,如果以(num,age)为索引,非叶子节点上就是num,age的值,叶子节点上就是num,age两个字段以及主键count的值。原创 2023-04-23 12:58:42 · 291 阅读 · 0 评论 -
经典面试题6(死锁,线程状态,进程调度算法,缓冲区溢出,缓冲区溢出,三次握手和四次挥手,HTTP 和 HTTPS 协议)
在两个或者多个并发的进程中,如果每个进程持有某种资源而又等待其他的进程释放他们的资源,在一直持续这种状况的情况下,不能向前推进的现象,称为死锁。就是进程之间相互阻塞,相互等待的状态。互斥条件:一个资源一次只能被一个进程调用请求与保持条件:一个进程因请求资源而阻塞时,对已经获得的资源不放。不剥夺条件:进程获得资源,在其他进程未使用完的情况下,不能强行剥夺。循环等待条件:若干进程之间形成一种循环,来等待资源的关系。1,死锁预防破除互斥条件(一般无法破除)原创 2023-04-22 17:50:19 · 303 阅读 · 1 评论 -
经典面试题5(SpringBoot)
SpringBoot主要用来简化使用Spring的的使用,它是Spring组件的一站式解决方案,使用yml文件代替了复杂的xml文件,同时提供了各种启动器,使开发者能快速上手。4,springboot引导的应用程序可以与spring生态系统集成,比如spring jdbc,spring orm,spring data,spring security。Spring提供了用ControllerAdvice处理异常的非常有用的方法,我们通过ControllerAdvice类,来处理控制器类抛出的异常。原创 2023-04-21 10:54:53 · 60 阅读 · 0 评论 -
经典面试题4(堆内存,索引,缓存击穿,缓存穿透,缓存雪崩,redis的持久化)
AOF(append only file),只允许追加不允许改写的文件,换了一个角度来实现持久化,就是将redis执行的所有指令记录下来,在下次redis重新启动的时候,只要把这些指令从前到后重复执行一遍,就可以实现数据恢复了。Redis的缓存击穿是指的是,当一个非常热门的key过期之后,同时有大量的并发请求过来,此时会导致缓存没有起作用,请求都会穿透到数据库层,请求都会穿透到数据库层,从而导致数据库压力骤增,严重影响系统性能。2,每次插入,删除数据的时候,都需要更新索引,降低读写速度。原创 2023-04-20 11:56:15 · 77 阅读 · 0 评论 -
经典面试题3(ThreadLocal ,同步锁,死锁,乐观锁,悲观锁,反射,Hashmap 和 hashtable ConcurrentHashMap)
1,ThreadLocal 的原理是线程本地变量,它的作用就是,对于同一个变量,在不同的线程之中,可以获取到不同的值。它的值保存在线程本地的,保证线程的安全性,他有一个静态内部类ThreadLocalMap,也就是key-value形式的存储值。ThreadLocal 本身并不存储值,它只是作为一个 key 保存到 ThreadLocalMap 中。它的 key 用的是弱引用,因为没有强引用链,弱引用在 GC 的时候可能会被回收。原创 2023-04-15 21:51:30 · 315 阅读 · 0 评论 -
手撕红黑树代码(Java)
红黑树详细讲解,详细的源码讲解原创 2023-04-02 12:02:34 · 306 阅读 · 2 评论 -
经典面试题2(ArrayList 和 LinkedList )
我在了解两者之间的差别的时候,看到了这句话,“如果真的不知道该用 ArrayList 还是LinkedList,就选择 ArrayList 吧!ArrayList是使用了动态数组来存储元素的,LinkedList内部使用双向链表来存储元素,这是他们之间最本质的区别。特别是,当列表很大的时候,LinkedList由于需要存放上一个和下一个元素的地址,这样会导致内存需要比ArrayList更大的开销。所以,根据两者不同方法的时间复杂度,我们对他们就有了一个初步的认识,并且可以区分,在什么情况使用他们。原创 2023-03-29 17:56:57 · 179 阅读 · 0 评论 -
经典面试题1(Java 的集合类,HashMap 的实现原理)
主要分为:set list mapJava容器分为Collection 和 Map 两大类,其中Collection集合的子接口有Set、List、Queue三种子接口,Map也是一个接口,但是不是Collection的子接口。List:一个有序容器,元素可以重复,可以插入多个null元素,元素都有索引。常用的实现类有 ArrayList、LinkedList 和 Vector。Set:一个无序容器,不可以存储重复元素,只允许存入一个null元素,必须保证元素唯一性。原创 2023-03-28 22:40:02 · 118 阅读 · 1 评论