java基础面试10题
1.JVM、JRE 和 JDK 的关系
Jvm:java虚拟机,类似于一个小型的计算机,它能够将java程序编译后的.class 文件解释给相应平台的本地系统执行,从而实现跨平台。
jre:是运行java程序所需要的环境的集合,它包含了jvm的标准实现和java的核心类库。
jdk:是针对java开发的产品,其中包含了java运行环境jre和java的工具以及基础类库。
2.什么是跨平台性?原理是什么?
跨平台性指的是java的一次编译,可以在多个平台运行,即一次编译到处运行。
原理:java程序编译成.class文件后,运行在平台上的java虚拟机会将程序逻辑解释给本地系统,让本地系统底层去执行,说白了就是java程序不会与系统的底层打交道,需要java虚拟机这个中介传话。只要平台上安装有java虚拟机,都能够在该平台运行java程序。
3.&和&&的区别?
&& 操作符具有短路功能, 当前置条件为false 时,将不会判断后置的条件。如 false && xxxx ,程序将不会去判断xxxx是否为true或者false,反之 true && xxxx 时才会去判断。而 & 运算符无论什么时候都会判断两边的条件,当两边的表达式为true时结果为true
4.用最有效率的方法计算 2 乘以 8
使用移位运算 :16 >> 1 为 16 / 2 8 << 1 为 2 * 8
5.在没有使用临时变量的情况如何交换两个整数变量的值?
1.使用加减法:
a = a + b;
b = a - b;
a = a - b;
在执行第一个步骤时,a的值会变为x+y,这时我们可以利用这个和值来通过两次减法来得到b的新值。最后一步同理。
2.使用位运算:
a = a ^ b;
b = a ^ b;
a = a ^ b;
在执行第一个步骤时,a和b的值会进行异或运算,得到一个新的值c。此时,a的值变成了c,而b的值还是原来的y。在第二步中,我们将c和y再次进行异或运算,得到的结果就是原来的x,这个结果就被赋值给了b。最后一步同理。
6.short s1 = 1; s1 = s1 + 1;有错吗? short s1 = 1; s1 += 1;有错吗?
在Java中,short类型的数值是16位的有符号整数,范围是从 -32768 到 32767。对于 short s1 = 1; s1 = s1 + 1; 这行代码来说,s1 + 1的结果是一个int类型的值,需要将其强制转换为short类型才能赋值给s1,因此这行代码会报错。而对于 short s1 = 1; s1 += 1; 这行代码来说,它等价于 s1 = (short)(s1 + 1); 其中加法运算的结果会自动进行类型转换,然后再将结果强制转换为short类型,所有这行代码是合法的,不会报错。
7.float f=3.4;是否正确?
因为3.4是一个双精度浮点数,Java中的浮点数默认为双精度浮点数,而将一个双精度浮点数直接赋值给一个单精度浮点数变量是不安全的,因为单精度浮点数只有23位有效数字,而双精度浮点数有53位有效数字,会造成精度损失。要想正确的赋值,应该在数字后面加上一个f或F,将其显示地声明为单精度浮点数,即可以这样写:float f = 3.4f;
8.手动实现一下冒泡排序(快速排序)
冒泡排序:
public static void bubbleSort(int[] arr) {int n = arr.length;for (int i = 0; i < n - 1; i++) {for (int j = 0; j < n - i - 1; j++) {if (arr[j] > arr[j + 1]) {// 交换 arr[j] 和 arr[j+1] 的位置int temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}}
}
快速排序:
public static void quickSort(int[] arr, int left, int right) {if (left < right) {// 执行一次 partition 操作,将数组划分为两个子数组int pivotIndex = partition(arr, left, right);// 对左边子数组进行快速排序quickSort(arr, left, pivotIndex - 1);// 对右边子数组进行快速排序quickSort(arr, pivotIndex + 1, right);}
}
// partition 操作:将数组划分为左右两个子数组,并返回分界点的位置
private static int partition(int[] arr, int left, int right) {// 选取最后一个元素作为基准值int pivot = arr[right];// i 指向左子数组的末尾int i = left - 1;for (int j = left; j < right; j++) {if (arr[j] < pivot) {// 将 arr[j] 和左子数组的末尾交换位置i++;int temp = arr[i];arr[i] = arr[j];arr[j] = temp;}}// 将基准值放到分界点的位置上int temp = arr[i + 1];arr[i + 1] = arr[right];arr[right] = temp;// 返回分界点的位置return i + 1;
}
9.实现打印指定行数的空心菱形的功能
public static void printHollowDiamond(int n) {if (n % 2 == 0) {// 如果 n 是偶数,则将其加1,使得最中间的行有奇数个星号n++;}// 打印上半部分菱形for (int i = 1; i <= n / 2 + 1; i++) {for (int j = 1; j <= n / 2 + 1 - i; j++) {System.out.print(" ");}System.out.print("*");for (int k = 1; k < 2 * (i - 1); k++) {System.out.print(" ");}if (i != 1) {System.out.print("*");}System.out.println();}// 打印下半部分菱形for (int i = n / 2; i >= 1; i--) {for (int j = 1; j <= n / 2 + 1 - i; j++) {System.out.print(" ");}System.out.print("*");for (int k = 1; k < 2 * (i - 1); k++) {System.out.print(" ");}if (i != 1) {System.out.print("*");}System.out.println();}
}
10.题目:将一个正整数分解质因数。
例如:输入 90,打印出 90=2*3*3*5。
public static void factorize(int n) {System.out.print(n + "=");for (int i = 2; i <= n; i++) {while (n % i == 0) {System.out.print(i);n /= i;if (n != 1) {System.out.print("*");}}}
}
相关文章:
java基础面试10题
1.JVM、JRE 和 JDK 的关系 Jvm:java虚拟机,类似于一个小型的计算机,它能够将java程序编译后的.class 文件解释给相应平台的本地系统执行,从而实现跨平台。 jre:是运行java程序所需要的环境的集合,它包含了…...
Golang闭包问题及并发闭包问题
目录Golang闭包问题及并发闭包问题匿名函数闭包闭包可以不传入外部参数,仍然可以访问外部变量闭包提供数据隔离并发闭包为什么解决方法Golang闭包问题及并发闭包问题 参考原文链接:https://blog.csdn.net/qq_35976351/article/details/81986496 htt…...
基频的后处理
基频归一化 基频为什么要归一化?为了消除人际随机差异,提取恒定参数,在语际变异中找到共性。 引言 声调的主要载体就是基频。但是对声调的感知会因人而异,例如某个听感上的高升调,不同的调查人员可能会分别描写成 […...
vue3 toRefs详解
简介 toRefs函数的作用是将响应式对象中的所有属性转换为单独的响应式数据,对象成为普通对象,并且值是关联的。在这个过程中toRefs会做以下两件事: 把一个响应式对象转换成普通对象对该普通对象的每个属性都做一次ref操作,这样每…...
Spring——AOP是什么?如何使用?
一、什么是AOP?在不修改源代码的情况下 增加功能二、底层是什么?动态代理aop是IOC的一个扩展功能,现有IOC,再有AOP,只是在IOC的整个流程中新增的一个扩展点而已:BeanPostProcessorbean的创建过程中有一个步…...
【微服务】认识微服务
目录 1.1 单体、分布式、集群 单体 分布式 集群 1.2 系统架构演变 1.2.1 单体应⽤架构 1.2.2 垂直应⽤架构 1.2.3 分布式架构 1.2.4 SOA架构 1.2.5 微服务架构 1.3 微服务架构介绍 微服务架构的常⻅问题 1.4 SpringCloud介绍 1.4.1 SpringBoot和SpringCloud有啥关…...
【独家】华为OD机试 C 语言解题 - 最长连续子串
最近更新的博客 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南)华为od机试,独家整理 已参加机试人员的实战技巧文章目录 最近更新的博客使用说明本期…...
【Linux】CentOS7操作系统安装nginx实战(多种方法,超详细)
文章目录前言一. 实验环境二. 使用yum安装nginx2.1 添加yum源2.1.1 使用官网提供的源地址(方法一)2.1.2 使用epel的方式进行安装(方法二)2.2 开始安装nginx2.3 启动并进行测试2.4 其他的一些用法:三. 编译方式安装ngin…...
【FMCW 01】中频IF信号
FMCW信号 调频连续波(frequency modulated continuous wave,FMCW)顾名思义,就是对信号的频率进行线性调制的信号。 从时域上看,对频率的调制,就像一把连续的锯齿波。其中每一个锯齿叫做一个chirp,其持续的时间叫做ch…...
【蓝桥杯试题】暴力枚举题型
💃🏼 本人简介:男 👶🏼 年龄:18 🤞 作者:那就叫我亮亮叭 📕 专栏:蓝桥杯试题 文章目录1. 统计方形(数据加强版)1. 1 题目描述1.2 思路…...
I.MX6ULL_Linux_系统篇(22) kernel移植
原厂 Linux 内核编译 NXP 提供的 Linux 源码肯定是可以在自己的 I.MX6ULL EVK 开发板上运行下去的,所以我们肯定是以 I.MX6ULL EVK 开发板为参考,然后将 Linux 内核移植到 I.MX6U-ALPHA 开发板上的。 配置编译 Linux 内核 和uboot一样,在编…...
UE实现相机聚焦物体功能
文章目录 1.实现目标2.实现过程2.1 实现原理2.2 源码浅析2.3 具体代码2.3.1 蓝图实现2.3.2 C++实现3.参考资料1.实现目标 实现根据输入的Actor,自动计算出其缩放显示到当前屏幕上相机的最终位置,然后相机飞行过去,实现相机对物体的聚集效果,避免每次输入FlyTo坐标参数,GI…...
算法系列之数值积分的目的
PLC算法里的数字积分器详细介绍请参看下面的文章链接: PLC算法系列之数值积分器(Integrator)_RXXW_Dor的博客-CSDN博客数值积分和微分在工程上的重要意义不用多说,闭环控制的PID控制器就是积分和微分信号的应用。流量累加也会用到。有关积分运算在流量累加上的应用,请参看下…...
【2.4 golang中循环语句for】
1. 循环语句for 1.1.1. Golang for支持三种循环方式,包括类似 while 的语法。 for循环是一个循环控制结构,可以执行指定次数的循环。 语法 Go语言的For循环有3中形式,只有其中的一种使用分号。 for init; condition; post { }for conditi…...
代码随想录 动态规划||343 96
Day35343. 整数拆分力扣题目链接给定一个正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化。 返回你可以获得的最大乘积。思路动规逻辑确定dp数组(dp table)以及下标的含义dp[i]指的是拆分数字i能得到的最大成绩d…...
Python---正则表达式
专栏:python 个人主页:HaiFan. 专栏简介:Python在学,希望能够得到各位的支持!!! 正则表达式前言概念作用和特点使用场景正则符号re模块re.compile()match()search()span()findall()group()sub()…...
Unity入门精要02---纹理
纹理和材质不可分割 本节知识结构 实践:简单贴一张纹理到模型上 首先在属性处添加相关属性 Properties {_Color ("Color Tint", Color) (1, 1, 1, 1)_MainTex ("Main Tex", 2D) "white" {}//加入纹理_Specular ("Specular&q…...
【Day1】一小时入门 python 基础,从安装到入门
文章目录python安装安装python安装 pycharmpython基础输出注释变量输入类型转换运算符自增字符串相关操作比较运算符逻辑运算符条件控制while循环list 列表for 循环range函数元组python 安装 安装python 官网进行下载:官网下载地址这里下载的一直是最新版本的 点…...
2D图像处理:相机标定
文章目录 效果一、相机标定的是什么?二、四个坐标系2.1 世界坐标系(X,Y,Z)2.2 相机坐标系(x,y,x)2.3 图像坐标系2.4 像素坐标系三、坐标系间的变换关系3.1 世界坐标系-->相机坐标系3.2 相机坐标系-->图像坐标系3.3图像坐标系-->像素坐标系四、相机畸变模型4.1 径向…...
windows 下 python 和repo 下载安装环境变量配置
repo 安装成功,但是下载代码 repo init的时候出错 不知道是不是repo windows版本有问题 python 最好下载2.6-2.7版本的 Python Releases for Windows | Python.org 不然下载代码会有问题,下不了,会提示安装2.6-2.7版本的 Windows下成功安…...
超短脉冲激光自聚焦效应
前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应,这是一种非线性光学现象,主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场,对材料产生非线性响应,可能…...
K8S认证|CKS题库+答案| 11. AppArmor
目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作: 1)、切换集群 2)、切换节点 3)、切换到 apparmor 的目录 4)、执行 apparmor 策略模块 5)、修改 pod 文件 6)、…...
Java如何权衡是使用无序的数组还是有序的数组
在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...
基于服务器使用 apt 安装、配置 Nginx
🧾 一、查看可安装的 Nginx 版本 首先,你可以运行以下命令查看可用版本: apt-cache madison nginx-core输出示例: nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...
【JVM】- 内存结构
引言 JVM:Java Virtual Machine 定义:Java虚拟机,Java二进制字节码的运行环境好处: 一次编写,到处运行自动内存管理,垃圾回收的功能数组下标越界检查(会抛异常,不会覆盖到其他代码…...
【解密LSTM、GRU如何解决传统RNN梯度消失问题】
解密LSTM与GRU:如何让RNN变得更聪明? 在深度学习的世界里,循环神经网络(RNN)以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而,传统RNN存在的一个严重问题——梯度消失&#…...
抖音增长新引擎:品融电商,一站式全案代运营领跑者
抖音增长新引擎:品融电商,一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中,品牌如何破浪前行?自建团队成本高、效果难控;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...
Android15默认授权浮窗权限
我们经常有那种需求,客户需要定制的apk集成在ROM中,并且默认授予其【显示在其他应用的上层】权限,也就是我们常说的浮窗权限,那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...
ios苹果系统,js 滑动屏幕、锚定无效
现象:window.addEventListener监听touch无效,划不动屏幕,但是代码逻辑都有执行到。 scrollIntoView也无效。 原因:这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作,从而会影响…...
蓝桥杯3498 01串的熵
问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798, 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...
