本章重点

·Java的基本语法形式

·Java语言中的常量与变量

·Java语言运算符的使用

·Java程序的流程控制

·Java中方法的定义与使用

·Java中数组的定义与使用

2.1 Java的基础语法

2.1.1 Java代码的基本格式

Java中的程序代码都必须放在一个类中。类需要使用class关键字定义:

(1)    Java中的程序代码可分为结构定义语句功能执行语句;其中,结构定义语句用于声明一个类或方法,功能执行语句用于实现具体的功能每条功能执行语句的最后都必须用分号(;)结束。

(2)    Java语句是严格区分大小写的。

(3)    编写Java代码时,为了便于阅读,应该使用一种良好的格式进行排版;(不是必需的)

(4)    Java程序中一句连续的字符串不能分开在两行中书写;否则编译错误

2.1.2 Java中的注释

Java中的注释有三种:

(1)    单行注释 用符号”//”表示

(2)    多行注释 用符号/* */表示

(3)    文档注释 用符号 /** */表示

注意:多行注释/* */可以嵌套单行注释//; 多行注释/* */不能嵌套多行注释/* */

2.1.3 Java中的标识符

标识符——包名、类名、方法名、参数名、变量名等符号;

标识符组成由大小写字母、数字、下划线(_)和美元符号($)组成,标识符不能以数字开头,不能时Java中的关键字。

建议初学者在定义标识符时还应该遵循以下规则:

(1)    包名所有字母一律小写,例如 cn.baidu.www。

(2)    类名和接口名每个单词的首字母都要大写,例如ArrayList、Iterator。

(3)    常量名所有字母都大写,单词之间用下划线连接,例如DAY_OF_MONTH。

(4)    变量名和方法名的第一个单词首字母小写,从第二个单词开始每个单词首字母大写,例如lineNumber、getLineNumber。

(5)    在程序中,应该尽量使用有意义的英文单词来定义标识符,使得程序便于阅读,例如使用userName表示用户名,passWord表示密码。

2.1.4 Java中的关键字

关键字(保留字)——编程语言里事先定义好并赋予了特殊含义的单词

注:所有的关键字都是小写的。

程序中的标识符不能以关键字命名。

2.1.5 Java中的常量

常量——在程序中固定不变的值,是不能改变的数据。

  1. 整型常量

表现形式:二进制(以0b或0B开头)、八进制(以0开头)、十进制、十六进制(以0x或0X开头)。

  1. 浮点数常量

浮点数常量就是在数学中用到的小数。

浮点数常量还可以通过指数形式来表示。

  1. 字符常量

字符常量用于表示一个字符,一个字符常量由一对英文半角格式的单引号’’引起来,它可以是英文字母、数字、标点符号以及由转移序列来表示的特殊字符。

‘\u0000’ 表示一个空白字符 既在单引号之间没有任何字符。之所以能这样表示,是因为Java采用的是Unicode字符集,Unicode字符以\u开头。

  1. 字符串常量

用于表示一串连续的字符,一个字符串常量由一对英文半角格式的双引号””引起来。

一个字符串可以包含一个字符或多个字符,也可以不包含任何字符,既长度为零。

  1. 布尔常量

布尔常量既布尔型的两个值true和false,该常量用于区分一个事物的真与假。

  1. Null常量

Null常量只有一个值null,表示对象的引用为空。

特殊字符——反斜杠(\);作用是用来转义后面一个字符

常见的转义字符

·\r

·\n

·\t

·\b

2.2 Java中的变量

2.2.1 变量的定义

变量——可以改变的量,内存单元中存储的数据就是变量的值。

2.2.2 变量的数据类型

在Java中变量的数据类型分为两种,既基本数据类型和引用数据类型。

1.整数类型变量

注:所赋的值超出了int型的取值范围,后面必须加上L(或小写l)。

2.  浮点数类型变量

E表示以10为底的指数,E后面的+号和—号代表正指数和负指数。

注:在Java中,一个小数会被默认为double类型的值,因此在为一个float类型的变量赋值时,要在赋值的后面加上字母F(或小写f)。

在为double类型的变量赋值时,可以在后面加上字母D(或小写d),也可以不加(推荐加);

3.字符类型变量

字符类型变量用于存储一个单一字符,在Java中中char表示。每个char类型的字符变量占用2个字节。

4.布尔类型变量

用来存储布尔值,在Java中用boolean表示,该类型的变量只有两个值,既true和false。

2.2.3 变量的类型转换

数据类型转换分为两种:自动类型转换(隐式类型转换)和强制类型转换(显式类型转换)。

1.自动类型转换

实现自动类型转换的条件:1.两种数据类型彼此兼容,2目标类型的取值范围大于源类型的取值范围。

由于int类型取值范围大于byte类型的取值范围,所以自动完成转换,编译时不报告任何错误。

(1).整数类型之间可以实现转换

(2).整数类型转换为float类型。

(3).其他类型转换为double类型。

2.强制类型转换

实现强制类型转换,当两种类型彼此不兼容或者目标类型取值范围小于源类型时,自动类型转换无法进行时,必须要进行强制类型转换。

以上example会编译失败。

强制类型转换格式:

Fm: 目标类型        变量名=(目标类型)值;

2.2.4    变量的作用域

变量需要在它的作用范围内才可以被使用,这个作用范围称为变量的作用域

2.3        Java中的运算符

运算符——程序中经常出现的特殊符号,如+、-、*、/、=、>等特殊符号;

用于对数据进行算术运算、赋值和比较等操作

运算符可分为:算术运算符、赋值运算符、比较运算符、逻辑运算符和位运算符

2.3.1 算术运算符

在数学中最常见的加减乘除,也被称作四则运算;

Java 中常用的算术运算符:

(1)    在进行自增++或自减——运算时,如果运算符++或——放在操作数的签名则是先进性自增或自减,在进行运算。反之,如果运算符放在操作数的后面则是先进行其他运算在进行自增或自减运算。

请仔细阅读下面的代码块,思考运行的结果

上面的代码块运行结果为:b=3、x=3;

(2)    在进行除法运算时,当除数和被除数都为整数时,得到的结果一定是整数;如果除法运算由小数参与,得到的结果会是一个小数。例如2510/1000为整数,会忽略小数部分,得到的结果为2;而2.5/10的结果为0.25.

(3)    在进行取模(%)运算时,运算结果的正负取决于被模数(%左边的数)的符号,与模数(%右边的数)的符号无关;如(-5)%3的结果为-2 ,而5%(3)的结果为2.

2.3.2 赋值运算符

赋值运算符的作用就是将常量、变量或表达式的值赋给某一个变量。

Java 支持的常用赋值运算符,如下表所示:

(1)    在Java中可以通过一条赋值语句对多个变量进行赋值,具体实例如下

Int x,y,z;

X=y=z=5;

但是不能在定义的同时连续赋值,如下

Int x=y=z=5;//这是错误的

(2)    在使用+=、-=、*=、/=、%=运算符进行赋值时,强制转换会自动完成,程序不需要做任何显示地声明。以下运行通过

2.3.3 比较运算符

比较运算符用于对两个数值或变量进行比较,其结果是一个布尔值,既true或false

At:不能将比较运算符==误写成赋值运算符=

2.3.4    逻辑运算符

逻辑运算符用于布尔型的数据进行操作,其结果仍是一个布尔型数据。

2.3.5    位运算符

位运算符是针对二进制数的每一位进行运算的符号,它是专门针对数字0和1进行操作的。

2.3.6    运算符的优先级

2.4        选择结构语句

2.4.1 if条件语句

1.if语句

语法格式:

2.if……else语句

At: 三运运算符:判断条件?表达式1:表达式2;与if……else语句类似

 3.    if……else if……else语句

2.4.2 switch语句

Switch语句只能针对某个表达式的值做出判断,从而决定程序执行哪一段代码。

switch case 语句语法格式如下:

At:在switch语句中的表达式只能是byte、short、char、int类型的值,如果传入其他类型的值,程序会报错。在JDK5.0中引入的新特性enum枚举也可以作为switch语句表达式的值。在JDK7.0中也引入了新特性String类型,switch语句可以接收String类型的值。

2.5 循环结构语句

循环语句分为:while循环语句、do……while循环语句和for循环语句三种。

2.5.1 while循环语句

其中,有些材料中{}中的循环内容被称作循环体;

2.5.2 do……while循环语句

2.5.3 for循环语句

2.5.4 循环嵌套

循环嵌套是指在一个循环语句的循环体中再定义一个循环语句的语法结构。While、do……while、for循环语句都可以进行嵌套。

2.5.5 跳转语句(break、continue)

跳转语句用于实现循环执行过程中程序流程的跳转。

1.break语句

2.continue语句

2.6方法

2.6.1 什么是方法

2.6.2    方法的重载

At:方法的重载与返回值类型无关,它只需要满足两个条件,一是方法名相同,二是参数个数或参数类型不相同。

2.6.3    方法的递归

方法的递归是指一个方法的内部调用自身的过程,递归必须要有结束条件,不然就会陷入无线递归的状态永远无法结束调用。

2.7        数组

数组是指一组数据的集合,数组中的每个数据被称作元素。

2.7.1 数组的定义

(1)    数据类型 [] 数组名 = new 数据类型[] ;

(2)    数据类型 数组名 [] = new 数据类型[] ;

数组中最小的索引是0,最大的索引是”数组的长度-1”;

通过”数组名.length”的方式来获取数组的长度,既元素的个数。

在定义数组时只指定数组的长度,由系统自动为元素赋初值的方式称作动态初始化。

在初始化数组时还有一种方式叫做静态初始化,就是在定义数组的同时就为数组的每个元素赋值。

静态初始化由两种方式,具体格式如下:

  1. 类型 [] 数组名 = new 类型[]{元素,元素,……};
  2. 类型 [] 数组名 ={元素,元素,……};

2.7.2数组的常见操作

1.遍历数组

在操作数组时,经常需要依次访问数组中的每个元素,这种操作称为数组的遍历。

2.数组最值

在操作数组时,经常需要获取数组中元素的最值。

3.数组的排序

2.7.3 多维数组

定义的方式,具体格式如下

(1)    Int [][] arr = new int [3][4];

(2)    Int [][] arr = new int [3][];

(3)    Int [][] arr = new int{{1,2},{3,4,5,6},{7,8,9}};

第2章 Java编程基础的更多相关文章

  1. java入门第二章——java编程基础

    习题 一.填空题 (p)1.java中的程序代码都必须在一个类中定义,类使用(class)关键字来定义. (p)2.布尔常量即布尔类型的两个值,分别是(true)和(false) (p18)3.jav ...

  2. Java入门——(1)Java编程基础

    Java入门--(1)Java编程基础 第二章 Java编程基础   JAVA 代码的基本格式: 修饰符 class 类名{ 程序代码 }   2.1关键字:赋予了特殊含义的单词.   2.2标识符: ...

  3. Java编程基础-面向对象(中)

    本章承接Java编程基础-面向对象(上)一文. 一.static关键字 在java中,定义了一个static关键字,它用于修饰类的成员,如成员变量.成员方法以及代码块等,被static修饰的成员具备一 ...

  4. Objective-C 基础教程第三章,面向对象编程基础知

    目录 Objective-C 基础教程第三章,面向对象编程基础知 0x00 前言 0x01 间接(indirection) 0x02 面向对象编程中使用间接 面向过程编程 面向对象编程 0x03 OC ...

  5. Java开发知识之Java编程基础

    Java开发知识之Java编程基础 一丶Java的基础语法 每个语言都有自己的语法规范.例如C++ 入口点是main. 我们按照特定格式编写即可. Java也不例外. Java程序的语法规范就是 Ja ...

  6. 第一章 C++编程基础

    第一章 C++编程基础 1.1 如何撰写C++程序 赋值 assignment复合赋值 (compound assignment) += 函数(function)是一块独立的程序代码序列(code s ...

  7. java编程基础二进制

    0.java编程基础 01.二进制(原码,反码,补码) 02.位运算 03.移位运算符 二进制 原码,反码,补码 1.基本概念 二进制是逢2进位的进位制,0,1是基本算符. 现在的电子计算机技术全部使 ...

  8. Java编程基础——数组和二维数组

    Java编程基础——数组和二维数组 摘要:本文主要对数组和二维数组进行简要介绍. 数组 定义 数组可以理解成保存一组数的容器,而变量可以理解为保存一个数的容器. 数组是一种引用类型,用于保存一组相同类 ...

  9. Java编程基础——流程控制

    Java编程基础——流程控制 摘要:本文主要介绍Java编程中的流程控制语句. 分类 流程控制指的是在程序运行的过程中控制程序运行走向的方式.主要分为以下三种: 顺序结构:从上到下依次执行每条语句操作 ...

随机推荐

  1. python迭代器Itertools

    https://docs.python.org/3.6/library/itertools.html 一无限迭代器: Iterator Arguments Results Example count( ...

  2. RabbitMQ 消息确认机制以及lazy queue+ disk消息持久化

    一:Basic的一些属性,一些方法 1. 消费端的确认 自动确认: message出队列的时候就自动确认[broke] basicget... 手工确认: message出队列之后,要应用程序自己去确 ...

  3. 2018-2019-2 20165239 《网络对抗技术》Kali的安装 第一周

    2018-2019-<网络对抗技术> Kali安装 20165239其米仁增 一.资源下载以及工具安装 1.下载虚拟机工具VMware. 下载链接 :https://www.baidu.c ...

  4. Linux中的官方源、镜像源汇总

    转载一篇文章,很有用 (一).企业站 搜狐: http://mirrors.sohu.com/ 网易: http://mirrors.163.com/ 阿里云: http://mirrors.aliy ...

  5. 2018-2019-2 《网络对抗技术》Exp0 Kali安装 Week1 20165319

    安装kali 我从网上找了相应教程一步一步跟着走,教程链接:(https://blog.csdn.net/qq_40950957/article/details/80468030) 安装成功: 配置共 ...

  6. (六)read读取控制台输入

    1.基本语法 read(选项)(参数) 选项: -p:指定读取值时的提示符: -t:指定读取值时等待的时间(秒). 参数 变量:指定读取值的变量名 2.案例实操 (1)提示7秒内,读取控制台输入的名称 ...

  7. AspNetCore.AsyncInitialization库源码分析

    AspNetCore.AsyncInitialization 这个库是用来实现在asp.net core应用程序启动时异步执行异步任务.可参考:如何在ASP.NET Core程序启动时运行异步任务(2 ...

  8. 第三方布局框架Neon初探

    github地址:https://github.com/mamaral/Neon 居中 设置 view 在 superview 的中心,调用 anchorInCenter()并设置view大小,相当于 ...

  9. powershell_基础篇

    powershell 想必大家对windows操作系统下的cmd命令提示符可能并不陌生,大多数人都应该使用过它.而对于今天我们要学习的PowerShell跟cmd有什么关系呢?可以简单地说,Power ...

  10. Exp5 MSF基础应用 20164302 王一帆

    1.实验内容 1.1实验要求 一个主动攻击实践,ms08_067; 一个针对浏览器的攻击,MS10-018(成功且唯一),MS12-004(成功且唯一): 一个针对客户端的攻击,adobe_toolb ...