初识java中面向过程语法及数组特点-----自学JAVA(第四节)

本文属于小编原创,请使用者标明出处:

一、流程控制语法中注意事项

       (1)在使用if....else时,总是优先吧包含范围小的条件放在前面处理【其他语言同理:C、C++、C#等】;

           else的隐含条件是对前面条件取反。

       (2)switch(表达式)

           表达式的数据类型只能是:byte、short、char、int、枚举类型和String类型(String类型Java 7新增);

           注意:表达式与case标签后面的值进行比较,一旦遇到相等的值,程序就开始执行这个case标签后的代码,不再判断后面case、default标签的条件是否匹配,除非遇到break才会结束。

       (3)while与do...while区别

            while是先判断循环条件,如果条件为真,则执行循环体;

            do....while循环则先执行循环体,然后才判断循环条件,如果循环条件为真,则执行下一次循环,否则终止循环。

       (4)for循环与while、do....while区别

            while、do....while如使用coninue语句结束本次循环,则循环迭代语句不会被执行;

            for循环的循环迭代语句并没有与循环体放在一起,因此不管是否使用continue语句来结束本次循环,循环迭代语句一样获得执行。

       (5)使用for循环时,有几个地方需要注意

            不要在循环体内修改循环变量的值,如果程序中确实需要访问、修改循环变量的值,建议使用一个临时变量tmp,先将循环变量赋值临时变量,然后对临时变量的值进行修改。

       (6)控制循环结构(三种方法)

            return     :结束该方法,也就结束了循环;

            break       :结束该循环;

            continue : 结束本次循环剩下语句,接着开始下一次循环。

            其中continue和break中还可以仅跟一个标签,来结束外层循环.[java中的标签只有放在循环之前才起作用]

            举例:

                  outer:

                   for(int i=0;i<10;i++){

                         for(int j=0;j<10;j++){

                               System.out.println("i="+i+","+"j="+j);

                               if(j==3){

                                    break  outer;    //可跳出外层循环

                               }

                         }

                   }

         输出结果:

                   0,0
                   0,1
                   0,2
                   0,3

       (7)java中foreach循环

           语法格式:

           for(type variableName : array|collection){

                 // variableName自动迭代访问 array|collection中的每个元素;
           }

            foreach中的循环变量相当于一个临时变量,系统会把数组元素(或集合元素)依次赋给这个临时变量,而这个临时变量并不是数组元素(或者集合元素),它只是保存了数组元素(或集合元素)的值。所有修改这个临时变量的值,不会改变原数组元素(或集合元素)的值。

二、数组

        一旦数组的初始化完成,数组在内存中所占的空间将被固定下来,因此数组的长度将不可变,即使把该数组元素清空,但他所占的空间依然被保留,依然属于该数组,数组的长度依然不变。

       (1)定义数组

            type[] arrayName 或者(type arrayName[])

            仅仅表示定义了一个引用变量,这个引用变量还未指向任何有效内存,因此定义数组不能指定数组长度。

       (2)数组初始化

            java语法中数组必须先初始化,然后才能使用。所谓初始化,就是为数组元素分配内存空间,并为每个元素赋初始值;

            显示指定数组元素值类型与new关键值后的type类型相同,或者是其子类的实例;

            两种方式初始化:

                   静态初始化:初始化时由编写者显示指定每个元素的初始值,由系统决定数组长度;

                                          arrayName=new type[] (value1,value2......) ;    

                                          或者

                                          type[] arrayName={value1,value2........};

                   动态初始化:初始化时编写者只指定数组长度,由系统为数组元素分配初始值。

                                          arrayName=new type[length];

            注意:不要同时使用静态初始化和动态初始化,即不要进行数组初始化时,即指定数组长度又为每个元素分配初始值。

      (3)数组在内存中运行机制

           当在一个java方法体中定义一个数组并初始化过程在内存中运行示例(基本类型数组初始化过程)如下图一所示:


                                                                                           (图一)

          此处有栈内存与堆内存之分:

          是因为当一个方法执行时,每个方法都会建立自己的内存栈,在这个方法定义的变量会逐个放入这块栈内存中,方法执行结束后,这个对于的内存栈将自动销毁。所以上图中数组变量放在了栈内存中。

          而创建一个对象时,这个对象将被保存在堆内存中(也叫运行时数据区),堆内存中对象不会随着方法结束而销毁(这个对象可能被另一个引用变量引用:如方法中参数传递),只有当一个对象没有任何引用变量引用它时,系统垃圾回收才会回收它。

          备注:

          一定要把数组看成两部分,一部分是数组引用(代码中定义的数组引用变量);另一部分是实际的数组对象(在堆内存里运行)。

         堆内存中对象不能直接访问,只能通过数组引用变量来访问。

        (4)引用类型数组初始化和二维数组初始化

            引用类型数组初始化:引用类型数组的数组元素是引用,每个数组元素指向另一块内存,这块内存存储了有效数据。

            如下图二所示

             

                                              (图二)

             二维数组及多位数组

             定义:

                       type[][] arrayName;

             初始化:

                       方法一:arrayName=new type[length][];//此种方式必须再次初始化length个type[]类型的变量

                       方法二:arrayName=new type[length01][length02];

                       举例(如下图三):


                                                        (图三)

三、小常识

       ①计算机底层运算逻辑:

         /*计算机底层把数据转换为二进制,二进制加法计算方式(8位二进制举例)
  * 比如:5+2=7
  * 00000101=5
  * 00000010=2
  *    00000101
  *  + 00000010
  *    00000111 =7
  *0+0=0,0+1=1,1+0=1,1+1=10(向前进一位)
  *举例:   00001100=12
  *  +  00000101=5
  *     00010001=17
  */

       ②字符(char类型)的变量、值可直接比较大小,也可进行加减乘除运算,实际上都是使用该字符对应的编码参与运算

            ※Java中使用16位的Unicode字符集作为编码方式(ASCII字符集占8位)

四、补充知识:Arrays工具类

                  Java提供的Arrays工具类中static方法可以直接操作数组,

                  比如:

                         查找 :  int binarySearch(type[] a,type key)等;

                         复制 :  type[] copyOf(type[] array,int length)等;

                         排序 :  void sort(type[] array)等;

                         赋值 :  void fill(type[] a ,type value)等操作.



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值