当前位置: 首页 > 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]来获取。(指定数组名和索引)。

http://www.lryc.cn/news/15263.html

相关文章:

  • 麦克风分类汇总
  • 九龙证券|机制改革激发转融券活力 全面注册制释放两融展业新空间
  • 6——JVM调优工具详解及调优实战
  • AcWing语法基础课笔记 第八章 C++ STL 第九章 位运算与常用库函数
  • Qt中的多线程
  • React-Hooks怎样封装防抖和节流-面试真题
  • 算法训练营 day51 动态规划 打家劫舍系列
  • 【蓝桥集训】第六天——递归
  • react源码中的hooks
  • 038.Solidity入门——25调用其他合约的方法
  • Revit项目浏览器的标准设置应用和快速视图样板?
  • 安装MQTT Server遇到报错“cannot verify mosquitto.org‘s certificate”,该如何解决?
  • 程序员如何向架构师转型?看完就明白该怎么做了
  • Flask入门(9):蓝图
  • 跑步戴哪种耳机好,最适合运动跑步的蓝牙耳机
  • 微信小程序实现瀑布流布局
  • 2023最新网络工程师HCIA-Datacom“1000”道题库,光速刷题拿证
  • [蓝桥杯] 递归与递推习题训练
  • 领航智能汽车信息安全新征程 | 云驰未来乔迁新址
  • Kaldi语音识别技术(七) ----- 训练GMM
  • Java 集合基础
  • Day896.MySql的kill命令 -MySQL实战
  • L2-010 排座位
  • C++的完美讲解,还不快来看看?
  • C语言学习_DAY_5_循环结构while和for语句【C语言学习笔记】
  • JavaScript高级程序设计读书分享之4章——4.3垃圾回收
  • Java线程的6 种状态
  • 5年测试在职经验之谈:3年手工测试、2年的自动化测试,从入门到不可自拔...
  • QHash-官翻
  • MYSQL 配置优化