代码编织梦想

&抽象类是他的所有子类的公共属性的集合,!抽象类不一定有抽象方法,但有抽象方法的类一定是抽象类!

&抽象类不能用来创建对象,即抽象类不能被直接实例化(new),要通过其普通子类进行实例化

&·静态变量一般来说是由类直接调用

&·静态方法只能访问静态成员,不能访问实例成员;而实例方法可以访问静态成员和实例成员

&ArrayList的特点:

       1.ArrayList的底层是数组

       2.ArrayList使用new去创建它的时候,它的初始大小是多少?10

       注:双击shift的时候,可以在IEDA中打开一个对类进行搜索的小窗口

       3.ArrayList的扩容机制是怎么样的呢?

          扩容操作最容易新增元素的时候触发。原因:如果元素过多,导致原本list装不下。扩容

          机制和数组扩容机制相同,也是复制数组的原理

       注:通过ctrl+F12来对当前类的属性和方法进行一个大概的查看

&&&HashMap的特点

       1.HashMap是以数组+链表的形式存在

       2.HashMap的初始容量--------->16(1 << 4)

       3.HashMap的负载因子。现有元素个数/HashMap的容量=负载因子       (和扩容操作相关)

              DEFAULT_LOAD_FACTOR =  0.75f

       4.Hash中桶值的含义(HashMap中,桶值为8)

       5.HashMap在JDK1.8之后,如果桶值大于8,就会将链表转换为红黑树

              目的:

                     1.降低时间复杂度,提升查询效率(TREELFY_THRESHOLD = 8))

       5.HashMap的扩容机制(每次扩容扩容多少?)原容量的两倍

       6.Hash的含义:Hash(哈希)是一种操作,HashCode(哈希值)是数据通过哈希操作得到的

       7.哈希值的作用是确定数据在哈希表中的位置

       8.哈希表:我们学习过程中,带有Hash名称的,我们都可以将他简单看作一个哈希表

       9.哈希冲突:多个不同的数据,通过hash操作,却得到了相同的哈希值。这种现象就称为哈希冲突

       10.哈希冲突危害:降低查询、增删的性能

       11.降低哈希冲突的手段之一:reHash(类似于递归操作,将上一次的hash操作的结果作为下一次hash操作的参数)

&&值传递和引用传递

值传递和引用传递的概念:

       1.两种传递方式和方法的参数有关

       &2.大部分情况下,在数据做为参数传递的时候,基本数据类型采用的是值传递,引用数据类型是引用传递

       3.包装类,String类虽然是引用传递,但是还是值传递的形式参与方法的操作

              原因:final关键字所修饰

       &4.值传递:传递的数据的值的副本,方法内部对方法参数的修改,不会影响方法体外部的变量的值(基本数据类型)

       &5.引用传递:传递的是数据的地址,方法内部对方法参数的修改,会影响方法题外部的变量的值

&throw出现在方法体中,用来抛出一个异常。程序会在throw语句后停止,如果存在catch

          语句,则会执行catch中的代码块

                                                 Java中线程的生命周期

新建状态:建立一个线程对象后该线程对象就处于新建状态。它保持这个状态直到执行start() 方法

就绪状态:当线程调用了start()方法之后,就会进入就绪状态。此时的线程处于就绪队列(默认先入先出)中,等待JVM的调度。

运行状态:就绪状态的线程获取 CPU 资源,就可以执行 run()方法,此时线程便处于运行状态。处于运行状态的线程较为复杂,它可以变为阻塞状态、就绪状态和死亡状态。

阻塞状态:如果一个线程执行了sleep(睡眠)、suspend(挂起)等方法,失去所占用资源之后,该线程就从运行状态进入阻塞状态。在睡眠时间已到或获得设备资源后可以重新进入就绪状态。进入阻塞的几种方法:wait()、synchronized、sleep()、join()、sleep()

Java多线程中的线程优先级

Java 线程的优先级是一个整数,取值范围是 1 (Thread.MIN_PRIORITY ) - 10 (Thread.MAX_PRIORITY )。

默认情况下,每一个线程都会分配一个优先级 NORM_PRIORITY(5)。

具有较高优先级的线程对程序更重要,并且应该在低优先级的线程之前分配处理器资源。但是,线程优先级不能保证线程执行的顺序

synchronized保证原子性操作,许多源码也有用到它

volatile不保证原子性操作

synchronized存在对象锁和非对象锁,同一对象锁之间存在互斥,其他类似的锁也是同理

关于线程常见的面试题:

公平锁和非公平锁:核心区别就是抢占。

ReentrantLock和synchronized的区别:可以实例化对象;含有更多丰富的方法;

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_62028569/article/details/127990885

java进阶面试题_happyprogrammerwang的博客-爱代码爱编程

JVM相关: jvm中一次完整的GC流程(从ygc到fgc)是怎样的,重点讲讲对象如何晋升到老年代,几种主要的jvm参数等 新生代GC ygc(Minor GC):指发生新生代的的垃圾收集动作,Minor GC非常频繁,

最新阿里Java面试题整理+进阶资料分享-爱代码爱编程

面试总结 第一轮:电话初面 第二轮:技术面谈【技术职位尽量避免多谈管理上的工作】 第三轮:高管复试 第四轮:HR最后确认 一面:首先确认对阿里的意向度(如果异地更会考虑对工作地点(杭州)的意向度!阿里很看重这个);其次面试官一般会针对您所做过的项目来做具体技术的交流,会比较关注个人对项目细节是不是掌握到位,主要考察java的技术基础和原理,比

Java面试复习重点:java实现导出excel-爱代码爱编程

前言 数据库相关的面试题早已成为了一线互联网大厂面试的家常菜,如果你对数据库不太熟悉,我劝你不要轻易面试大厂。那么,为什么数据库成了大厂面试的家常菜呢?主要原因当然还是海量数据。 无论对于刚入行的小白还是有几年Java开发经验的从业而言,面试不仅是你必须要面对的事情,更是你升职加薪的一个途径。许多朋友面试了几家公司也没拿到一个满意的薪资,究其根还是在于

2021阿里Java高级面试题总结,附学习笔记+面试整理+进阶书籍-爱代码爱编程

前言 过去十多年互联网产业的高速发展,在给社会带来深刻变革的同时,也催生了服务架构的演进:从传统的单体应用到面向服务的SOA,再到现今主流的微服务架构,而 Apache Dubbo就是微服务领域中的先行者和佼佼者。 Apache Dubbo是阿里巴巴于2011年开源的一款高性能Java RPC框架,在这方面阿里巴巴是有强力发言权的,不如跟着阿里的大佬来

详解Java架构进阶面试题:腾讯Redis压轴笔记-爱代码爱编程

前言 最近一个读者和我反馈,他坚持刷题2个月,终于去了他梦寐以求的大厂,薪资涨幅非常可观,期间面字节跳动还遇到了原题… 因为据我所知很多大厂技术面试的要求是:技术要好,计算机基础扎实,熟练掌握算法和数据结构,语言不重要,熟练度很重要。每一轮技术面试都可能考代码,不只考算法,但一定会考算法。 那你知道为什么要考算法么?其实核心是看候选人是不是足够聪明。考

java进阶教程云盘,已整理成文档-爱代码爱编程

Java基础(对象+线程+字符+接口+变量+异常+方法) 面向对象和面向过程的区别?Java 语言有哪些特点?关于 JVM JDK 和 JRE 最详细通俗的解答Oracle JDK 和 OpenJDK 的对比Java 和 C++的区别?什么是 Java 程序的主类?应用程序和小程序的主类有何不同?Java 应用程序与小程序之间有哪些差别?字符型常量和字符

java分页查询,附学习笔记+面试整理+进阶书籍-爱代码爱编程

第1章 初识Redis 初识Redis,带领读者进入Redis的世界,了解它的前世今生、众多特性、应用场景、安装配置、简单使用,最后对Redis发展过程中的重要版本进行说明,可以让读者对Redis有一个全面的认识。 1.1Redis特性 1.2Redis使用场景 1.3用好Redis的建议 1.4正确安装并启动Redis

java高级进阶面试题-爱代码爱编程

JVM 面试题目 1.请简单描述下 JVM 运行时数据区包括哪些部分? JVM 在执行 Java 程序的过程中会把它管理的内存分为若干个不同的区域,这些组成部 分有些是线程私有的,有些则是线程共享的 线程私有的:程序计数器,虚拟机栈,本地方法栈 线程共享的:方法区,堆 2.JVM 中是怎么判断对象可回收的? 可达性分析算法 这个算法的基本思想就是通过一系列

Java架构师进阶之路:Java核心框架篇,2021最新腾讯Java面试分享-爱代码爱编程

因为出去后才发现,人家要的是你有过真实复杂大型项目的经验,且这个项目最好是能支撑大量用户访问的高并发、高可用、分布式大型复杂系统。而你准备的,仅仅是大量的理论知识,远远不足以让你拿到所谓的架构师等高阶的职位。 于是互联网行业内出现了这样的一个阶层固化:很多学历在大专~普通本科,常年在中小型公司工作的人,一直重复做着CRUD等技术含量很低的工作。公司就是没

2021最新面经分享:Java高级进阶快速面试指南(成功收获字节Offer-爱代码爱编程

**这里不再多讲,网上搜下STAR法则,讲得很细致。**我的简历只有一页纸,内容不在多,而在精,一两页纸就够。希望大家如果想进大厂,先好好改改简历,顺利通过简历关。 简历写好之后,准备面试了。 ============= 如何做?核心思想,充分发挥你的优势,制定适合你自己的准备方案,做120分的准备,争取100分的结果。这里我只从我自己的经验出发

java面试资料整理(高级必备)-爱代码爱编程

又到了换工作的季节,最近系统的整理了下java面试相关的学习资料,包含了java核心知识点、数据结构和算法、计算机基础、版本控制工具和面试经验分享等知识。在这里分享给大家,希望大家能够拿到心意公司的offer。 Java核心知识 面试现场】为什么MySQL数据库要用B+树存储索引?阿里大牛教你的后端技术面试32个java面试必考点互联网大厂高频重点面试

最新Java面试资料整理-爱代码爱编程

又到了换工作的季节,最近系统的整理了下java面试相关的学习资料,包含了java核心知识点、数据结构和算法、计算机基础、版本控制工具和面试经验分享等知识。在这里分享给大家,希望大家能够拿到心意公司的offer。 Java核心知识 面试现场】为什么MySQL数据库要用B+树存储索引?阿里大牛教你的后端技术面试32个java面试必考点互联网大厂高频重点面试

Java面试题-进阶篇(2022.4最新汇总)-爱代码爱编程

Java面试题-进阶篇 1. 基础篇1.1 基本数据类型和包装类1.2 Double转Bigdecimal可能会出现哪些问题?怎么解决?1.3 equals 与 == 的区别?1.4 Java创建对象有几种方式?1.5 Java中的反射机制1.6 Java中clone方法的使用1.7 Java中序列化的用法1.8 final关键字的用法1.9 st

BAT面试&高级进阶,Java架构师之路-爱代码爱编程

说明 Java生鲜电商平台中由于采用了微服务架构进行业务的处理,买家,卖家,配送,销售,供应商等进行服务化,但是不可避免存在分布式事务的问题。 业界有很多的解决方案,对此我相信大家都百度一下子就有很多,但是我巨人大哥想说的是:微服务架构中应当尽量避免分布式事务。 下面就是来讨论下,分布式事务中主要聚焦于强一致性和最终一致性的解决方案。 top1:S

分享 java 基础 + 进阶精简资料(视频 + 源码 + 就业项目 + 面试报装)_java烟雨的博客-爱代码爱编程

前言 有些同学可能会觉得奇怪,为什么会写这么一篇文章,Java 基础不是大学就学过了吗,就这呀,这有什么好写的? 但是从事开发越久才越知道基础有多重要,不止 Java 基础,还有计算机网络基础与操作系统基础,这些编程的底层原理你真的搞清楚了吗?太多人只是不明就里的写着业务代码,码农这个词原来以为是自嘲,但对于很多程序员来说,却是真实写照,只不过手里

java程序员如何进阶为架构师?最全技能总结_等风来.长的博客-爱代码爱编程

java初级工程师技能要求:   工作1-3年 要求:能独立完成分配的模块开发任务 技术要求: 1、掌握最基础的数据结构:数组、链表、堆、栈、队列、Hash表、二叉树等 2、算法:经典排序:插入排序、冒泡排序、快排(分化交换排序)、直接选择排序、堆排序、合并排序等。 3、语言要求:基本的开发基础语言掌握,比如:面向对象,集合类、网

分享 6 个月 java 基础 + 进阶精简资料(视频 + 源码 + 就业项目 + 面试报装)_c陈三岁的博客-爱代码爱编程

每天都有初学者询问该如何学习,如何快速学习,因精力有限不能一一回复请见谅,现系统整理一套 java 初学者最佳的学习方法、路线、大纲及视频资料,并对一些过期的知识点进行剔除!如 Struts2,hibernate 等旧框架!完全不需要在新手期进行学习,因为外面公司基本不再使用!希望这份精简后的学习大纲对你有所帮助。 一般来说,零基础从入

java韩顺平最新教程,java工程师进阶_韩顺平高级课程-爱代码爱编程

简介 HikariCP 是用于创建和管理连接,利用“池”的方式复用连接减少资源开销,和其他数据源一样,也具有连接数控制、连接可靠性测试、连接泄露控制、缓存语句等功能,另外,和 druid 一样,HikariCP 也支持监控功能。HikariCP 是目前最快的连接池,就连风靡一时的 ?BoneCP ?也停止维护,主动让位给它,SpringBoot 也把它设