一、二维数组之前的知识点

一、二维数组之前的知识点,第1张

一、二维数组之前的知识点

目录

前言1、认识java

java特点安装如何开发java源程序:执行过程编写源代码注意点:转义字符 2、数据类型变量,运算符

数据类型的分类:命名规则变量的使用:运算符:运算符优先级 3、流程语句

1)if(三种)2)switch3)while(两种)4)for(两种)break,continue、return 4、数组

1)一维数组

注意:容易错误的定义格式 1)二维数组

前言

接下来开始整理JAVASE的内容,因为数组前面的内容和很多语言基本相似,所以就用一章内容进行简单梳理一下,主要从面向对象之后开始进行笔记整理

1、认识java java特点

Java具有简单性、面向对象、 分布式 、 健壮性 、 安全性 、平台独立与可移植性、 多线程 、动态性等特点 。

jvm:JVM是Java Virtual Machine(Java虚拟机)的缩写,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。
jdk:JDK是Java Development Kit的缩写,是Java的开发工具包。
jre:JRE是Java运行环境,并不是一个开发环境,所以没有包含任何开发工具(如编译器和调试器),只是针对于使用Java程序的用户。

安装

如何安装…
配置环境变量…

如何开发java源程序:

编写源代码—>编译器将源代码翻译成class文件—>运行class文件.
命令: javac 源文件名 . java
java_类名

用Dos命令行执行(在相应的文件夹里)
    javac HelloWorld.java
    //产生class文件
    java HelloWorld
    //执行文件
    格式必须是这样,其他的报错
执行过程

源代码Java文件经过

编译 生成class文件(字节码文件),只有这种文件才能被JVM运行。
加载 把文件加载到内存,然后读取字节流中的数据,将其存储到JVM方法区中
执行 寻找main()方法,对象实例会被放到java堆产生Java栈,然后进栈出栈
编写源代码注意点:

源文件中可以包含多个类,但是最多只能有一个public修饰的类,而且public修饰的类的名字与源文件名保持一致,主方法一定在public修饰的类中。如果没有public修饰的类,文件名就与任意一个类型相同即可。

转义字符 2、数据类型,变量,运算符 数据类型的分类:

基本数据类型:三类八种
整数:byte short int long
小数:float double . //float 定义变量时,后面要加f或者F,因为有小数点默认为double类型
非数值:char boolean //boolean 的false和true都为小写,容易记成大写

引用数据类型:除去八种基本数据类型外其他全部是引用数据类型

命名规则

包含数字,字母,,$符号,但是开头不能是数字,不能是java中的关键字,尽量做到见名知意。
变量或方法命名:第一个单词首字母是小写的,后面单词首字母大写,满足驼峰命名规则(也有人习惯单词间用下划线分开,所有字母小写)

常量:所有字母大写,单词间用下划线分开

类或接口命名:每个单词首字母大写的,帕斯卡命名规则
包命名:全部小写
关键字:字母全部是小写的, java已经使用过的一-些单词。
字面值:true false null
保留字:goto const

变量的使用:

声明,赋值(若未赋值,会自动赋默认值),才能使用[局部变量]

特别的:

静态变量static:

被static修饰的成员变量叫做静态变量。静态变量具有以下两个特征:
  a.静态变量的数据被本类中所有实例对象所共享;
  b.如果该静态变量的访问权限高于private,则该静态变量可通过“类名.变量名”直接访问。

常量final:

被final修饰的变量为常量,也就是一旦定义,之后修改便会报错。

运算符:

算术运算符:+、-、*、/、%、++、–
关系运算符>、<、>=、<=、==、!=
逻辑运算符: &&、||、!
位运算符:<<、>>、>>>、^、&、|、~

int a = 60;  
int b = 13; 
int c = 0;
c = a & b;           // &并 按二进制都为1时为1
System.out.println("a & b = " + c );//输出:a & b = 12
c = a | b;           //|或 按二进制有一个为1则为为一
System.out.println("a | b = " + c );//输出:a | b = 61
c = a ^ b;           //不同为1
System.out.println("a ^ b = " + c );
c = ~a;              //和原来相反(要凑齐四个一组)
System.out.println("~a = " + c );
c = a << 2;         //整体左移两位
System.out.println("a << 2 = " + c );
c = a >> 2;               //整体右移两位
System.out.println("a >> 2  = " + c );
c = a >>> 2;     
System.out.println("a >>> 2 = " + c );

补充

表示右移,如果该数为正,则高位补0,若为负数,则高位补1;

表示无符号右移,也叫逻辑右移,即若该数为正,则高位补0,而若该数为负数,则右移后高位同样补0。
表达式为:
result = exp1 >> exp2;
result = exp2 >>> exp2;
表示把数exp1向右移动exp2位。
例如:
res = 20 >> 2;
20的二进制为 0001 0100,右移2位后为 0000 0101,则结果就为 res = 5;
res = -20 >> 2;
-20的二进制为其正数的补码加1,即 1110 1100,右移2位后为 1111 1011,结果为 res = 211;
而对于>>>符号而言:
res = 20 >>> 2; 的结果与 >> 相同;
res = -20 >>> 2;
-20的结果为 res = 59;即 1110 1100,右移2位后为 0011 1011
补充:
<< 是与>>对应的左移运算符,表示将exp1向左移动exp2位,在低位补0。其实,向左移动n位,就相当于乘以2^n。
左移没有<<<运算符!

三目(元)运算符(条件运算符): ( ? :)
赋值运算符:=、+=、-=、*=、/=、%=、<<=、>>=、&=、^=、|=

instanceof 运算符:instanceof(判断一个变量或引用类型是否属于一个类型)

运算符优先级

3、流程语句 1)if(三种)

1、if()

2、if()…else…

3、if()…else if()… else…

2)switch
switch (变量){
    case 值:
        break;   
    case 值:
        break;
    default:
        break;
}

注意:

1、等值判断

2、break用法

3、default

3)while(两种)

1、while(){

​ }

2、do{

​ }while()

4)for(两种)

1、类似:for(int i=0;i<10;i++){},分号分开的内容可以省,但一定要在其他地方体现

2、类似:for(int a:b),b为可迭代类型,比如数组

break,continue、return

break:结束此循环语句

continue:结束本次循环,进行下一次循环

return:结束此方法体

4、数组

数组的长度一旦定义就无法改变,如果实际需要改变,可以考虑动态数组的思想,在算法与数据结构专栏有详细讲解 算法与数据结构_第二章 线性结构+顺序存储

1)一维数组

定义的几种类型:

1:最常用
数据类型[] 数组名 = new 数据类型[长度];
例:int[] age = new int[3];
2:
数据类型[] 数组名;
数组名 = new 数据类型[长度];
3:
数据类型[] 数组名 = {值,值,值}  //提供几个值,该数组的长度就为几

查看数组长度:数组名.length;注意没有括号,这里总是容易和带括号搞混

Java中String类定义的字符串对象,用length()求它的长度。若是数组求长度,均可使用他们自己的属性length。即:数组不加,字符串要加 注意:容易错误的定义格式

错误一:
int[] age;
age = {1,2,3};
错误二:
int[] age = new int[3];
age = {1,2,3};
1)二维数组

定义格式:

1、int[][] a = new int[2][3];//常用
2、int[][] a = new int[2][];//常用
3、int[][] a = {{1},{1,2},{2,3,4}};

这里画个图理解一下

定义了一个二维数组,在栈中保存的是地址,在堆中开辟了一块内存,这块内存也是来保存地址的,也就是int[][] a = new int[5][],创建的第一块内存,里面全是null。然后再进行a[0] = new int[4],就创建了第二块内存,这块内存来保存值,a[0]这里保存的就是后来开辟的这块内存的地址。这个理解了,一维也就好理解了。
二维数组可以理解为还是一维的数组,只不过,这个一维数组里面保存的是一维数组。
所以二维数组的长度是多少?  当然是前面[]里面的值。这就是举例的5
所以定义格式二,一定要有前面一个维度的大小,说明这个数组的长度是2,每一个值又保存了一个数组。所以二维数组中,每一维的长度可以不同,这里不同于c/c++。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5708468.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存