当前位置: 首页 > news >正文

Java必备小知识点4——数据类型、数组、位运算符

数据类型

Java的数据类型由基本数据类型和引用类型

基本数据类型和C语言的一致,除了基本类型其余的都是引用类型。

引用类型主要有:类(class)、接口(interface)、数组、枚举(enum)、注解(Annotation)

char常量必须包含在单引号内(‘’)。char c = 'a';//指定变量c为char型,且赋初值为a.

各种定义规则:

int i = 100;   char c1 = a;  byte b = 0b11; long l = 567L; float f = 1.86f; double d = 2.1;

关于转义字符:\`用来表示`;\\用来表示\  ,是char型,char c='\`';

自动类型转换:

条件: 两种类型必须兼容;目标类型大于源类型。

float fl = b * f;  //byte类型的b会自动转换为与f1一致的float类型参加运算。

位运算符

位运算符类型

语法格式

   规则

按位与(AND)

value1 & value2

1 & 1= 1,其余情况下结果都为0

按位非(NOT)

~ value1

取反

按位或(OR)

value1 | value2

任何一个运算符为1,结果都为1

按位异或(XOR)

 value1 ^ value2

不同为1,相同为0。

左移

value << num

最高位丢弃,右侧用0填充。

左移与右移都不会改变数的位数

右移

value >> num

 最低位丢弃,最高位用原来的最高位上的数补充。

无符号右移

value >>> num

最低位丢弃,最高位由0补充。

数组

数组创建与初始化

静态初始化:在定义数组的同时对该数组进行初始化.

例如:int[] K={1,2,3,4}或int[] K= new int[]{1,2,3,4}

动态初始化:将数组的定义和初始化分开进行.

例如:int[] array ; //数组声明

array[0] = 1; //数组的第一个元素赋值

array[1] = 2; //数组的第二个元素赋值

//[] array和array[]一样,但常使用前者

或者int[] K= new int[100];//new出一个长度为100的整型数组。

当数组创建完毕,数组中的元素具有默认初始值,数值类型的数组初始值为0,布尔型的为false,字符型的\0,引用类型的则为null。

数组拷贝

数组的复制是指将源数组的元素—做副本,赋值到目标数组的对应位置.常用的数组赋值方法有三种.

1、使用循环语句进行复制(使用循环语句遍历源数组每个元素,赋值给目标数组对应位置). 

2、使用chone()方法

在Java中,Object类是所有类的父类,其clone()方法一般用于创建并返回此对象的一个副本,Java中认为一切都是“对象”,所以使用该方法也可以实现数组的复制。clone()方法是object类的方法,作用就是将内容复制。

public class ArrayCopyClone {
public static void main(String[]  args) {int[]array1={ 1,2.3.4.5};      //int[]array2 = array1.clone();   //array2是array1的副本,值相同for(int i=0;i< array2.length, i++){System.out.println(array2[i]+".");//输出}
}

3、使用System.arraycopy方法

arraycopy()方法是System类的一个静察方法(并且是本地方法,效率非常高)。其可以方便的实现数组拷贝功能,System.arraycopy()方法的结构如下: 

System.arraycopy(from, fromIndex, to, tolndex, count)

示例:

public class ArrayCopy {public static void main(String[] args){int[]array1 ={ 1,2,3,4, 5 };int[]array2 = new int[array1.length];                    //声明array2System.arraycopy(array1, 0, array2, 0, array1.length);   //复制/*表示从array1的0号开始复制,复制好的放在array2里的0号位置去,一共复制array1.length个长度*/for (int i= 0; i< array2 length; i++) {System.out.print(array2[i]+",");//输出}
}

使用数组

数组必须先分配(new)空间,才能使用。

数组可以存储基本数据类型,也可以存储对象数据类型。

使用数组存储5个整数,并输出其中最大值。

public class FindMax {public static void main(String[]  args) {int[] array={ 10, 23, 6, 88, 19 };int index =0;                       //最大值索引号,默认为0int max = array[index];               //最大值//寻找最大值for (int i= 1; i< array.length; i++)            //注意java里是在for循环里面对进行的定义{if (array[i] > max){index = i;max = array[i];}}System.out.println("最大值为" + max+", 索引号为”+ index);}
}
//数组属于对象范畴,使用。length属性来获取数组的元素个数。

二维数组

使用new来创建多维数组时,不必指定每一维的大小,只需要指定第一维的大小即可.例 in[][] array = new int[10][];

此时一维数组的元素类型还是一维数组,常用来解决矩阵之类的问题。

int[][] array ={{1,2},{3,4},{4,5}};//注意一下,这点和C语言的不同。

想取得数据2,可以使用array[0][1]来获取。(指定数组名和索引)。

相关文章:

Java必备小知识点4——数据类型、数组、位运算符

数据类型Java的数据类型由基本数据类型和引用类型基本数据类型和C语言的一致&#xff0c;除了基本类型其余的都是引用类型。引用类型主要有&#xff1a;类&#xff08;class&#xff09;、接口&#xff08;interface&#xff09;、数组、枚举&#xff08;enum)、注解&#xff0…...

麦克风分类汇总

1.麦克风分类汇总 1)按声电转换原理分为&#xff1a;电动式&#xff08;动圈式、铝带式&#xff09;&#xff0c;电容式&#xff08;直流极化式&#xff09;、压电式&#xff08;晶体式、陶瓷式&#xff09;、以及电磁式、碳粒式、半导体式等。 2)按声场作用力分为&#xff1a…...

九龙证券|机制改革激发转融券活力 全面注册制释放两融展业新空间

在全面注册制准则规矩正式发布的同时&#xff0c;修订后的转融通事务规矩也应约与商场碰头。2月17日&#xff0c;中证金融发布《中国证券金融公司转融通事务规矩&#xff08;试行&#xff09;&#xff08;2023年修订&#xff09;》等规矩&#xff08;简称“转融通新规”&#x…...

6——JVM调优工具详解及调优实战

Jmap、Jstack、Jinfo命令详解 Jmap 此命令可以用来查看内存信息&#xff0c;实例个数&#xff0c;以及占用内存大小 生成dump文件 把dump文件装入Jvisvalvm进行分析 Jstack Jstack加进程id查找死锁 Jstack找出占CPU最高的线程堆栈信息 top -p 进程号&#xff1a;显示进程…...

AcWing语法基础课笔记 第八章 C++ STL 第九章 位运算与常用库函数

第八章 C STL 第八章 C STL 1.#include <vector> 2.#include<queue> 3.#include <stack> 4.#include <deque> 5.#include <set> 6.#include<map> 第九章 位运算与常用库函数 STL是提高C编写效率的一个利器。 ——闫…...

Qt中的多线程

Qt中有多种方法实现多线程&#xff1a; QThreadQThreadPool和QPunnable&#xff08;重用线程&#xff09;Qt ConcurrentWorkerScript&#xff08;QML中的线程&#xff09;QThread 在上两篇文章中已经解释了&#xff0c;这里就不再赘述。 QThreadPoo和QRunnable&#xff08;实现…...

React-Hooks怎样封装防抖和节流-面试真题

Debounce debounce 原意消除抖动&#xff0c;对于事件触发频繁的场景&#xff0c;只有最后由程序控制的事件是有效的。 防抖函数&#xff0c;我们需要做的是在一件事触发的时候设置一个定时器使事件延迟发生&#xff0c;在定时器期间事件再次触发的话则清除重置定时器&#xff…...

算法训练营 day51 动态规划 打家劫舍系列

算法训练营 day51 动态规划 打家劫舍系列 打家劫舍 198. 打家劫舍 - 力扣&#xff08;LeetCode&#xff09; 你是一个专业的小偷&#xff0c;计划偷窃沿街的房屋。每间房内都藏有一定的现金&#xff0c;影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统&#…...

【蓝桥集训】第六天——递归

作者&#xff1a;指针不指南吗 专栏&#xff1a;Acwing 蓝桥集训每日一题 &#x1f43e;或许会很慢&#xff0c;但是不可以停下来&#x1f43e; 文章目录1.树的遍历2.递归求阶乘3.求斐波那契数列1.树的遍历 一个二叉树&#xff0c;树中每个节点的权值互不相同。 现在给出它的后…...

react源码中的hooks

今天&#xff0c;让我们一起深入探究 React Hook 的实现方法&#xff0c;以便更好的理解它。但是&#xff0c;它的各种神奇特性的不足是&#xff0c;一旦出现问题&#xff0c;调试非常困难&#xff0c;这是由于它的背后是由复杂的堆栈追踪&#xff08;stack trace&#xff09;支…...

038.Solidity入门——25调用其他合约的方法

Solidity 提供了几种方式用于调用其他合约&#xff1a;方法描述直接调用使用 address.call 函数&#xff0c;可以向另一个合约发送消息并返回结果。低级调用使用 address.call 或 address.callcode 函数&#xff0c;可以执行一个外部合约中的代码。与直接调用不同&#xff0c;低…...

Revit项目浏览器的标准设置应用和快速视图样板?

一、Revit项目浏览器的标准设置应用 设计院阶段的BIM应用&#xff0c;主要是Revit出施工图方面&#xff0c;需要涉及到很多标准的制定方面的问题&#xff0c;而且这个标准不仅仅是一个命名标准&#xff0c;还有很多的符合本院的出图标准等等&#xff0c;本期就不做详细讨论&…...

安装MQTT Server遇到报错“cannot verify mosquitto.org‘s certificate”,该如何解决?

MQTT是基于发布/订阅的轻量级即时通讯协议&#xff0c;很适合用于低带宽、不稳定的网络中进行远程传感器和控制设备通讯等操作中。在我们的软件研发中&#xff0c;也经常使用MQTT协议进行消息通信等。今天来和大家分享一些关于在安装MQTT Server中遇到的疑难问题及解决思路。当…...

程序员如何向架构师转型?看完就明白该怎么做了

软件行业技术开发从业人员众多&#xff0c;但具备若干年开发经验的普通的开发人员往往面临个人发展的瓶颈&#xff0c;即如何从普通开发人员转型成高层次的系统架构师和技术管理人员。想成为一名架构师&#xff0c;应当具备全面的知识体系&#xff0c;需要进行系统的学习和实践…...

Flask入门(9):蓝图

目录9.蓝图9.1 概述9.2 蓝图项目结构结构1结构29.3 添加前缀9.4 静态文件9.5 模板9.6 构建 URLs9.蓝图 参考&#xff1a;http://www.pythondoc.com/flask/blueprints.html 9.1 概述 Flask 使用了 蓝图 的概念在一个应用或者跨应用中构建应用组件以及支持通用模式。 蓝图很好…...

跑步戴哪种耳机好,最适合运动跑步的蓝牙耳机

经常跑步使用的耳机&#xff0c;还是要选择佩戴着舒适以及牢固的运动耳机最为合适&#xff0c;在运动当中会遇到耳机掉落或者长时间佩戴耳道感到难受的现象发生&#xff0c;那么什么蓝牙耳机是最适合运动当中佩戴呢&#xff1f;下面这些耳机分享希望能够帮助大家。 1、南卡Run…...

微信小程序实现瀑布流布局

微信小程序实现瀑布流布局1、简单实例&#xff0c;纯图片后台返回图片高度https://blog.csdn.net/qq_45967222/article/details/1190318762、纯图片后台返回图片高度、通过wx.getImageInfo获取在线图片高度、按照奇数偶数来显示https://blog.csdn.net/baidu_35290582/article/d…...

2023最新网络工程师HCIA-Datacom“1000”道题库,光速刷题拿证

HCIA认证是华为认证体系的初级认证&#xff0c;可以说是网工进入IT行业的一张从业资格证&#xff01; HCIA-Datacom考试覆盖数通基础知识 包括 TCP/IP 协议栈基础知识&#xff0c;OSPF 路由协议基本原理以及在华为路由器中的配置实现&#xff0c;以太网技术、生成树、VLAN 原…...

[蓝桥杯] 递归与递推习题训练

文章目录 一、递归实现指数型枚举 1、1 题目描述 1、2 题解关键思路与解答 二、递归实现排列型枚举 2、1 题目描述 2、2 题解关键思路与解答 三、递归实现组合型枚举 3、1 题目描述 3、2 题解关键思路与解答 四、带分数 4、1 题目描述 4、2 题解关键思路与解答 五、费解的开关…...

领航智能汽车信息安全新征程 | 云驰未来乔迁新址

2月20日&#xff0c;在北京朝阳百子湾东朝时代创意园&#xff0c;云驰未来迎来乔迁之喜&#xff0c;智能汽车和自动驾驶领域的行业领导、合作伙伴与客户、投资人及媒体嘉宾齐聚现场&#xff0c;共同见证云驰未来迈上新的发展征程。 作为中国智能网联汽车和自动驾驶信息安全行业…...

Kaldi语音识别技术(七) ----- 训练GMM

Kaldi语音识别技术(七) ----- GMM 文章目录Kaldi语音识别技术(七) ----- GMM训练GMMtrain_mono.sh 用于训练GMM训练GMM—生成文件训练GMM—final模型查看训练GMM—final.occs查看训练GMM—对齐信息查看训练GMM—fsts.*.gz查看训练GMM—tree决策树查看align_si.sh 用于对齐训练G…...

Java 集合基础

文章目录一、集合概念二、ArrayList1. 构造方法和添加方法2. 常用方法三、案例演示1. 存储字符串并遍历2. 存储学生对象并遍历3. 键盘录入学生对象并遍历一、集合概念 编程的时候如果要存储多个数据&#xff0c;使用长度固定的数组存储格式&#xff0c;不一定满足我们的需要&a…...

Day896.MySql的kill命令 -MySQL实战

MySql的kill命令 Hi&#xff0c;我是阿昌&#xff0c;今天学习记录的是关于MySql的kill命令的内容。 在 MySQL 中有两个 kill 命令&#xff1a; 一个是 kill query 线程 id&#xff0c;表示终止这个线程中正在执行的语句&#xff1b;一个是 kill connection 线程 id&#…...

L2-010 排座位

布置宴席最微妙的事情&#xff0c;就是给前来参宴的各位宾客安排座位。无论如何&#xff0c;总不能把两个死对头排到同一张宴会桌旁&#xff01;这个艰巨任务现在就交给你&#xff0c;对任何一对客人&#xff0c;请编写程序告诉主人他们是否能被安排同席。 输入格式&#xff1…...

C++的完美讲解,还不快来看看?

目录 简介&#xff1a; 创建C程序&#xff1a; Windows编译简介&#xff1a; Hello,C World! 简介&#xff1a; C融合了3中不同的编程传统:C语言代表的过程性传统、C在C语言基础上添加的类代表的面向对象语言的传统以及C模板支持的通用编程传统。一般来说&#xff0c;计算机语言…...

C语言学习_DAY_5_循环结构while和for语句【C语言学习笔记】

高质量博主&#xff0c;点个关注不迷路&#x1f338;&#x1f338;&#x1f338;&#xff01; 目录 I. 案例引入 II. while语句 III. do while语句 IV. for语句 前言: 书接上回&#xff0c;判断结构已经解决&#xff0c;接下来是另一种很重要的结构&#xff1a;循环结构的实…...

JavaScript高级程序设计读书分享之4章——4.3垃圾回收

JavaScript高级程序设计(第4版)读书分享笔记记录 适用于刚入门前端的同志 4.3.3 性能 垃圾回收程序会周期性运行&#xff0c;如果内存中分配了很多变量&#xff0c;则可能造成性能损失&#xff0c;因此垃圾回收的 时间调度很重要。尤其是在内存有限的移动设备上&#xff0c;垃圾…...

Java线程的6 种状态

Java 线程的状态 Java线程有六种状态&#xff1a; 初始&#xff08;NEW&#xff09;、运行&#xff08;RUNNABLE&#xff09;、阻塞&#xff08;BLOCKED&#xff09;、 等待&#xff08;WAITING&#xff09;、超时等待&#xff08;TIMED_WAITING&#xff09;、终止&#xff08…...

5年测试在职经验之谈:3年手工测试、2年的自动化测试,从入门到不可自拔...

毕业3年了&#xff0c;学的是环境工程专业&#xff0c;毕业后零基础转行做软件测试。 已近从事测试行业8年了&#xff0c;自己也从事过3年的手工测试&#xff0c;从事期间越来越觉得如果一直在手工测试的道路上前进&#xff0c;并不会有很大的发展&#xff0c;所以通过自己的努…...

QHash-官翻

QHash 类 template <typename Key, typename T> class QHash QHash 类是一种模板类&#xff0c;提供基于哈希表的字典类结构。更多内容… 头文件:#include <QHash>qmake:QT core派生类:QMultiHash 所有成员列表&#xff0c;包括继承的成员废弃的成员 注意&…...