石家庄云图网站建设,室内设计平台接单,冷饮网站开发背景意义,郑州做网站的多不多1. 初始 Java
1.1 Java 概述
1.1.1什么是 Java
Java是一种优秀的程序设计语言#xff0c;它具有令人赏心悦目的语法和易于理解的语义。
不仅如此#xff0c;Java还是一个有一系列计算机软件和规范形成的技术体系#xff0c;这个技术体系提供了完整的用于软件开发和跨平台…1. 初始Java1.1 Java 概述1.1.1什么是 JavaJava是一种优秀的程序设计语言它具有令人赏心悦目的语法和易于理解的语义。不仅如此Java还是一个有一系列计算机软件和规范形成的技术体系这个技术体系提供了完整的用于软件开发和跨平台部署的支持环境并广泛应用于嵌入式系统、移动终端、企业服务器、大型机等各种场合。1.1.2 Java 背景Java 是美国sun公司在1995年推出的一门计算机高级编程语言。Java 早期称为Oak橡树后期改名Java。Java 之父詹姆斯·高斯林祖师爷。2009年 sun公司被 Oracle甲骨文公司收购。1.1.3 为什么使用 Java世界上最流行的编程语言之一在国内使用最为广泛的编程语言可移植性、安全可靠、性能较好开发社区最完善、功能最丰富1.1.4 Java能做什么桌面应用开发企业级应用开发移动应用开发服务器系统大数据开发游戏开发1.1.5 Java 技术体系技术体系说明Java SE标准版Java技术的核心和基础Java EE企业版企业级应用开发的一套解决方案Java ME小型版针对移动设备应用的解决方案1.1.6 Java 发展史篇幅限制下面就只能给大家展示小册部分内容了。整理了一份Java零基础学习笔记包括了Java基础、Javaweb、Java框架、后端中间件、Java微服务、计算机基础、算法、springcloud、Java虚拟机、spring源码、redis、MySQL、并发编程、微服务、需要全套Java零基础进阶路线笔记【点击此处即可/免费获取】https://docs.qq.com/doc/DQUFvdURDeVF3UUpz?no_promotion1is_blank_or_templateblank1.1.7 Java的主要特征以下 Java 特性来自 Java 白皮书简单性Java 语言的语法与C语言和C语言很接近使得大多数程序员很容易学习和使用另一方面Java 丢弃了C中很少使用的、很难理解的、令人迷惑的那些特性如操作符重载、多继承、自动的强制类型转换。特别地Java语言不使用指针而是引用。并提供了自动的废料收集使得程序员不必为内存管理而担忧。面向对象Java语言提供类、接口和继承等面向对象的特性为了简单起见只支持类之间的单继承但支持接口之间的实现机制关键字为implements。Java语言全面支持动态绑定而C语言只对虚函数使用动态绑定。总之Java语言是一个纯的面向对象程序设计语言分布式Java有一个丰富的例程库用于处理像 HTTP 和FTP之类的TCP/IP协议。Java应用程序能够通过URL打开和访问网络上的对象其便捷程序就好像访问本地文件一样。健壮性Java 的设计目标之一在于使得 Java 编写的程序具有多方面的可靠性。Java 非常强调进行早期的问题检测、后期动态的运行时检测以及消除容易出错的情况… Java 与C/C 最大的不同在于Java 采用的指针模型可以消除重写内存和损坏数据的可能性。安全性Java 要适用于网络/分布式环境。为了实现这个目标安全性颇受重视。使用Java 可以构建防病毒、防篡改的系统。Java 设计能够防范各种攻击其中包括运行时堆栈溢出这是蠕虫和病毒常用的攻击手段。破坏自己的进程空间之外的内存未经授权读写文件体系结构中立Java程序后缀为java的文件在Java平台上被编译为体系结构中立的字节码格式后缀为class的文件然后可以在实现这个Java平台的任何系统中运行。这种途径适合于异构的网络环境和软件的分发。可移植性Java程序后缀为java的文件在Java平台上被编译为体系结构中立的字节码格式后缀为class的文件然后可以在实现这个Java平台的任何系统中运行。这种途径适合于异构的网络环境和软件的分发解释型如前所述Java程序在Java平台上被编译为字节码格式然后可以在实现这个Java平台的任何系统中运行。在运行时Java平台中的Java解释器对这些字节码进行解释执行执行过程中需要的类在联接阶段被载入到运行环境中。高性能与那些解释型的高级脚本语言相比Java的确是高性能的。事实上Java的运行速度随着JIT(Just-In-Time编译器技术的发展越来越接近于C多线程在Java语言中线程是一种特殊的对象它必须由Thread类或其子孙类来创建。通常有两种方法来创建线程其一使用型构为Thread(Runnable)的构造子类将一个实现了Runnable接口的对象包装成一个线程其二从Thread类派生出子类并重写run方法使用该子类创建的对象即为线程。值得注意的是Thread类已经实现了Runnable接口因此任何一个线程均有它的run方法而run方法中包含了线程所要运行的代码。线程的活动由一组方法来控制。Java语言支持多个线程的同时执行并提供多线程之间的同步机制关键字为synchronized动态性Java语言的设计目标之一是适应于动态变化的环境。Java程序需要的类能够动态地被载入到运行环境也可以通过网络来载入所需要的类。这也有利于软件的升级。另外Java中的类有一个运行时刻的表示能进行运行时刻的类型检查因此Java不仅仅是一门编程语言也是一个由一些列计算机软件和规范组成的技术体系。1.2JDKsum 公司提供了一套 Java 开发环境简称 JDKJava Java Development Kit。JDK 包括 Java编译器、Java运行工具、Java 文档生成工具、Java 打包工具等。sum 公司除了提供 JDK外还提供了一种 JREJava Runtime Environment工具它是提供给普通用户使用的 Java 运行环境。与 JDK 相比JRE 工具只包含 Java运行工具不包含 Jav 编译工具。需要说明的是为了方便使用sum 公司在 JDK 工具总封装了一个 JRE 工具即开发环境中包含了运行环境。1.2.1 安装 JDK和配置环境变量1.2.2 JDK 目录介绍JDK 安装完毕后会在磁盘上生成一个目录该目录被称为 JDK 目录。PS可能有些小伙伴会疑问自己为什么没有src这个文件夹这里是因为博主解压了src这个压缩包。bin目录该目录用于存放一些可执行程序如javac.exeJava 编译器、java.exeJava 运行工具、jar打包工具和javadoc.exe文档生成工具等。其中最重要就是javac.exe和java.exe下面我们对这两个程序进行讲解javac.exe是 Java 编译器它可以将编写的 Java 文件编译成 Java 字节码文件可执行的 Java 程序。java.exe是 Java 运行工具它会启动一个 Java 虚拟机JVM进程Java 虚拟机相当于一个虚拟的系统专门运行由 Java 编译器生成的字节码文件.class文件include目录由于 JDK 是使用 C/C 开发的因此在启动时需要引入一些C语言的头文件该目录就是用于存放这些头文件的。jre目录jre 是 Java Runtime Environment 的缩写意味 Java 程序运行时的环境。该目录是 Java 运行时环境的根目录它包含 Java 虚拟机、运行时的类包、Java 应用启动器和一个bin 目录但不包含开发环境中的开发工具。lib目录lib 是 library 的缩写意为 Java 类库或库文件是开发工具使用的归档包文件。src.zip和javafx-src.zip文件这两个文件中放置的是 JDK 核心类的源代码和 JavaFX 源代码通过这两个文件可以查看 Java 基础类的源代码。1.2.3 【面试题】JDK、JRE、JVM之间的关系*JDK(Java Development Kit):Java开发工具包提供给Java程序员使用包含了JRE同时还包含了编译器javac与自带的调试工具Jconsole、jstack等。JRE(Java Runtime Environment):Java运行时环境包含了JVMJava基础类库。是使用Java语言编写程序运行的所需环境。JVMJava虚拟机运行Java代码1.2.4 Java 跨平台、工作原理一次编译处处可用Java文件编译生成跟平台无关的字节码文件class文件JVMJava虚拟机由对应平台的JVM解析字节码为机器指令。1.3 Java 程序开发Java 程序需要三个步骤编写程序编译程序运行程序1. 编写 Java 源文件span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aapublic/span span stylecolor:#0077aaclass/span Main span stylecolor:#999999{/span span stylecolor:#0077aapublic/span span stylecolor:#0077aastatic/span span stylecolor:#0077aavoid/span span stylecolor:#dd4a68main/spanspan stylecolor:#999999(/spanStringspan stylecolor:#999999[/spanspan stylecolor:#999999]/span argsspan stylecolor:#999999)/span span stylecolor:#999999{/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanspan stylecolor:#50a14fHello world!/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#999999}/span span stylecolor:#999999}/span /code/span/span运行项目并下载源码java运行12345通过上述代码我们可以看到一个完整的Java程序的结构Java程序的结构由如下三个部分组成源文件扩展名为*.java)源文件带有类的定义。类用来表示程序的一个组件小程序或许只会有一个类。类的内容必须包含在花括号里面。类类中带有一个或多个方法。方法必须在类的内部声明。方法在方法的花括号中编写方法应该执行的语句。总结类存在于源文件里面方法存在于类中语句存在于方法中。注意在一个源文件中只能有一个public修饰的类而且源文件名字必须与public修饰的类名字相同。2. 运行 Java 程序Java是一门半编译型、半解释型语言。先通过javac编译程序把源文件进行编译编译后生成的.class文件是由字节码组成的平台无关、面向JVM的文件。最后启动java虚拟机来运行.class文件此时JVM会将字节码转换成平台能够理解的形式来运行。编译程序javac 文件名.javaspan stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-cmdjavac HelloWorld.java /code/span/span运行项目并下载源码cmd1运行程序java 文件名span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-cmdjava HelloWorld /code/span/span运行项目并下载源码cmd1注意事项第一个Java程序尽量用记事本写建议代码文件名全英文首字母大写满足驼峰模式源代码文件后缀为.java1.4 注释1.4.1 什么注释注释是写程序中对代码进行解释说明的文字方便自己和其他人查看以便理解程序的。1.4.2 注释有哪些单行注释//多行注释/* */文档注释/** */1.4.3 注释的特点注释不影响程序的执行编译后的class文件里面没有注释1.5 标识符标识符在程序中由用户给类名、方法名或者变量所取的名字。【硬性规则】标识符中可以包含字母、数字以及下划线和 $ 符号等等注意标识符不能以数字开头不能是关键字且严格区分大小写。【软性建议】类名每个单词的首字母大写大驼峰方法名首字母小写后面每个单词的首字母大写小驼峰变量名与方法名规则相同。1.6 关键字关键字是由Java语言提前定义好的有特殊含义的标识符或者保留字注意用户不能使用关键字定义标识符2.数据类型和变量2.1 字面常量常量即程序运行时期固定不变的量称为常量。span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aapublic/span span stylecolor:#0077aaclass/span Test span stylecolor:#999999{/span span stylecolor:#0077aapublic/span span stylecolor:#0077aastatic/span span stylecolor:#0077aavoid/span span stylecolor:#dd4a68main/spanspan stylecolor:#999999(/spanStringspan stylecolor:#999999[/spanspan stylecolor:#999999]/span argsspan stylecolor:#999999)/span span stylecolor:#999999{/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanspan stylecolor:#50a14fHello world!/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanspan stylecolor:#986801100/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanspan stylecolor:#9868013.14/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanspan stylecolor:#50a14fA/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanspan stylecolor:#0184bbtrue/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanspan stylecolor:#0184bbfalse/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#999999}/span span stylecolor:#999999}/span /code/span/span运行项目并下载源码java运行12345678910其中“Hello world!”1003.14‘A’true/false都是常量将其称为字面常量。字面量的分类字符串常量由“括起来的比如12345”、“hello”、“你好”。整型常量程序中直接写的数字注意没有小数点比如100、1000浮点型常量程序中直接写的小数比如3.14、0.49字符常量由’括起来的单个字符如‘A’‘1’布尔常量只有两种true和false空常量null注意字符串、整型、浮点型、字符型以及不而行在Java中都称为数据类型。2.2 数据类型Java 是一种强类型语言。这意味着必须每一个变量声明一个类型。Java 中数据类型主要分为两类基本数据类型和引用数据类型。数据类型关键字内存占用范围字节型byte1字节-128~127短整型short2字节-32768~32767整型int4字节-231~231-1长整型long8字节-263~263-1单精度浮点数float4字节有范围一般不关注双精度浮点数double8字节有范围一般不关注字符型char2字节0~65535布尔型boolean没有明确规定true和false注意无论是在32为系统还是64为系统int都占用4个字节long都占8个字节整型和浮点型都是带有符号的整型默认是int型浮点型默认是double字符串属于引用类型后序介绍。什么是字节?字节是计算机中表示空间大小的基本单位.计算机使用二进制表示数据. 我们认为 8 个二进制位(bit) 为一个字节(Byte).我们平时的计算机为16GB 内存, 意思是16G 个字节.其中 1KB 1024 Byte, 1MB 1024 KB, 1GB 1024 MB.所以 16GB 相当于 160 多亿个字节.篇幅限制下面就只能给大家展示小册部分内容了。整理了一份Java零基础学习笔记包括了Java基础、Javaweb、Java框架、后端中间件、Java微服务、计算机基础、算法、springcloud、Java虚拟机、spring源码、redis、MySQL、并发编程、微服务、需要全套Java零基础进阶路线笔记【点击此处即可/免费获取】https://docs.qq.com/doc/DQUFvdURDeVF3UUpz?no_promotion1is_blank_or_templateblank2.3 变量2.3.1 变量的概念在程序中除了有始终不变的常量外有些内容可以回经常改变比如人的年龄、身高、成绩分数、数学函数的计算结果等对于这些经常改变的内容在 Java 中称为变量。而数据类型就是用来定义不同种类变量2.3.2 语法格式定义变量的语法格式为span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-java数据类型 变量名 span stylecolor:#a67f59/span 初始值span stylecolor:#999999;/span /code/span/span运行项目并下载源码java运行1比如span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aapublic/span span stylecolor:#0077aaclass/span Test span stylecolor:#999999{/span span stylecolor:#0077aapublic/span span stylecolor:#0077aastatic/span span stylecolor:#0077aavoid/span span stylecolor:#dd4a68main/spanspan stylecolor:#999999(/spanStringspan stylecolor:#999999[/spanspan stylecolor:#999999]/span argsspan stylecolor:#999999)/span span stylecolor:#999999{/span span stylecolor:#0077aaint/span a span stylecolor:#a67f59/span span stylecolor:#98680110/spanspan stylecolor:#999999;/span span stylecolor:#708090// 定义整形变量aa是变量名也称为标识符该变量中放置的值为10/span span stylecolor:#0077aadouble/span d span stylecolor:#a67f59/span span stylecolor:#9868013.14/spanspan stylecolor:#999999;/span span stylecolor:#0077aachar/span c span stylecolor:#a67f59/span span stylecolor:#50a14fA/spanspan stylecolor:#999999;/span Boolean b span stylecolor:#a67f59/span span stylecolor:#0184bbtrue/spanspan stylecolor:#999999;/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanaspan stylecolor:#999999)/spanspan stylecolor:#999999;/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spandspan stylecolor:#999999)/spanspan stylecolor:#999999;/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spancspan stylecolor:#999999)/spanspan stylecolor:#999999;/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanbspan stylecolor:#999999)/spanspan stylecolor:#999999;/span a span stylecolor:#a67f59/span span stylecolor:#986801100/spanspan stylecolor:#999999;/span span stylecolor:#708090// a是变量a中的值是可以修改的/span span stylecolor:#708090// 注意 在java中表示赋值即将100交给aa中保存的值就是100/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanaspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#708090// 注意在一行可以定义多个相同类型的变量/span span stylecolor:#0077aaint/span a1 span stylecolor:#a67f59/span span stylecolor:#98680110/spanspan stylecolor:#999999,/spana2 span stylecolor:#a67f59/span span stylecolor:#98680120/spanspan stylecolor:#999999,/span a3 span stylecolor:#a67f59/span span stylecolor:#98680130/spanspan stylecolor:#999999;/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spana1span stylecolor:#999999)/spanspan stylecolor:#999999;/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spana2span stylecolor:#999999)/spanspan stylecolor:#999999;/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spana3span stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#999999}/span span stylecolor:#999999}/span /code/span/span运行项目并下载源码java运行2.3.3 整型变量2.3.3.1 整型变量方法一定义时给出初始值span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#708090// 方法一:定义时给出初始值/span span stylecolor:#0077aaint/span a span stylecolor:#a67f59/span span stylecolor:#98680110/spanspan stylecolor:#999999;/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanaspan stylecolor:#999999)/spanspan stylecolor:#999999;/span /code/span/span运行项目并下载源码java运行123方法二定义时没有给初始值但使用前必须设置初值span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#708090// 方法二定义时没有给初始值但使用前必须设置初值/span span stylecolor:#0077aaint/span bspan stylecolor:#999999;/span b span stylecolor:#a67f59/span span stylecolor:#98680120/spanspan stylecolor:#999999;/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanbspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#708090// 使用方式二定义后在使用前如果没有赋值则编译期间会报错/span span stylecolor:#0077aaint/span cspan stylecolor:#999999;/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spancspan stylecolor:#999999)/spanspan stylecolor:#999999;/span /code/span/span运行项目并下载源码java运行12345678int型变量所能表示的范围span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-Java// int型变量所能表示的范围 System.out.println(Integer.MIN_VALUE);// -2147483648 System.out.println(Integer.MAX_VALUE);// 2147483647 // 注意在定义int性变量时所赋值不能超过int的范围 int d 12345678901234; // 编译时报错初值超过了int的范围 System.out.println(d); /code/span/span运行项目并下载源码Java运行1234567注意事项int不论在何种系统下都是4个字节推荐使用方式一定义如果没有合适的初始值可以设置为0在给变量设置初始值时值不能超过int的表示范围否则会导致溢出变量在使用之前必须要赋初值否则编译报错int的包装类型为 Integer2.3.3.2 长整型变量span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aaint/span a span stylecolor:#a67f59/span span stylecolor:#98680110/spanspan stylecolor:#999999;/span span stylecolor:#0077aalong/span b span stylecolor:#a67f59/span span stylecolor:#98680110/spanspan stylecolor:#999999;/span span stylecolor:#708090// long定义的长整型变量/span span stylecolor:#0077aalong/span c span stylecolor:#a67f59/span span stylecolor:#98680110L/spanspan stylecolor:#999999;/span span stylecolor:#708090// 为了区分int和long类型一般建议long类型变量的初始值之后加L或者l/span span stylecolor:#0077aalong/span d span stylecolor:#a67f59/span span stylecolor:#98680110l/spanspan stylecolor:#999999;/span span stylecolor:#708090// 一般更加以加大写L因为小写l与1不好区分/span span stylecolor:#708090// long型变量所能表示的范围这个数据范围远超过 int 的表示范围. 足够绝大部分的工程场景使用./span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanLongspan stylecolor:#999999./spanspan stylecolor:#986801MIN_VALUE/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/spanspan stylecolor:#708090// -9223372036854775808/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanLongspan stylecolor:#999999./spanspan stylecolor:#986801MAX_VALUE/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/spanspan stylecolor:#708090// 9223372036854775807/span /code/span/span运行项目并下载源码java运行注意事项长整型变量的初始值后加L或者l推荐加L长整型不论在那个系统下都占8个字节长整型的表示范围为-263~263-1long的包装类型为Long2.3.3.3 短整型变量span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aashort/span a span stylecolor:#a67f59/span span stylecolor:#98680110/spanspan stylecolor:#999999;/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanaspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#708090// short型变量所能表示的范围/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanShortspan stylecolor:#999999./spanspan stylecolor:#986801MIN_VALUE/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/spanspan stylecolor:#708090// -32768/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanShortspan stylecolor:#999999./spanspan stylecolor:#986801MAX_VALUE/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/spanspan stylecolor:#708090// 32767/span /code/span/span运行项目并下载源码java运行注意事项short在任何系统下都占2个字节short的表示范围为-32768 ~ 32767使用时注意不要超过范围(一般使用比较少)short的包装类型为Short2.3.3.4 字节型变量span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aabyte/span b span stylecolor:#a67f59/span span stylecolor:#98680110/spanspan stylecolor:#999999;/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanbspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#708090// byte型变量所能表示的范围/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanBytespan stylecolor:#999999./spanspan stylecolor:#986801MIN_VALUE/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/spanspan stylecolor:#708090// -128/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanBytespan stylecolor:#999999./spanspan stylecolor:#986801MAX_VALUE/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/spanspan stylecolor:#708090// 127/span /code/span/span运行项目并下载源码java运行注意事项byte在任何系统下都占1个字节byte的范围是-128 ~ 127 3. 字节的包装类型为Byte2.3.4 浮点型变量2.3.4.1 双精度浮点型span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aadouble/span d span stylecolor:#a67f59/span span stylecolor:#9868013.14/spanspan stylecolor:#999999;/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spandspan stylecolor:#999999)/spanspan stylecolor:#999999;/span /code/span/span运行项目并下载源码java运行12代码一span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aaint/span a span stylecolor:#a67f59/span span stylecolor:#9868011/spanspan stylecolor:#999999;/span span stylecolor:#0077aaint/span b span stylecolor:#a67f59/span span stylecolor:#9868012/spanspan stylecolor:#999999;/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spana span stylecolor:#a67f59//span bspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#708090// 0/span span stylecolor:#708090// 为什么不输出0.5?/span /code/span/span运行项目并下载源码java运行1234在 Java 中int除以int的值仍然是int会直接舍弃小数部分。如果想要得到0.5需要使用double类型计算。span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aadouble/span a span stylecolor:#a67f59/span span stylecolor:#9868011.0/spanspan stylecolor:#999999;/span span stylecolor:#0077aadouble/span b span stylecolor:#a67f59/span span stylecolor:#9868012.0/spanspan stylecolor:#999999;/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spana span stylecolor:#a67f59//span bspan stylecolor:#999999)/spanspan stylecolor:#999999;/spanspan stylecolor:#708090// 0.5/span /code/span/span运行项目并下载源码java运行123代码二span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aadouble/span num span stylecolor:#a67f59/span span stylecolor:#9868011.1/spanspan stylecolor:#999999;/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spannum span stylecolor:#a67f59*/span numspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#708090// 输出1.21?/span span stylecolor:#708090// 1.2100000000000002/span /code/span/span运行项目并下载源码java运行123注意事项double在任何系统下都占8个字节浮点数与整数在内存中的存储方式不同不能单纯使用的形式来计算double的包装类型为Doubledouble 类型的内存布局遵守 IEEE 754 标准(和C语言一样), 尝试使用有限的内存空间表示可能无限的小数, 势 必会存在一定的精度误差因此浮点数是个近似值并不是精确值2.3.4.2 单精度浮点型span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaloat num span stylecolor:#a67f59/span span stylecolor:#9868011.0f/spanspan stylecolor:#999999;/span span stylecolor:#708090// 写作 1.0F 也可以/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spannumspan stylecolor:#999999)/spanspan stylecolor:#999999;/span /code/span/span运行项目并下载源码java运行12注意事项float 类型在 Java 中占四个字节, 同样遵守 IEEE 754 标准.由于表示的数据精度范围较小, 一般在工程上用到浮点数 都优先考虑 double, 不太推荐使用 float.float的包装类型为Float。2.3.5 字符型变量span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aachar/span c1 span stylecolor:#a67f59/span span stylecolor:#50a14fA/spanspan stylecolor:#999999;/span span stylecolor:#708090// 大写字母/span span stylecolor:#0077aachar/span c2 span stylecolor:#a67f59/span span stylecolor:#50a14f1/spanspan stylecolor:#999999;/span span stylecolor:#708090// 数字字符/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanc1span stylecolor:#999999)/spanspan stylecolor:#999999;/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanc2span stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#708090// 注意java中的字符可以存放整形/span span stylecolor:#0077aachar/span c3 span stylecolor:#a67f59/span span stylecolor:#50a14f帅/spanspan stylecolor:#999999;/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanc3span stylecolor:#999999)/spanspan stylecolor:#999999;/span /code/span/span运行项目并下载源码java运行注意事项Java 中使用 单引号 单个字母 的形式表示字符字面值.计算机中的字符本质上是一个整数. 在 C 语言中使用 ASCII 表示字符, 而 Java 中使用 Unicode 表示字符. 因此 一个字符占用两个字节, 表示的字符种类更多, 包括中文.span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aachar/span c3 span stylecolor:#a67f59/span span stylecolor:#50a14f帅/spanspan stylecolor:#999999;/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanc3span stylecolor:#999999)/spanspan stylecolor:#999999;/span /code/span/span运行项目并下载源码java运行12char的包装类型为Character2.3.6 布尔类型变量布尔类型常用来表示真假在现实生活中也是经常出现的比如听说xxx同学买彩票中了一个亿…听到后估计 大部分人第一反应就是我x真的假的span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aaboolean/span b span stylecolor:#a67f59/span span stylecolor:#0184bbtrue/spanspan stylecolor:#999999;/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanbspan stylecolor:#999999)/spanspan stylecolor:#999999;/span b span stylecolor:#a67f59/span span stylecolor:#0184bbfalse/spanspan stylecolor:#999999;/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanbspan stylecolor:#999999)/spanspan stylecolor:#999999;/span /code/span/span运行项目并下载源码java运行12345注意事项boolean 类型的变量只有两种取值,true表示真,false表示假.Java 的 boolean 类型和 int 不能相互转换, 不存在1表示true,0表示false这样的用法.Java虚拟机规范中并没有明确规定boolean占几个字节也没有专门用来处理boolean的字节码指令在 Oracle公司的虚拟机实现中boolean占1个字节.boolean的包装类型为Boolean。2.3.7 类型转换我们经常需要将一种数据类型转换为另一种数据类型。图中6个实线箭头表示无信息丢失的转换另外有3个虚线剪头表示可能有精度损失的转换。2.3.7.1 自动类型转换隐式自动类型转换即代码不需要经过任何处理在代码编译时编译器会自动进行处理。特点数据范围小的转为数据范围大的时会自动进行。span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-java Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanspan stylecolor:#9868011024/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#708090// 整型默认情况下是int/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanspan stylecolor:#9868013.14/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#708090// 浮点型默认情况下是double/span span stylecolor:#0077aaint/span a span stylecolor:#a67f59/span span stylecolor:#986801100/spanspan stylecolor:#999999;/span span stylecolor:#0077aalong/span b span stylecolor:#a67f59/span span stylecolor:#98680110L/spanspan stylecolor:#999999;/span b span stylecolor:#a67f59/span aspan stylecolor:#999999;/span span stylecolor:#708090// a和b都是整形a的范围小b的范围大当将a赋值给b时编译器会自动将a提升为long类型然后赋值/span a span stylecolor:#a67f59/span bspan stylecolor:#999999;/span span stylecolor:#708090// 编译报错long的范围比int范围大会有数据丢失不安全/span span stylecolor:#0077aafloat/span f span stylecolor:#a67f59/span span stylecolor:#9868013.14F/spanspan stylecolor:#999999;/span span stylecolor:#0077aadouble/span d span stylecolor:#a67f59/span span stylecolor:#9868015.12/spanspan stylecolor:#999999;/span d span stylecolor:#a67f59/span fspan stylecolor:#999999;/span span stylecolor:#708090// 编译器会将f转换为double然后进行赋值/span f span stylecolor:#a67f59/span dspan stylecolor:#999999;/span span stylecolor:#708090// double表示数据范围大直接将float交给double会有数据丢失不安全/span span stylecolor:#0077aabyte/span b1 span stylecolor:#a67f59/span span stylecolor:#986801100/spanspan stylecolor:#999999;/span span stylecolor:#708090// 编译通过100没有超过byte的范围编译器隐式将100转换为byte/span span stylecolor:#0077aabyte/span b2 span stylecolor:#a67f59/span span stylecolor:#986801257/spanspan stylecolor:#999999;/span span stylecolor:#708090// 编译失败257超过了byte的数据范围有数据丢失/span /code/span/span运行项目并下载源码java运行2.3.7.2 强制类型转换显式强制类型转换当进行操作时代码需要经过一定的格式处理不能自动完成。特点数据范围大的到数据范围小的。span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aaint/span a span stylecolor:#a67f59/span span stylecolor:#98680110/spanspan stylecolor:#999999;/span span stylecolor:#0077aalong/span b span stylecolor:#a67f59/span span stylecolor:#986801100L/spanspan stylecolor:#999999;/span b span stylecolor:#a67f59/span aspan stylecolor:#999999;/span span stylecolor:#708090// int--long数据范围由小到大隐式转换/span a span stylecolor:#a67f59/span span stylecolor:#999999(/spanspan stylecolor:#0077aaint/spanspan stylecolor:#999999)/spanbspan stylecolor:#999999;/span span stylecolor:#708090// long--int, 数据范围由大到小需要强转否则编译失败/span span stylecolor:#0077aafloat/span f span stylecolor:#a67f59/span span stylecolor:#9868013.14F/spanspan stylecolor:#999999;/span span stylecolor:#0077aadouble/span d span stylecolor:#a67f59/span span stylecolor:#9868015.12/spanspan stylecolor:#999999;/span d span stylecolor:#a67f59/span fspan stylecolor:#999999;/span span stylecolor:#708090// float--double数据范围由小到大隐式转换/span f span stylecolor:#a67f59/span span stylecolor:#999999(/spanspan stylecolor:#0077aafloat/spanspan stylecolor:#999999)/spandspan stylecolor:#999999;/span span stylecolor:#708090// double--float, 数据范围由大到小需要强转否则编译失败/span a span stylecolor:#a67f59/span dspan stylecolor:#999999;/span span stylecolor:#708090// 报错类型不兼容/span a span stylecolor:#a67f59/span span stylecolor:#999999(/spanspan stylecolor:#0077aaint/spanspan stylecolor:#999999)/spandspan stylecolor:#999999;/span span stylecolor:#708090// int没有double表示的数据范围大需要强转小数点之后全部丢弃/span span stylecolor:#0077aabyte/span b1 span stylecolor:#a67f59/span span stylecolor:#986801100/spanspan stylecolor:#999999;/span span stylecolor:#708090// 100默认为int没有超过byte范围隐式转换/span span stylecolor:#0077aabyte/span b2 span stylecolor:#a67f59/span span stylecolor:#999999(/spanspan stylecolor:#0077aabyte/spanspan stylecolor:#999999)/spanspan stylecolor:#986801257/spanspan stylecolor:#999999;/span span stylecolor:#708090// 257默认为int超过byte范围需要显示转换否则报错/span span stylecolor:#0077aaboolean/span flag span stylecolor:#a67f59/span span stylecolor:#0184bbtrue/spanspan stylecolor:#999999;/span a span stylecolor:#a67f59/span flagspan stylecolor:#999999;/span span stylecolor:#708090// 编译失败类型不兼容/span flag span stylecolor:#a67f59/span aspan stylecolor:#999999;/span span stylecolor:#708090// 编译失败类型不兼容/span /code/span/span运行项目并下载源码java运行注意事项不同数字类型的变量之间赋值, 表示范围更小的类型能隐式转换成范围较大的类型如果需要把范围大的类型赋值给范围小的, 需要强制类型转换, 但是可能精度丢失将一个字面值常量进行赋值的时候, Java 会自动针对数字范围进行检查强制类型转换不一定能成功不相干的类型不能互相转换2.3.8 类型提升不同类型的数据之间相互运算时数据类型小的会被提升到数据类型大的。int与long之间int会被提升为longspan stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aaint/span a span stylecolor:#a67f59/span span stylecolor:#98680110/spanspan stylecolor:#999999;/span span stylecolor:#0077aalong/span b span stylecolor:#a67f59/span span stylecolor:#98680120/spanspan stylecolor:#999999;/span span stylecolor:#0077aaint/span c span stylecolor:#a67f59/span a span stylecolor:#a67f59/span bspan stylecolor:#999999;/span span stylecolor:#708090// 编译出错: a b》int long-- long long 赋值给int时会丢失数据/span span stylecolor:#0077aalong/span d span stylecolor:#a67f59/span a span stylecolor:#a67f59/span bspan stylecolor:#999999;/span span stylecolor:#708090// 编译成功a bint long---long long 赋值给long /span /code/span/span运行项目并下载源码java运行1234byte与byte的运算span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aabyte/span a span stylecolor:#a67f59/span span stylecolor:#98680110/spanspan stylecolor:#999999;/span span stylecolor:#0077aabyte/span b span stylecolor:#a67f59/span span stylecolor:#98680120/spanspan stylecolor:#999999;/span span stylecolor:#0077aabyte/span c span stylecolor:#a67f59/span a span stylecolor:#a67f59/span bspan stylecolor:#999999;/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spancspan stylecolor:#999999)/spanspan stylecolor:#999999;/span /code/span/span运行项目并下载源码java运行1234结论byte和byte都是相同类型, 但是出现编译报错. 原因是, 虽然 a 和 b 都是byte, 但是计算a b会先将 a 和 b 都提升成int, 再进行计算, 得到的结果也是int, 这是赋给 c, 就会出现上述错误.由于计算机的 CPU 通常是按照 4 个字节为单位从内存中读写数据. 为了硬件上实现方便, 诸如 byte 和 short 这种低于 4 个字节的类型, 会先提升成 int, 再参与计算正确的写法span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aabyte/span a span stylecolor:#a67f59/span span stylecolor:#98680110/spanspan stylecolor:#999999;/span span stylecolor:#0077aabyte/span b span stylecolor:#a67f59/span span stylecolor:#98680120/spanspan stylecolor:#999999;/span span stylecolor:#0077aabyte/span c span stylecolor:#a67f59/span span stylecolor:#999999(/spanspan stylecolor:#0077aabyte/spanspan stylecolor:#999999)/spanspan stylecolor:#999999(/spana span stylecolor:#a67f59/span bspan stylecolor:#999999)/spanspan stylecolor:#999999;/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spancspan stylecolor:#999999)/spanspan stylecolor:#999999;/span /code/span/span运行项目并下载源码java运行1234【类型提升小结:】不同类型的数据混合运算, 范围小的会提升成范围大的.对于 short, byte 这种比 4 个字节小的类型, 会先提升成 4 个字节的 int , 再运算.篇幅限制下面就只能给大家展示小册部分内容了。整理了一份Java零基础学习笔记包括了Java基础、Javaweb、Java框架、后端中间件、Java微服务、计算机基础、算法、springcloud、Java虚拟机、spring源码、redis、MySQL、并发编程、微服务、需要全套Java零基础进阶路线笔记【点击此处即可/免费获取】https://docs.qq.com/doc/DQUFvdURDeVF3UUpz?no_promotion1is_blank_or_templateblank2.4 字符串类型在Java中使用String类定义字符串类型比如span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaString s1 span stylecolor:#a67f59/span span stylecolor:#50a14fhello/spanspan stylecolor:#999999;/span String s2 span stylecolor:#a67f59/span span stylecolor:#50a14f world/spanspan stylecolor:#999999;/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spans1span stylecolor:#999999)/spanspan stylecolor:#999999;/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spans2span stylecolor:#999999)/spanspan stylecolor:#999999;/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spans1span stylecolor:#a67f59/spans2span stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#708090// s1s2表示将s1和s2进行拼接/span /code/span/span运行项目并下载源码java运行12345在有些情况下需要将字符串和整形数字之间进行转换int转成Stringspan stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aaint/span num span stylecolor:#a67f59/span span stylecolor:#98680110/spanspan stylecolor:#999999;/span span stylecolor:#708090// 方法1/span String str1 span stylecolor:#a67f59/span num span stylecolor:#a67f59/span span stylecolor:#50a14f/spanspan stylecolor:#999999;/span span stylecolor:#708090// 方法2/span String str2 span stylecolor:#a67f59/span Stringspan stylecolor:#999999./spanspan stylecolor:#dd4a68valueOf/spanspan stylecolor:#999999(/spannumspan stylecolor:#999999)/spanspan stylecolor:#999999;/span /code/span/span运行项目并下载源码java运行12345String转成intspan stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaString str span stylecolor:#a67f59/span span stylecolor:#50a14f100/spanspan stylecolor:#999999;/span span stylecolor:#0077aaint/span num span stylecolor:#a67f59/span Integerspan stylecolor:#999999./spanspan stylecolor:#dd4a68parseInt/spanspan stylecolor:#999999(/spanstrspan stylecolor:#999999)/spanspan stylecolor:#999999;/span /code/span/span运行项目并下载源码java运行12本节对只是对字符串进行简单的介绍大家能够正常使用即可后序会详细给大家介绍。3.运算符3.1 什么是运算符计算机的最基本的用途之一就是执行数学运算比如span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aaint/span a span stylecolor:#a67f59/span span stylecolor:#98680110/spanspan stylecolor:#999999;/span span stylecolor:#0077aaint/span b span stylecolor:#a67f59/span span stylecolor:#98680120/spanspan stylecolor:#999999;/span a span stylecolor:#a67f59/span bspan stylecolor:#999999;/span a span stylecolor:#a67f59/span bspan stylecolor:#999999;/span /code/span/span运行项目并下载源码java运行1234上述和等就是运算符即对操作数进行操作时的符号不同运算符操作的含义不同。作为一门计算机语言Java也提供了一套丰富的运算符来操纵变量。Java中运算符可分为以下算术运算符( - * /)、关系运算符( )、逻辑运算符、位运算符、移位运算符以及条件运算符等3.2 算术运算符基本四则运算加减乘除求模-*/%span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aaint/span a span stylecolor:#a67f59/span span stylecolor:#98680120/spanspan stylecolor:#999999;/span span stylecolor:#0077aaint/span b span stylecolor:#a67f59/span span stylecolor:#98680110/spanspan stylecolor:#999999;/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spana span stylecolor:#a67f59/span bspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#708090// 30/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spana span stylecolor:#a67f59-/span bspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#708090// 10/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spana span stylecolor:#a67f59*/span bspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#708090// 200/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spana span stylecolor:#a67f59//span bspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#708090// 2/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spana span stylecolor:#a67f59%/span bspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#708090// 0 ---模运算相当于数学中除法的余数/span /code/span/span运行项目并下载源码java运行1234567【注意】都是二元运算符使用时必须要有左右两个操作数int/int结果还是int类型而且会向下取整span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aaint/span a span stylecolor:#a67f59/span span stylecolor:#9868013/spanspan stylecolor:#999999;/span span stylecolor:#0077aaint/span b span stylecolor:#a67f59/span span stylecolor:#9868012/spanspan stylecolor:#999999;/span span stylecolor:#708090// 在数学中应该是1.5 但是在Java中输出结果为1 会向下取整即小数点之后全部舍弃掉了/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spana span stylecolor:#a67f59//span bspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#708090// 1/span span stylecolor:#708090// 如果要得到数学中的结果可以使用如下方式/span span stylecolor:#0077aadouble/span d span stylecolor:#a67f59/span a span stylecolor:#a67f59*/span span stylecolor:#9868011.0/span span stylecolor:#a67f59//span bspan stylecolor:#999999;/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spandspan stylecolor:#999999)/spanspan stylecolor:#999999;/spanspan stylecolor:#708090// 1.5/span /code/span/span运行项目并下载源码java运行12345678做除法和取模时右操作数不能为0% 不仅可以对整型取模也可以对double类型取模但是没有意义一般都是对整型取模的span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaSystemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanspan stylecolor:#98680111.5/span span stylecolor:#a67f59%/span span stylecolor:#9868012.0/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/spanspan stylecolor:#708090// 1.5/span /code/span/span运行项目并下载源码java运行1两侧操作数类型不一致时向类型大的提升span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaSystemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanspan stylecolor:#9868011/span span stylecolor:#a67f59/span span stylecolor:#9868010.2/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#708090// 的左侧是int右侧是double在加之前int被提升为double/span span stylecolor:#708090// 1.2/span /code/span/span运行项目并下载源码java运行12结合赋值和运算符-*/%该种类型运算符操作完成后会将操纵的结果赋值给左操作数.span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aaint/span a span stylecolor:#a67f59/span span stylecolor:#9868011/spanspan stylecolor:#999999;/span a span stylecolor:#a67f59/span span stylecolor:#9868012/spanspan stylecolor:#999999;/span span stylecolor:#708090// 相当于 a a 2/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanaspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#708090// 输出3/span a span stylecolor:#a67f59-/span span stylecolor:#9868011/spanspan stylecolor:#999999;/spanspan stylecolor:#708090// 相当于 a a - 1/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanaspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#708090// 输出2/span a span stylecolor:#a67f59*/span span stylecolor:#9868013/spanspan stylecolor:#999999;/spanspan stylecolor:#708090// 相当于 a a * 3/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanaspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#708090// 输出6/span a span stylecolor:#a67f59//span span stylecolor:#9868013/spanspan stylecolor:#999999;/spanspan stylecolor:#708090// 相当于 a a / 3/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanaspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#708090// 输出2/span a span stylecolor:#a67f59%/span span stylecolor:#9868013/spanspan stylecolor:#999999;/span span stylecolor:#708090// 相当于 a a % 2/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanaspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#708090// 输出2/span /code/span/span运行项目并下载源码java运行【注意】只有变量才能使用该运算符常量不能使用。自增/自减运算符--是一种自增的操作符又分为前置和后置–是一种自增的操作符又分为前置–-和后置–-。前置span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aapublic/span span stylecolor:#0077aaclass/span Test1 span stylecolor:#999999{/span span stylecolor:#0077aapublic/span span stylecolor:#0077aastatic/span span stylecolor:#0077aavoid/span span stylecolor:#dd4a68main/spanspan stylecolor:#999999(/spanStringspan stylecolor:#999999[/spanspan stylecolor:#999999]/span argsspan stylecolor:#999999)/span span stylecolor:#999999{/span span stylecolor:#0077aaint/span a span stylecolor:#a67f59/span span stylecolor:#98680110/spanspan stylecolor:#999999;/span span stylecolor:#0077aaint/span b span stylecolor:#a67f59/span span stylecolor:#a67f59/spanaspan stylecolor:#999999;/spanspan stylecolor:#708090// 的操作数是a是放在a的前面的就是前置/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68printf/spanspan stylecolor:#999999(/spanspan stylecolor:#50a14fa %d , b %d/spanspan stylecolor:#999999,/spana span stylecolor:#999999,/span bspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#708090// 运行结果a 11 , b 11/span span stylecolor:#999999}/span span stylecolor:#999999}/span /code/span/span运行项目并下载源码java运行计算口诀先 1后使用a原来是10先 1后a变成了11再使用赋值给bb得到的也是11所以计算后a和b都是11等价于这样的代码span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aapublic/span span stylecolor:#0077aaclass/span Test1 span stylecolor:#999999{/span span stylecolor:#0077aapublic/span span stylecolor:#0077aastatic/span span stylecolor:#0077aavoid/span span stylecolor:#dd4a68main/spanspan stylecolor:#999999(/spanStringspan stylecolor:#999999[/spanspan stylecolor:#999999]/span argsspan stylecolor:#999999)/span span stylecolor:#999999{/span span stylecolor:#0077aaint/span a span stylecolor:#a67f59/span span stylecolor:#98680110/spanspan stylecolor:#999999;/span a span stylecolor:#a67f59/span span stylecolor:#9868011/spanspan stylecolor:#999999;/span span stylecolor:#0077aaint/span b span stylecolor:#a67f59/span aspan stylecolor:#999999;/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68printf/spanspan stylecolor:#999999(/spanspan stylecolor:#50a14fa %d , b %d/spanspan stylecolor:#999999,/spana span stylecolor:#999999,/span bspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#708090// 运行结果a 11 , b 10/span span stylecolor:#999999}/span span stylecolor:#999999}/span /code/span/span运行项目并下载源码java运行123456789后置span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aapublic/span span stylecolor:#0077aaclass/span Test1 span stylecolor:#999999{/span span stylecolor:#0077aapublic/span span stylecolor:#0077aastatic/span span stylecolor:#0077aavoid/span span stylecolor:#dd4a68main/spanspan stylecolor:#999999(/spanStringspan stylecolor:#999999[/spanspan stylecolor:#999999]/span argsspan stylecolor:#999999)/span span stylecolor:#999999{/span span stylecolor:#0077aaint/span a span stylecolor:#a67f59/span span stylecolor:#98680110/spanspan stylecolor:#999999;/span span stylecolor:#0077aaint/span b span stylecolor:#a67f59/span aspan stylecolor:#a67f59/spanspan stylecolor:#999999;/spanspan stylecolor:#708090// 的操作数是a是放在a的后面的就是后置/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68printf/spanspan stylecolor:#999999(/spanspan stylecolor:#50a14fa %d , b %d/spanspan stylecolor:#999999,/spana span stylecolor:#999999,/span bspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#708090// 运行结果a 11 , b 10/span span stylecolor:#999999}/span span stylecolor:#999999}/span /code/span/span运行项目并下载源码java运行12345678计算口诀先使用后 1a原来是10先使用把a赋值给bb变成了10后a1变成了10所以计算后a11,b10等价于这样的代码span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aapublic/span span stylecolor:#0077aaclass/span Test1 span stylecolor:#999999{/span span stylecolor:#0077aapublic/span span stylecolor:#0077aastatic/span span stylecolor:#0077aavoid/span span stylecolor:#dd4a68main/spanspan stylecolor:#999999(/spanStringspan stylecolor:#999999[/spanspan stylecolor:#999999]/span argsspan stylecolor:#999999)/span span stylecolor:#999999{/span span stylecolor:#0077aaint/span a span stylecolor:#a67f59/span span stylecolor:#98680110/spanspan stylecolor:#999999;/span span stylecolor:#0077aaint/span b span stylecolor:#a67f59/span aspan stylecolor:#999999;/span a span stylecolor:#a67f59/span span stylecolor:#9868011/spanspan stylecolor:#999999;/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68printf/spanspan stylecolor:#999999(/spanspan stylecolor:#50a14fa %d , b %d/spanspan stylecolor:#999999,/spana span stylecolor:#999999,/span bspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#708090// 运行结果a 11 , b 10/span span stylecolor:#999999}/span span stylecolor:#999999}/span /code/span/span运行项目并下载源码java运行123456789前置--和前置同理只是换成了-1计算口诀先 -1后使用span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aapublic/span span stylecolor:#0077aaclass/span Test1 span stylecolor:#999999{/span span stylecolor:#0077aapublic/span span stylecolor:#0077aastatic/span span stylecolor:#0077aavoid/span span stylecolor:#dd4a68main/spanspan stylecolor:#999999(/spanStringspan stylecolor:#999999[/spanspan stylecolor:#999999]/span argsspan stylecolor:#999999)/span span stylecolor:#999999{/span span stylecolor:#0077aaint/span a span stylecolor:#a67f59/span span stylecolor:#98680110/spanspan stylecolor:#999999;/span span stylecolor:#0077aaint/span b span stylecolor:#a67f59/span span stylecolor:#a67f59--/spanaspan stylecolor:#999999;/spanspan stylecolor:#708090// --的操作数是a是放在a的前面的就是前置--/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68printf/spanspan stylecolor:#999999(/spanspan stylecolor:#50a14fa %d , b %d/spanspan stylecolor:#999999,/spana span stylecolor:#999999,/span bspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#708090// 运行结果a 9 , b 9/span span stylecolor:#999999}/span span stylecolor:#999999}/span /code/span/span运行项目并下载源码java运行12345678后置--和后置同理只是换成了-1计算口诀先使用后-1span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aapublic/span span stylecolor:#0077aaclass/span Test1 span stylecolor:#999999{/span span stylecolor:#0077aapublic/span span stylecolor:#0077aastatic/span span stylecolor:#0077aavoid/span span stylecolor:#dd4a68main/spanspan stylecolor:#999999(/spanStringspan stylecolor:#999999[/spanspan stylecolor:#999999]/span argsspan stylecolor:#999999)/span span stylecolor:#999999{/span span stylecolor:#0077aaint/span a span stylecolor:#a67f59/span span stylecolor:#98680110/spanspan stylecolor:#999999;/span span stylecolor:#0077aaint/span b span stylecolor:#a67f59/span aspan stylecolor:#a67f59--/spanspan stylecolor:#999999;/spanspan stylecolor:#708090// --的操作数是a是放在a的后面的就是后置--/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68printf/spanspan stylecolor:#999999(/spanspan stylecolor:#50a14fa %d , b %d/spanspan stylecolor:#999999,/spana span stylecolor:#999999,/span bspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#708090// 运行结果a 9 , b 10/span span stylecolor:#999999}/span span stylecolor:#999999}/span /code/span/span运行项目并下载源码java运行12345678【注意】如果混合使用【前置】先1然后使用变量1之后的值【后置】先使用变量原来的值表达式 结束时给变量1只有变量才能使用自增/自减运算符常量不能使用因为常量不允许被修改3.3 关系运算符关系远算符有6个!其结果是true和flasespan stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aaint/span a span stylecolor:#a67f59/span span stylecolor:#98680110/spanspan stylecolor:#999999;/span span stylecolor:#0077aaint/span b span stylecolor:#a67f59/span span stylecolor:#98680120/spanspan stylecolor:#999999;/span span stylecolor:#708090// 注意在Java中 表示赋值要与数学中的含义区分/span span stylecolor:#708090//在Java中 表示相等/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spana span stylecolor:#a67f59/span bspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#708090// false/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spana span stylecolor:#a67f59!/span bspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#708090// true/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spana span stylecolor:#a67f59/span bspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#708090// true/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spana span stylecolor:#a67f59/span bspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#708090// false/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spana span stylecolor:#a67f59/span bspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#708090// true/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spana span stylecolor:#a67f59/span bspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#708090// false/span /code/span/span运行项目并下载源码java运行【注意】当需要多次判断时不能连着写比如3 a 5Java程序与数学中是有区别的3.4 逻辑运算符重点逻辑远算符主要由3个||!运算结果都是boolean类型。逻辑与 语法规则表达式1表达式2左右表达式必须是boolean类型的结果。两个表达式都为真结果才是真只要有一个是假结果就是假。表达式1表达式2结果真真真真假假假真假假假假span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aaint/span a span stylecolor:#a67f59/span span stylecolor:#9868011/spanspan stylecolor:#999999;/span span stylecolor:#0077aaint/span b span stylecolor:#a67f59/span span stylecolor:#9868012/spanspan stylecolor:#999999;/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spana span stylecolor:#a67f59/span span stylecolor:#9868011/span span stylecolor:#a67f59/span b span stylecolor:#a67f59/span span stylecolor:#9868012/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#708090// 左为真 且 右为真 则结果为真/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spana span stylecolor:#a67f59/span span stylecolor:#9868011/span span stylecolor:#a67f59/span b span stylecolor:#a67f59/span span stylecolor:#986801100/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#708090// 左为真 但 右为假 则结果为假/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spana span stylecolor:#a67f59/span span stylecolor:#986801100/span span stylecolor:#a67f59/span b span stylecolor:#a67f59/span span stylecolor:#9868012/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#708090// 左为假 但 右为真 则结果为假/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spana span stylecolor:#a67f59/span span stylecolor:#986801100/span span stylecolor:#a67f59/span b span stylecolor:#a67f59/span span stylecolor:#986801100/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#708090// 左为假 且 右为假 则结果为假/span /code/span/span运行项目并下载源码java运行1234567逻辑或 ||语法规则表达式1||表达式2左右表达式必须是boolean类型的结果。两个表达式都为假结果才是假只要由一个是真结果就是真。表达式1表达式2结果真真真真假真假真真假假假span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aaint/span a span stylecolor:#a67f59/span span stylecolor:#9868011/spanspan stylecolor:#999999;/span span stylecolor:#0077aaint/span b span stylecolor:#a67f59/span span stylecolor:#9868012/spanspan stylecolor:#999999;/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spana span stylecolor:#a67f59/span span stylecolor:#9868011/span span stylecolor:#a67f59||/span b span stylecolor:#a67f59/span span stylecolor:#9868012/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#708090// 左为真 且 右为真 则结果为真/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spana span stylecolor:#a67f59/span span stylecolor:#9868011/span span stylecolor:#a67f59||/span b span stylecolor:#a67f59/span span stylecolor:#986801100/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#708090// 左为真 但 右为假 则结果也为真/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spana span stylecolor:#a67f59/span span stylecolor:#986801100/span span stylecolor:#a67f59||/span b span stylecolor:#a67f59/span span stylecolor:#9868012/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#708090// 左为假 但 右为真 则结果也为真/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spana span stylecolor:#a67f59/span span stylecolor:#986801100/span span stylecolor:#a67f59||/span b span stylecolor:#a67f59/span span stylecolor:#986801100/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#708090// 左为假 且 右为假 则结果为假/span /code/span/span运行项目并下载源码java运行1234567逻辑非 !语法规则! 表达式真变假假变真。表达式结果真假假真span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aaint/span a span stylecolor:#a67f59/span span stylecolor:#9868011/spanspan stylecolor:#999999;/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanspan stylecolor:#a67f59!/spanspan stylecolor:#999999(/spana span stylecolor:#a67f59/span span stylecolor:#9868011/spanspan stylecolor:#999999)/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#708090// a 1 为true取个非就是false/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanspan stylecolor:#a67f59!/spanspan stylecolor:#999999(/spana span stylecolor:#a67f59!/span span stylecolor:#9868011/spanspan stylecolor:#999999)/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#708090// a ! 1 为false取个非就是true/span /code/span/span运行项目并下载源码java运行1234短路求值 和 || 遵守短路求值的规则.span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaSystemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanspan stylecolor:#98680110/span span stylecolor:#a67f59/span span stylecolor:#98680120/span span stylecolor:#a67f59/span span stylecolor:#98680110/span span stylecolor:#a67f59//span span stylecolor:#9868010/span span stylecolor:#a67f59/span span stylecolor:#9868010/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#708090// 打印 false/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanspan stylecolor:#98680110/span span stylecolor:#a67f59/span span stylecolor:#98680120/span span stylecolor:#a67f59||/span span stylecolor:#98680110/span span stylecolor:#a67f59//span span stylecolor:#9868010/span span stylecolor:#a67f59/span span stylecolor:#9868010/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#708090// 打印 true/span /code/span/span运行项目并下载源码java运行12我们都知道, 计算10 / 0会导致程序抛出异常. 但是上面的代码却能正常运行, 说明10 / 0并没有真正被求值.【注意】对于 ,如果左侧表达式值为 false, 则表达式结果一定是 false, 无需计算右侧表达式对于 ||,如果左侧表达式值为 true, 则表达式结果一定是 true, 无需计算右侧表达式. 和 | 如果表达式结果为 boolean 时, 也表示逻辑运算. 但与 || 相比, 它们不支持短路求值.记忆口诀全真为真有假必假遇假则停||全假为假有真必真遇真则停!真变假假变真3.5 位运算符Java 中数据存储的最小单位是字节而数据操作的最小单位是比特位. 字节是最小的存储单位每个字节是由8个二进制比特位组成的多个字节组合在一起可以表示各种不同的数据。位运算符主要有四个:|~^除~是一元运算符外其余都是二元运算符。位操作表示按二进制位运算. 计算机中都是使用二进制来表示数据的(01构成的序列), 按位运算就是在按照二进制位 的每一位依次进行计算。按位与 : 如果两个二进制位都是 1, 则结果为 1, 否则结果为 0span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aaint/span a span stylecolor:#a67f59/span span stylecolor:#98680110/spanspan stylecolor:#999999;/span span stylecolor:#0077aaint/span b span stylecolor:#a67f59/span span stylecolor:#98680120/spanspan stylecolor:#999999;/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spana span stylecolor:#a67f59/span bspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#708090// 0000 1010 10的二进制/span span stylecolor:#708090// 0001 0100 20的二进制/span span stylecolor:#708090// 0000 0000/span /code/span/span运行项目并下载源码java运行123456按位或 |: 如果两个二进制位都是 0, 则结果为 0, 否则结果为 1span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aaint/span a span stylecolor:#a67f59/span span stylecolor:#98680110/spanspan stylecolor:#999999;/span span stylecolor:#0077aaint/span b span stylecolor:#a67f59/span span stylecolor:#98680120/spanspan stylecolor:#999999;/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spana span stylecolor:#a67f59|/span bspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#708090// 0000 1010/span span stylecolor:#708090// 0001 0100/span span stylecolor:#708090// 0001 1110/span /code/span/span运行项目并下载源码java运行123456.按位取反 ~: 如果该位为 0 则转为 1, 如果该位为 1 则转为 0span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aaint/span a span stylecolor:#a67f59/span span stylecolor:#9868010xf/spanspan stylecolor:#999999;/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68printf/spanspan stylecolor:#999999(/spanspan stylecolor:#50a14f%x\n/spanspan stylecolor:#999999,/span span stylecolor:#a67f59~/spanaspan stylecolor:#999999)/spanspan stylecolor:#999999;/span /code/span/span运行项目并下载源码java运行12【注意】0x 前缀的数字为 十六进制 数字. 十六进制可以看成是二进制的简化表示方式. 一个十六进制数字对应 4 个二进制位.0xf 表示 10 进制的 15, 也就是二进制的 1111printf 能够格式化输出内容, %x 表示按照十六进制输出.\n 表示换行符按位异或 ^: 如果两个数字的二进制位相同, 则结果为 0, 相异则结果为 1span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aaint/span a span stylecolor:#a67f59/span span stylecolor:#9868010x1/spanspan stylecolor:#999999;/span span stylecolor:#0077aaint/span b span stylecolor:#a67f59/span span stylecolor:#9868010x2/spanspan stylecolor:#999999;/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68printf/spanspan stylecolor:#999999(/spanspan stylecolor:#50a14f%x\n/spanspan stylecolor:#999999,/span a span stylecolor:#a67f59^/span bspan stylecolor:#999999)/spanspan stylecolor:#999999;/span /code/span/span运行项目并下载源码java运行123【注意】如果两个数相同则异或的结果为0篇幅限制下面就只能给大家展示小册部分内容了。整理了一份Java零基础学习笔记包括了Java基础、Javaweb、Java框架、后端中间件、Java微服务、计算机基础、算法、springcloud、Java虚拟机、spring源码、redis、MySQL、并发编程、微服务、需要全套Java零基础进阶路线笔记【点击此处即可/免费获取】https://docs.qq.com/doc/DQUFvdURDeVF3UUpz?no_promotion1is_blank_or_templateblank3.6 移位运算符了解移位运算符有三个:都是二元运算符且都是按照二进制比特位来运算的。左移 : 最左侧位不要了, 最右侧补 0span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aaint/span a span stylecolor:#a67f59/span span stylecolor:#9868010x10/spanspan stylecolor:#999999;/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68printf/spanspan stylecolor:#999999(/spanspan stylecolor:#50a14f%x\n/spanspan stylecolor:#999999,/span a span stylecolor:#a67f59/span span stylecolor:#9868011/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#708090// 运行结果(注意, 是按十六进制打印的)/span span stylecolor:#708090//20/span /code/span/span运行项目并下载源码java运行1234【注意】向左移位时丢弃的是符号位因此正数左移可能会编程负数右移 : 最右侧位不要了, 最左侧补符号位(正数补0, 负数补1)span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aaint/span a span stylecolor:#a67f59/span span stylecolor:#9868010x10/spanspan stylecolor:#999999;/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68printf/spanspan stylecolor:#999999(/spanspan stylecolor:#50a14f%x\n/spanspan stylecolor:#999999,/span a span stylecolor:#a67f59/span span stylecolor:#9868011/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#708090// 运行结果(注意, 是按十六进制打印的)/span span stylecolor:#708090//8/span span stylecolor:#0077aaint/span b span stylecolor:#a67f59/span span stylecolor:#9868010xffff0000/spanspan stylecolor:#999999;/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68printf/spanspan stylecolor:#999999(/spanspan stylecolor:#50a14f%x\n/spanspan stylecolor:#999999,/span b span stylecolor:#a67f59/span span stylecolor:#9868011/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#708090// 运行结果(注意, 是按十六进制打印的)/span span stylecolor:#708090//ffff8000/span /code/span/span运行项目并下载源码java运行无符号右移 : 最右侧位不要了, 最左侧补 0.span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aaint/span a span stylecolor:#a67f59/span span stylecolor:#9868010xffffffff/spanspan stylecolor:#999999;/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68printf/spanspan stylecolor:#999999(/spanspan stylecolor:#50a14f%x\n/spanspan stylecolor:#999999,/span a span stylecolor:#a67f59/span span stylecolor:#9868011/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#708090// 运行结果(注意, 是按十六进制打印的)/span span stylecolor:#708090//7ffffff/span /code/span/span运行项目并下载源码java运行1234【注意】左移 1 位, 相当于原数字 * 2. 左移 N 位, 相当于原数字 * 2 的N次方.右移 1 位, 相当于原数字 / 2. 右移 N 位, 相当于原数字 / 2 的N次方.由于计算机计算移位效率高于计算乘除, 当某个代码正好乘除 2 的N次方的时候可以用移位运算代替.移动负数位或者移位位数过大都没有意义.3.7 条件运算符条件运算符只有一个:表达式1 ? 表达式2 : 表达式3当表达式1 的值为true时, 整个表达式的值为表达式2的值;当 表达式1 的值为false 时, 整个表达式的值为表达式3的值.也是 Java 中唯一的一个三目运算符, 是条件判断语句的简化写法.span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#708090// 求两个整数的最大值/span span stylecolor:#0077aaint/span a span stylecolor:#a67f59/span span stylecolor:#98680110/spanspan stylecolor:#999999;/span span stylecolor:#0077aaint/span b span stylecolor:#a67f59/span span stylecolor:#98680120/spanspan stylecolor:#999999;/span span stylecolor:#0077aaint/span max span stylecolor:#a67f59/span a span stylecolor:#a67f59/span b span stylecolor:#a67f59?/span a span stylecolor:#a67f59:/span bspan stylecolor:#999999;/span /code/span/span运行项目并下载源码java运行1234【注意】表达式2和表达式3的结果要是同类型的除非能发生类型隐式类型转换span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aaint/span a span stylecolor:#a67f59/span span stylecolor:#98680110/spanspan stylecolor:#999999;/span span stylecolor:#0077aaint/span b span stylecolor:#a67f59/span span stylecolor:#98680120/spanspan stylecolor:#999999;/span span stylecolor:#0077aaint/span c span stylecolor:#a67f59/span a span stylecolor:#a67f59/span bspan stylecolor:#a67f59?/span span stylecolor:#9868011/span span stylecolor:#a67f59:/span span stylecolor:#9868012.0/spanspan stylecolor:#999999;/span /code/span/span运行项目并下载源码java运行123表达式不能单独存在其产生的结果必须要被使用。3.8 运算符的优先级在一条表达式中各个运算符可以混合起来进行运算但是运算符的优先级不同比如*和/的优先级要高于和-有些情况下稍不注意可能就会造成很大的麻烦。span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#708090// 求a和b的平均值/span span stylecolor:#0077aaint/span a span stylecolor:#a67f59/span span stylecolor:#98680110/spanspan stylecolor:#999999;/span span stylecolor:#0077aaint/span b span stylecolor:#a67f59/span span stylecolor:#98680120/spanspan stylecolor:#999999;/span span stylecolor:#0077aaint/span c span stylecolor:#a67f59/span a span stylecolor:#a67f59/span span stylecolor:#999999(/spanb span stylecolor:#a67f59-/span aspan stylecolor:#999999)/span span stylecolor:#a67f59/span span stylecolor:#9868011/spanspan stylecolor:#999999;/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spancspan stylecolor:#999999)/spanspan stylecolor:#999999;/span /code/span/span运行项目并下载源码java运行12345上述表达式中由于的优先级要高于, 因此a先和b-a的结果做加法整体为20最后再进行右移因此结果 为10。【注意】运算符之间是有优先级的. 具体的规则我们不必记忆. 在可能存在歧义的代码中加上括号即可.4. 程序逻辑控制4.1 顺序结构顺序结构比较简单按照代码书写的顺序一行一行执行。span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aapublic/span span stylecolor:#0077aaclass/span Test span stylecolor:#999999{/span span stylecolor:#0077aapublic/span span stylecolor:#0077aastatic/span span stylecolor:#0077aavoid/span span stylecolor:#dd4a68main/spanspan stylecolor:#999999(/spanStringspan stylecolor:#999999[/spanspan stylecolor:#999999]/span argsspan stylecolor:#999999)/span span stylecolor:#999999{/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanspan stylecolor:#50a14faaa/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanspan stylecolor:#50a14fbbb/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanspan stylecolor:#50a14fccc/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#708090/* 运行结果 aaa bbb ccc *//span span stylecolor:#999999}/span span stylecolor:#999999}/span /code/span/span运行项目并下载源码java运行如果调整代码的书写顺序, 则执行顺序也发生变化。span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aapublic/span span stylecolor:#0077aaclass/span Test span stylecolor:#999999{/span span stylecolor:#0077aapublic/span span stylecolor:#0077aastatic/span span stylecolor:#0077aavoid/span span stylecolor:#dd4a68main/spanspan stylecolor:#999999(/spanStringspan stylecolor:#999999[/spanspan stylecolor:#999999]/span argsspan stylecolor:#999999)/span span stylecolor:#999999{/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanspan stylecolor:#50a14faaa/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanspan stylecolor:#50a14fccc/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanspan stylecolor:#50a14fbbb/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#708090/* 运行结果 aaa ccc bbb *//span span stylecolor:#999999}/span span stylecolor:#999999}/span /code/span/span运行项目并下载源码java运行4.2 分支结构选择结构它的作用是根据判断的条件是否成立真或假来决定后续代码执行顺序。举例如同在岔路口做选择。不同的选择会带来不同的路径及结果。4.2.1 if 语句语法格式1span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aaif/span span stylecolor:#999999(/span布尔表达式span stylecolor:#999999)/span span stylecolor:#999999{/span span stylecolor:#708090// 语句/span span stylecolor:#999999}/span /code/span/span运行项目并下载源码java运行123如果布尔表达式结果为true执行if中的语句否则不执行。执行流程举例小明如果这次考试考60分或以上就不挂科。span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aapublic/span span stylecolor:#0077aaclass/span Test span stylecolor:#999999{/span span stylecolor:#0077aapublic/span span stylecolor:#0077aastatic/span span stylecolor:#0077aavoid/span span stylecolor:#dd4a68main/spanspan stylecolor:#999999(/spanStringspan stylecolor:#999999[/spanspan stylecolor:#999999]/span argsspan stylecolor:#999999)/span span stylecolor:#999999{/span span stylecolor:#0077aaint/span score span stylecolor:#a67f59/span span stylecolor:#98680190/spanspan stylecolor:#999999;/span span stylecolor:#0077aaif/span span stylecolor:#999999(/spanscore span stylecolor:#a67f59/span span stylecolor:#98680160/spanspan stylecolor:#999999)/span span stylecolor:#999999{/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanspan stylecolor:#50a14f不挂科/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#999999}/span span stylecolor:#999999}/span span stylecolor:#999999}/span /code/span/span运行项目并下载源码java运行12345678语法格式2span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aaif/span span stylecolor:#999999(/span布尔表达式span stylecolor:#999999)/span span stylecolor:#999999{/span span stylecolor:#708090// 语句/span span stylecolor:#999999}/span span stylecolor:#0077aaelse/span span stylecolor:#999999{/span span stylecolor:#708090// 语句/span span stylecolor:#999999}/span /code/span/span运行项目并下载源码java运行12345如果布尔表达式结果为true执行if中的语句执行else中的语句。执行流程举例小明如果这次考试考60分或以上就不挂科没有考到60分就挂科。span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aapublic/span span stylecolor:#0077aaclass/span Test span stylecolor:#999999{/span span stylecolor:#0077aapublic/span span stylecolor:#0077aastatic/span span stylecolor:#0077aavoid/span span stylecolor:#dd4a68main/spanspan stylecolor:#999999(/spanStringspan stylecolor:#999999[/spanspan stylecolor:#999999]/span argsspan stylecolor:#999999)/span span stylecolor:#999999{/span span stylecolor:#0077aaint/span score span stylecolor:#a67f59/span span stylecolor:#98680190/spanspan stylecolor:#999999;/span span stylecolor:#0077aaif/span span stylecolor:#999999(/spanscore span stylecolor:#a67f59/span span stylecolor:#98680160/spanspan stylecolor:#999999)/span span stylecolor:#999999{/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanspan stylecolor:#50a14f不挂科/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#999999}/span span stylecolor:#0077aaelse/span span stylecolor:#999999{/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanspan stylecolor:#50a14f挂科/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#999999}/span span stylecolor:#999999}/span span stylecolor:#999999}/span /code/span/span运行项目并下载源码java运行语法格式3span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aaif/spanspan stylecolor:#999999(/span布尔表达式span stylecolor:#9868011/spanspan stylecolor:#999999)/spanspan stylecolor:#999999{/span span stylecolor:#708090// 语句1/span span stylecolor:#999999}/spanspan stylecolor:#0077aaelse/span span stylecolor:#0077aaif/spanspan stylecolor:#999999(/span布尔表达式span stylecolor:#9868012/spanspan stylecolor:#999999)/spanspan stylecolor:#999999{/span span stylecolor:#708090// 语句2/span span stylecolor:#999999}/spanspan stylecolor:#0077aaelse/spanspan stylecolor:#999999{/span span stylecolor:#708090// 语句2/span span stylecolor:#999999}/span /code/span/span运行项目并下载源码java运行表达式1成立执行语句1否则表达式2成立执行语句2否则执行语句3比如考虑到学生自尊不公开分数排名因此分数在 [90, 100] 之间的为优秀分数在 [80, 90) 之前的为良好 分数在 [70, 80) 之间的为中等分数在 [60, 70) 之间的为及格 分数在 [ 0, 60) 之间的为不及格错误数据按照上述办法通知学生成绩。span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aapublic/span span stylecolor:#0077aaclass/span Test span stylecolor:#999999{/span span stylecolor:#0077aapublic/span span stylecolor:#0077aastatic/span span stylecolor:#0077aavoid/span span stylecolor:#dd4a68main/spanspan stylecolor:#999999(/spanStringspan stylecolor:#999999[/spanspan stylecolor:#999999]/span argsspan stylecolor:#999999)/span span stylecolor:#999999{/span span stylecolor:#0077aaint/span score span stylecolor:#a67f59/span span stylecolor:#98680190/spanspan stylecolor:#999999;/span span stylecolor:#0077aaif/spanspan stylecolor:#999999(/spanscore span stylecolor:#a67f59/span span stylecolor:#98680190/spanspan stylecolor:#999999)/spanspan stylecolor:#999999{/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanspan stylecolor:#50a14f优秀/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#999999}/spanspan stylecolor:#0077aaelse/span span stylecolor:#0077aaif/spanspan stylecolor:#999999(/spanscore span stylecolor:#a67f59/span span stylecolor:#98680180/span span stylecolor:#a67f59/span score span stylecolor:#a67f59/span span stylecolor:#98680190/spanspan stylecolor:#999999)/spanspan stylecolor:#999999{/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanspan stylecolor:#50a14f良好/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#999999}/spanspan stylecolor:#0077aaelse/span span stylecolor:#0077aaif/spanspan stylecolor:#999999(/spanscore span stylecolor:#a67f59/span span stylecolor:#98680170/span span stylecolor:#a67f59/span score span stylecolor:#a67f59/span span stylecolor:#98680180/spanspan stylecolor:#999999)/spanspan stylecolor:#999999{/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanspan stylecolor:#50a14f中等/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#999999}/spanspan stylecolor:#0077aaelse/span span stylecolor:#0077aaif/spanspan stylecolor:#999999(/spanscore span stylecolor:#a67f59/span span stylecolor:#98680160/span span stylecolor:#a67f59/span score span stylecolor:#a67f59/span span stylecolor:#98680170/spanspan stylecolor:#999999)/spanspan stylecolor:#999999{/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanspan stylecolor:#50a14f及格/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#999999}/spanspan stylecolor:#0077aaelse/span span stylecolor:#0077aaif/spanspan stylecolor:#999999(/spanscore span stylecolor:#a67f59/span span stylecolor:#9868010/span span stylecolor:#a67f59/span score span stylecolor:#a67f59/span span stylecolor:#98680160/spanspan stylecolor:#999999)/spanspan stylecolor:#999999{/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanspan stylecolor:#50a14f不及格/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#999999}/spanspan stylecolor:#0077aaelse/spanspan stylecolor:#999999{/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanspan stylecolor:#50a14f错误数据/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#999999}/span span stylecolor:#999999}/span span stylecolor:#999999}/span /code/span/span运行项目并下载源码java运行【注意事项】代码风格span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-java span stylecolor:#708090// 风格1----- 推荐/span span stylecolor:#0077aaint/span x span stylecolor:#a67f59/span span stylecolor:#98680110/spanspan stylecolor:#999999;/span span stylecolor:#0077aaif/span span stylecolor:#999999(/spanx span stylecolor:#a67f59/span span stylecolor:#98680110/spanspan stylecolor:#999999)/span span stylecolor:#999999{/span span stylecolor:#708090// 语句1/span span stylecolor:#999999}/span span stylecolor:#0077aaelse/span span stylecolor:#999999{/span span stylecolor:#708090// 语句2/span span stylecolor:#999999}/span span stylecolor:#708090// 风格2/span span stylecolor:#0077aaint/span x span stylecolor:#a67f59/span span stylecolor:#98680110/spanspan stylecolor:#999999;/span span stylecolor:#0077aaif/span span stylecolor:#999999(/spanx span stylecolor:#a67f59/span span stylecolor:#98680110/spanspan stylecolor:#999999)/span span stylecolor:#999999{/span span stylecolor:#708090// 语句1/span span stylecolor:#999999}/span span stylecolor:#0077aaelse/span span stylecolor:#999999{/span span stylecolor:#708090// 语句2/span span stylecolor:#999999}/span /code/span/span运行项目并下载源码java虽然两种方式都是合法的, 但是 Java 中更推荐使用风格1代码跟紧凑。分号问题span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aaint/span x span stylecolor:#a67f59/span span stylecolor:#98680120/spanspan stylecolor:#999999;/span span stylecolor:#0077aaif/span span stylecolor:#999999(/spanx span stylecolor:#a67f59/span span stylecolor:#98680110/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#999999{/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanspan stylecolor:#50a14fhehe/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#999999}/span span stylecolor:#708090// 运行结果/span hehe /code/span/span运行项目并下载源码java运行12345678此处多写了一个 分号, 导致分号成为了if语句的语句体, 而 { } 中的代码已经成为了和一个 if 无关的代码块所以运行结果是haha而不是空白。悬垂else问题span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aaint/span x span stylecolor:#a67f59/span span stylecolor:#98680110/spanspan stylecolor:#999999;/span span stylecolor:#0077aaint/span y span stylecolor:#a67f59/span span stylecolor:#98680110/spanspan stylecolor:#999999;/span span stylecolor:#0077aaif/span span stylecolor:#999999(/spanx span stylecolor:#a67f59/span span stylecolor:#98680110/spanspan stylecolor:#999999)/span span stylecolor:#0077aaif/span span stylecolor:#999999(/spany span stylecolor:#a67f59/span span stylecolor:#98680110/spanspan stylecolor:#999999)/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanspan stylecolor:#50a14faaa/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#0077aaelse/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanspan stylecolor:#50a14fbbb/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span /code/span/span运行项目并下载源码java运行if else语句中可以不加大括号 . 但是也可以写语句(只能写一条语句). 此时else是和最接近的if匹配. 但是实际开发中我们不建议这么写. 最好加上大括号.4.2.2 switch 语句基本语句span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aaswitch/spanspan stylecolor:#999999(/span表达式span stylecolor:#999999)/spanspan stylecolor:#999999{/span span stylecolor:#0077aacase/span 常量值span stylecolor:#9868011/spanspan stylecolor:#a67f59:/spanspan stylecolor:#999999{/span 语句span stylecolor:#9868011/spanspan stylecolor:#999999;/span span stylecolor:#999999[/spanspan stylecolor:#0077aabreak/spanspan stylecolor:#999999;/spanspan stylecolor:#999999]/span span stylecolor:#999999}/span span stylecolor:#0077aacase/span 常量值span stylecolor:#9868012/spanspan stylecolor:#a67f59:/spanspan stylecolor:#999999{/span 语句span stylecolor:#9868012/spanspan stylecolor:#999999;/span span stylecolor:#999999[/spanspan stylecolor:#0077aabreak/spanspan stylecolor:#999999;/spanspan stylecolor:#999999]/span span stylecolor:#999999}/span span stylecolor:#999999./spanspan stylecolor:#999999./spanspan stylecolor:#999999./span span stylecolor:#0077aadefault/spanspan stylecolor:#a67f59:/spanspan stylecolor:#999999{/span 内容都不满足时执行语句span stylecolor:#999999;/span span stylecolor:#999999[/spanspan stylecolor:#0077aabreak/spanspan stylecolor:#999999;/spanspan stylecolor:#999999]/span span stylecolor:#999999}/span span stylecolor:#999999}/span /code/span/span运行项目并下载源码java运行执行流程先计算表达式的值和case依次比较一旦有响应的匹配就执行该项下的语句直到遇到break时结束当表达式的值没有与所列项匹配时执行default代码示例span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aapublic/span span stylecolor:#0077aaclass/span Test span stylecolor:#999999{/span span stylecolor:#0077aapublic/span span stylecolor:#0077aastatic/span span stylecolor:#0077aavoid/span span stylecolor:#dd4a68main/spanspan stylecolor:#999999(/spanStringspan stylecolor:#999999[/spanspan stylecolor:#999999]/span argsspan stylecolor:#999999)/span span stylecolor:#999999{/span String week span stylecolor:#a67f59/span span stylecolor:#50a14f周四/spanspan stylecolor:#999999;/span span stylecolor:#0077aaswitch/span span stylecolor:#999999(/spanweekspan stylecolor:#999999)/span span stylecolor:#999999{/span span stylecolor:#0077aacase/span span stylecolor:#50a14f周一/spanspan stylecolor:#a67f59:/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanspan stylecolor:#50a14f埋头苦干写程序/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#0077aabreak/spanspan stylecolor:#999999;/span span stylecolor:#0077aacase/span span stylecolor:#50a14f周二/spanspan stylecolor:#a67f59:/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanspan stylecolor:#50a14f请求学长帮忙解决bug/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#0077aabreak/spanspan stylecolor:#999999;/span span stylecolor:#0077aacase/span span stylecolor:#50a14f周三/spanspan stylecolor:#a67f59:/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanspan stylecolor:#50a14f今晚烧烤、小龙虾/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#0077aabreak/spanspan stylecolor:#999999;/span span stylecolor:#0077aacase/span span stylecolor:#50a14f周四/spanspan stylecolor:#a67f59:/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanspan stylecolor:#50a14f帮助学妹解决bug/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#0077aabreak/spanspan stylecolor:#999999;/span span stylecolor:#0077aacase/span span stylecolor:#50a14f周五/spanspan stylecolor:#a67f59:/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanspan stylecolor:#50a14f今晚吃鸡/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#0077aabreak/spanspan stylecolor:#999999;/span span stylecolor:#0077aacase/span span stylecolor:#50a14f周六/spanspan stylecolor:#a67f59:/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanspan stylecolor:#50a14f上GitHub交友/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#0077aabreak/spanspan stylecolor:#999999;/span span stylecolor:#0077aacase/span span stylecolor:#50a14f周日/spanspan stylecolor:#a67f59:/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanspan stylecolor:#50a14f郁郁寡欢、准备上课/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#0077aadefault/spanspan stylecolor:#a67f59:/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanspan stylecolor:#50a14f输入错误/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#999999}/span span stylecolor:#999999}/span span stylecolor:#999999}/span /code/span/span运行项目并下载源码java运行【注意事项】多个case后的常量值不可以重复switch的括号内只能是以下类型的表达式基本类型byte、char、short、int注意不能是long类型引用类型String常量串、枚举类型break不要遗漏, 否则会失去 “多分支选择” 的效果span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aaint/span day span stylecolor:#a67f59/span span stylecolor:#9868011/spanspan stylecolor:#999999;/span span stylecolor:#0077aaswitch/spanspan stylecolor:#999999(/spandayspan stylecolor:#999999)/span span stylecolor:#999999{/span span stylecolor:#0077aacase/span span stylecolor:#9868011/spanspan stylecolor:#a67f59:/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanspan stylecolor:#50a14f星期一/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#708090// break;/span span stylecolor:#0077aacase/span span stylecolor:#9868012/spanspan stylecolor:#a67f59:/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanspan stylecolor:#50a14f星期二/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#0077aabreak/spanspan stylecolor:#999999;/span span stylecolor:#999999}/span span stylecolor:#708090// 运行结果/span 星期一 星期二 /code/span/span运行项目并下载源码java运行123456789101112switch不能表达复杂的条件span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#708090// 例如: 如果 num 的值在 10 到 20 之间, 就打印 hehe/span span stylecolor:#708090// 这样的代码使用 if 很容易表达, 但是使用 switch 就无法表示. /span span stylecolor:#0077aaif/span span stylecolor:#999999(/spannum span stylecolor:#a67f59/span span stylecolor:#98680110/span span stylecolor:#a67f59/span num span stylecolor:#a67f59/span span stylecolor:#98680120/spanspan stylecolor:#999999)/span span stylecolor:#999999{/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanspan stylecolor:#50a14fhehe/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#999999}/span /code/span/span运行项目并下载源码java运行123456switch虽然支持嵌套, 但是很丑一般不推荐span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aapublic/span span stylecolor:#0077aaclass/span Test span stylecolor:#999999{/span span stylecolor:#0077aapublic/span span stylecolor:#0077aastatic/span span stylecolor:#0077aavoid/span span stylecolor:#dd4a68main/spanspan stylecolor:#999999(/spanStringspan stylecolor:#999999[/spanspan stylecolor:#999999]/span argsspan stylecolor:#999999)/span span stylecolor:#999999{/span span stylecolor:#0077aaint/span x span stylecolor:#a67f59/span span stylecolor:#9868011/spanspan stylecolor:#999999;/span span stylecolor:#0077aaint/span y span stylecolor:#a67f59/span span stylecolor:#9868011/spanspan stylecolor:#999999;/span span stylecolor:#0077aaswitch/spanspan stylecolor:#999999(/spanxspan stylecolor:#999999)/span span stylecolor:#999999{/span span stylecolor:#0077aacase/span span stylecolor:#9868011/spanspan stylecolor:#a67f59:/span span stylecolor:#0077aaswitch/spanspan stylecolor:#999999(/spanyspan stylecolor:#999999)/span span stylecolor:#999999{/span span stylecolor:#0077aacase/span span stylecolor:#9868011/spanspan stylecolor:#a67f59:/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanspan stylecolor:#50a14fhehe/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#0077aabreak/spanspan stylecolor:#999999;/span span stylecolor:#999999}/span span stylecolor:#0077aabreak/spanspan stylecolor:#999999;/span span stylecolor:#0077aacase/span span stylecolor:#9868012/spanspan stylecolor:#a67f59:/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanspan stylecolor:#50a14fhaha/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#0077aabreak/spanspan stylecolor:#999999;/span span stylecolor:#999999}/span span stylecolor:#999999}/span span stylecolor:#999999}/span /code/span/span运行项目并下载源码java运行综上, 我们发现,switch的使用局限性是比较大的篇幅限制下面就只能给大家展示小册部分内容了。整理了一份Java零基础学习笔记包括了Java基础、Javaweb、Java框架、后端中间件、Java微服务、计算机基础、算法、springcloud、Java虚拟机、spring源码、redis、MySQL、并发编程、微服务、需要全套Java零基础进阶路线笔记【点击此处即可/免费获取】https://docs.qq.com/doc/DQUFvdURDeVF3UUpz?no_promotion1is_blank_or_templateblank4.3 循环结构循环结构它是在满足条件的情况下反复执行某一段代码的计算过程。举例我们要围着操场跑 5 圈跑圈这个行为就重复了 5 次也就是循环了 5 次。4.3.1 while 语句基本格式span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aawhile/span span stylecolor:#999999(/span循环条件span stylecolor:#999999)/span span stylecolor:#999999{/span span stylecolor:#708090// 语句/span span stylecolor:#999999}/span /code/span/span运行项目并下载源码java运行123执行流程首先执行判断表达式表达式的值为false循环直接结束表达式的值为true则执行循环语句语句执行完后再继续判断是否进行下一次判断。代码示例打印1~10的值span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aapublic/span span stylecolor:#0077aaclass/span Test span stylecolor:#999999{/span span stylecolor:#0077aapublic/span span stylecolor:#0077aastatic/span span stylecolor:#0077aavoid/span span stylecolor:#dd4a68main/spanspan stylecolor:#999999(/spanStringspan stylecolor:#999999[/spanspan stylecolor:#999999]/span argsspan stylecolor:#999999)/span span stylecolor:#999999{/span span stylecolor:#0077aaint/span i span stylecolor:#a67f59/span span stylecolor:#9868011/spanspan stylecolor:#999999;/span span stylecolor:#0077aawhile/span span stylecolor:#999999(/spani span stylecolor:#a67f59/span span stylecolor:#98680110/spanspan stylecolor:#999999)/span span stylecolor:#999999{/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanispan stylecolor:#999999)/spanspan stylecolor:#999999;/span ispan stylecolor:#a67f59/spanspan stylecolor:#999999;/span span stylecolor:#999999}/span span stylecolor:#999999}/span span stylecolor:#999999}/span /code/span/span运行项目并下载源码java运行1234567894.3.2 for 语句基本格式span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aafor/span span stylecolor:#999999(/span表达式span stylecolor:#9868011/spanspan stylecolor:#999999;/span表达式span stylecolor:#9868012/spanspan stylecolor:#999999;/span表达式span stylecolor:#9868013/spanspan stylecolor:#999999)/span span stylecolor:#999999{/span span stylecolor:#708090// 语句/span span stylecolor:#999999}/span /code/span/span运行项目并下载源码java运行123表达式1用于循环变量的初始化表达式2用于循环结束条件的判断表达式3用于循环变量的调整执行流程首先执行表达式1初始化循环变量接下来就是执行表达式2的判断部分表达式2的结果如果为false则循环结束如果表达式2的结果为true则执行循环语句循环语句执行完后再去执行表达式3调整循环变量然后再去表达式2的地方执行判断表达式2的结果是否为false决定循环是否继续。整个循环的过程中表达式1初始化部分只被执行1次剩下的就是表达式2、循环语句、表达式3在循环代码示例打印1~10的值span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aapublic/span span stylecolor:#0077aaclass/span Test span stylecolor:#999999{/span span stylecolor:#0077aapublic/span span stylecolor:#0077aastatic/span span stylecolor:#0077aavoid/span span stylecolor:#dd4a68main/spanspan stylecolor:#999999(/spanStringspan stylecolor:#999999[/spanspan stylecolor:#999999]/span argsspan stylecolor:#999999)/span span stylecolor:#999999{/span span stylecolor:#0077aafor/span span stylecolor:#999999(/spanspan stylecolor:#0077aaint/span i span stylecolor:#a67f59/span span stylecolor:#9868011/spanspan stylecolor:#999999;/span i span stylecolor:#a67f59/span span stylecolor:#98680110/spanspan stylecolor:#999999;/span ispan stylecolor:#a67f59/spanspan stylecolor:#999999)/span span stylecolor:#999999{/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanispan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#999999}/span span stylecolor:#999999}/span span stylecolor:#999999}/span /code/span/span运行项目并下载源码java运行12345674.3.3 do…while循环基本格式span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aado/spanspan stylecolor:#999999{/span 语句 span stylecolor:#999999}/spanspan stylecolor:#0077aawhile/spanspan stylecolor:#999999(/span表达式span stylecolor:#999999)/spanspan stylecolor:#999999;/span /code/span/span运行项目并下载源码java运行123while和for这两种循环都是先判断条件如果满足就进入循环执行循环语句如果不满足就跳出循环而do...while循环则是先直接进入循环体执行循环内部然后在执行while后的判断表达式表达式为真就会进行下一次表达式为false则不再继续循环。执行流程在do...while循环中先执行图上的“语句”执行完语句在去执行“判断表达式”在判断表达式的结果是true则继续循环执行循环判断表达式的结果false则循环结束。所以在do...while语句中循环体是至少执行一次的这是do...while循环比较特殊的地方。代码示例打印1~10的值span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aapublic/span span stylecolor:#0077aaclass/span Test span stylecolor:#999999{/span span stylecolor:#0077aapublic/span span stylecolor:#0077aastatic/span span stylecolor:#0077aavoid/span span stylecolor:#dd4a68main/spanspan stylecolor:#999999(/spanStringspan stylecolor:#999999[/spanspan stylecolor:#999999]/span argsspan stylecolor:#999999)/span span stylecolor:#999999{/span span stylecolor:#0077aaint/span i span stylecolor:#a67f59/span span stylecolor:#9868011/spanspan stylecolor:#999999;/span span stylecolor:#0077aado/span span stylecolor:#999999{/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanispan stylecolor:#999999)/spanspan stylecolor:#999999;/span ispan stylecolor:#a67f59/spanspan stylecolor:#999999;/span span stylecolor:#999999}/span span stylecolor:#0077aawhile/span span stylecolor:#999999(/spani span stylecolor:#a67f59/span span stylecolor:#98680110/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#999999}/span span stylecolor:#999999}/span /code/span/span运行项目并下载源码java运行1234567894.3.4 while语句 和 for语句的对比4.4 break和continue在循环执行的过程中如果某些状况发生的时候需要提前终止循环。break的作用是用于永久的终止循环只要break被执行直接就会跳出循环继续往后执行。代码示例找到100~200之间的第一个3的倍数span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aapublic/span span stylecolor:#0077aaclass/span Test span stylecolor:#999999{/span span stylecolor:#0077aapublic/span span stylecolor:#0077aastatic/span span stylecolor:#0077aavoid/span span stylecolor:#dd4a68main/spanspan stylecolor:#999999(/spanStringspan stylecolor:#999999[/spanspan stylecolor:#999999]/span argsspan stylecolor:#999999)/span span stylecolor:#999999{/span span stylecolor:#0077aafor/span span stylecolor:#999999(/spanspan stylecolor:#0077aaint/span num span stylecolor:#a67f59/span span stylecolor:#986801100/spanspan stylecolor:#999999;/span num span stylecolor:#a67f59/span span stylecolor:#986801200/spanspan stylecolor:#999999;/span numspan stylecolor:#a67f59/spanspan stylecolor:#999999)/span span stylecolor:#999999{/span span stylecolor:#0077aaif/span span stylecolor:#999999(/spannum span stylecolor:#a67f59%/span span stylecolor:#9868013/span span stylecolor:#a67f59/span span stylecolor:#9868010/spanspan stylecolor:#999999)/span span stylecolor:#999999{/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spannumspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#0077aabreak/spanspan stylecolor:#999999;/span span stylecolor:#999999}/span span stylecolor:#999999}/span span stylecolor:#999999}/span span stylecolor:#999999}/span span stylecolor:#708090// 运行结果 102/span /code/span/span运行项目并下载源码java运行1234567891011continue的作用是跳出本次循环continue后边的代码代码示例找到100~200中的所有3的倍数span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aapublic/span span stylecolor:#0077aaclass/span Test span stylecolor:#999999{/span span stylecolor:#0077aapublic/span span stylecolor:#0077aastatic/span span stylecolor:#0077aavoid/span span stylecolor:#dd4a68main/spanspan stylecolor:#999999(/spanStringspan stylecolor:#999999[/spanspan stylecolor:#999999]/span argsspan stylecolor:#999999)/span span stylecolor:#999999{/span span stylecolor:#0077aafor/span span stylecolor:#999999(/spanspan stylecolor:#0077aaint/span num span stylecolor:#a67f59/span span stylecolor:#986801100/spanspan stylecolor:#999999;/span num span stylecolor:#a67f59/span span stylecolor:#986801200/spanspan stylecolor:#999999;/span numspan stylecolor:#a67f59/spanspan stylecolor:#999999)/span span stylecolor:#999999{/span span stylecolor:#0077aaif/span span stylecolor:#999999(/spannum span stylecolor:#a67f59%/span span stylecolor:#9868013/span span stylecolor:#a67f59/span span stylecolor:#9868010/spanspan stylecolor:#999999)/spanspan stylecolor:#999999{/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spannumspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#0077aacontinue/spanspan stylecolor:#999999;/span span stylecolor:#999999}/span span stylecolor:#999999}/span span stylecolor:#999999}/span span stylecolor:#999999}/span /code/span/span运行项目并下载源码java运行123456789105. 方法5.0 前言在编程的过程中经常会出现一部分代码多次使用的情况比如计算多边形面积输出固定格式的文字等。今天我们就来学习方法。5.1 方法的概念和使用5.1.1 什么是方法方法就是一个代码片段类似于C语言的“函数”。方法存在的意义是能够模块化的组织代码(当代码规模比较复杂的时候)做到代码被重复使用, 一份代码可以在多个位置使用.让代码更好理解更简单.直接调用现有方法开发, 不必重复造轮子5.1.2 方法的定义方法的语法格式span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-java修饰符 返回值类型 方法名称span stylecolor:#999999(/span形参列表span stylecolor:#999999)/spanspan stylecolor:#999999{/span span stylecolor:#708090// 方法体/span span stylecolor:#0077aareturn/span 返回值span stylecolor:#999999;/span span stylecolor:#999999}/span /code/span/span运行项目并下载源码java运行1234代码示例实现一个两个整数相加的方法span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aapublic/span span stylecolor:#0077aastatic/span span stylecolor:#0077aaint/span span stylecolor:#dd4a68add/spanspan stylecolor:#999999(/spanspan stylecolor:#0077aaint/span aspan stylecolor:#999999,/span span stylecolor:#0077aaint/span bspan stylecolor:#999999)/span span stylecolor:#999999{/span span stylecolor:#0077aaint/span c span stylecolor:#a67f59/span a span stylecolor:#a67f59/span bspan stylecolor:#999999;/span span stylecolor:#0077aareturn/span cspan stylecolor:#999999;/span span stylecolor:#999999}/span /code/span/span运行项目并下载源码java运行1234【注意事项】修饰符现阶段直接使用public static固定搭配返回值类型如果方法有返回值返回值类型必须要与返回的实体类型一致如果没有返回值必须写成void方法名字采用小驼峰命名参数列表如果方法没有参数()中什么都不写如果有参数需指定参数类型多个参数之间使用逗号隔开方法体方法内部要执行的语句在 Java当中方法必须写在类当中在 Java当中方法不能嵌套定义在 Java当中没有方法声明一说5.1.3 方法调用的过程方法调用过程调用方法—传递参数—找到方法地址—执行被调方法的方法体—被调方法结束返回—回到主调方法继续往下执行【注意事项】定义方法的时候, 不会执行方法的代码. 只有调用的时候才会执行.一个方法可以被多次调用代码示例计算两个整数相加span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aapublic/span span stylecolor:#0077aaclass/span Main span stylecolor:#999999{/span span stylecolor:#0077aapublic/span span stylecolor:#0077aastatic/span span stylecolor:#0077aavoid/span span stylecolor:#dd4a68main/spanspan stylecolor:#999999(/spanStringspan stylecolor:#999999[/spanspan stylecolor:#999999]/span argsspan stylecolor:#999999)/span span stylecolor:#999999{/span span stylecolor:#0077aaint/span x span stylecolor:#a67f59/span span stylecolor:#98680110/spanspan stylecolor:#999999;/span span stylecolor:#0077aaint/span y span stylecolor:#a67f59/span span stylecolor:#98680120/spanspan stylecolor:#999999;/span span stylecolor:#0077aaint/span ret span stylecolor:#a67f59/span span stylecolor:#dd4a68add/spanspan stylecolor:#999999(/spanxspan stylecolor:#999999,/span yspan stylecolor:#999999)/spanspan stylecolor:#999999;/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanretspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#999999}/span span stylecolor:#0077aapublic/span span stylecolor:#0077aastatic/span span stylecolor:#0077aaint/span span stylecolor:#dd4a68add/spanspan stylecolor:#999999(/spanspan stylecolor:#0077aaint/span aspan stylecolor:#999999,/span span stylecolor:#0077aaint/span bspan stylecolor:#999999)/span span stylecolor:#999999{/span span stylecolor:#0077aaint/span c span stylecolor:#a67f59/span a span stylecolor:#a67f59/span bspan stylecolor:#999999;/span span stylecolor:#0077aareturn/span cspan stylecolor:#999999;/span span stylecolor:#999999}/span span stylecolor:#999999}/span /code/span/span运行项目并下载源码java运行12345678910111213方法调用过程DeBug内存图方法是放在方法区中的被调用的时候需要进入到栈内存中运行一旦程序遇到return或者方法执行结束就会把当前方法栈帧就从栈上进行销毁回收5.1.4 形参和实参重要方法的形参相当于数学函数中的自变量比如1 2 3 … n的公式为sum(n) (1 n) * n / 2Java中方法的形参就相当于sum函数中的自变量n用来接收sum函数在调用时传递的值的。形参的名字可以随意取对方法都没有任何影响形参只是方法在定义时需要借助的一个变量用来保存方法在调用时传递过来的值。span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aapublic/span span stylecolor:#0077aaclass/span Main span stylecolor:#999999{/span span stylecolor:#0077aapublic/span span stylecolor:#0077aastatic/span span stylecolor:#0077aavoid/span span stylecolor:#dd4a68main/spanspan stylecolor:#999999(/spanStringspan stylecolor:#999999[/spanspan stylecolor:#999999]/span argsspan stylecolor:#999999)/span span stylecolor:#999999{/span span stylecolor:#dd4a68getSum/spanspan stylecolor:#999999(/spanspan stylecolor:#98680110/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#708090// 10是实参在方法调用时形参n用来保存10/span span stylecolor:#dd4a68getSum/spanspan stylecolor:#999999(/spanspan stylecolor:#986801100/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#708090// 100是实参在方法调用时形参n用来保存100/span span stylecolor:#999999}/span span stylecolor:#0077aaprivate/span span stylecolor:#0077aastatic/span span stylecolor:#0077aaint/span span stylecolor:#dd4a68getSum/spanspan stylecolor:#999999(/spanspan stylecolor:#0077aaint/span nspan stylecolor:#999999)/span span stylecolor:#999999{/span span stylecolor:#708090// n 是形参/span span stylecolor:#0077aareturn/span span stylecolor:#999999(/spanspan stylecolor:#9868011/span span stylecolor:#a67f59/span nspan stylecolor:#999999)/span span stylecolor:#a67f59*/span n span stylecolor:#a67f59//span span stylecolor:#9868012/spanspan stylecolor:#999999;/span span stylecolor:#999999}/span span stylecolor:#999999}/span /code/span/span运行项目并下载源码java运行12345678910再比如span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aapublic/span span stylecolor:#0077aaclass/span Main span stylecolor:#999999{/span span stylecolor:#0077aapublic/span span stylecolor:#0077aastatic/span span stylecolor:#0077aavoid/span span stylecolor:#dd4a68main/spanspan stylecolor:#999999(/spanStringspan stylecolor:#999999[/spanspan stylecolor:#999999]/span argsspan stylecolor:#999999)/span span stylecolor:#999999{/span span stylecolor:#dd4a68add/spanspan stylecolor:#999999(/spanspan stylecolor:#9868012/spanspan stylecolor:#999999,/spanspan stylecolor:#9868013/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#708090// 2 和 3 是实参在调用时传给形参a 和 b/span span stylecolor:#999999}/span span stylecolor:#0077aapublic/span span stylecolor:#0077aastatic/span span stylecolor:#0077aaint/span span stylecolor:#dd4a68add/spanspan stylecolor:#999999(/spanspan stylecolor:#0077aaint/span aspan stylecolor:#999999,/span span stylecolor:#0077aaint/span bspan stylecolor:#999999)/span span stylecolor:#999999{/span span stylecolor:#0077aareturn/span a span stylecolor:#a67f59/span bspan stylecolor:#999999;/span span stylecolor:#999999}/span span stylecolor:#999999}/span /code/span/span运行项目并下载源码java运行123456785.1.5 没有返回值的方法方法的返回值是可选的. 有些时候可以没有的没有时返回值类型必须写成void代码示例span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aapublic/span span stylecolor:#0077aaclass/span Main span stylecolor:#999999{/span span stylecolor:#0077aapublic/span span stylecolor:#0077aastatic/span span stylecolor:#0077aavoid/span span stylecolor:#dd4a68main/spanspan stylecolor:#999999(/spanStringspan stylecolor:#999999[/spanspan stylecolor:#999999]/span argsspan stylecolor:#999999)/span span stylecolor:#999999{/span span stylecolor:#0077aaint/span a span stylecolor:#a67f59/span span stylecolor:#98680110/spanspan stylecolor:#999999;/span span stylecolor:#0077aaint/span b span stylecolor:#a67f59/span span stylecolor:#98680120/spanspan stylecolor:#999999;/span span stylecolor:#dd4a68print/spanspan stylecolor:#999999(/spanaspan stylecolor:#999999,/spanbspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#999999}/span span stylecolor:#0077aaprivate/span span stylecolor:#0077aastatic/span span stylecolor:#0077aavoid/span span stylecolor:#dd4a68print/spanspan stylecolor:#999999(/spanspan stylecolor:#0077aaint/span xspan stylecolor:#999999,/span span stylecolor:#0077aaint/span yspan stylecolor:#999999)/span span stylecolor:#999999{/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanspan stylecolor:#50a14fx /span span stylecolor:#a67f59/span x span stylecolor:#a67f59/span span stylecolor:#50a14f,y /span span stylecolor:#a67f59/span yspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#999999}/span span stylecolor:#999999}/span /code/span/span运行项目并下载源码java运行1234567891011return问题如果没有返回值的方法要写return则return后面不能加任何返回值。return后面的语句不会被执行return表示方法的结束5.2 方法的重载5.2.1 为什么需要方法的重载由于参数类型不匹配, 所以不能直接使用现有的add方法.一种比较简单粗暴的解决方法如下span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aapublic/span span stylecolor:#0077aaclass/span Main span stylecolor:#999999{/span span stylecolor:#0077aapublic/span span stylecolor:#0077aastatic/span span stylecolor:#0077aavoid/span span stylecolor:#dd4a68main/spanspan stylecolor:#999999(/spanStringspan stylecolor:#999999[/spanspan stylecolor:#999999]/span argsspan stylecolor:#999999)/span span stylecolor:#999999{/span span stylecolor:#0077aaint/span x span stylecolor:#a67f59/span span stylecolor:#98680110/spanspan stylecolor:#999999;/span span stylecolor:#0077aaint/span y span stylecolor:#a67f59/span span stylecolor:#98680120/spanspan stylecolor:#999999;/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanspan stylecolor:#dd4a68addInt/spanspan stylecolor:#999999(/spanxspan stylecolor:#999999,/spanyspan stylecolor:#999999)/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#0077aadouble/span a span stylecolor:#a67f59/span span stylecolor:#9868011.1/spanspan stylecolor:#999999;/span span stylecolor:#0077aadouble/span b span stylecolor:#a67f59/span span stylecolor:#9868011.2/spanspan stylecolor:#999999;/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanspan stylecolor:#dd4a68addDouble/spanspan stylecolor:#999999(/spanaspan stylecolor:#999999,/spanbspan stylecolor:#999999)/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#999999}/span span stylecolor:#0077aapublic/span span stylecolor:#0077aastatic/span span stylecolor:#0077aaint/span span stylecolor:#dd4a68addInt/spanspan stylecolor:#999999(/spanspan stylecolor:#0077aaint/span aspan stylecolor:#999999,/span span stylecolor:#0077aaint/span bspan stylecolor:#999999)/span span stylecolor:#999999{/span span stylecolor:#0077aareturn/span a span stylecolor:#a67f59/span bspan stylecolor:#999999;/span span stylecolor:#999999}/span span stylecolor:#0077aapublic/span span stylecolor:#0077aastatic/span span stylecolor:#0077aadouble/span span stylecolor:#dd4a68addDouble/spanspan stylecolor:#999999(/spanspan stylecolor:#0077aadouble/span aspan stylecolor:#999999,/span span stylecolor:#0077aadouble/span bspan stylecolor:#999999)/span span stylecolor:#999999{/span span stylecolor:#0077aareturn/span a span stylecolor:#a67f59/span bspan stylecolor:#999999;/span span stylecolor:#999999}/span span stylecolor:#999999}/span /code/span/span运行项目并下载源码java运行上述代码确实可以解决问题但不友好的地方是需要提供许多不同的方法名而取名字本来就是让人头疼的事情。那能否将所有的名字都给成add呢5.2.2 方法重载的概念在Java中如果多个方法的名字相同参数列表不同则称该几种方法被重载了。span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aapublic/span span stylecolor:#0077aaclass/span Main span stylecolor:#999999{/span span stylecolor:#0077aapublic/span span stylecolor:#0077aastatic/span span stylecolor:#0077aavoid/span span stylecolor:#dd4a68main/spanspan stylecolor:#999999(/spanStringspan stylecolor:#999999[/spanspan stylecolor:#999999]/span argsspan stylecolor:#999999)/span span stylecolor:#999999{/span span stylecolor:#0077aaint/span x span stylecolor:#a67f59/span span stylecolor:#98680110/spanspan stylecolor:#999999;/span span stylecolor:#0077aaint/span y span stylecolor:#a67f59/span span stylecolor:#98680120/spanspan stylecolor:#999999;/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanspan stylecolor:#dd4a68add/spanspan stylecolor:#999999(/spanxspan stylecolor:#999999,/spanyspan stylecolor:#999999)/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/spanspan stylecolor:#708090// 调用add(int, int)/span span stylecolor:#0077aadouble/span a span stylecolor:#a67f59/span span stylecolor:#9868011.1/spanspan stylecolor:#999999;/span span stylecolor:#0077aadouble/span b span stylecolor:#a67f59/span span stylecolor:#9868011.2/spanspan stylecolor:#999999;/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanspan stylecolor:#dd4a68add/spanspan stylecolor:#999999(/spanaspan stylecolor:#999999,/spanbspan stylecolor:#999999)/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/spanspan stylecolor:#708090// 调用add(double, double)/span span stylecolor:#0077aadouble/span c span stylecolor:#a67f59/span span stylecolor:#9868011.3/spanspan stylecolor:#999999;/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanspan stylecolor:#dd4a68add/spanspan stylecolor:#999999(/spanaspan stylecolor:#999999,/spanbspan stylecolor:#999999,/spancspan stylecolor:#999999)/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/spanspan stylecolor:#708090// 调用add(double, double,double)/span span stylecolor:#999999}/span span stylecolor:#0077aapublic/span span stylecolor:#0077aastatic/span span stylecolor:#0077aaint/span span stylecolor:#dd4a68add/spanspan stylecolor:#999999(/spanspan stylecolor:#0077aaint/span aspan stylecolor:#999999,/span span stylecolor:#0077aaint/span bspan stylecolor:#999999)/span span stylecolor:#999999{/span span stylecolor:#0077aareturn/span a span stylecolor:#a67f59/span bspan stylecolor:#999999;/span span stylecolor:#999999}/span span stylecolor:#0077aapublic/span span stylecolor:#0077aastatic/span span stylecolor:#0077aadouble/span span stylecolor:#dd4a68add/spanspan stylecolor:#999999(/spanspan stylecolor:#0077aadouble/span aspan stylecolor:#999999,/span span stylecolor:#0077aadouble/span bspan stylecolor:#999999)/span span stylecolor:#999999{/span span stylecolor:#0077aareturn/span a span stylecolor:#a67f59/span bspan stylecolor:#999999;/span span stylecolor:#999999}/span span stylecolor:#0077aapublic/span span stylecolor:#0077aastatic/span span stylecolor:#0077aadouble/span span stylecolor:#dd4a68add/spanspan stylecolor:#999999(/spanspan stylecolor:#0077aadouble/span aspan stylecolor:#999999,/span span stylecolor:#0077aadouble/span bspan stylecolor:#999999,/span span stylecolor:#0077aadouble/span cspan stylecolor:#999999)/span span stylecolor:#999999{/span span stylecolor:#0077aareturn/span a span stylecolor:#a67f59/span cspan stylecolor:#999999;/span span stylecolor:#999999}/span span stylecolor:#999999}/span /code/span/span运行项目并下载源码java运行注意方法名必须相同参数列表必须不同(参数的个数不同、参数的类型不同、类型的次序必须不同)与返回值类型是否相同无关5.2.3 方法签名在同一个作用域中不能定义两个相同名称的标识符。比如方法中不能定义两个名字一样的变量那为什么类中就可以定义方法名相同的方法呢方法签名即经过编译器编译修改过之后方法最终的名字。具体方式方法全路径名参数列表返回值类型构成方法完整的名字。5.3 递归5.3.1 生活中的例子从前有坐山山上有座庙庙里有个老和尚给小和尚将故事讲的就是从前有座山山上有座庙庙里有个老和尚给小和尚讲故事讲的就是“从前有座山山上有座庙…”“从前…”上面的两个例子有个共同的特征自身中又包含了自己该种思想在数学和编程中非常有用因为有些时候我们遇到的问题直接并不好解决但是发现将原问题拆分成其子问题之后子问题与原问题有相同的解法等子问题解决之后原问题就迎刃而解了。5.3.2 递归的概念一个方法在执行过程中调用自身, 就称为 “递归”.递归相当于数学上的 “数学归纳法”, 有一个起始条件, 然后有一个递推公式.例如, 我们求 N!起始条件: N 1 的时候, N! 为 1. 这个起始条件相当于递归的结束条件.递归公式: 求 N! , 直接不好求, 可以把问题转换成 N! N * (N-1)!递归的必要条件将原问题划分成其子问题注意子问题必须要与原问题的解法相同递归出口代码示例span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aapublic/span span stylecolor:#0077aaclass/span Main span stylecolor:#999999{/span span stylecolor:#0077aapublic/span span stylecolor:#0077aastatic/span span stylecolor:#0077aavoid/span span stylecolor:#dd4a68main/spanspan stylecolor:#999999(/spanStringspan stylecolor:#999999[/spanspan stylecolor:#999999]/span argsspan stylecolor:#999999)/span span stylecolor:#999999{/span span stylecolor:#dd4a68fun/spanspan stylecolor:#999999(/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#999999}/span span stylecolor:#0077aapublic/span span stylecolor:#0077aastatic/span span stylecolor:#0077aavoid/span span stylecolor:#dd4a68fun/spanspan stylecolor:#999999(/spanspan stylecolor:#999999)/span span stylecolor:#999999{/span span stylecolor:#dd4a68fun/spanspan stylecolor:#999999(/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#999999}/span span stylecolor:#999999}/span /code/span/span运行项目并下载源码java运行123456789上述代码就是一个最简单的递归。但是存在错误出来栈溢出错误的时候就说明结束条件不对或者没有结束条件代码示例递归求 N 的阶乘span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aapublic/span span stylecolor:#0077aaclass/span Main span stylecolor:#999999{/span span stylecolor:#0077aapublic/span span stylecolor:#0077aastatic/span span stylecolor:#0077aavoid/span span stylecolor:#dd4a68main/spanspan stylecolor:#999999(/spanStringspan stylecolor:#999999[/spanspan stylecolor:#999999]/span argsspan stylecolor:#999999)/span span stylecolor:#999999{/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanspan stylecolor:#dd4a68factor/spanspan stylecolor:#999999(/spanspan stylecolor:#9868015/spanspan stylecolor:#999999)/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#708090// 120/span span stylecolor:#999999}/span span stylecolor:#0077aapublic/span span stylecolor:#0077aastatic/span span stylecolor:#0077aaint/span span stylecolor:#dd4a68factor/spanspan stylecolor:#999999(/spanspan stylecolor:#0077aaint/span nspan stylecolor:#999999)/span span stylecolor:#999999{/span span stylecolor:#0077aaif/span span stylecolor:#999999(/spann span stylecolor:#a67f59/span span stylecolor:#9868011/spanspan stylecolor:#999999)/span span stylecolor:#999999{/span span stylecolor:#0077aareturn/span span stylecolor:#9868011/spanspan stylecolor:#999999;/span span stylecolor:#999999}/span span stylecolor:#0077aareturn/span span stylecolor:#dd4a68factor/spanspan stylecolor:#999999(/spann span stylecolor:#a67f59-/span span stylecolor:#9868011/spanspan stylecolor:#999999)/span span stylecolor:#a67f59*/span nspan stylecolor:#999999;/span span stylecolor:#708090// factor()方法调用自己/span span stylecolor:#999999}/span span stylecolor:#999999}/span /code/span/span运行项目并下载源码java运行1234567891011125.3.3 递归执行过程分析递归的程序的执行过程不太容易理解, 要想理解清楚递归, 必须先理解清楚 “方法的执行过程”, 尤其是 方法执行结束之后, 回到调用位置继续往下执行.代码示例递归求 N 的阶乘span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aapublic/span span stylecolor:#0077aaclass/span Main span stylecolor:#999999{/span span stylecolor:#0077aapublic/span span stylecolor:#0077aastatic/span span stylecolor:#0077aavoid/span span stylecolor:#dd4a68main/spanspan stylecolor:#999999(/spanStringspan stylecolor:#999999[/spanspan stylecolor:#999999]/span argsspan stylecolor:#999999)/span span stylecolor:#999999{/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanspan stylecolor:#dd4a68factor/spanspan stylecolor:#999999(/spanspan stylecolor:#9868015/spanspan stylecolor:#999999)/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#999999}/span span stylecolor:#0077aapublic/span span stylecolor:#0077aastatic/span span stylecolor:#0077aaint/span span stylecolor:#dd4a68factor/spanspan stylecolor:#999999(/spanspan stylecolor:#0077aaint/span nspan stylecolor:#999999)/span span stylecolor:#999999{/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanspan stylecolor:#50a14f函数开始, n /span span stylecolor:#a67f59/span nspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#0077aaif/span span stylecolor:#999999(/spann span stylecolor:#a67f59/span span stylecolor:#9868011/spanspan stylecolor:#999999)/span span stylecolor:#999999{/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanspan stylecolor:#50a14f函数结束, n 1 ret 1/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#0077aareturn/span span stylecolor:#9868011/spanspan stylecolor:#999999;/span span stylecolor:#999999}/span span stylecolor:#0077aaint/span ret span stylecolor:#a67f59/span n span stylecolor:#a67f59*/span span stylecolor:#dd4a68factor/spanspan stylecolor:#999999(/spann span stylecolor:#a67f59-/span span stylecolor:#9868011/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanspan stylecolor:#50a14f函数结束, n /span span stylecolor:#a67f59/span n span stylecolor:#a67f59/span span stylecolor:#50a14f ret /span span stylecolor:#a67f59/span retspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#0077aareturn/span retspan stylecolor:#999999;/span span stylecolor:#999999}/span span stylecolor:#999999}/span span stylecolor:#708090/* 函数开始, n 5 函数开始, n 4 函数开始, n 3 函数开始, n 2 函数开始, n 1 函数结束, n 1 ret 1 函数结束, n 2 ret 2 函数结束, n 3 ret 6 函数结束, n 4 ret 24 函数结束, n 5 ret 120 120 *//span /code/span/span运行项目并下载源码java运行1234567891011121314151617181920212223242526272829执行图6. 数组6.1 数组的基本概念6.1.1 为什么使用数组假设现在要存储5个学生的年龄按照之前掌握的知识点我们会写出如下代码声明5个变量存储学生变量span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aapublic/span span stylecolor:#0077aaclass/span Test span stylecolor:#999999{/span span stylecolor:#0077aapublic/span span stylecolor:#0077aastatic/span span stylecolor:#0077aavoid/span span stylecolor:#dd4a68main/spanspan stylecolor:#999999(/spanStringspan stylecolor:#999999[/spanspan stylecolor:#999999]/span argsspan stylecolor:#999999)/span span stylecolor:#999999{/span span stylecolor:#0077aaint/span age1span stylecolor:#999999;/span span stylecolor:#0077aaint/span age2span stylecolor:#999999;/span span stylecolor:#0077aaint/span age3span stylecolor:#999999;/span span stylecolor:#0077aaint/span age4span stylecolor:#999999;/span span stylecolor:#0077aaint/span age5span stylecolor:#999999;/span span stylecolor:#999999}/span span stylecolor:#999999}/span /code/span/span运行项目并下载源码java运行123456789如果我们有10个学生呢我们就要声明20个变量似乎没有什么问题。那如果有100,1000个学生呢我们就要声明100,1000个变量这样就有点离谱了使用数组我们就可以解决一个问题。6.1.2 什么是数组数组是指一组类型相同的数据的集合数组中每个数据称为元素。数组可以存放任意类型的元素但同一个数组里存放的元素类型必须一致。数组分为一维数组和多维数组。数组在内存中是一段连续的空间比如现实中的车库在 Java中包含6个整形类型元素的数组就相当于上图中连在一起的6个车位从上图中可以看到数组中存放的元素其类型相同数组的空间是连在一起的每个空间有自己的编号起始位置的编号为0即数组的下标。6.1.3 数组的创建和初始化6.1.3.1 数组的创建基本语法格式span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-JavaT[] 数组名 new T[N]; /code/span/span运行项目并下载源码Java运行1T表示数组中存放元素的类型T[]表示数组类型N表示数组的长度代码示例存储10个人的年龄span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aaint/spanspan stylecolor:#999999[/spanspan stylecolor:#999999]/span ages span stylecolor:#a67f59/span span stylecolor:#0077aanew/span span stylecolor:#0077aaint/spanspan stylecolor:#999999[/spanspan stylecolor:#98680110/spanspan stylecolor:#999999]/spanspan stylecolor:#999999;/span /code/span/span运行项目并下载源码java运行16.1.3.2 数组的初始化Java 数组初始化主要分为静态初始化以及动态初始化静态初始化在创建数组时直接指定数组中元素的个数span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aaint/spanspan stylecolor:#999999[/spanspan stylecolor:#999999]/span ages span stylecolor:#a67f59/span span stylecolor:#0077aanew/span span stylecolor:#0077aaint/spanspan stylecolor:#999999[/spanspan stylecolor:#98680110/spanspan stylecolor:#999999]/spanspan stylecolor:#999999;/span /code/span/span运行项目并下载源码java运行1动态初始化在创建数组是不直接指定数据元素个数而直接讲具体的数据内容进行指定语法格式span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaTspan stylecolor:#999999[/spanspan stylecolor:#999999]/span 数组名 span stylecolor:#a67f59/span span stylecolor:#999999{/spandata1span stylecolor:#999999,/spandata2span stylecolor:#999999,/spanspan stylecolor:#999999./spanspan stylecolor:#999999./spanspan stylecolor:#999999./spanspan stylecolor:#999999./spandataspan stylecolor:#999999}/spanspan stylecolor:#999999;/span /code/span/span运行项目并下载源码java运行1span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aaint/spanspan stylecolor:#999999[/spanspan stylecolor:#999999]/span ages span stylecolor:#a67f59/span span stylecolor:#0077aanew/span span stylecolor:#999999{/spanspan stylecolor:#9868011/spanspan stylecolor:#999999,/spanspan stylecolor:#9868012/spanspan stylecolor:#999999,/spanspan stylecolor:#9868013/spanspan stylecolor:#999999,/spanspan stylecolor:#9868014/spanspan stylecolor:#999999,/spanspan stylecolor:#9868015/spanspan stylecolor:#999999}/spanspan stylecolor:#999999;/span /code/span/span运行项目并下载源码java运行12【注意事项】静态初始化虽然没有指定数组的长度编译器在编译时会根据{}中元素个数来确定数组的长度。静态初始化时, {}中数据类型必须与[]前数据类型一致。静态初始化可以简写省去后面的new T[]。span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aaint/spanspan stylecolor:#999999[/spanspan stylecolor:#999999]/span arr span stylecolor:#a67f59/span span stylecolor:#999999{/spanspan stylecolor:#9868011/spanspan stylecolor:#999999,/spanspan stylecolor:#9868013/spanspan stylecolor:#999999,/spanspan stylecolor:#9868012/spanspan stylecolor:#999999,/spanspan stylecolor:#9868015/spanspan stylecolor:#999999,/spanspan stylecolor:#9868014/spanspan stylecolor:#999999}/spanspan stylecolor:#999999;/span span stylecolor:#708090// 注意虽然省去了new T[], 但是编译器编译代码时还是会还原/span /code/span/span运行项目并下载源码java运行12数组也可以按照如下C语言个数创建不推荐span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aaint/span arrspan stylecolor:#999999[/spanspan stylecolor:#999999]/span span stylecolor:#a67f59/span span stylecolor:#999999{/spanspan stylecolor:#9868011/spanspan stylecolor:#999999,/span span stylecolor:#9868012/spanspan stylecolor:#999999,/span span stylecolor:#9868013/spanspan stylecolor:#999999}/spanspan stylecolor:#999999;/span span stylecolor:#708090/* 该种定义方式不太友好容易造成数组的类型就是int的误解 []如果在类型之后就表示数组类型因此int[]结合在一块写意思更清晰 *//span /code/span/span运行项目并下载源码java运行12345静态和动态初始化也可以分为两步但是省略格式不可以。span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aapublic/span span stylecolor:#0077aaclass/span Main span stylecolor:#999999{/span span stylecolor:#0077aapublic/span span stylecolor:#0077aastatic/span span stylecolor:#0077aavoid/span span stylecolor:#dd4a68main/spanspan stylecolor:#999999(/spanStringspan stylecolor:#999999[/spanspan stylecolor:#999999]/span argsspan stylecolor:#999999)/span span stylecolor:#999999{/span span stylecolor:#0077aaint/spanspan stylecolor:#999999[/spanspan stylecolor:#999999]/span array1span stylecolor:#999999;/span array1 span stylecolor:#a67f59/span span stylecolor:#0077aanew/span span stylecolor:#0077aaint/spanspan stylecolor:#999999[/spanspan stylecolor:#98680110/spanspan stylecolor:#999999]/spanspan stylecolor:#999999;/span span stylecolor:#0077aaint/spanspan stylecolor:#999999[/spanspan stylecolor:#999999]/span array2span stylecolor:#999999;/span array2 span stylecolor:#a67f59/span span stylecolor:#0077aanew/span span stylecolor:#0077aaint/spanspan stylecolor:#999999[/spanspan stylecolor:#999999]/spanspan stylecolor:#999999{/spanspan stylecolor:#98680110/spanspan stylecolor:#999999,/span span stylecolor:#98680120/spanspan stylecolor:#999999,/span span stylecolor:#98680130/spanspan stylecolor:#999999}/spanspan stylecolor:#999999;/span span stylecolor:#708090// 注意省略格式不可以拆分, 否则编译失败/span span stylecolor:#708090//int[] array3;/span span stylecolor:#708090//array3 {1, 2, 3};/span span stylecolor:#999999}/span span stylecolor:#999999}/span /code/span/span运行项目并下载源码java运行12345678910111213如果没有对数组进行初始化数组中元素有其默认值如果数组中存储元素类型为基类类型默认值为基类类型对应的默认值比如类型默认值byte0short0int0long0float0.0fdouble0.0char/u0000booleanfalse如果数组中存储元素类型为引用类型默认值为null6.1.4 数组的使用6.1.4.1 数组中元素访问数组在内存中是一段连续的空间空间的编号都是从0开始的依次递增该编号称为数组的下标数组可以通过下标访问其任意位置的元素。比如span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aapublic/span span stylecolor:#0077aaclass/span Main span stylecolor:#999999{/span span stylecolor:#0077aapublic/span span stylecolor:#0077aastatic/span span stylecolor:#0077aavoid/span span stylecolor:#dd4a68main/spanspan stylecolor:#999999(/spanStringspan stylecolor:#999999[/spanspan stylecolor:#999999]/span argsspan stylecolor:#999999)/span span stylecolor:#999999{/span span stylecolor:#0077aaint/spanspan stylecolor:#999999[/spanspan stylecolor:#999999]/span arr span stylecolor:#a67f59/span span stylecolor:#0077aanew/span span stylecolor:#0077aaint/spanspan stylecolor:#999999[/spanspan stylecolor:#999999]/spanspan stylecolor:#999999{/spanspan stylecolor:#9868011/spanspan stylecolor:#999999,/spanspan stylecolor:#9868012/spanspan stylecolor:#999999,/spanspan stylecolor:#9868013/spanspan stylecolor:#999999,/spanspan stylecolor:#9868014/spanspan stylecolor:#999999,/spanspan stylecolor:#9868015/spanspan stylecolor:#999999}/spanspan stylecolor:#999999;/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanarrspan stylecolor:#999999[/spanspan stylecolor:#9868010/spanspan stylecolor:#999999]/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanarrspan stylecolor:#999999[/spanspan stylecolor:#9868011/spanspan stylecolor:#999999]/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanarrspan stylecolor:#999999[/spanspan stylecolor:#9868012/spanspan stylecolor:#999999]/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanarrspan stylecolor:#999999[/spanspan stylecolor:#9868013/spanspan stylecolor:#999999]/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanarrspan stylecolor:#999999[/spanspan stylecolor:#9868014/spanspan stylecolor:#999999]/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#999999}/span span stylecolor:#999999}/span /code/span/span运行项目并下载源码java运行1234567891011【注意事项】数组是一段连续的内存空间因此支持随机访问即通过下标快速访问数组中任意位置的元素下标从0开始介于[0,N) 之间不包含NN为元素个数不能越界否则会报出下标越界异常。抛出了java.lang.ArrayIndexOutOfBoundsException异常. 使用数组一定要下标谨防越界.6.1.4.2 遍历数组所谓“遍历” 是指将数组中的所有元素都访问一遍, 访问是指对数组中的元素进行某种操作比如打印。span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aapublic/span span stylecolor:#0077aaclass/span Main span stylecolor:#999999{/span span stylecolor:#0077aapublic/span span stylecolor:#0077aastatic/span span stylecolor:#0077aavoid/span span stylecolor:#dd4a68main/spanspan stylecolor:#999999(/spanStringspan stylecolor:#999999[/spanspan stylecolor:#999999]/span argsspan stylecolor:#999999)/span span stylecolor:#999999{/span span stylecolor:#0077aaint/spanspan stylecolor:#999999[/spanspan stylecolor:#999999]/span arr span stylecolor:#a67f59/span span stylecolor:#0077aanew/span span stylecolor:#0077aaint/spanspan stylecolor:#999999[/spanspan stylecolor:#999999]/spanspan stylecolor:#999999{/spanspan stylecolor:#9868011/spanspan stylecolor:#999999,/spanspan stylecolor:#9868012/spanspan stylecolor:#999999,/spanspan stylecolor:#9868013/spanspan stylecolor:#999999,/spanspan stylecolor:#9868014/spanspan stylecolor:#999999,/spanspan stylecolor:#9868015/spanspan stylecolor:#999999}/spanspan stylecolor:#999999;/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanarrspan stylecolor:#999999[/spanspan stylecolor:#9868010/spanspan stylecolor:#999999]/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanarrspan stylecolor:#999999[/spanspan stylecolor:#9868011/spanspan stylecolor:#999999]/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanarrspan stylecolor:#999999[/spanspan stylecolor:#9868012/spanspan stylecolor:#999999]/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanarrspan stylecolor:#999999[/spanspan stylecolor:#9868013/spanspan stylecolor:#999999]/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanarrspan stylecolor:#999999[/spanspan stylecolor:#9868014/spanspan stylecolor:#999999]/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#999999}/span span stylecolor:#999999}/span /code/span/span运行项目并下载源码java运行1234567891011上述代码可以起到对数组中元素遍历的目的但问题是如果数组中增加了一个元素就需要增加一条打印语句如果输入中有100个元素就需要写100个打印语句如果现在要把打印修改为给数组中每个元素加1修改起来非常麻烦。通过观察代码可以发现对数组中每个元素的操作都是相同的则可以使用循环来进行打印。1. 循环遍历数组span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aapublic/span span stylecolor:#0077aaclass/span Main span stylecolor:#999999{/span span stylecolor:#0077aapublic/span span stylecolor:#0077aastatic/span span stylecolor:#0077aavoid/span span stylecolor:#dd4a68main/spanspan stylecolor:#999999(/spanStringspan stylecolor:#999999[/spanspan stylecolor:#999999]/span argsspan stylecolor:#999999)/span span stylecolor:#999999{/span span stylecolor:#0077aaint/spanspan stylecolor:#999999[/spanspan stylecolor:#999999]/span arr span stylecolor:#a67f59/span span stylecolor:#0077aanew/span span stylecolor:#0077aaint/spanspan stylecolor:#999999[/spanspan stylecolor:#999999]/spanspan stylecolor:#999999{/spanspan stylecolor:#9868011/spanspan stylecolor:#999999,/spanspan stylecolor:#9868012/spanspan stylecolor:#999999,/spanspan stylecolor:#9868013/spanspan stylecolor:#999999,/spanspan stylecolor:#9868014/spanspan stylecolor:#999999,/spanspan stylecolor:#9868015/spanspan stylecolor:#999999}/spanspan stylecolor:#999999;/span span stylecolor:#0077aafor/span span stylecolor:#999999(/spanspan stylecolor:#0077aaint/span i span stylecolor:#a67f59/span span stylecolor:#9868010/spanspan stylecolor:#999999;/span i span stylecolor:#a67f59/span span stylecolor:#9868015/spanspan stylecolor:#999999;/span ispan stylecolor:#a67f59/spanspan stylecolor:#999999)/span span stylecolor:#999999{/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanarrspan stylecolor:#999999[/spanispan stylecolor:#999999]/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#999999}/span span stylecolor:#999999}/span span stylecolor:#999999}/span /code/span/span运行项目并下载源码java运行12345678改成循环之后上述三个缺陷可以全部2和3问题可以全部解决但是无法解决问题1。那能否获取到数组的长度呢【注意】在数组中可以通过数组对象.length来获取数组的长度span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aapublic/span span stylecolor:#0077aaclass/span Main span stylecolor:#999999{/span span stylecolor:#0077aapublic/span span stylecolor:#0077aastatic/span span stylecolor:#0077aavoid/span span stylecolor:#dd4a68main/spanspan stylecolor:#999999(/spanStringspan stylecolor:#999999[/spanspan stylecolor:#999999]/span argsspan stylecolor:#999999)/span span stylecolor:#999999{/span span stylecolor:#0077aaint/spanspan stylecolor:#999999[/spanspan stylecolor:#999999]/span arr span stylecolor:#a67f59/span span stylecolor:#0077aanew/span span stylecolor:#0077aaint/spanspan stylecolor:#999999[/spanspan stylecolor:#999999]/spanspan stylecolor:#999999{/spanspan stylecolor:#9868011/spanspan stylecolor:#999999,/spanspan stylecolor:#9868012/spanspan stylecolor:#999999,/spanspan stylecolor:#9868013/spanspan stylecolor:#999999,/spanspan stylecolor:#9868014/spanspan stylecolor:#999999,/spanspan stylecolor:#9868015/spanspan stylecolor:#999999}/spanspan stylecolor:#999999;/span span stylecolor:#0077aafor/span span stylecolor:#999999(/spanspan stylecolor:#0077aaint/span i span stylecolor:#a67f59/span span stylecolor:#9868010/spanspan stylecolor:#999999;/span i span stylecolor:#a67f59/span arrspan stylecolor:#999999./spanlengthspan stylecolor:#999999;/span ispan stylecolor:#a67f59/spanspan stylecolor:#999999)/span span stylecolor:#999999{/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanarrspan stylecolor:#999999[/spanispan stylecolor:#999999]/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#999999}/span span stylecolor:#999999}/span span stylecolor:#999999}/span /code/span/span运行项目并下载源码java运行123456782. 使用for-each遍历数组语法格式span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aapublic/span span stylecolor:#0077aaclass/span Main span stylecolor:#999999{/span span stylecolor:#0077aapublic/span span stylecolor:#0077aastatic/span span stylecolor:#0077aavoid/span span stylecolor:#dd4a68main/spanspan stylecolor:#999999(/spanStringspan stylecolor:#999999[/spanspan stylecolor:#999999]/span argsspan stylecolor:#999999)/span span stylecolor:#999999{/span span stylecolor:#0077aaint/spanspan stylecolor:#999999[/spanspan stylecolor:#999999]/span arr span stylecolor:#a67f59/span span stylecolor:#0077aanew/span span stylecolor:#0077aaint/spanspan stylecolor:#999999[/spanspan stylecolor:#999999]/spanspan stylecolor:#999999{/spanspan stylecolor:#9868011/spanspan stylecolor:#999999,/spanspan stylecolor:#9868012/spanspan stylecolor:#999999,/spanspan stylecolor:#9868013/spanspan stylecolor:#999999,/spanspan stylecolor:#9868014/spanspan stylecolor:#999999,/spanspan stylecolor:#9868015/spanspan stylecolor:#999999}/spanspan stylecolor:#999999;/span span stylecolor:#0077aafor/span span stylecolor:#999999(/spanspan stylecolor:#0077aaint/span x span stylecolor:#a67f59:/span arrspan stylecolor:#999999)/span span stylecolor:#999999{/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanxspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#999999}/span span stylecolor:#999999}/span span stylecolor:#999999}/span /code/span/span运行项目并下载源码java运行12345678for-each是for循环的另外一种使用方式. 能够更方便的完成对数组的遍历. 可以避免循环条件和更新语句写错.for-each循环语句的循环变量将会遍历数组中的每个元素而不是下标值。3. 数组转字符串输出span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aaimport/span javaspan stylecolor:#999999./spanutilspan stylecolor:#999999./spanArraysspan stylecolor:#999999;/span span stylecolor:#0077aapublic/span span stylecolor:#0077aaclass/span Main span stylecolor:#999999{/span span stylecolor:#0077aapublic/span span stylecolor:#0077aastatic/span span stylecolor:#0077aavoid/span span stylecolor:#dd4a68main/spanspan stylecolor:#999999(/spanStringspan stylecolor:#999999[/spanspan stylecolor:#999999]/span argsspan stylecolor:#999999)/span span stylecolor:#999999{/span span stylecolor:#0077aaint/spanspan stylecolor:#999999[/spanspan stylecolor:#999999]/span arr span stylecolor:#a67f59/span span stylecolor:#0077aanew/span span stylecolor:#0077aaint/spanspan stylecolor:#999999[/spanspan stylecolor:#999999]/spanspan stylecolor:#999999{/spanspan stylecolor:#9868011/spanspan stylecolor:#999999,/spanspan stylecolor:#9868012/spanspan stylecolor:#999999,/spanspan stylecolor:#9868013/spanspan stylecolor:#999999,/spanspan stylecolor:#9868014/spanspan stylecolor:#999999,/spanspan stylecolor:#9868015/spanspan stylecolor:#999999}/spanspan stylecolor:#999999;/span String ret span stylecolor:#a67f59/span Arraysspan stylecolor:#999999./spanspan stylecolor:#dd4a68toString/spanspan stylecolor:#999999(/spanarrspan stylecolor:#999999)/spanspan stylecolor:#999999;/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanretspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#999999}/span span stylecolor:#999999}/span /code/span/span运行项目并下载源码java运行123456789代码分析6.2 数组是引用类型6.2.1 JVM 内存分布内存是一段连续的存储空间主要是用来存储程序运行时数据的。比如程序运行时代码需要加载到内存程序运行产生的中间数据要存放在内存程序中的常量也要保存有些数据可能需要长时间存储而有些数据当方法运行结束后就要被销毁。如果对内存中存储的数据不加区分的随意存储那对内存管理起来将会非常麻烦。比如因此 JVM 也对所使用的内存按照功能的不同进行了划分程序计数器只是一个很小的空间保存下一条执行的指令的地址虚拟机栈与方法调用相关的一些信息每个方法在执行时都会先创建栈帧栈帧中包含有局部变量表、操作数栈、动态链接、返回地址以及其他的一些信息保存的都是与方法执行时相关的一些信息。比如局部变量。当方法运行结束后吧栈帧就被销毁了即栈帧中保存的数据也被销毁了。本地方法栈本地方法栈于虚拟机栈的作用类似只不过保存的内容是方法的局部变量。在有些版本的 JVM 实现中本地方法栈和虚拟机栈是一起的堆JVM 所管理的最大内存区域使用**new创建的对象都是在堆上保存堆是随着程序开始运行时而创建随着程序的结束而销毁堆中的数据只要还有在使用就不会被销毁**方法区用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。方法编译出的字节码就是保存在这个区域。6.2.2 基本类型的变量与引用类型变量的区别基本数据类型的变量称为基本变量该变量空间中直接存放的是其所对应的值而引用数据类型创建的变量一般称为对象的引用其空间中存储的是对象所在空间的地址span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aapublic/span span stylecolor:#0077aaclass/span Main span stylecolor:#999999{/span span stylecolor:#0077aapublic/span span stylecolor:#0077aastatic/span span stylecolor:#0077aavoid/span span stylecolor:#dd4a68main/spanspan stylecolor:#999999(/spanStringspan stylecolor:#999999[/spanspan stylecolor:#999999]/span argsspan stylecolor:#999999)/span span stylecolor:#999999{/span span stylecolor:#0077aaint/span a span stylecolor:#a67f59/span span stylecolor:#98680110/spanspan stylecolor:#999999;/span span stylecolor:#0077aaint/spanspan stylecolor:#999999[/spanspan stylecolor:#999999]/span arr span stylecolor:#a67f59/span span stylecolor:#0077aanew/span span stylecolor:#0077aaint/spanspan stylecolor:#999999[/spanspan stylecolor:#999999]/spanspan stylecolor:#999999{/spanspan stylecolor:#9868011/spanspan stylecolor:#999999,/spanspan stylecolor:#9868012/spanspan stylecolor:#999999,/spanspan stylecolor:#9868013/spanspan stylecolor:#999999}/spanspan stylecolor:#999999;/span span stylecolor:#999999}/span span stylecolor:#999999}/span /code/span/span运行项目并下载源码java运行123456在上述代码中a、arr都是函数内部的变量因此其空间都在main方法对应的栈帧中分配。a是内置类型的变量因此其空间中保存的就是给该变量初始化的值。arr是数组类型的引用变量其内部保存的内容可以简单理解成是数组在堆空间中的首地址。上图可以看出引用变量并不直接存储对象本生可以简单理解成存储的是对象在堆中空间的起始地址。通过该地址引用变量便可以去操作对象。有点类似C语言中的指针但是 Java 中引用要比指针的操作更简单。6.2.3 引用变量span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aapublic/span span stylecolor:#0077aaclass/span Main span stylecolor:#999999{/span span stylecolor:#0077aapublic/span span stylecolor:#0077aastatic/span span stylecolor:#0077aavoid/span span stylecolor:#dd4a68main/spanspan stylecolor:#999999(/spanStringspan stylecolor:#999999[/spanspan stylecolor:#999999]/span argsspan stylecolor:#999999)/span span stylecolor:#999999{/span span stylecolor:#0077aaint/spanspan stylecolor:#999999[/spanspan stylecolor:#999999]/span arr1 span stylecolor:#a67f59/span span stylecolor:#0077aanew/span span stylecolor:#0077aaint/spanspan stylecolor:#999999[/spanspan stylecolor:#9868013/spanspan stylecolor:#999999]/spanspan stylecolor:#999999;/span arr1span stylecolor:#999999[/spanspan stylecolor:#9868010/spanspan stylecolor:#999999]/span span stylecolor:#a67f59/span span stylecolor:#9868011/spanspan stylecolor:#999999;/span arr1span stylecolor:#999999[/spanspan stylecolor:#9868011/spanspan stylecolor:#999999]/span span stylecolor:#a67f59/span span stylecolor:#9868012/spanspan stylecolor:#999999;/span arr1span stylecolor:#999999[/spanspan stylecolor:#9868012/spanspan stylecolor:#999999]/span span stylecolor:#a67f59/span span stylecolor:#9868013/spanspan stylecolor:#999999;/span span stylecolor:#0077aaint/spanspan stylecolor:#999999[/spanspan stylecolor:#999999]/span arr2 span stylecolor:#a67f59/span span stylecolor:#0077aanew/span span stylecolor:#0077aaint/spanspan stylecolor:#999999[/spanspan stylecolor:#999999]/spanspan stylecolor:#999999{/spanspan stylecolor:#9868011/spanspan stylecolor:#999999,/spanspan stylecolor:#9868012/spanspan stylecolor:#999999,/spanspan stylecolor:#9868013/spanspan stylecolor:#999999,/spanspan stylecolor:#9868014/spanspan stylecolor:#999999,/spanspan stylecolor:#9868015/spanspan stylecolor:#999999}/spanspan stylecolor:#999999;/span arr2span stylecolor:#999999[/spanspan stylecolor:#9868010/spanspan stylecolor:#999999]/span span stylecolor:#a67f59/span span stylecolor:#986801100/spanspan stylecolor:#999999;/span arr2span stylecolor:#999999[/spanspan stylecolor:#9868011/spanspan stylecolor:#999999]/span span stylecolor:#a67f59/span span stylecolor:#986801200/spanspan stylecolor:#999999;/span arr1 span stylecolor:#a67f59/span arr2span stylecolor:#999999;/span arr1span stylecolor:#999999[/spanspan stylecolor:#9868012/spanspan stylecolor:#999999]/span span stylecolor:#a67f59/span span stylecolor:#986801300/spanspan stylecolor:#999999;/span arr1span stylecolor:#999999[/spanspan stylecolor:#9868013/spanspan stylecolor:#999999]/span span stylecolor:#a67f59/span span stylecolor:#986801400/spanspan stylecolor:#999999;/span arr2span stylecolor:#999999[/spanspan stylecolor:#9868014/spanspan stylecolor:#999999]/span span stylecolor:#a67f59/span span stylecolor:#986801500/spanspan stylecolor:#999999;/span span stylecolor:#0077aafor/span span stylecolor:#999999(/spanspan stylecolor:#0077aaint/span x span stylecolor:#a67f59:/span arr1span stylecolor:#999999)/span span stylecolor:#999999{/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanxspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#999999}/span span stylecolor:#999999}/span span stylecolor:#999999}/span /code/span/span运行项目并下载源码java运行6.2.4 认识 nullnull在 Java 中表示“空引用”也就是一个不指向对象的引用span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aapublic/span span stylecolor:#0077aaclass/span Main span stylecolor:#999999{/span span stylecolor:#0077aapublic/span span stylecolor:#0077aastatic/span span stylecolor:#0077aavoid/span span stylecolor:#dd4a68main/spanspan stylecolor:#999999(/spanStringspan stylecolor:#999999[/spanspan stylecolor:#999999]/span argsspan stylecolor:#999999)/span span stylecolor:#999999{/span span stylecolor:#0077aaint/spanspan stylecolor:#999999[/spanspan stylecolor:#999999]/span arr span stylecolor:#a67f59/span span stylecolor:#0077aanull/spanspan stylecolor:#999999;/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanarrspan stylecolor:#999999[/spanspan stylecolor:#9868010/spanspan stylecolor:#999999]/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#999999}/span span stylecolor:#999999}/span /code/span/span运行项目并下载源码java运行null的作用类似于C语言中的NULL空指针都是表示一个无效的内存位置。因此不能对这个内存进行任何读写操作。一旦尝试读写就会抛出NullPointerException【注意】Java 中并没有约定null和 0 下标地址的内存有任何关联。6.3 数组应用场景6.3.1 保存数据span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aapublic/span span stylecolor:#0077aaclass/span Main span stylecolor:#999999{/span span stylecolor:#0077aapublic/span span stylecolor:#0077aastatic/span span stylecolor:#0077aavoid/span span stylecolor:#dd4a68main/spanspan stylecolor:#999999(/spanStringspan stylecolor:#999999[/spanspan stylecolor:#999999]/span argsspan stylecolor:#999999)/span span stylecolor:#999999{/span span stylecolor:#0077aaint/spanspan stylecolor:#999999[/spanspan stylecolor:#999999]/span arr span stylecolor:#a67f59/span span stylecolor:#0077aanew/span span stylecolor:#0077aaint/spanspan stylecolor:#999999[/spanspan stylecolor:#999999]/spanspan stylecolor:#999999{/spanspan stylecolor:#9868011/spanspan stylecolor:#999999,/spanspan stylecolor:#9868012/spanspan stylecolor:#999999,/spanspan stylecolor:#9868013/spanspan stylecolor:#999999}/spanspan stylecolor:#999999;/span span stylecolor:#0077aafor/span span stylecolor:#999999(/spanspan stylecolor:#0077aaint/span x span stylecolor:#a67f59:/span arrspan stylecolor:#999999)/span span stylecolor:#999999{/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanxspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#999999}/span span stylecolor:#999999}/span span stylecolor:#999999}/span /code/span/span运行项目并下载源码java运行6.3.2 作为方法的参数参数传基本数据类型span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aapublic/span span stylecolor:#0077aaclass/span Main span stylecolor:#999999{/span span stylecolor:#0077aapublic/span span stylecolor:#0077aastatic/span span stylecolor:#0077aavoid/span span stylecolor:#dd4a68main/spanspan stylecolor:#999999(/spanStringspan stylecolor:#999999[/spanspan stylecolor:#999999]/span argsspan stylecolor:#999999)/span span stylecolor:#999999{/span span stylecolor:#0077aaint/span num span stylecolor:#a67f59/span span stylecolor:#9868010/spanspan stylecolor:#999999;/span span stylecolor:#dd4a68func/spanspan stylecolor:#999999(/spannumspan stylecolor:#999999)/spanspan stylecolor:#999999;/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanspan stylecolor:#50a14fnum /span span stylecolor:#a67f59/span numspan stylecolor:#999999)/spanspan stylecolor:#999999;/spanspan stylecolor:#708090// 0/span span stylecolor:#999999}/span span stylecolor:#0077aaprivate/span span stylecolor:#0077aastatic/span span stylecolor:#0077aavoid/span span stylecolor:#dd4a68func/spanspan stylecolor:#999999(/spanspan stylecolor:#0077aaint/span xspan stylecolor:#999999)/span span stylecolor:#999999{/span x span stylecolor:#a67f59/span span stylecolor:#98680110/spanspan stylecolor:#999999;/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanspan stylecolor:#50a14fx /span span stylecolor:#a67f59/span xspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#708090// 10/span span stylecolor:#999999}/span span stylecolor:#999999}/span /code/span/span运行项目并下载源码java运行上述代码我们可以发现func方法中修改了形参x的值不影响实参的num值。参数传引用数据类型span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aapublic/span span stylecolor:#0077aaclass/span Main span stylecolor:#999999{/span span stylecolor:#0077aapublic/span span stylecolor:#0077aastatic/span span stylecolor:#0077aavoid/span span stylecolor:#dd4a68main/spanspan stylecolor:#999999(/spanStringspan stylecolor:#999999[/spanspan stylecolor:#999999]/span argsspan stylecolor:#999999)/span span stylecolor:#999999{/span span stylecolor:#0077aaint/spanspan stylecolor:#999999[/spanspan stylecolor:#999999]/span arr span stylecolor:#a67f59/span span stylecolor:#0077aanew/span span stylecolor:#0077aaint/spanspan stylecolor:#999999[/spanspan stylecolor:#999999]/spanspan stylecolor:#999999{/spanspan stylecolor:#9868011/spanspan stylecolor:#999999,/spanspan stylecolor:#9868012/spanspan stylecolor:#999999,/spanspan stylecolor:#9868013/spanspan stylecolor:#999999}/spanspan stylecolor:#999999;/span span stylecolor:#dd4a68fun1/spanspan stylecolor:#999999(/spanarrspan stylecolor:#999999)/spanspan stylecolor:#999999;/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanArraysspan stylecolor:#999999./spanspan stylecolor:#dd4a68toString/spanspan stylecolor:#999999(/spanarrspan stylecolor:#999999)/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#708090// [1,2,3]/span span stylecolor:#dd4a68fun2/spanspan stylecolor:#999999(/spanarrspan stylecolor:#999999)/spanspan stylecolor:#999999;/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanArraysspan stylecolor:#999999./spanspan stylecolor:#dd4a68toString/spanspan stylecolor:#999999(/spanarrspan stylecolor:#999999)/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#708090// [99,2,3]/span span stylecolor:#999999}/span span stylecolor:#0077aapublic/span span stylecolor:#0077aastatic/span span stylecolor:#0077aavoid/span span stylecolor:#dd4a68fun1/spanspan stylecolor:#999999(/spanspan stylecolor:#0077aaint/spanspan stylecolor:#999999[/spanspan stylecolor:#999999]/span arrspan stylecolor:#999999)/span span stylecolor:#999999{/span arr span stylecolor:#a67f59/span span stylecolor:#0077aanew/span span stylecolor:#0077aaint/spanspan stylecolor:#999999[/spanspan stylecolor:#999999]/spanspan stylecolor:#999999{/spanspan stylecolor:#98680111/spanspan stylecolor:#999999,/spanspan stylecolor:#98680122/spanspan stylecolor:#999999,/spanspan stylecolor:#98680133/spanspan stylecolor:#999999,/spanspan stylecolor:#98680144/spanspan stylecolor:#999999,/spanspan stylecolor:#98680155/spanspan stylecolor:#999999}/spanspan stylecolor:#999999;/span span stylecolor:#708090// 修改了形参的指向/span span stylecolor:#999999}/span span stylecolor:#0077aapublic/span span stylecolor:#0077aastatic/span span stylecolor:#0077aavoid/span span stylecolor:#dd4a68fun2/spanspan stylecolor:#999999(/spanspan stylecolor:#0077aaint/spanspan stylecolor:#999999[/spanspan stylecolor:#999999]/span arrspan stylecolor:#999999)/span span stylecolor:#999999{/span arrspan stylecolor:#999999[/spanspan stylecolor:#9868010/spanspan stylecolor:#999999]/span span stylecolor:#a67f59/span span stylecolor:#98680199/spanspan stylecolor:#999999;/span span stylecolor:#708090// 形参改变了实惨的值/span span stylecolor:#999999}/span span stylecolor:#999999}/span /code/span/span运行项目并下载源码java运行上述代码我们可以发现fun1方法中修改了形参的指向不影响实参数组的值fun2方法内部修改了数组的内容方法外部的数组内容也发生了改变。因为数组是引用类型按照引用类型进行传递是可以修改其中存放的内容的。【总结】所谓的“引用”本质只是存了地址。Java 将数组设定为引用类型这样的话后续进行数组参数传参其实只是将数组的地址传入函数形参中这样可以避免对整数数组的拷贝数组可能比较长那么拷贝开销就会很大。6.3.3 作为方法的返回值span stylecolor:#000000span stylebackground-color:#fafafacode classlanguage-javaspan stylecolor:#0077aapublic/span span stylecolor:#0077aaclass/span Main span stylecolor:#999999{/span span stylecolor:#0077aapublic/span span stylecolor:#0077aastatic/span span stylecolor:#0077aavoid/span span stylecolor:#dd4a68main/spanspan stylecolor:#999999(/spanStringspan stylecolor:#999999[/spanspan stylecolor:#999999]/span argsspan stylecolor:#999999)/span span stylecolor:#999999{/span span stylecolor:#0077aaint/spanspan stylecolor:#999999[/spanspan stylecolor:#999999]/span ret span stylecolor:#a67f59/span span stylecolor:#dd4a68fun/spanspan stylecolor:#999999(/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span Systemspan stylecolor:#999999./spanoutspan stylecolor:#999999./spanspan stylecolor:#dd4a68println/spanspan stylecolor:#999999(/spanArraysspan stylecolor:#999999./spanspan stylecolor:#dd4a68toString/spanspan stylecolor:#999999(/spanretspan stylecolor:#999999)/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/span span stylecolor:#708090// [1, 2, 3, 4, 5]/span span stylecolor:#999999}/span span stylecolor:#0077aapublic/span span stylecolor:#0077aastatic/span span stylecolor:#0077aaint/spanspan stylecolor:#999999[/spanspan stylecolor:#999999]/span span stylecolor:#dd4a68fun/spanspan stylecolor:#999999(/spanspan stylecolor:#999999)/span span stylecolor:#999999{/span span stylecolor:#0077aaint/spanspan stylecolor:#999999[/spanspan stylecolor:#999999]/span arr span stylecolor:#a67f59/span span stylecolor:#0077aanew/span span stylecolor:#0077aaint/spanspan stylecolor:#999999[/spanspan stylecolor:#999999]/spanspan stylecolor:#999999{/spanspan stylecolor:#9868011/spanspan stylecolor:#999999,/spanspan stylecolor:#9868012/spanspan stylecolor:#999999,/spanspan stylecolor:#9868013/spanspan stylecolor:#999999,/spanspan stylecolor:#9868014/spanspan stylecolor:#999999,/spanspan stylecolor:#9868015/spanspan stylecolor:#999999}/spanspan stylecolor:#999999;/span span stylecolor:#0077aareturn/span arrspan stylecolor:#999999;/span span stylecolor:#999999}/span span stylecolor:#999999}/span /code/span/span运行项目并下载源码java