南京小米java面经(一面)

news2024/11/15 23:30:53

目录

    • 1.java支持多继承吗
    • 2.线程的生命周期
    • 3.线程和进程的区别
    • 4.单例模式有几种
    • 5.写一下双重锁的单例
    • 6.jvm有哪些区域
    • 7.jvm哪些区域是线程共享的,哪些是线程私有的
    • 8.gc中判断对象可回收的方式有哪些
    • 9.gc垃圾回收算法有哪些
    • 10.哪些对象可以作为gc root
    • 11.gc中的引用计数法有哪些缺陷
    • 12.抽象类和接口的区别
    • 13.sleep和wait的区别

1.java支持多继承吗

Java中类不支持多继承,只支持单继承(即一个类只有一个父类)。 但是java中的接口支持多继承,,即一个子接口可以有多个父接口。
接口支持多继承

public interface Bird extends Flyable,Singable {

}

2.线程的生命周期

初始化状态(NEW)、可运行/运行状态(RUNNABLE)、阻塞状态(BLOCKED)、无时限等待状态(WAITING)、有时限等待状态(TIMED_WAITING)、终止状态(TERMINATED)

3.线程和进程的区别

进程
是一个具有一定独立功能的程序关于某个数据集合的一次运行活动,是系统进行『资源分配和调度』的一个独立单位。
线程
进行运算调度的最小单位,其实是进程中的一个执行任务(控制单元),负责当前进程中程序的执行
两者之间的区别
「本质区别」:进程是操作系统资源分配的基本单位,而线程是任务调度和执行的基本单位
「在开销方面」:每个进程都有独立的代码和数据空间(程序上下文),程序之间的切换会有较大的开销;线程可以看做轻量级的进程,同一类线程共享代码和数据空间,每个线程都有自己独立的运行栈和程序计数器(PC),线程之间切换的开销小
「所处环境」:在操作系统中能同时运行多个进程(程序);而在同一个进程(程序)中有多个线程同时执行(通过CPU调度,在每个时间片中只有一个线程执行)
「内存分配方面」:系统在运行的时候会为每个进程分配不同的内存空间;而对线程而言,除了CPU外,系统不会为线程分配内存(线程所使用的资源来自其所属进程的资源),线程组之间只能共享资源
「包含关系」:没有线程的进程可以看做是单线程的,如果一个进程内有多个线程,则执行过程不是一条线的,而是多条线(线程)共同完成的;线程是进程的一部分,所以线程也被称为轻权进程或者轻量级进程

4.单例模式有几种

5种
饿汉式
懒汉式
双重检查锁
静态内部类
内部枚举类
https://donglin.blog.csdn.net/article/details/128773676

5.写一下双重锁的单例

public class Singleton {

    /**
     * 私有构造
     */
    private Singleton(){
        System.out.println("构造函数Singleton");
    }

    private static Singleton singleton = null;

    public static synchronized Singleton getInstance(){
        if (singleton == null){  //这个检查是提高效率的
            synchronized (Singleton.class){
                if (singleton == null){
                    singleton = new Singleton();   //这个检查是防止线程安全的
                }
            }
        }
        return singleton;
    }

}

6.jvm有哪些区域

在这里插入图片描述

7.jvm哪些区域是线程共享的,哪些是线程私有的

方法区,堆共享
程序计数器,本地方法栈,虚拟机栈私有

8.gc中判断对象可回收的方式有哪些

引用计数算法和可达性分析算法
https://donglin.blog.csdn.net/article/details/127831153

9.gc垃圾回收算法有哪些

标记-清除算法
复制算法
标记-压缩算法
分代收集算法
增量收集算法
分区算法
https://donglin.blog.csdn.net/article/details/127831153

10.哪些对象可以作为gc root

  • 虚拟机栈(栈帧中的本地变量表)中引用的对象
  • 本地方法栈中 JNI(即一般说的 Native 方法)引用的对象
  • 方法区中类静态属性引用的对象
  • 方法区中常量引用的对象

https://donglin.blog.csdn.net/article/details/128782888

11.gc中的引用计数法有哪些缺陷

缺点1:它需要单独的字段存储计数器,这样的做法增加了存储空间的开销。
缺点2:每次赋值都需要更新计数器,伴随着加法和减法操作,这增加了时间开销。
缺点3:引用计数器有一个严重的问题,即无法处理循环引用的情况。这是一条致命缺陷,导致在Java 的垃圾回收器中没有使用这类算法。
https://donglin.blog.csdn.net/article/details/127831153

12.抽象类和接口的区别

从设计层面来说,抽象是对类的抽象,是一种模板设计,接口是行为的抽象,是一种行为的规范。
1.接口中所有的方法隐含的都是抽象的。而抽象类则可以同时包含抽象和非抽象的方法。
2.类可以实现很多个接口,但是只能继承一个抽象类
3.类可以不实现抽象类和接口声明的所有方法,当然,在这种情况下,类也必须得声明成是抽象的。
4.抽象类可以在不提供接口方法实现的情况下实现接口。
5.Java接口中声明的变量默认都是final的。抽象类可以包含非final的变量。
Java接口中的成员函数默认是public的。抽象类的成员函数可以是private,protected或者是public。
6.接口是绝对抽象的,不可以被实例化,抽象类也不可以被实例化。
第三点证明
在这里插入图片描述

13.sleep和wait的区别

1、sleep是线程中的方法,但是wait是Object中的方法。
2、sleep方法不会释放资源锁,但是wait会释放资源锁,而且会加入到等待队列中。
3、sleep方法不依赖于同步器synchronized,但是wait需要依赖synchronized关键字。
4、sleep不需要被唤醒(休眠之后推出阻塞),但是wait需要(不指定时间需要被别人中断)。
https://donglin.blog.csdn.net/article/details/125922659

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/184930.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

软件设计师教程(四)程序设计语言基础知识

软件设计师教程 软件设计师教程(一)计算机系统知识-计算机系统基础知识 软件设计师教程(二)计算机系统知识-计算机体系结构 软件设计师教程(三)计算机系统知识-计算机体系结构 程序设计语言知识软件设计师…

工资管理系统

一、系统简介 工资管理涉及企业管理的多个方面,如员工基本信息、员工在职离岗、员工考勤、员工加班等等。根据这些信息,在每个月的固定时间,生成全体员工的月工资,部门月工资以及全厂月工资。对于月工资,能够实现按照员…

机器学习【西瓜书/南瓜书】--- 第五章 神经网络

1.神经元模型 1.1 M-P神经元模型 输出函数: 其中θ为阈值, ω i为第i个神经元的连接权重, xi为来自第i个神经元的输入。 1.2 激活函数 阶跃函数: 理论上我们使用阶跃函数。将输入值映射为输出值为0/1,显然1为神经元…

Windows下编译安装OpenCASCADE

OpenCASCADE (以下简称OCC)是一套开源的几何建模系统,提供了曲面、实体等建模方式,已经广泛应用在CAD、CAE、CAM等软件开发。 OpenCASCADE官网已经提供OpenCASCADE的编译安装方法,本文结合实操过程,简述其过程。 零、环境 操作系…

Databend v0.9.0 版本发布

各位社区小伙伴们,历经数月开发,Databend 于 2023 年 1 月 13 日迎来了 v0.9.0 版本的正式发布! 这次新版本是 Databend 迈向 1.0 版本的最后一个大版本,也是迄今为止我们对核心代码重构幅度最大的一个版本!相较于 v0…

C++ string容器,cha*

目录 1.string基本概念 2.string构造函数,char* 3.string赋值操作 4.string字符串拼接,append 5.string查找和替换,find,replace 6.string字符串比较,compare 7.string字符存取[].at,取,修改单个字符,size返回字符串长度 8.string插入和…

数学建模学习笔记(13)分类模型

分类模型分类问题的基本概念逻辑斯蒂回归(Logistic)Fisher线性判别分析多分类问题的SPSS求解分类问题的基本概念 分类问题概述:对于给定的一个对象,根据其特征将其划分到多个已给定的类别中的一个。 二分类和多分类:…

题目:两数之和

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录描述描述 方式1:暴力遍历 public static int[] twoSum(int[] nums, int target) {int i 0;int j 1;int[] result new int[2];for(int m i;m<nums.length-1;m){…

13.3nm粒径水溶性Cds/CdTe-PAA-P4VP/BSA的制备方法

13.3nm粒径水溶性Cds/CdTe-PAA-P4VP/BSA的制备方法今天小编分享量子点偶联聚合物&#xff0c;一起看看吧&#xff1a;Cds/CdTe-PAA-P4VP/BSA的制备过程&#xff1a;称取86.5mgCdCl2于三口瓶中&#xff0c;加入295mL二次水&#xff08;考虑到在调pH值时会增加溶液的体积&#xf…

(14)工业界推荐系统-小红书推荐场景及内部实践【重排】

&#xff08;1&#xff09;工业界推荐系统-小红书推荐场景及内部实践【业务指标、链路、ItemCF】 &#xff08;2&#xff09;工业界推荐系统-小红书推荐场景及内部实践【UserCF、离线特征处理】 &#xff08;3&#xff09;工业界推荐系统-小红书推荐场景及内部实践【矩阵补充、…

目前音质最好的蓝牙耳机有哪些?2023公认音质最好的蓝牙耳机推荐

随着技术的进步&#xff0c;蓝牙耳机的功能也越来越多样&#xff0c;人们在选择蓝牙耳机时也更能够“精准”地搜索关键词&#xff0c;进行选择。不少人很注重蓝牙耳机的音质&#xff0c;最近看到不少人问&#xff0c;目前音质最好的蓝牙耳机有哪些&#xff1f;下面&#xff0c;…

如何录制视频课程?右下角带人脸的视频怎么录制

现如今网络十分发达&#xff0c;想学习知识也十分简单&#xff0c;只要在网上搜索你想要学习的内容&#xff0c;就会出现许多相关的视频课程。那您知道如何录制视频课程吗&#xff1f;在录制时如何录入人脸&#xff1f;其实一款专业的录屏软件就能轻松搞定。今天小编教大家使用…

分析一下spring循环依赖

1.为什么循环依赖是个问题 spring 中 Bean 的创建一定是经历创建对象和依赖注入两个步骤 假设对象 Bean_A 和 Bean_B 存在循环依赖&#xff0c;如下图 1.Bean_A 创建的时候需要 Bean_B&#xff0c;就会创建Bean_B 2.Bean_B创建的时候又需要Bean_A&#xff0c;又去创建Bean_A 3…

原创 140 多篇,是时候来篇总结了

光阴似剪&#xff0c;日月如梭。不知不觉&#xff0c;从 17 年广工毕业到现在&#xff0c;已经毕业 5 年多了。 从大四开始写博客&#xff0c;有原创 110 多篇, 也获得了 CSDN 博客专家称号和掘金优秀作者称号。 回想这五年来的程序员生涯&#xff0c;谈不上满意&#xff0c;也…

方块状量子点CdTe-Tf包裹转铁蛋白/球形5nmCdTe-NGAL的制备方法

方块状羧基/氨基化量子点CdTe-Tf包裹转铁蛋白/球形5nmCdTe-NGAL的制备方法今天小编分享CdTe-Tf包裹转铁蛋白&#xff0c;一起看看吧&#xff1a;CdTe-Tf包裹转铁蛋白的制备过程:在充满氦气的无水无氧的手套箱中&#xff0c;0.125 g (5.42510-4 mol) Cd(Ac)2加入到三口瓶中的10 …

原生微信小程序转化uniapp项目的神操作

前言 可能有些朋友只知道能将uniapp编译成微信小程序&#xff0c;但是没想到原生微信小程序也能编译成uniapp项目&#xff0c;这里推荐一款【miniprogram-to-uniapp】小程序转换工具插件 原理 核心是使用Babel获取AST&#xff08;词法分析)&#xff0c;然后或使用Babel自带函…

如何实现高质量的系统数据对接/API接口整合集成方案?

我们建立一个数字化系统可能会有跟别的系统进行数据对接的需要&#xff0c;而别人的数字化系统也有可能需要跟我们的系统进行数据对接&#xff0c;也可能我们开发了不同的网站&#xff0c;网站小应用之间需要进行数据对接。那么数据对接应该如何操作呢&#xff1f;怎么才能更好…

数据分析:SQL和Python

SQL 统计数据概况&#xff1a;计算样本总数、商家总数、用户总数、消费总数、领券总数等 selectcount(User_id) as 样本总数,count(distinct Merchant_id) as 商家总数,count(distinct User_id) as 用户总数,count(Date) as 消费总数,count(Date_received) as 领券总数,(sele…

高级Spring之Aware 接口

Aware 接口功能阐述&#xff1a; Aware 接口提供了一种【内置】 的注入手段&#xff0c;例如 a.BeanNameAware 注入 bean 的名字b.BeanFactoryAware 注入 BeanFactory 容器 c.ApplicationContextAware 注入 ApplicationContext 容器 d.EmbeddedValueResolverAware 注入 ${} 解…

力扣并查集

目录 1&#xff0c;路径压缩查找 323. 无向图中连通分量的数目 990. 等式方程的可满足性 200. 岛屿数量 419. 甲板上的战舰 695. 岛屿的最大面积 733. 图像渲染 1992. 找到所有的农场组 947. 移除最多的同行或同列石头 1020. 飞地的数量 547. 省份数量 827. 最大人…