javaSE(一):基础语法

本文详细介绍了Java编程中的集成开发环境(IDE)、注释的使用、关键字和标识符规则、变量与数据类型(包括基本数据类型、引用数据类型和转换),以及算术、比较、逻辑、赋值和条件运算符,还涵盖了控制台输入、控制语句(如if、switch、while、for、break和continue)以及方法的定义和调用。
摘要由CSDN通过智能技术生成

目录

一、IDE(集成开发环境,是所有开发工具的总称)

二、注释(对代码功能进行说明)

三、关键字

四、标识符

1.标识符的含义

2.标识符的命名规则

①语法强制规范

②约定俗成(参考阿里巴巴要求)

五、java变量

六、java数据类型 

1.数据类型的分类

①基本数据类型

②引用数据类型

2.基本数据类型转换

①默认转换

②强制转换

七、运算符

1.算术运算符

2.比较运算符

3.逻辑运算符

4.赋值运算符

5.条件运算符

6.位运算符

八、控制台输入

九、控制语句

1.条件语句

①if条件结构

②switch语句

③if语句和switch语句的比较 

2.循环语句(重复执行某些动作)

2.1三类语句

①while 语句

②do-while 语句

③for循环语句

 ④三种循环结构对比

2.2循环中使用的break & continue

①break 语句

②continue 语句

2.3循环嵌套

十、方法

1.方法定义

①无参数的方法(指定一个固定的操作)

②有参数的方法

③有参数有返回值

2.java中调用方法的形式


一、IDE(集成开发环境,是所有开发工具的总称)

VS, idea, VSCode

Java常用开发工具:idea(收费)、eclipse

二、注释(对代码功能进行说明)

①以某种特定的符号作为标记,对程序功能的说明,程序在运行过程中不会执行注释

②java语言有三种注释方式:

//用于单行注释,快捷键ctrl+/

/* */用于多行注释,快捷键ctrl+shift+/,ctrl+shift+\取消注释

/** */文档注释,用于为类,方法,变量进行注释,鼠标放上去会有提示

三、关键字

语言中被赋予特定含义的单词,用来修饰某些内容(类,方法,变量)

特点:

关键字都是小写字母

保留字:

java中未正式定义为关键字的,还不能在java中正式使用的单词,在后期版本中可能会被定义为关键字,不能用(const,goto

四、标识符

1.标识符的含义

Java中为类,方法,变量命名时,使用的字符序列称为标识符

(凡是自己可以起名字的名称都可以叫标识符)

2.标识符的命名规则

①语法强制规范

  • 由26个英文字母大小写,0-9,或$组成
  • 数字不可以开头
  • 不可以使用关键字和保留字,但能包含关键字和保留字
  • Java中严格区分大小写
  • 长度无限制
  • 标识符不能包含空格

②约定俗成(参考阿里巴巴要求)

见名知意

包名:全部小写

类名:首字母大写,多单词组成时,所有单词首字母大写 XxxYyyZzz(为了区分类名和变量名)

变量名和方法名:首字母小写,多单词组成时,首字母小写,其余首字母大写 xxxYyyZzz

常量:全部大写,多单词之间用_连接 MAX_VALUE PI

五、java变量

①程序运行中可以改变的,是一个存储空间

②变量是内存中的一小块区域,使用变量名来访问这块区域,因此,每一个变量使用前必须先申请(声明),然后申请内存空间,最后在使用前必须进行赋值(填充内容),赋值必须与类型一致才能使用

  • 变量是通过使用变量名来访问这块区域的
  • 其要素包括变量名变量类型
  • Java程序中每一个变量都属于特定的数据类型,在使用前必须对其声明

声明格式为:声明语法,数据类型,变量名1,变量名2

例如:int x,y,z

x=10

y=20

z=30

六、java数据类型 

1.数据类型的分类

①基本数据类型

8个关键字声明的,使用简单

整数

byteshortintlong(Java各整数类型有固定的表数范围和字段长度)

byte a=127占用储存空间1字节

short b=32767占用储存空间2字节

int c=100000占用储存空间4字节

long d=2222222222L占用储存空间8字节

Java语言的整书字面量默认为int型,声明long型常量可以在后加’l’或’L’)

浮点

float , double(也可以表示整数)

float e=1022.222f(浮点数字面量默认是double类型,声明float类型时,需要在字面量后面加上f/F)4字节

double f=100.3333 占用储存空间8字节

字符

char(只能表示一个字符,大小是2字节,可以表示世界上任意的字符,如果想表示一个字符串请用String)计算机只认识二进制不认识字符,每个字符在底层的编码表中有一个对应的整数编码

char g=’a’;

布尔型

boolean

boolean j=true;

boolean j1=false;


引用数据类型

系统中的类(字符串)作为类型,例如String 

 String s=”abcd”;


String是java语言中提供的一个类,用String来表示一种类型

运算规则:

①任意八种基本数据类型的数据与String类型只能进行连接“+”运算,且结果一定也是String类型

②String类型不能转为其他基本类型

例如:String s=”abcd”;底层存储与c语言一致,都是采用数组存储多个字符【‘a’,’b’,’c’,’d’】

备注:编码表

ASCII包含英文字母,其他符号

Unicode后来国际上发明了一种编码,可以包含全球任何国家的语言符号,兼容了ASCLL码的部分

Java中采用的是Unicode编码表

char类型,可以进行算术运算,在运算时,实际上用的是此字符在编码表中的十进制编号运算的

2.基本数据类型转换

除boolean之外的7种类型之间的转换


!!!备注

8种基本数据类型:

整数:byte short int long

浮点:float double

字符:char(一个字符底层编码对应一个整数编号)

逻辑值:boolean(true,false)


①默认转换

小容量类型大容量类型(可自动进行转换)

注意!!!

四个字节的float类型容量大于八个字节的long(小数和整数在底层的二进制存储计算方式不同)

②强制转换

大容量转为小容量,可能会出现问题

!!!可能出现的问题

【溢出了】:大容量大于小容量的最大值,多余的部分会被删掉

【精度降低了】:比如浮点类型转为整数类型时只会保留整数部分,小数部分会被删掉

七、运算符

1.算术运算符

+:①加法运算(数值+数值)②连接(数值+字符串 字符串+字符串)③正号

      注:整数不能和逻辑值进行运算

— :①减法②负号

*

/

%

++:自增1

-- :自减1


!!!自增自减的具体运算 

前置自增:先进行自身加1,后运算

后置自增:先运算,在进行自身加1

自增运算大致分为三大类:

①自增表达式单独出现

自增表达式单独出现时,两者结果一致

②自增表达式赋值给其他变量

③自增表达赋值给自身


2.比较运算符

==,!=:用于数值和数值之间的比较,还可以用于布尔型和布尔型,还可以用于引用类型和引用类型

> ,  < ,  >= , <= :只能比较数值与数值(char)大小

3.逻辑运算符

逻辑运算:逻辑值(true,fasle)与逻辑值之间的运算

!!!错误写法

15>a结果是布尔值true,而true>3不能进行比较

①  &:逻辑与

左右两边都是true结果为true,有一个为fasle,结果为false

当遇到false后,还会执行后边的表达式

输出结果:b=6

即int b = 5,自增之后等于6

②  &&:逻辑与(短路与)

左右两边都是true结果为true,有一个为fasle,结果为false

当遇到false后,不会执行后边的表达式

输出结果:b=6

可知后边的表达式根本没有执行,即当第一个表达式false后,后边的表达式不会再运行,效率更高

③  |:逻辑或

左右两边如果有一个是true,结果为true

当遇到true后,仍然会执行后面的表达式

输出结果:y=6

即int y = 5,自增之后等于6

④  ||:逻辑或(短路或)

左右两边如果有一个是true,结果为true

当遇到true后,不会再继续执行后面的表达式

输出结果:y=6

可知后边的表达式根本没有执行,即当第一个表达式true后,后边的表达式不会再运行,效率更高

⑤ !:逻辑非(取反)

输出false

⑥  ^  :逻辑异或(相同为假,不同为真)

4.赋值运算符

= :赋值时,注意左右两边的数据类型要一致,不同时,要遵循数据类型转换规则

注意:==和=之间的区别

 + =:

!!!注

当数据类型不一样时,会自动进行隐式类型转换

比如:s+=2(2属于int类型,自动转为short类型short=(short)int),所以s=s+2最好写成s+=2不容易出错

5.条件运算符

6.位运算符

日常开发中运算时也相对较少,但是巧妙的使用位运算可以大量减少运行开销,优化算法

<<:左移(左移一位相当于乘以2)

>>:右移(右移一位相当于除以2,带符号的位移:高位移动后,正数补0负数补1

>>>:无符号右移(右移一位相当于除以2,不带符号的位移:高位移动后,默认补0

&:与(只有1&1结果为1,否则是0)

|:或(只有0|0结果是0,否则是1)

^:异或(相同为0,不同为1)

~:非(取反)

&     |      ^  :

可以进行逻辑运算(左右两边是逻辑值),也可以进行位运算(数值)

八、控制台输入

Java提供Scanner类来实现从控制台向程序输入信息功能

具体步骤:

导入使用的类:import java.util.Scanner;

创建Scanner类型的对象:Scanner scanner = new Scanner(System.in);

③调用Scanner类的相关方法,来获取指定类型的变量

   next()用以取得用户输入的字符串;

   nextInt()将取得的输入字符串转换为整数类型;

   nextFloat()转换成浮点型;

   nextBoolean()转 换成布尔型;

例如:

    System.out.print("请输入姓名");

    Scanner scanner = new Scanner(System.in);

    String name= scanner.next ();

    System.out.println("姓名:"+name);

九、控制语句

1.条件语句

根据不同条件执行不同语句

①if条件结构

if条件结构是根据条件判断之后再做处理

if(条件表达式,最终返回一个布尔值){ 

}

if(条件表达式,最终返回一个布尔值){ 

}else{ 

}

if(条件表达式,最终返回一个布尔值){ 

}else

if (条件表达式,最终返回一个布尔值){ 

}

if(条件表达式,最终返回一个布尔值){

 }else

if(条件表达式,最终返回一个布尔值){

  }else{

  }

!!!注意

if/else/for…语句后面即使只有一行代码最好也添加{  } 避免歧义

②switch语句

多分支选择语句,根据表达式的值,来执行多个操作中的一个

switch (表达式){

case value1: 语句序列1;

[break];

 …………

case valueN: 语句序列N;

 [break];

 [default : 缺省语句;]

}

!!!需要注意的几点

①表达式的值可以是byte,short,int,char,枚举类型,String类型

②case语句后面只能使用常量(字面量)表达式;(如果使用变量可能会导致值一样)

③case后的值不能重复

④某个case分支如果没有提供break语句,则继续执行下一个case后的语句;(穿透性)

⑤当表达式的值与任一case子句中的值都不匹配时,将执行default后面的语句;

⑥如果没有default子句,则程序直接跳出switch语句

③if语句和switch语句的比较 

● if-else语句与switch-case语句比较

结论:凡是使用switch-case的结构都可以转换为if-else结构。反之,不成立。

开发经验:如果既可以使用switch-case,又可以使用if-else,建议使用switch-case。因为效率稍高。

● if-else语句优势

if语句的条件是一个布尔类型值,if条件表达式为true则进入分支,可以用于范围的判断,也可以用于等值的判断,使用范围更广

switch语句的条件是一个常量值(byte,short,int,char,枚举,String),只能判断某个变量或表 达式的结果是否等于某个常量值,使用场景较狭窄。

● switch语句优势

 当条件是判断某个变量或表达式是否等于某个固定的常量值时,使用if和switch都可以,习惯上使用switch更多,因为效率稍高。当条件是区间范围的判断时,只能使用if语句


2.循环语句(重复执行某些动作)

2.1三类语句

①while 语句

初始化部分

while(逻辑表达式){

循环体

迭代部分

}

输出结果: 

②do-while 语句

do { 语句; … ; }

while(逻辑表达式);

③for循环语句

for(表达式1; 表达式2; 表达式3){

       语句;

        … ;

}

初始变量,条件,迭代,空着可以陷入死循环

 ④三种循环结构对比

从循环次数角度分析:

do-while循环至少执行一次循环体语句。

for和while循环先判断循环条件语句是否成立,然后决定是否执行循环体。

如何选择:

遍历有明显的循环次数(范围)的需求,选择for循环

遍历没有明显的循环次数(范围)的需求,选择while循环

如果循环体语句块至少执行一次,可以考虑使用do-while循环

本质上:三种循环之间完全可以互相转换,都能实现循环的功能

2.2循环中使用的break & continue

①break 语句

用于终止某个语句块的执行。用在循环语句体中,可以强行退出循环

!!例如:

②continue 语句

用在循环语句体中,用于终止某次循环过程,跳过循环体中 continue语句下面未执行的循环,开始下一次循环过程

例如: 

2.3循环嵌套

将一个循环放在另一个循环体内,就形成了嵌套循环。其中, for ,while ,do…while均可以作为外层循环和内层循环。

备注:println()会自动换行

          Print()不会自动换行

          换行符号“\n”

• 结束内层循环

实质上,嵌套循环就是把内层循环当成外层循环的循环体。当只有内层循环的循环条件为false时,才会完全跳出内层循环,才可结束外层的当次循环,开始下一次的循环。

break只能结束所在那一层循环,不能结束外层循环

• 结束外层循环

在内层循环中结束外层循环,则需要使用标签,定义一个标签,如out,然后在需要跳出的地方,用break out就行了

十、方法

Java中的方法类似于其它语言的函数,将完成某个功能的代码进行封装,为它命名将功能封装为方法的目的是,可以实现代码重用,减少冗余

方法必须写在类中(.java文件中)

Java方法固定格式:

[访问权限修饰符 修饰符…] [返回值类型] 方法名(形式参数类型 参数名){

 Java语句;… … …

 [return 返回值;]

}

public:公共访问权限(任何地方可以调用)

static:静态的(可以直接使用类名调用)

void:此函数或方法没有返回值

menu:方法名

( ):参数列表

{ }:方法体

1.方法定义

比如定义一个家庭收支菜单,如下所示:

在main方法中调用menu方法如下图所示:

①无参数的方法(指定一个固定的操作)

②有参数的方法

输出结果: 

③有参数有返回值

修饰符:这是可选的,告诉编译器如何调用该方法,定义了该方法的访问类型

形式参数: 在方法被调用时用于接收外界输入的数据

返回值类型:事先约定的返回值的数据类型,如无返回值,必须给出返回值类型void。

方法体:方法体必须有{}括起来,在{}中编写完成方法功能的代码

返回值:方法在执行完毕后返还给调用它的环境的数据。

实参:调用方法时实际传给方法的数据。

2.java中调用方法的形式

类名/对象名.方法名(实参列表)

实参的数目、数据类型和次序必须和所调用方法声明的形参列表匹配, return 语句终止方法的运行并指定要返回的数据。


return语句:

return语句用于从当前执行的方法中退出, 返回到调用该方法的语句处继续执行。

有两种格式:

①return 值; //将值返回,方法必须声明有返回值

②return; //不返回任何值,表示终止方法执行,可以在声明为void的方法中使用

return也可以在没有返回值的方法中使用,表示终止方法运行,但是return后边不能有任何表达式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值