第二章 Java编程基础

第二章 Java编程基础



目录

  • 一. Java基本语法
    • 1. 基本格式
    • 2. 注释
    • 3. 标识符
    • 4. 关键字
    • 5. 常量
  • 二. 变量
    • 1. 定义
    • 2. 数据类型
    • 3. 整数类型变量
    • 4. 浮点类型变量
    • 5. 字符类型变量
    • 6. 布尔类型变量
    • 7. 类型转换
    • 8. 自动提升
    • 9. 变量作用域
  • 三. 运算符
    • 1. 算数运算符
    • 2. 赋值运算符
    • 3. 比较运算符
    • 4. 逻辑运算符
    • 5. 运算符的优先级
  • 四. 选择结构语句
    • 1. if
    • 2. if…else
    • 3. if…else if…else
    • 4. 三元运算符
    • 5. Switch
  • 五. 循环结构语句
    • 1. While
    • 2. Do…while
    • 3. For
    • 4. 跳转语句
  • 六. 方法
    • 1. 概述
    • 2. 格式
    • 3. 重载
  • 七. 数组
    • 1. 声明方式
    • 2. 不同数据类型的数组元素的默认初始值
    • 3. 静态初始化
    • 4. 遍历
    • 5. 最值
    • 6. 排序



一. Java基本语法

1. 基本格式

Java代码放在一个类中,类使用class关键字定义,在class前面可以有类的修饰符。

修饰符 class 类名{
程序代码
}

Java程序代码分为结构定义语句功能执行语句

结构定义语句用于声明一个类或方法。
功能执行语句用于实现具体的功能。必须用;结束语句。

例如我们在前面一章所写的代码中的System.out.println(“hello world”);

在这里插入图片描述

Java语言严格区分大小写。编写时格式排版没有严格要求,但一个连续的字符串不能分成两行书写,但如果实在是要分行,需要将字符串分成两个字符串,然后用+连接起来。


2. 注释

单行注释 //注释内容
多行注释 /*注释内容*/
文档注释 /**注释内容*/


3. 标识符

  在Java中,包名,类名,方法名,参数名,变量名等,称为标识符。标识符可以由字母、数字、下画线(_)和美元符号($)组成,但标识符不能以数字开头,不能是Java中的关键字。

Java程序标识符命名规则:
·包名的所有字母一律小写。
·类名和接口名每个单词的首字母都要大写。
·常量名的所有字母都要大写,单词之间用下画线连接。
·变量名和方法名的第一个单词首字母小写,从第二个单词开始每个单词的首字母大写。


4. 关键字

abstract、assert、boolean、break、byte、case、catch、char、class、continue、default、do、double、else、enum、extends、final、finally、float、for、if、implements、import、int、interface、instanceof、long、native、new、package、private、protected、public、return、short、static、strictfp、super、switch、synchronized、this、throw、throws、transient、try、void、volatile、while


5. 常量

整型常量:二进制(0b或0B开头)、八进制(以0开头)、十进制(除0本身外,开头不能是0)、十六进制(0x或0X开头)。

浮点数常量:单精度浮点数(以f或F结尾)和双精度浮点数(以d或D结尾),若不加任何后缀,默认double。

字符常量:需要用’’括起来。

字符串常量:需要用””括起来。

布尔常量:true和false。

Null常量:null,表示空。


二. 变量

1. 定义

例子:

int x=0,y;
y=x+3;
定义了两个变量x和y,x在定义的同时赋值,y没有初始值。


2. 数据类型

  Java是强类型编程语言,在变量定义时必须声明变量的数据类型。Java中数据类型分为基本数据类型和引用数据类型。

在这里插入图片描述


3. 整数类型变量

在这里插入图片描述

  在为一个long类型的变量赋值时,所赋值的后面要加上字母L(或小写l),说明赋值为long类型。如果赋的值未超出int型的取值范围,则可以省略字母L(或小写l)。


4. 浮点类型变量

在这里插入图片描述

  在Java中,一个小数会被默认为double类型的值,因此在为一个float类型的变量赋值时,在所赋值的后面一定要加上字母F(或者小写f),而为double类型的变量赋值时,可以在所赋值的后面加上字母D(或小写d),也可以不加。


5. 字符类型变量

  在Java中,字符类型变量用char表示,用于存储一个单一字符。Java中每个char类型的字符变量都会占用2个字节。在给char类型的变量赋值时,需要用一对英文半角格式的单引号(’ ‘)把字符括起来,如’a’。

例如:

char c = ‘a’; // 为一个char类型的变量赋值字符a
char ch = 97; // 为一个char类型的变量赋值整数97,相当于赋值字符a


6. 布尔类型变量

  在Java中,布尔类型变量只有true和false两个值。


7. 类型转换

  自动类型转换:即隐式类型转换。是指两种数据类型在转换的过程中不需要显示声明,由编译器自动完成。其需同时满足两个条件:两种数据类型彼此兼容,目标类型的取值范围大于源类型的取值范围。

例如:

byte b = 3;
int x = b;

自动转换情况:

(1)整数类型之间可以实现转换。例如,byte类型的数据可以赋值给short、int、long类型的变量;short、char类型的数据可以赋值给int、long类型的变量;int类型的数据可以赋值给long类型的变量。

(2)整数类型转换为float类型。例如,byte、char、short、int类型的数据可以赋值给float类型的变量。

(3)其他类型转换为double类型。例如,byte、char、short、int、long、float类型的数据可以赋值给double类型的变量。

  强制类型转换:即显式类型转换。是指两种数据类型之间的转换需要进行显式声明。当无法进行自动转换时,这时就需要进行强制类型转换。

例如:

/*
package chapter02;public class Change1 {public static void main (String[] args) {int num = 4;byte b = num;System.out.println(b);}
}
*///程序报错,显然数据类型不兼容,不能将int类型转换为byte类型
//因为一个int类型的值赋给byte类型的变量b时,由于int类型的取值范围大于byte类型的取值范围
//这样的赋值会导致溢出。//下面进行强制类型转换,即强制将int类型的值赋给byte类型的变量
//目标类型 变量 = (目标类型)变量0
package chapter02;public class Change1 {public static void main (String[] args) {int num = 4;byte b = (byte) num;System.out.println(b);}
}

但有时也会有数据精度丢失,

例如:

public class Example02 {public static void main(String[] args) {byte a;                // 定义byte类型的变量aint b = 298;          // 定义int类型的变量ba = (byte) b;System.out.println("b=" + b);System.out.println("a=" + a);}
}

在这里插入图片描述

当将变量b的类型强转为byte类型后,前面3个高位字节的数据丢失,数值发生改变。

在这里插入图片描述


8. 自动提升

例子:

public class Example03 {public static void main(String[] args) {byte b1 = 3;	      // 定义一个byte类型的变量byte b2 = 4;byte b3 = (byte)(b1 + b2);	// 两个byte类型变量相加,赋值给一个byte类型变量System.out.println("b3=" + b3);}
}

表达式b1+b2运算期间,变量b1和b2都被自动提升为int型,表达式的运算结果也就成了int型,将该结果赋给byte型的变量,需要进行强制类型转换。

在这里插入图片描述


9. 变量作用域

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

在这里插入图片描述

package chapter02;public class zyy {public static void main(String[] args) {int x = 12;{int y = 96;System.out.println(x);System.out.println(y);}//y = x;System.out.println(x);}
}//显而易见,编译器找不到y。错误原因在于,变量y的作用域在7-9行代码。在11行对y进行赋值是在变量的作用域之外的。


三. 运算符

1. 算数运算符

在这里插入图片描述


2. 赋值运算符

在这里插入图片描述

  在使用+=、-=、*=、/=、%= 运算符进行赋值时,强制类型转换会自动完成,程序不需要做任何显式地声明。

例如:

public class Example05 {public static void main(String[] args) {short s = 3;int i = 5;s += i;	//强制类型转换自动完成System.out.println("s = " + s);}
}


3. 比较运算符

在这里插入图片描述


4. 逻辑运算符

在这里插入图片描述

&与&&的区别

public class Example06 {public static void main(String[] args) {int x = 0; 						// 定义变量x,初始值为0int y = 0; 						// 定义变量y,初始值为0int z = 0; 						// 定义变量z,初始值为0boolean a, b; 					// 定义boolean变量a和ba = x > 0 & y++ > 1; 			// 逻辑运算符&对表达式进行运算System.out.println(a);System.out.println("y = " + y);b = x > 0 && z++ > 1; 			// 逻辑运算符&&对表达式进行运算System.out.println(b);System.out.println("z = " + z);}
}

  在使用“&”进行运算时,不论左边为true或者false,右边的表达式都会进行运算。在使用“&&”进行运算,当左边为false时,右边的表达式就不再进行运算,因此“&&”被称作短路与。

|与||的区别,与&和&&的区别同理。

5. 运算符的优先级

在这里插入图片描述


四. 选择结构语句

1. if

if (条件语句)
{
代码块
}

2. if…else

if (判断条件){
执行语句1

}
else{
执行语句2

}

3. if…else if…else

if (判断条件1) {
执行语句1
}
else if (判断条件2) {
执行语句2
}

else if (判断条件n) {
执行语句n
}
else {
执行语句n+1
}

4. 三元运算符

判断条件 ? 表达式1 : 表达式2
注意:
(1)条件运算符“?”和“:”是一对运算符,不能分开单独使用。
(2)条件运算符的优先级低于关系运算符与算术运算符,但高于赋值运算符。
(3)条件运算符可以进行嵌套,结合方向自右向左。例如,a>b?a:c>d?c:d应该理解为a>b?a:(c>d?c:d),这也是条件运算符的嵌套情形,即三元表达式中的表达式2又是一个三元表达式。


5. Switch

switch (表达式){
case 目标值1:
执行语句1
break;
case 目标值2:
执行语句2
break;
......
case 目标值n:
执行语句n
break;
default:
执行语句n+1
break;
}

  switch语句将表达式的值与每个case中的目标值进行匹配,如果找到了匹配的值,则执行对应case后面的语句;如果没找到任何匹配的值,则执行default后的语句。


五. 循环结构语句

1. While

while(循环条件){
执行语句

}


2. Do…while

do {
执行语句

} while(循环条件);
循环体会无条件执行一次,然后再根据循环条件决定是否继续执行。


3. For

for(初始化表达式; 循环条件; 操作表达式)
{
执行语句

}


4. 跳转语句

Break
  当它出现在switch条件语句中时,作用是终止某个case并跳出switch结构。当它出现在循环语句中,作用是跳出循环语句,执行循环后面的代码。
  当break语句出现在嵌套循环中的内层循环时,它只能跳出内层循环,如果想使用break语句跳出外层循环,则需要在外层循环中使用break语句。

Continue
  continue语句用在循环语句中,它的作用是终止本次循环,执行下一次循环。


六. 方法

1. 概述

  方法就是一段可以重复调用的代码。注意,有些书中也会把方法称为函数。


2. 格式

修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2,...){
执行语句

return 返回值;
}


3. 重载

即在同一个作用域内方法名相同但参数个数或者参数类型不同的方法。

例子:

public class Example21 {public static void main(String[] args) {// 下面是针对求和方法的调用int sum1 = add(1, 2);int sum2 = add(1, 2, 3);double sum3 = add(1.2, 2.3);// 下面的代码是打印求和的结果System.out.println("sum1=" + sum1);System.out.println("sum2=" + sum2);System.out.println("sum3=" + sum3);}// 下面的方法实现了两个整数相加public static int add(int x, int y) {return x + y;}// 下面的方法实现了三个整数相加public static int add(int x, int y, int z) {return x + y + z;}// 下面的方法实现了两个小数相加public static double add(double x, double y) {return x + y;}
}

  上述代码中,定义了三个同名的add()方法,但它们的参数个数或类型不同,从而形成了方法的重载。在main()方法中调用add()方法时,通过传入不同的参数便可以确定调用哪个重载的方法,如add(1,2)调用的是第13~14行代码定义的add()方法。需要注意的是,方法的重载与返回值类型无关。


七. 数组

1. 声明方式

第一种:
数据类型[] 数组名 = null;

第二种:
数据类型[]数组名;
数组名= new数据类型[长度];


2. 不同数据类型的数组元素的默认初始值

在这里插入图片描述


3. 静态初始化

第一种:
类型[] 数组名 = new 类型[]{元素,元素,……};

第二种:
类型[] 数组名 = {元素,元素,元素,……};


4. 遍历

例子:

public class Example27 {public static void main(String[] args) {int[] arr = { 1, 2, 3, 4, 5 };          // 定义数组// 使用for循环遍历数组的元素for (int i = 0; i < arr.length; i++) {System.out.println(arr[i]);        // 通过索引访问元素}}
}


5. 最值

例子:

public class Example28 {public static void main(String[] args) {int[] arr = { 4, 1, 6, 3, 9, 8 };  	// 定义一个数组int max = getMax(arr);               	// 调用获取元素最大值的方法System.out.println("max=" + max); 	// 打印最大值}static int getMax(int[] arr) {int max = arr[0];  // 定义变量max用于记住最大数,首先假设第一个元素为最大值// 下面通过一个for循环遍历数组中的元素for (int x = 1; x < arr.length; x++) {if (arr[x] > max) { 			// 比较 arr[x]的值是否大于maxmax = arr[x];   				// 条件成立,将arr[x]的值赋给max}}return max;              				// 返回最大值max}
}


6. 排序


(未完待续……)
上次更新时间2023年4月10日



本篇博客为本人学习Java时的详细笔记,如有错误之处,还望各位指正。
文章为原创,如要转载请注明出处

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/252779.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Java基础 —— 编程入门

一、比特(bit)和字节(byte) 一个0或者一个1存储为一个比特(bit)&#xff0c;是计算机中最小的存储单位。计算机中是最基本的存储单元是字节(byte)。 每个字节由8个比特构成。 计算机就是一系列的电路开关。每个开关存在两种状态:关(off)和开(on)。如果电路是开的&#xff0c;它…

5.Java编程基础

&#x1f4cb; 个人简介 &#x1f496; 作者简介&#xff1a;大家好&#xff0c;我是W_chuanqi&#xff0c;一个编程爱好者 &#x1f4d9; 个人主页&#xff1a;W_chaunqi &#x1f600; 支持我&#xff1a;点赞&#x1f44d;收藏⭐️留言&#x1f4dd; &#x1f4ac; 愿你我共…

Java编程基础知识(一)

目录 一.Java的基本语法 1.Java的基本语法格式 2.Java中的注释 3.Java中的关键字 Java中的标识符 二.Java中的常量与变量 1.常量 2.变量 三.Java中的运算符 四.数据输入 一.Java的基本语法 1.Java的基本语法格式 编写Java程序必须先声明一个类&#xff0c;然后再类中…

第二章:JAVA编程基础

目录 一&#xff1a;Java的基本语法格式 二&#xff1a;Java中的变量与常量 三&#xff1a;Java中的运算符 四&#xff1a;选择结构语句 五&#xff1a;循环结构语句 六&#xff1a;数组 一&#xff1a;Java的基本语法格式 1&#xff1a;语法格式 [修饰符] class 类名{…

Java入门必备知识

目录 一、前言 二、HelloWord案例编写 三、基础语法 1.快速生成语句&#xff1a;&#xff08;IDEA编辑器下&#xff09; 2.注释&#xff1a; 3.标识符 标识符&#xff1a; 标识符的组成&#xff1a; 标识符的组成规则&#xff1a; 4.标识符命名约定&#xff1a; 小驼峰…

【Java基础知识 1】Java入门级概述,让阿里架构师告诉你为什么要分库分表

1998年12月8日&#xff0c;第二代Java平台的企业版J2EE发布。 1999年4月27日&#xff0c;HotSpot虚拟机发布。 2005年6月&#xff0c;在Java One大会上&#xff0c;Sun公司发布了Java SE 6。此时&#xff0c;Java的各种版本已经更名&#xff0c;已取消其中的数字2&#xff0c…

Java编程基础

目录 第一篇、Java编程基础 ❀Java中的属性名词 ❀Java数据类型 ❀转义字符 ❀&& 和 & 与 || 和 | ❀方法 第二篇、Java面向对象编程 ❀类和对象 ❀面向过程和面向对象的区别 ❀面向对象程序设计的主要特性 ❀类和对象概述 ❀对象的内存结构 ❀垃圾空间…

【Java编程指南】语法基础

目录 一、前言 二、关键字 三、数据类型 1.存储单元 2.存储范围 3.类型转换 四、常量 五、变量 六、标识符 七、注释 一、前言 学习目标 1&#xff1a;熟悉Java的关键字、数据类型&#xff08;包括范围&#xff09;、常量与变量的区别 学习目标 2&#xff1a;类型转…

Java 学习(一)Java语言基础

Java 语言基础&#xff08;一&#xff09; 前言一、注释和标识符1. 注释2. 字符集3. 标识符4. 关键字(略) 二、数据类型1.基本类型2.引用类型 三、 常量和变量1.常量2.变量 四、操作符1.赋值运算符2.算术运算符3.关系运算符4.逻辑运算符5.位运算符6.三位运算符7.instanceof运算…

java编程基础(入门级)(超级完整版)

java基础编程&#xff08;入门&#xff09; 01基础知识 1.计算机基础 【1】进制 A.十进制转化二进制 除以2&#xff0c;求余数&#xff0c;商继续除以2&#xff0c;一直到0为止&#xff0c;从底下往上得到结果。 B.二进制转化十进制 1 | 1 | 0 | 0 2 3 ∣ 2 2 ∣ 2 1 ∣ 2 …

Ext JS 6 驾临

是的&#xff0c;Ext JS 6 就要来了&#xff01; 统一一份代码 Ext JS 6 最大的改变&#xff0c;莫过于就是将 PC 端与移动端的代码统一起来&#xff0c;务求采用相同 API 来开发不同平台的客户端界面&#xff0c;这样无论桌面、平板和手机都是使用同一个 JavaScript 框架&…

extjs02

Ext.js 自定义事件和监听器 2022-05-20 17:11 更新 事件是在类发生的时候触发的。 例如&#xff0c;当一个按钮被点击或元素被渲染之前/之后。 写事件的方法: 内置事件使用侦听器附加事件监听自定义事件 内置事件使用侦听器 xt JS提供了用于在Ext JS文件中编写事件和自定…

Extjs6 --- 学习笔记(1)创建一个新项目

原公司使用的前端框架是Extjs&#xff0c;于是系统学习了Extjs的4和6。旧东家的项目主要为后台管理系统&#xff0c;因此对前端界面UI的要求并不高&#xff0c;侧重于数据的展示与处理 &#xff0c;刚开始使用的是Extjs4&#xff0c;后升级成6。现在&#xff0c;把自己的学习过…

Extjs6 学习(一)

一 学习前的了解: 1.Extjs6其实是结合了两个框架:Extjs 和Sencha Touch; 2.Extjs6有两个工具包: classic (存放原来Extjs的可视化组件)和 modern (存放原来Sencha Touch的可视化组件); 3.你需要安装一个叫Sencha Cmd的工具, 这会让你的Extjs应用开发变得简单; 二 安装 1.下…

我的第一篇博客---ExtJs6安装

我的第一篇博客—ExtJs6安装 1、下载extjs6 GPL版和sencha cmd。 下载地址&#xff1a;http://pan.baidu.com/s/1qYGk2T2&#xff08;百度云盘里面就有这两个&#xff09; 官方下载地址&#xff1a; extjs6 GPL版&#xff1a;https://www.sencha.com/legal/gpl/ sencha cm…

ExtJs6 响应式布局

ExtJs6实现布局响应式 目前我想实现两个效果 1.屏幕分辨率低的时候&#xff0c;红色部分移到下面(north->south) 2.行列布局&#xff0c;分辨率大的时候显示一行4个&#xff0c;中等的时候显示一行3个&#xff0c;小的时候显示一行2个 效果如图所示 代码如下 var center…

用GoldWave剪辑编辑视频中的音频文件

现在无论是学生还是上班族&#xff0c;都会上一些网课学习&#xff0c;学生上网课加强巩固自己要考试的知识。上班上网课拓宽自己的知识面&#xff0c;增强专业技能。小编最近也报了一个网课&#xff0c;学习英语口语。 在上网课的时候&#xff0c;通常都会把网课给录下来&…

如何用GoldWave交叉淡化两首音乐?

音频编辑的交叉淡入淡出功能&#xff0c;是音频编辑的基础功能&#xff0c;但如淡出能让音频的开始与结束显得不那么突兀&#xff0c;也能让音频之间的过度更加流畅。 GoldWave中文版正可以让前一段音频淡出&#xff0c;而另一端音频淡入&#xff0c;这样声音既没有中断&#…

关于GoldWave给Vegas视频添加音频叠加的教程分享

有时我们会用Vegas为某段影片配音&#xff0c;我们要怎么把配音和背景声融合在一起呢&#xff1f;想必马上会有人反应过来&#xff1a;让配音和背景声分别置于两条轨道上就好了。这当然是一个相当好的方式。 可是&#xff0c;如果我想要把两段音频合成一个文件&#xff0c;方便…

巧用GoldWave预设,设置音频效果模板!

GoldWave是一款小巧、功能丰富的音频编辑软件。它的功能丰富体现在声音编辑、录制、播放、音频效果设置以及转换各种音频格式和支持丰富的音频格式&#xff0c;主要包括WAV、IFF、MP3、OGG以及DWD等数十种音频格式。除此之外&#xff0c;它还是一款非常友好的音频编辑工具&…