JAVA 学习 面试(六)数据类型与方法
数据类型

基本数据类型

为什么float=3.4报错
3.4 默认是浮点double类型的,如果赋值给float是向下转型,会出现精度缺失,,需要强制转换
Switch支持的数据类型?
byte、short、int、char 、 enum 、 String
基本类型与包装类的区别
## 存储位置不同:
基本数据类型直接将值放在栈中;(非static的成员变量存在堆中)
包装类型是把对象放在堆中,然后通过对象的引用来调用他们 ;
## 初始值不同:
int的初始值为 0 、 boolean的初始值为false ;
包装类型的初始值为null ;
## 使用方式不同:
基本数据类型直接赋值使用就好;
在集合如 coolectionMap 中只能使用包装类型;包装类型可以使用在泛型中
基本类型与包装类的相互转换
## 手动转换
基本数据类型 → 包装类:通过对应包装类的构造方法实现(Integer.valueOf(10)),除了Character外,其他包装类都可以传入一个字符串参数构建包装类对象。
包装类 → 基本数据类型通过包装类的实例方法 xxxValue() 实现; // xxx表示包装类对应的基本数据类型
## 自动装箱&自动拆箱(jdk1.5以后)
基本类型添加到集合中时,进行自动装箱
包装类型在涉及到运算的时候,“加,减,乘, 除” 以及 “比较 equals,compareTo”,进行自动拆箱
包装类型的缓存机制
Byte,Short,Integer,Long 这 4 种包装类默认创建了数值 [-128,127] 的相应类型的缓存数据,Character 创建了数值在 [0,127] 范围的缓存数据,Boolean 直接返回 True or False。
Integer i1 = 33;
Integer i2 = 33;
System.out.println(i1 == i2);// 输出 trueInteger i1 = 40;
Integer i2 = new Integer(40);
System.out.println(i1==i2); // 输出 False
引用数据类型 和 数组
## 引用数据类型的变量定义及赋值格式:
数据类型 变量名 = new 数据类型();
调用该类型实例的功能:变量名.方法名();
## 数组
一组数据的集合,数组中的每个数据被称作'元素'
在数组中可以存放'任意类型'的元素但'同一个数组'里存放的元素类型必须一致。
格式: int[] x = new int[100];
使用属性:数组名.length
数组
初始化
动态初始化:数组声明且为数组元素分配空间与赋值的操作分开进行
int[] arr= new int[3];
arr[0] = 3;
arr[1] = 9;
arr[2] = 8;
静态初始化:在定义数组的同时就为数组元素分配空间并赋值
int arr[] = new int[]{ 3, 9, 8};
int[] arr = {3,9,8};
Arrays工具类

方法
构成:
- 访问修饰符:方法允许被访问的权限范围。( public,protected,private,无修饰符 )
- 参数列表:可以省略。参数类型 + 参数名,…
- 返回类型:void、任何数据类型
注意:
- 方法参数是 基本类型 ,传递的是值。(包含String类型),形式参数的改变对实际参数不影响
- 方法参数是 引用类型,传递的是内存地址值。(String类型除外),形式参数的改变对实际参数有影响
可变参数
public void sum(int... n){}
- 可变参数一定在最后,可以将数组传递给可变参数列表
- 可变参数的实质就是数组:一个参数是可变参数,一个参数是一维数组,这两个方法不是重载,因为 一个可变参数等价于相应类型的一维数组
- 方法重载的时候,既可以定义有可变参数的同名方法,也可以定义有确定参数个数的方法,jvm调用方法时,会优先调用 有确定参数个数 的方法
默认方法
背景:实现接口的类必须为接口中定义的每个方法提供一个实现,或者从父类中继承它的实现。但是,一旦类库的设计者需要更新接口,向其中加入新的方法,这种方式就会出现问题。现存的实体类往往不在接口设计者的控制范围之内,这些实体类为了适配新的接口约定也需要进行修改,为了让类库的设计者放心地改进应用程序接口,无需担忧对遗留代码的影响:
Java 8引入了一个新功能,叫默认方法,通过默认方法你可以指定接口方法的默认实现接口能提供方法的具体实现。实现接口的类如果不显式地提供该方法的具体实现,就会自动继承默认的实现。
// List 接口中的 sort 方法是Java 8中全新的方法,新 default 修饰符
default void sort(Comparator<? super E> c){Collections.sort(this, c);
}
作用:采用默认方法之后,你可以为这种类型的方法提供一个默认的实现,这样实体类就无需在自己的实现中显式地提供一个空方法。通过这种方式,你可以减少无效的模板代码。实现 Iterator 接口的每一个类都不需要再声明一个空的 remove 方法了,因为它现在已经有一个默认的实现。
// Iterator 接口就为 remove 方法提供了一个默认实现
interface Iterator<T> {boolean hasNext();T next();default void remove() {throw new UnsupportedOperationException();}
}
抽象方法
- 抽象方法不可以与sychronized共存,因为synchronized方法的锁对象为this,而抽象方法无法确定this是什么,所以不能共存。
- 抽象方法不能和private、final共存,abstract修饰的类需要被子类继承,abstract修饰的方法需要子类重写,但是final修饰的类不能被继承,final修饰的方法也不能被子类重写,private修饰的方法对子类不可见。
- 抽象方法不能是静态的,因为抽象方法要被子类实现,而静态方法属于一个类,不能同时属于两个类。
- abstract与native不能共存,Native方法表示该方法要用另外一种依赖平台的语言实现,不存在着被子类实现的问题,所以不能是抽象的。
相关文章:
JAVA 学习 面试(六)数据类型与方法
数据类型 基本数据类型 为什么float3.4报错 3.4 默认是浮点double类型的,如果赋值给float是向下转型,会出现精度缺失,,需要强制转换 Switch支持的数据类型? byte、short、int、char 、 enum 、 String 基本类型与包…...
Java 一个数组集合List<People> 赋值给另一个数组集合List<NewPeople> ,两个数组集合属性部分一致。
Java 一个数组集合List 赋值给另一个数组集合List ,两个数组集合属性部分一致。 下面是一个Demo, 具体要根据自己的业务调整。 import java.util.ArrayList; import java.util.List;class People {private String name;private int age;private String address;publ…...
基于神经网络的电力系统的负荷预测
一、背景介绍: 电力系统负荷预测是生产部门的重要工作之一,通过准确的负荷预测,可以经济合理地安排机组的启停、减少旋转备用容量、合理安排检修计划、降低发电成本和提高经济效益。负荷预测按预测的时间可以分为长期、中期和短期负荷预测。…...
OpenCV第 1 课 计算机视觉和 OpenCV 介绍
文章目录 第 1 课 计算机视觉和 OpenCV 介绍1.机器是如何“看”的2.机器视觉技术的常见应用3.图像识别介绍4. 图像识别技术的常见应用5.OpenCV 介绍6.图像在计算机中的存储形式 第 1 课 计算机视觉和 OpenCV 介绍 1.机器是如何“看”的 我们人类可以通过眼睛看到五颜六色的世界…...
C++面试:stl的栈和队列介绍
目录 栈 栈(stack)的声明: push(): 将元素推入栈顶 pop(): 弹出栈顶元素 top(): 访问栈顶元素,但不弹出 empty(): 检查栈是否为空 size(): 返回栈中元素的数量 …...
从0开始学习C++ 第十二课:指针强化
第十二课:指针强化 学习目标: 理解常量指针与指针常量的区别。学习如何使用函数指针。掌握指针与数组的高级使用技巧。 学习内容: 常量指针与指针常量 概念: 常量指针是一个指向常量的指针,这意味着不能通过这个指针…...
mongodb和python交互
1. mongdb和python交互的模块 pymongo 提供了mongdb和python交互的所有方法 安装方式: pip install pymongo 2. 使用pymongo 2.1 导入pymongo并选择要操作的集合 数据库和集合能够自动创建 2.1.1 无需权限认证的方式创建连接对象以及集合操作对象 from pymongo import Mong…...
力扣279. 完全平方数
动态规划 思路: 假设 dp[i] 为最少组成数 i 的平方数个数;则其上一个状态为 dp[i - j^2] 1,1 为 j^2: 即 i 的最少完全平方数 i - j^2 的最少完全平方数 1,其中 j^2 < i 为最接近 i 的平方数;初始值…...
【C++】list容器功能模拟实现
介绍 上一次介绍了list队容器的迭代器模拟,这次模拟实现list的简单功能,尤其要注意构造函数、析构函数、以及赋值运算符重载的实现。 list容器需要接纳所有类型的数据,因此,结构设置与迭代器设置同理,需要引入结点&…...
linux 安装ffmpeg
一、下载 ffmpeg-4.3.1 下载地址:链接:https://pan.baidu.com/s/1xbkpHDfIWSCbHFGJJHSQcA 提取码:3eil 二、上传到服务器root目录下 三、给ffmpeg-4.3.1 读写权限 chmod -R 777 /root/ffmpeg-4.3.1 四、创建软连接 1.进入/bin 目录 2.…...
激光雷达行业梳理2-产业链、公司、未来展望
四、产业链及竞争格局 激光雷达产业链可以分为上游(光学和电子元器件)、中游(集成激光雷达)、下游(不同应用场景)。其中 上游即激光发射、激光接收、扫描系统和信息处理四大部分,主要包括激光器…...
Java 设计者模式以及与Spring关系(四) 代理模式
目录 简介: 23设计者模式以及重点模式 代理模式(Proxy Pattern) 静态代理示例 spring中应用 动态代理 1.基于JDK的动态代理 target.getClass().getInterfaces()作用 内名内部类写法(更简洁,但不推荐) 2.基于CGLIB实现 spring中应用 …...
PHP编程实践:实际商品价格数据采集
引言 在电子商务领域,对商品价格进行数据采集和对比是一项常见的需求。本文将介绍如何使用PHP编程语言实现对1688和淘宝商品价格数据的采集和对比,帮助读者了解实际的编程实践过程。 一、数据采集原理 数据采集是指从互联网上获取数据的过程ÿ…...
有效防范网络风险的关键措施
在数字化时代,企业面临着日益复杂和频繁的网络风险。提高员工的网络安全意识是防范网络威胁的关键一步。本文将探讨企业在提升网络安全意识方面可以采取的措施,以有效预防潜在的网络风险。 1. 开展网络安全培训:企业应定期组织网络安全培训&…...
Spring Boot整合webservice
Spring Boot整合webservice 前言1.整合依赖2.建立暴露接口2.实现类 3.发布服务4.查看打完收工! 前言 工作中遇到的问题,由于下游系统属于第三方系统,使用的是soap webservice,同时也在开发,虽然也发布了一套webservic…...
Qt拖拽事件简单实现
1.相关说明 重写resizeEvent(这个按需重写)、dragEnterEvent(拖拽事件函数)、dropEvent(放下事件函数),可以将本地图片拖拽到label标签中 2.相关界面 3.相关代码 #include "widget.h" #include "ui_widget.h" #include <QDragEnterEvent>…...
上门回收小程序,打造回收新模式
近年来,我国一直秉持着环保绿色的发展理念,为了减少资源浪费,旧物回收成为了人们处理废弃物品的方式。目前,我国回收市场规模大约能达到3.58亿元,在我国经济的稳定增长和环保意识的提高下,回收市场规模还将…...
unity项目《样板间展示》开发:火焰和UI设计
第二章:火焰和UI设计 前言一、火焰模型管理灶台火焰壁炉火焰 二、电视机播放三、UI设计结语 前言 这次带大家从0到1做一个unity项目:《样板间展示》。 顾名思义,项目内容是展示样板间,即玩家可以与房间中的物体、家具进行交互。 至…...
即插即用篇 | UniRepLKNet:用于音频、视频、点云、时间序列和图像识别的通用感知大卷积神经网络 | DRepConv
大卷积神经网络(ConvNets)近来受到了广泛研究关注,但存在两个未解决且需要进一步研究的关键问题。1)现有大卷积神经网络的架构主要遵循传统ConvNets或变压器的设计原则,而针对大卷积神经网络的架构设计仍未得到解决。2)随着变压器在多个领域的主导地位,有待研究ConvNets…...
MPU6050传感器—姿态检测
本节主要介绍以下内容: 姿态检测的基本概念 姿态传感器的工作原理及参数 MPU6050传感器介绍 实验:获取MPU6050原始数据 实验:移植官方DMP例程 一、姿态检测基本概念 1.1 姿态 在飞行器中,飞机姿态是非常重要的参数&#x…...
synchronized 学习
学习源: https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖,也要考虑性能问题(场景) 2.常见面试问题: sync出…...
【kafka】Golang实现分布式Masscan任务调度系统
要求: 输出两个程序,一个命令行程序(命令行参数用flag)和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽,然后将消息推送到kafka里面。 服务端程序: 从kafka消费者接收…...
docker详细操作--未完待续
docker介绍 docker官网: Docker:加速容器应用程序开发 harbor官网:Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台,用于将应用程序及其依赖项(如库、运行时环…...
rknn优化教程(二)
文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK,开始写第二篇的内容了。这篇博客主要能写一下: 如何给一些三方库按照xmake方式进行封装,供调用如何按…...
基于Flask实现的医疗保险欺诈识别监测模型
基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施,由雇主和个人按一定比例缴纳保险费,建立社会医疗保险基金,支付雇员医疗费用的一种医疗保险制度, 它是促进社会文明和进步的…...
【机器视觉】单目测距——运动结构恢复
ps:图是随便找的,为了凑个封面 前言 在前面对光流法进行进一步改进,希望将2D光流推广至3D场景流时,发现2D转3D过程中存在尺度歧义问题,需要补全摄像头拍摄图像中缺失的深度信息,否则解空间不收敛…...
【配置 YOLOX 用于按目录分类的图片数据集】
现在的图标点选越来越多,如何一步解决,采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集(每个目录代表一个类别,目录下是该类别的所有图片),你需要进行以下配置步骤&#x…...
Robots.txt 文件
什么是robots.txt? robots.txt 是一个位于网站根目录下的文本文件(如:https://example.com/robots.txt),它用于指导网络爬虫(如搜索引擎的蜘蛛程序)如何抓取该网站的内容。这个文件遵循 Robots…...
Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!
一、引言 在数据驱动的背景下,知识图谱凭借其高效的信息组织能力,正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合,探讨知识图谱开发的实现细节,帮助读者掌握该技术栈在实际项目中的落地方法。 …...
Rust 异步编程
Rust 异步编程 引言 Rust 是一种系统编程语言,以其高性能、安全性以及零成本抽象而著称。在多核处理器成为主流的今天,异步编程成为了一种提高应用性能、优化资源利用的有效手段。本文将深入探讨 Rust 异步编程的核心概念、常用库以及最佳实践。 异步编程基础 什么是异步…...
