Java基础02 您所在的位置:网站首页 java的流程控制语句有哪些 Java基础02

Java基础02

2024-03-26 01:46| 来源: 网络整理| 查看: 265

本文是学习Java时所记录的学习笔记,本节包含了Java数据类型、基本运算、流程控制和数组的使用,是从《疯狂Java讲义第四版》中学习,提取了部分我觉得是重点的内容。欢迎留言、私信交流~~

文章目录 数据类型和运算符数据处理常用的语法注释提取开发程序的注释生成API文档:标识符和关键字数据类型数据类型原则 基本运算语句 数据处理概念 流程控制顺序结构分支结构循环结构控制循环结构 数组数组概念定义数组内存中的数组 相关知识当初学习时懵逼的问题参考资料

数据类型和运算符

Java是一门强类型语言。强类型包含两方面的含义:

所有变量必须先声明、后使用指定类型的变量只能接受类型与之匹配的值 数据处理常用的语法 注释

Java语言的注释一共有三种:

单行注释:在需要注释的内容前面加上//多行注释:以/*开始,到*/结尾,中间内容就是注释文档注释:以斜线后紧跟两个星号/**开始,到*/结尾,中间内容就是文档注释

API文档下载

访问 http://www.oracle.com/technetwork/java/javase/downloads/index.html找到“Additional Resources”,在里面下载。 提取开发程序的注释生成API文档: 新建xxxTest.java类(xxx为自定义名字),增加文档注释在xxxTest.java类所在的文件目录下,执行cmd命令: //这一条只会提取文档注释 javadoc -d apidoc -windowstilte 测试 -doctitle 学习javadoc工具的测试API文档 -header 我的类 *Test.java //使用-version和-author后,会提取“@”的注解 javadoc -d apidoc -windowstilte 测试 -doctitle 学习javadoc工具的测试API文档 -header 我的类 -version -author *Test.java //指定对lee包和yeeku包生成API文档(包里面可以有package.html包描述文件) javadoc -d apidoc -windowstilte 测试 -doctitle 学习API文档 -header 我的类 lee yeeku 此时java文件所在目录下,会新生成一个apidoc文件夹,文件夹里的内容就是生成的API文档。 javadoc常用标记说明@author指定Java程序的作者@version指定源文件的版本@deprecated不推荐使用的方法@param方法的参数说明信息@return方法的返回值说明信息@see“参见”,用于交叉参考的内容@exception抛出异常的类型@throws抛出的异常,和exception相同

注意:标记使用的位置有限制

标识符和关键字 名称说明分号语句结尾采用分号“;”。花括号作用是定义一个代码块“{}”,成对出现。方括号主要作用是访问数组元素“[]”。圆括号定义方法、调用方法时会用到,用途很多“()”。空格分隔一条语句的不同部分。圆点通常作为类/对象和他的成员之间的分隔符“.”。 Java语言区分大小写。Java一共50个关键字。 数据类型

Java语言支持的变量类型有两种

基本类型(Primitive Type)引用类型(Reference Type)

基本类型包括

boolean类型数值类型 整数类型(byte、short、int、long、char)浮点类型(float和double)

引用类型包括:

类接口数组类型特殊的null类型(空类型(null type):特殊直接量。可以转换为任何引用类型。)

基础数据类型

基础数据类型说明整数类型byte(1个字节)/short(2个字节)/int(4个字节)/long(8个字节)字符类型char(2个字节)浮点类型float(4个字节)/double(8个字节)布尔类型boolean 数据类型原则 二进制转换为十进制:补码-反补-原码字符型必须使用单引号“’”括起来。char是单引号,单字符。String是字符串双引号,字符串。如字符串中包含特殊字符,应使用转义字符的表示形式,比如“\”写成“\”。double类型数值占8字节64位float类型数值占4字节32位浮点数除以0可以得到正无穷大或负无穷大。除以0异常:ArithmeticException:/by zeroJAVA7中引入了新功能:可以在数值中使用下划线。boolean类型数值只有两个:true和false数值类型转换方式有两种: 自动类型转换强制类型转换:(targetType)value 二进制最左边的1位是符号位,1就是负数,0就是正数。ASCII(American Standard Code for Information Interchange,美国信息互换标准代码,ASCⅡ) 基本运算语句 算数运算符说明+加法运算符也可作为字符串的连接运算符。-减法运算符也可可作为求负运算符。*乘法运算符。/除法运算符。%求余运算符。++自加1。放在左边表示先参与运算再自加1,放在右边表示先自加1再参与运算。–自减1。和自加效果相似。其他复杂运算符例如乘方、开方等运算可以借助java.lang.Math类的工具方法完成。 赋值运算符说明=将一个直接量值赋给变量。 位运算符说明&按位与。同时为1返回1。|按位或。一位是1返回1。~按位非。全不取反(包括符号位)。^按位异或。相同返回0,不同返回1。>无符号右移运算符。和右移运算符相似,只不过多出的部分用0填充。 逻辑运算符说明&&与。前后两个操作数必须都是true才返回true,否则是false。&不短路与。||或。只要有一个是true,就可以返回true。|不短路或。!非。取相反。^异或。两个不相同才返回true,相同返回false。 三目运算符说明示例?:先执行expression求值,如果为true,则返回“:”前面部分。如果为false,则返回“:”后面部分。三目运算符是作为if else的精简写法(expression)?if-true-statement:if-false-statement; 数据处理概念 表达式类型自动提升 一个表达式中包含多个基本类型值时,会自动提升到表达式中最高等级的类型。等级高低如下:char>int>long>float>double byte>short>int>long>float>double 强制转换类型 从高等级转向低等级时需要使用强制类型转换。可以直接加(int),或者通过基本类型对应的包装类转换字符串parseXxx(String str)。 移位运算遵循规则 低于int类型的自动转换为int类型/int类型移位数大于32时,先与32求余,结果才是真正移位的位数/long类型和int类型相似,大于64时。 单目运算符、赋值运算符和三目运算符是从右到左运算。运算符优先级可以参考“运算符优先级表”,上一行优先于下一行 流程控制

两种基本的流程控制结构:分支结构和循环结构。

顺序结构

从上往下逐行执行。

分支结构

两种常见语句分别为“if”语句和“switch”语句

if语句

如果if、else if和else后面代码块只有一行语句时,可以省略花括号。如果if括号中的表达式为真,则执行if下方的代码块 if(logic expression){ statement... }

if…else语句

如果if括号中的表达式为真,则执行if下方的代码块,否则执行else下方的代码块 if(logic expression){ statement... }else{ statement... }

if…else if…else语句

如果第一个if括号中的表达式为真,则执行第一个if下方的代码块。如果为假则执行第一个else后面的if语句。这时相当于进入了一个新的if判断逻辑 if(logic expression){ statement... }else if(logic expression){ statement... }else{ statement... }

switch语句

case后面的花括号可以省略。必须要有break;,否则后面的语句会不进行判断,强制执行。JAVA7,控制表达式只能是java.lang.String类型,不能是StringBuffer或StringBuilder。先对expression求值,然后匹配conditon,匹配的话执行对应代码块,不匹配则执行default的代码块。 switch(expression) { case condition1: { statement(s) break; } case condition2: { statement(s) break; } default: { statement(s) } } 循环结构

循环语句包含初始化语句、循环条件、循环体和迭代语句。

while 先判断条件,为真时执行循环体。为假则退出循环。先对test_expression条件求值,如果为true,则运行循环体部分。 while(test_expression) { //具体业务代码 } do while 先执行循环体,执行后判断条件,为真重复执行,为假退出循环。do while的循环条件处必须有分号,这是和while不同的地方。 do { statement; [iteration_statement] }while (test_statement); for 先执行初始化语句,再判断循环条件,若为真执行循环体,若为假结束本次循环。若为真则在执行完循环体后执行循环迭代语句,接着开始循环。循环迭代语句会执行一遍,并不会因为循环体中有结束本次次循环的命令而不执行。建议不要在循环体内修改循环变量的值,容易造成死循环。选择循环变量时,习惯选择i、j、k来做循环变量。[init_statement]代表初始化一个变量,[test_expression]代表表达式,如果这个表达式为真,则继续循环,如果为假则退出循环,[iteration_statement]代表初始化的变量每次循环后进行自增或自减操作 for([init_statement];[test_expression];[iteration_statement]) { statement; } foreach循环 foreach中的循环变量相当于一个临时变量。循环遍历数组和集合。type是数组元素或集合元素的类型,variableName是一个形参名,foreach循环自动将数组元素一次赋给该变量。 for(type variableName : array | colection) { //variableName自动迭代访问每个元素... } 控制循环结构 关键字说明详细说明break终止所在的循环,跳出循环体。可以增加标签来指定结束到某个外层标签。例如:在最外层循环之前添加“outer:”,然后在内循环中添加“break outer;”,就表示跳出最外层循环。continue结束本单次循环后面部分的语句,接着下一次循环。和break一样,可以增加标签,如果增加在最外层循环的开始处,则表示结束外层循环的本次循环。return结束方法 数组 数组概念 所有的数组元素都需要具有相同的数据类型。通常使用type[] arrayName;这种语法来定义数组。定义数组时不能指定数组的长度。数组的初始化有两种方式: 静态初始化动态初始化 数组索引是从0开始的。数组初始化内容: 整数类型(byte、short、int和long):0浮点类型(float、double):0.0字符类型(char):’\u0000’布尔类型(boolean):false应用类型(类、接口和数组):null 定义数组

定义数组类型

定义数组 type[] arrayName; type arrayName[]; arrayName = new type[length];

二维数组

type[][] arrayName; //定义二维数组 arrayName = new type[length][]; //初始化 //静态初始化二维数组 String[][] str1 = new String[][]{new String[3],new String[]{"hello"}}; String[][] str2 = {new String[3],new String[]{"hello"}}; 内存中的数组

实际的数组对象被存储在堆内存中。

数组应用变量如果是局部变量,那么它被存储在栈内存中。

堆内存:程序中创建一个对象时,会把对象保存到运行时数据区中,这个运行时数据区就是堆内存。该区的对象不会随着方法结束而销毁。栈内存:随着方法结束被销毁。

数组运行机制

数组分为两个部分,一个部分是数组引用,存储在内存中。还有一部分是实际的数组对象,这部分存储在堆内存中,只能通过数组引用变量来访问。

引用类型数组,引用类型的数组元素是引用。数组引用相当于是指针。

二维数组

二维数组的第一个括号中是引用类型,指向第二个括号中的存储空间。如果需要三维或更多维,则可以定义Object[]类型,便可以实现N维数组。 String[][]

二维数组初始化

因为二维数组的第二维是一维数组,所以需要指定多个一维数组来初始化。 int[][] a; a = new int[4][]; a[0] = new int[2]; a[0][1] = 6; 相关知识 当初学习时懵逼的问题 p44 从哪里获得标记信息? 答:常用的javadoc标记信息可以从官方文档中获取。 p50 较小整数值赋给byte或short变量,系统会自动把这个整数当成byte或者short类型来处理。 答:这就是自动类型转换的概念,整数、byte和short是相似的,只是长短不一样,所以他们之间可以互相转换,短一点的可以转换到长一点的,并且不会丢失内容。 参考资料 《疯狂Java讲义(第4版)》 李刚 第三章、第四章


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有