第一篇 Java基础知识复习

本文介绍了JAVA的基础知识,包括基本语法如系统输出、方法定义,数据类型如整数、浮点、布尔类型,以及变量声明和常量。还讲解了运算符的使用,如赋值、算术、比较和逻辑运算符,以及类型转换。此外,文章详细阐述了流程控制结构如if、while、for循环,以及数组的概念、创建、初始化和操作,包括一维和二维数组。最后,提到了冒泡排序、直接选择排序等排序算法。
摘要由CSDN通过智能技术生成

JAVA基础案列教程

syso+按着alt+/        输出System.out.print

main+按着alt+/        输出public static void main(String[] args){
alt+上下键                两行代码互换位置

ctrl+alt+上下键        复制上一行代码

第二章 JAVA编础程基
2.1掌握java基本语法
java中的程序代码分为结构定义和功能执行语句

结构定义声明类或方法

功能执行语句用于实现具体功能,每条功能执行语句的最后必须用英文分号“;”结尾。

java连续的字符串不能分开在两行中书写

例如System.out.print("wen

                                        zi");

可以System.out.print("wen“+

                                        字");

java的注释
java注释分为三中类型:

单行注释://内容

多行注释:/*内容

                     内容   */

“多行注释可以放单行注释,单行注释可以放多行注释

文档注释:以/**开头

Java的标识符
可以是任意顺序的大小写字母、下划线(_)、美元符号($)和数字组成,

不能是数字开头不能是Java的关键字

Java的关键字
关键字也称做保留字例如,

public权限共有、

如果定义关键字容易造成错误

 一、整数类型

  整数类型简称整形,用来储存整数数值,既没有小数部分的数值。可以是正数,也可以是负数。整形数据根据它所占内存大小的不同,可分为byte、short、int和long 4种类型。它们具有不同的取值范围。

数据类型    内存空间(8位等于1字节)    取值范围
byte    8位    
-128~127

short    16位    -32768~32767 
int     32位    -2147483648~2147483647
long    64位    -9223372036854775808~9223372036854775807
二、浮点类型

     浮点类型简称浮点型,用来存储含有小数部分的数值,Java语言中浮点类型分为单精度浮点类型(float)和双精度浮点类型(double),他们具有不同的取值范围,如下图

数据类型    内存空间(8位等于1字节)    取值范围
float    32位    1.4E-45~3.4028235E38
double    64位    4.9E-324~1.7976931348623157E308
       在默认的情况下小数都被看做double型,若想使用float型小数,则需要在小数后面添加F或f。另外,可以使用后缀d或D来表明这是一个double类型数据,但加不加d或D并没有硬性规定。而定义float型变量时,如果不加F或f,系统会认为时double类型数据,进而出错。

三、转义字符

      转义字符是一种特殊的字符变量,它以反斜杠“\”开头,后跟一个或多个字符。转义字符具有特定的含义,不同的字符原有的意义,故称“转义”。例如,printf函数的格式串中用到的“\n”就是一个转义字符,意思是“回车换行”。

四、布尔类型

布尔类型又称逻辑类型,简称布尔型,通过关键字boolean来定义布尔类型变量。布尔类型只有true和false两个值,分别代表布尔逻辑中的“真”和“假”。布尔值不能与整数类型进行转换。布尔类型通常被用在流程控制中,作为判断条件。

常量

1、标识符

标识符可以简单的理解位一个名字,是用来标识类名、变量名、方法名、数组名、文件名的有效字符序列

2、关键字

关键字又称保留字,是Java语言中已经被赋予特定意义的一些单词,不可以把这些单词作为标识符来使用。

 3、声明变量

声明变量就是要告诉编译器(compiler)这个变量的数据剋行,这样编译器才知道需要配置多少空间给他,以及它能存放什么样的数据。声明一个整数类型变量和声明一个类型变量,

int age;  \\声明int型变量

char char1 = 'r';   \\声明char型变量并赋值

4、声明常量

在程序运行过程中一直不会改变的量称为常量,通常也被称为“final变量”。常量在整个程序中只能被赋予一次。在为所有的对象共享值时,常量是非常有用的。

5、成员变量

在类体中所有声明的变量被称为成员变量,成员变量在整个类中都有效。类的成员变量又可分为两种,即为静态变量和实例变量。

运算符与类型转换
&&与,||或 ,!非。~取反,^异或

&&两者都为真,结果才是真。

||只要一者为真,结果就是真。

!非真为假,非假为真。

&两者都为1,结果为1

|只要有一者为1,结果为1

~0变1,1变0

^两者相同为0,不同为1

一、赋值运算符

   赋值运算符以符号“=”表示,它是一个二次元运算符(对两个操作数作处理),其功能是将右方操作数所含的赋值给左方的操作数。

 二、算数运算符

  Java中的算术运算符主要有+(加)、-(减)、*(乘)、/(除)、%(求余),它们都是二次元运算符。Java中算术运算符的功能及使用方式如下

 三、自增和自减运算符

   自增、自减运算符是单位运算符,可以放在操作元之前,也可以放在操作元之后。

四、比较运算符

   比较运算符属于二次元运算符,用于程序中的变量之间、变量和自变量之间以及其他类型的信息之间的比较。 

 五、逻辑运算符

 六、位运算符

位运算符除“按位与”和“按位或”运算符外,其他只能用于处理整数的操作数,包括byte、short、char、int、和long、等数据类型。位运算符完全针对为方面的操作。

七、三元运算符

三元运算符的使用格式为:

条件式 ? 值1 : 值2;

三元运算符的运算规则为:若条件式的值为true,则整个表达式取“值1”,否则取“值2”例如:

boolean b =20<45 ? true : false;

上述程序表达式“20 <45”的运算结果返回真,那么 bolean 型变量b 取值为true。相反,如果表达式的运算结果返回为假,则 boolean 型变量 b 取值为 false。

三元运算符等价于 if...else 语句,例如上述代码等价于:
boolean a;        //声明 boolean 型变量
if(20<45)        //将 20<45作为判断条件
a = true,        //条件成立,将true 赋值给 a
else
a = false;        //条件不成立,将 false 赋值给 a

八、运算符优先级

九、数据类型转换 

类型转换是将一个值从一种类型更改为另一种类型的过程。例如,可以将 String 类型的数据“45转换为数值型,也可以将任意类型的数据转换为 String 类型。
如果从低精度数据类型向高精度数据类型转换,则永远不会溢出,并且总是成功的:而把高精数据类型向低精度数据类型转换时,则会有信息丢失,有可能失败。数据类型转换有两种方式,即隐式转换与显式转换。
十、隐式类型转换

从低级类型向高级类型的转换,系统将自动执行,程序员无须进行任何操作。这种类型的转换称
为隐式转换。下列基本数据类型会涉及数据转换,不包括逻辑类型和字符类型。这些类型按精度从低到高排列的顺序为byte<short <int <long <float < double。例如,可以将 int 型变量直接赋值给 flat 型变量,此时 int 型变量将隐式转换成 at 型变量。代码如下:
int x= 50;        /声明int型变量x

float y=x        //将x赋值给y,y的值为 50.0
隐式转换也要遵循一定的规则,来解决在什么情况下将哪种类型的数据转换成另一种类型的数据表 

十一、显示类型转换

当把高精度的变量的值赋给低精度的变量时,必须使用显式类型转换运算(又称强制类型转换
语法如下:
(类型名)要转换的值
例如,将高精度数字转换为低精度数字。代码如下:
int a =(int)45.23:                 //此时输出a的值为45
long y =(long)456.6F;       //此时输出y的值为456
nt b = (int)d.                   //此时输出b的值为100

执行显式类型转换时,可能会导致精度损失。

流程控制
1,分支结构;

主要有四种:if结构、if...else结构、if...else if结构、switch…case结构。

if结构:满足条件时执行语句,不满足则不执行。

if...else结构:满足条件执行语句,不满足则执行另外的语句。

if...else if结构:多个条件,满足不同条件执行不同语句。

switch…case结构:一种特殊的分支结构,只能用于判断整数,需要配合break使用

2,循环结构;while(条件){
2

}

3

1,1->条件为真->2->....条件为真->2->条件为假->3

do....while循环;

1 do{2}while(条件)3, 1->2->条件为真->2条件为真->....->2条件为假->3

for循环;

3;for(2;3;4){
5

}

6

1->2->3T->5->4->.....->3T->5->4->3F->6

while嵌套do....while;

1while(条件1){ 1

2 ->条件1为真->2->

do{ 3->条件2为真->...->3->条件2为真->

3 3->条件2为假->4

}while(条件2) ->........

4 ->条件1为真->2->

} 3->条件2为真->....->3->条件2为真->

5 3->条件2为假->4

->条件1为假->5

do...while嵌套while;

1 1->

do{ 2->条件1为真->3->...->条件1为真

2 ->3->条件1为假->4->条件2为真->

while(条件1){ ....->

3 2->条件1为真->3->....->条件1为真

} ->3->条件1为假->4->条件2为真->

4 2->条件1为真->3->.....->条件1为真

}while(条件2) ->3->条件1为假->4->条件2为假->5

while环,do.....while循环,for循环流程图。
while嵌套do....while循环和do...while嵌套while的流程图。

数组
5.1数组概念
是由很多格子组成的,具体存储什么东西取决于你给的定义。数组是具有相同类型的一组数据的集合,可以根据数组的维度分为一维数组,二维数组...

5.2一维数组
一维数组实质上是一组相同类型的线性集合,当在程序中需要处理一组数据,或者传递一组数据时,可以应用这种类型的数组。

5.2.1创建一维数组
先声明,再用new关键字去进行内存分配

数组元素类型 数组名字[];

数组元素类型[] 数组名字;

数组元素类型决定了数组的数据类型,它可以是JAVA中任意的数据类型,包括简单类型和组合类型。数组名字为一个合法的标识符。

声明的同时为数组分配内存

这种创建数组的方法是将数组的声明和内存的分配合在一起执行。语法如下

数组元素的类型 数组名 = new 数组元素的类型[数组元素的个数];

5.2.2初始化一维数组
数组与基本数据类型一样可以进行初始化操作。数组的初始化可分别初始化 数组中的每个元素。数组的初始化有以下两种方式:

int arr[]=new int{1,2,3,5,25};

int arr2[]={34.23.12.6};

5.2.3使用一维数组
在JAVA集合中,一维数组是常见的一种数据结构。那么,如何使用一维数组解决 生活中的实际问题呢?

5.3二维数组
5.3.1创建二维数组
先声明,再用new关键字进行内存分配

数组元素的类型 数组名字[][];

数组元素的类型[][]数组名字;

申明二维数组,代码如下:

int a [][]

5.3.2初始化二维数组
二维数组的初始化与一维数组初始化类似,同样可以使用大括号完成。

5.3.3使用二维数组
二维数组在实际应用中用得非常广泛。下面的实例就是使用二维数组输出一个3行4列且所有元素都是0的矩阵。

5.4数组的基本操作
5.4.1遍历数组
遍历数组就是获取数组中的每个元素。通常遍历数组都是使用for循环来实现。遍历一维数组很简单,也很好理解。

5.4.2填充替换数组元素
数组中的元素定义完成后,可通过Arrays类的静态方法fill()来对数组中的元素进行替换。该方法通过各种重载形式可完成对任意类型的数组元素的替换。

5.4.3对数组进行排序
通过Arrays类的静态方法sort()可以实现对数组的排序。sort()方法提供了多种重载形式,可对任意类型的数组进行升序排序。

5.4.4复制数组
Arrays类的copyOf()方法与copyOfRange()方法可以实现对数组的赋值。copyOf()方法是复制数组至指定长度,copyOfRange()方法则将指定数组的指定长度复制到一个新数组中。

5.4.5查询数组
利用二分法

5.5多维数组
多维数组可以简单地理解为在数组中嵌套数组。在程序中比较常见的就是二位数组。

二维数组的定义有很多凡是,具体如下

方式一:
int[][]arr =new int [3][4];

上面的代码定义了一个3行4列的二位数组,结果如下

 

 方式二:
int[][] arr =new int [3][];

上述方式与第一种方式类似,只是数组中每个元素的长度不确定。结构如下

 上述方式定义的二位数组有三个元素,这三个元素都是数组,分别是[1,2]、[3,4,5,6]、[7,8,9].

课堂笔记

替换数组元素

Arrays.fill(数组名,值);

替换数组部分元素:前改后不改

Arrays.fill(数组名,前索引,后索引,值);

数组排序

Arrays.sort(数组名);

复制数组:空位补0 溢出去掉

新数组名=Arrays.copyof(旧数组名,新数组长度);

复制数组部分元素:前在后不在

新数组名=Arrays.CopyOfRange(旧数组名,前索引,后索引);

查询数组元素:先排序再查询

索引=Arrays.binarysearch(数组名,元素);

查询数组元素:先排序再查询 前含后不含

索引=Arrays.binarysearch(数组名,前索引,后索引,元素);

5.5数组排序算法
5.5.1冒泡排序
在程序设计中,经常需要将一组数列进行排序,这样更加方便统计与查询。程序常用的排序方法有冒泡排序、选择排序和反转排序等。冒泡排序以简洁的思想与实现方法而备受开发人员青睐,是广大学习者最先接触的一种排序算法,也是最常用的数组排序算法之一,它排序数组元素的过程总是将较小的数往前放、较大的数往后放,类似水中气泡往上升的动作,所以称为冒泡排序。

5.5.2直接选择排序
直接选择排序属于选择排序的一种,它的排序速度要比冒泡排序快一些,也是常用的排序算法,初学者应该掌握。

5.5.3反转排序
顾名思义,反转排序就是以相反的顺序把原有数组的内容重新排序。反转排序算法在程序中也经常用到。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值