Java语言中学习数组、运算符、流程控制的一些理解

一、数组

  1、数组的概念及作用

   数组是相同数据类型的元素的集合;

     数组本身是引用数据类型,即对象。但是数组可以存储基本数据类型,也可以存储引用数据类型。

  例如:

    int [] a = new int [] {1,2,3,4,5,6,};

    String [] s = new String [] {"小兔","小小兔","小小小兔",} ;

    Employee [] e = Employee [10];(Employee是自定义类)。

  2、数组的声明

     数组的声明有两种方式:

    数据类型 [] 数组名字     例如:int [] a;

    数据类型 数组名字 []     例如:int a [];

  注:在JAVA语言中两种声明方法没有任何区别,但是建议大家使用第一种,避免混淆a的数据类型。

    数组在声明后还只是一个空指针,不能使用,要使用必须创建。

  3、数组的创建

     数组的创建有三种方式:

   1)//声明数组的同时,根据制定的长度分配内存,但数组中元素值都为默认的初始化值

      char [] chAry = new char [10];

     2)//声明数组并分配内存,同时将其初始化

      int [] ary1 = new int [] {1,2,3,4,5};

   3) //与前一种方式相同,仅仅只是语法相对简略

      int [] ary2 = {1,2,3,4,5};

     从另一角度,数组创建可以分为动态和静态两种

   1)动态创建数组(没有为元素赋值,可以结合for循环进行赋值)

     char [] chAry = new char [10];

      2)静态创建数组,在创建的时候,即为每个元素赋初值

     int [] ary1 = new int [] {1,2,3,4,5};

     数组的长度:length属性

       int [] b1 =new int [] {1,2,3,4,5,6,7};

       System.out.println(b1.length);

  注:数组的长度是属性,String的长度是length();

    创建数组的时候必须指定数组长度,而且一经定义则不允许改变。

    数组长度虽然是7,但是在内存中实际給8个位置,另一个存储7.

     数组之间的赋值

    在Java中,语法上可以将数组的值赋给另一个数组,但实际得到的效果是两个数组引用指向同一块内存。

     int [] ary1 = {1,2,3,4,5,};

       int [] ary2;

     ary2 = ary1:

     上面两个数组的引用指向同一块内存。  

public class ArrayDemo {

  public static void main(String[] args) {

    int[] ary1 = {2, 4, 6, 8, 10}; //声明并初始化数组1

    int[] ary2; //声明数组2 ary2 = ary1; //将数组1赋值给数组2

    ary2[3] = 1024; //通过数组2修改其中一个元素的值

    //打印出数组1中的元素 System.out.println("数组1中的元素:");

    for (int i = 0; i < ary1.length; i++) {

      System.out.println(ary1[i]);

    }

    //打印出数组2中的元素 System.out.println("数组2中的元素:");

    for (int i = 0; i < ary2.length; i++) {

      System.out.println(ary2[i]);

    }

  }  

}

   运行结果:数组1中的元素 2 4 6   for循环输出为1024

        数组2中的元素 2 4 6   for循环输出为1024

二、运算符

     按照功能分,Java中的运算符可以分为四类

    算术运算符

    位运算符

    比较运算符

    逻辑运算符

     除了== 及 !=、+外,其他运算符都是针对基本数据类型进行运算,==及!=可以对基本数据类型及引用类型进行运算,+还可以对字符串进行连接操作。

  1、算术运算符

    单目:+(取正) -(取负)  ++(自增1) --(自减1)

    双目:+ - * / %(取余)(+还可以连接字符串)

    三目:a > b ? ture:false

       说明:当a大于b的时候,为true(也就是冒号之前的值),否则为false;这整个运算符包括一个关系运算符(可以是“>”"<""!="等等),一个“?”,一个“:”,冒号前后需要有两个表达式或者是值或者是对象。

  2、位运算符

    位运算符:(先转化成二进制再进行运算)

      与(&)、非(~)、或(|)、异或(^)

     & 全部是1,运算结果是1,其他的都是0;

      ~ 按位取反+1,加1后取反(取负);

     | 只要有一个是1,结果就是1;

     ^ 相同的结果是0,不同的结果是1;

      移位运算符:<<、    >>(有符号右移)

      左移1位相当于乘以2,右移1位相当于除以2,比乘除运算效率更高

     例如:

      int a = 8, c;

      c = a >> 2;

      原来的: (8的二进制值是)   0000 1000 

      移动后:  (c的值为2)         0000 0010

  3、比较运算符

    ==(等于号) ,<(小于号),>(大于号),<=(小于等号),>=(大于等号),!=(不等号);

    ==与!=比较基本数据类型是比较值,比较引用类型是虚地址;

    除了==  !=外,都只能比较基本数据类型;

     注:比较运算符的返回值为ture或false。

  4、逻辑运算符

    用于连接两个boolean类型的表达式

    && (双与) 、|| (双或) 、&(与)、|或)、^(异或)、!(非运算)

      注意事项:

     1)&&与&的运算结果是相同的,对于&而言无论左边为什么值,右边都参与运算;

      对于&&来说,只要左边为false右边就不再运算,直接返回false。

        2)||与|的运算结果是相同的,对于|而言无论左边为什么值,右边都参与运算;

      对于||来说,只要左边为true右边就不再运算,直接返回true。

        3)&&和||可以理解为物理上的短路,实际中多用&&及||。

三、Java中的流程控制

  顺序流程

  分支流程

  循环流程

  1、顺序流程 

    输入-----运算处理-----输出

  2、分支流程

    1)条件语句if....

         条件表达式可以是任何一种逻辑表达式;

         如果表达式值为true,则执行花括号的内容后,再执行后面的语句;

      如果表达的值为false,则直接执行后面的语句;

         如果,大括号只有一条语句,则可以省略大括号(推荐不省略);

     2)条件语句 if..... else.....

      语法格式—if.....case....

       if(表达式){

        执行语句块1

       }else{

        执行语句块2

       }

       如果表达式值为false,则执行else的语句块;

     3)条件语句 — switch....case   (case的取值是具体的一个值,不能有重复的,是常量)

      语法格式

      switch(表达式){

        case取值1:语句块1

        ....

        case取值n:语句块n

        default:语句块n+1

      }  

       表达式的值只可以接受int、byte、char、short型、枚举,JDK1.6以后String也可以,不接受其他类型的值,不允许有重复的case取值;

       switch一旦碰到第一次case匹配,程序就会跳转到这个标签位置;

       开始顺序执行以后所有的程序代码,而不管后面的case条件是否匹配,直到碰到break语句为止;

  3、循环流程

     1)循环语句— while(循环体在whlie中)

    while(条件表达式){

      执行语句块;

    }

     2)循环语句 — do…while  至少会执行一次循环(循环体在do中)

    do{

     执行语句块;

    }whlie(条件表达式);

     3)循环语句 — for

    for(初始化表达式;循环条件表达式;循环后的操作表达式){

      执行语句块;

    }

  4、循环的中断语句

    中断语句

    多重循环中可以使用标号,指定中断的具体循环

      在使用循环语句时,只有循环条件表达式的值为false时,才能结束循环。有时,我们想提前中断循环,要实现这一点,只需要在循环语句块中添加break或continue语句

    1)中断语句 — break

       break语句用于终止某个语句块的执行。用在循环语句体中,可以强行退出循环(整个循环)。

       "break;"语句:可以出现在while、do…while、for、switch语句体中。

       "break label”语句 :可以出现在任何语句体中。多数还是使用在循环中。

    2)中断语句 — continue

       continue语句用在循环语句体中,用于终止某次循环过程,跳过循环体(跳出本次循环)中continue语句下未执行的循环,开始下一次循环过程。

       "continue;” 语句:只能出现在循环语句while、do…while、for中。

    

     

时间: 2024-12-08 14:31:28

Java语言中学习数组、运算符、流程控制的一些理解的相关文章

Java语言中的----数组

day07  Java语言中的--数组 一.数组的概述: 什么是数组?数组是干什么用的?为啥要学数组?这些都是疑问.再你学完数组以后就知道了,数组是存储在相邻内存位置的单一数据类型的元素集合.什么是单一数据类型?就是在你定义数组的时候的数据类型,就只能存储这一个类型的数组.那么我们访问他的时候就直接通过指定数组的名字和下标就可以直接访问数组元素了. 二.数组: 1.定义数组         数据类型 数组名[] = new  数据类型[内存数据大小]         int a[] = new 

Java语言中的----运算符

day05 Java语言中的----运算符 一.运算符概述: 运算符的使用在每一门开发语言中都会使用到,在不同的语言中也会有不同的使用规则.通过运算符我们可以联想到MySQL数据库中的运算符,这些都是差不多的,可能有些在使用上是不一样的.下面就来看看Java中的运算符. 二.运算符: 1.算术运算符: 主要包含:加.减.乘.除.取余(%).自加(++).自减(--) 2.赋值运算符: 就是等号(=) 3.位运算符: 主要包含:&.|.~.^.<<.>>.>>&g

Java图式(第三章 流程控制、数组)

Java图式(第三章 流程控制.数组) 1.分支语句 1)if-else语句 2)switch语句 2.循环语句 1)while语句 while返回值不是1/0,必须是布尔表达式 2)do-while语句 3)for语句 4)continue/break语句 标号是对语句块/循环命名.eg:A:循环 continue A:直接终止标记的外循环 3.数组(引用类型) 1)声明时不确定大小 2)引用:下标引用,无指针 3)实例化(存储单元分配)语句:new 4)数组初始化:不要求每一维一样大 4.字

day20 java 语言中的读取写入数据(一)

day20  java 语言中的读取写入数据(一) 一.io概述 io数据流的读写功能,在实际的生活中也很常见,比如文件的上传.下载,日志的自动更新等都与io读写密切相关.io又被分为了读取数据和写入数据两个大的功能.下面就来看看读取数据的几种类. 二.读取数据的几种方式 读取数据被分为了字节流读取数据,和字符流读取数据两种. (一):字符输入流: 1.fileReader类.是字符流读取数据 2.BufferedReader类.带有缓冲流读取数据 (二):字节输入流: 1.FileInputS

在Java语言中调用存储过程、存储函数、包头、包体

需要拷贝连接Oracle的jar包,路径如下图所示: 连接Oracle数据库的代码: package demo.utils; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class JDBCUtils { private static Stri

Java语言中的修饰符

类.方法.成员变量和局部变量的可用修饰符 修饰符 类 成员方法 构造方法 成员变量 局部变量 abstract Y Y _ _ _ static _ Y _ Y _ public Y Y Y Y _ protected _ Y Y Y _ private _ Y Y Y _ synchronized _ Y _ _ _ native _ Y _ _ _ transient _ _ _ Y _ volatile _ _ _ Y _ final Y Y _ Y Y 1.访问控制修饰符: Java语言

Java面向对象编程之Java语言中的修饰符

近日,读了孙卫琴老师的<Java面向对象编程>一书,心中颇有些感悟,想着将其记录下来. Java中的修饰符 在Java语言中,有这样一些单词(说得再准确点儿,应该是形容词):abstract(抽象的).static(静态的).public(公共的).protected(受保护的).private(私有的).synchronized(同步的).native(本地的).transient(暂时的).volatile(易失的)和final(不可改变的),它们被成为修饰符,这些修饰符可以修饰类.变量和

C语言中字符数组和字符串指针分析

这几天搞Unix上的C程序,里面用到了很多字符数组和字符串指针,我记得在学完C语言后相当一段时间里,对指针这个东西还是模模糊糊,后来工作也没怎么 用到过C,虽然网上这类的文章也有很多,还是决定自己在这做个小总结,也算加深下自己的印象,写了下面的测试程序: #include <stdio.h> int main(int argc, char *argv[]){ char day[15] = "abcdefghijklmn";  char* strTmp = "opq

避免在Java+接口中使用数组的3个理由

转帖: http://eclipsesource.com/blogs/2014/04/11/3-good-reasons-to-avoid-arrays-in-java-interfaces/ 如果你发现在一个接口使用有如下定义方法: public String[] getParameters(); 那么你应该认真反思.数组不仅仅老式,而且我们有合理的理由避免暴露它们.在这篇文章中,我将试图总结在Java API中使用数组的缺陷.首先从最出人意料的一个例子开始. 数组导致性能不佳 你可能认为使用