JavaSE基础语法
目录
一、IDEA的使用
常用设置
代码模板
快捷键,代码提示
二、注释的使用
三、关键字
四、标识符
五、变量
六、数据类型
计算机存储单位
基本数据类型转换
七、运算符
算数运算
比较运算符
逻辑运算符
赋值运算符
条件运算符
位运算
控制台输入与输出
控制语句
条件语句
根据不同条件,执行不同语句
if,if...else,if...else if...else if...else
循环语句
重复执行某些相同操作
for,while,do...while
八、条件语句
if-else语句与switch-case语句比较
九、循环
三种循环的比较
do-while循环至少执行一次
三种循环可以实现相互转换
break&continue
循环嵌套
十、方法
调用方法
一、IDEA的使用
IDEA官方地址
IDEA下载地址
IDE(Integrated Development Environment)集成开发环境
一般包括代码编辑器、编译器、调试器和图形用户界面等工具。
常用的Java开发工具
- IntelliJ IDEA(收费)
- Eclips(免费)
之前安装的jdk是运行环境
idea是开发工具(用于写代码)
- 下载和安装步骤:
进入官网下载->将其安装在"D:\Program Files\IntelliJ IDEA 2020.2.1\bin\idea64.exe"中->选择64-bit launcher(其他不用选)->等待安装即可
- 创建项目并进入编程界面:
进入软件后选择Do not import settings->选择主题并选择Skip Remaining and Set Defaults->创建新项目->连续点击两次next->输入项目名->在项目名下的src进行新建->鼠标右键->new->Java Class,这样就可以进行编程了
- 关闭项目:
选择菜单File->Close Project
- 删除项目:
在关闭项目后,在弹出的窗口中,选择相应的项目,在右边点击删除
常用设置
- 设置入口
显示工具栏:View->Appearance->Toolbar

之后设置直接点击扳手图标即可
或者
File->Settings
- 主题设置
Appearance & Behavior ->Appearance->Theme
- 鼠标滚轮设置字体大小
Editor->General->Change font size (Zoom) with Ctrl + Mouse Wheel
- 行号,方法分隔符
Editor->General->Appearance->Show line numbers(行号)/Show method separators(方法分隔符)
- 字体
Editor->General->Font(Font:那一行是字体样式,Size是字体大小,Line spacing是行间距)
- 注释颜色
Editor->Color Scheme->Language Defaults->(Block comment(多行),Doc Comment(多行),Line comment(单行))
- 修改文件编码
Editor->File Encodings(Global Encoding,Project Encoding),Transparent native-to-ascii conversion
- 自动编译
Build,Execution,Deployment->Compiler->Build project automatically,Compile independment modules in parallel
- 切勿开启省电模式,开启后将不进行代码提示
File->Power Save Mode
- 拆分合并文件窗口
右键代码上方.java文件->Split and Move Right
代码模板
生成main方法 main 回车
sout 回车 System.out.println(); soutm 回车 输出方法名称 soutv 回车 输出变量,参数,就近输出 fori 生成for循环 iter 生成增强for循环 prsf 生成private static final psfi private static final int
快捷键,代码提示
Ctrl+d 整行复制
Ctrl+x 整行删除
Ctrl+alt+L 代码格式化
Alt+回车 智能辅助
Editor->Live Templates->点击右上方'+'可进行自定义
工程/项目
out(编译后的class文件)
src(源代码)
包(文件夹,管理类)
类(一个类也就是一个.java文件)
main方法类似于c语言中的main函数
这个格式是固定的
也是启动java程序的入口
String表示java的字符串
public static void main(String[] args) {int a = 10;System.out.print(a); // 输出语句 不换行System.out.println(a);// 输出语句 自动换行}
二、注释的使用
- // 单行注释,快捷键为CTRL+/
- /* */ 多行注释,快捷键为Ctrl+shift+/,取消注释为CTRL+shift+/
- /** */ 文档注释,用于对类,类中变量,方法进行注释,在调用时将鼠标放在上面会显示说明
- 注意多行注释和文档注释的区别
三、关键字
- 定义:被java语言赋予特殊含义的英文单词,主要用来修饰包,类,变量,方法(函数)
- 特点:关键字所有字母都小写
| 用于定义数据类型的关键字 | ||||
| class | interface | enum | byte | short |
| int | long | float | double | char |
| boolean | void | |||
| 用于定义流程控制的关键字 | ||||
| if | else | switch | case | default |
| while | do | for | break | continue |
| return | ||||
| 用于定义访问权限修饰符的关键字 | ||||
| private | protected | public | ||
| 用于定义类,函数,变量修饰符的关键字 | ||||
| abstract | final | static | synchronized | |
| 用于定义类与类之间关系的关键字 | ||||
| extends | implements | |||
| 用于定义建立实例与引用实例,判断实例的关键字 | ||||
| new | this | super | instanceof | |
| 用于异常处理的关键字 | ||||
| try | catch | finally | throw | throws |
| 用于包的关键字 | ||||
| package | import | |||
| 其他修饰符关键字 | ||||
| native | strictfp | transient | volatile | assert |
| *用于定义数据类型值的字面值 | ||||
| true | false | null | ||
注意:关键字一共50个,其中const和goto是保留字
java保留字:现在版本尚未使用,但以后可能会作为关键字使用
四、标识符
1.定义:Java对各种变量、方法和类等命名时使用的字符序列,换言之,凡是自己可以起名字的名称都可以叫标识符。
2.定义标识符的规则(必须遵守的语法规则)
- 由数字0~9,26个大小写英文字母,下划线和$组成
- 不能以数字开头
- 不可以使用关键字和保留字,但可以包含关键字
- Java中严格区分大小写
- 长度无限制
- 不能包含空格
3.标识符的命名规范(软性要求)
- 起名时,为了提高阅读性,尽量有意义,“见名知意”
- Java中的名称命名规范
- 包名:字母全部小写
- 类名:建议每个单词的首字母大写
- 变量名,方法名:小驼峰式命名规则,首单词的首字母小写,从第二个单词开始首字母大写
- 常量名:单词全部大写,多个单词时用下划线隔开
- 尽量别以下划线和$作为开头或结尾
五、变量
- 定义: 变量是程序中最基本的存储单元,在程序运行过程中,值可以改变的量
- 变量其实是内存中一小块区域,使用变量名来访问这块区域,因此,每一个变量使用前要先定义(声明),然后必须进行赋值,才能使用。
- 要素包括变量名,变量的类型
- 数据类型 变量名 = 值;//使用前必须初始化值
六、数据类型
定义:程序中对于每一种数据都定义了明确的具体数据类型,在内存中 分配了不同大小的内存空间。
| 类型 | 占用存储空间(字节) | 范围 |
| byte | 1 | -128~127 |
| short | 2 | -2^15~2^15-1 |
| int | 4 | -2^31~2^31-1 |
| long | 8 | -2^63~2^63-1 |
Java各整数类型由固定的范围,不受操作系统的影响,以保证Java程序的跨系统使用。
定义long类型的变量时,赋值时需要以'l'或'L'作为后缀,尽量使用'L',因为'l'与数字'1'比较相近。
Java语言的整数字面量默认为int类型。
0b开头 表示二进制数
0x开头 表示十六进制数
0开头 表示八进制数
计算机存储单位
字节(Byte):是计算机存储的基本单位,一个字节等于8 bit
位(bit):是数据存储的最小单位。在二进制数系统中,每个0或1就是一位,叫做bit(比特),其中8 bit就称为一个字节(Byte)。
转换关系:8 bit = 1 Byte
1024 Byte = 1KB
1024 KB = 1 MB
1024 MB = 1GB
1024 GB = 1T
| 类型 | 占用的存储空间(字节) | 范围 |
| float | 4 | -3.403E38~3.403E38 |
| double | 8 | -1.798E308~1.798E308 |
Java浮点类型与整数类型类似,浮点类型也有固定的范围,不受操作系统影响
Java浮点类型由两种表示形式
- 十进制数形式
- 科学记数法形式
float:单精度,可以精确到小数点后七位
double:双精度,精度是float的两倍,通常使用此类型。
定义float类型的变量时,赋值时需要以'f'或'F'作为后缀。
Java的浮点型常量默认为double类型
逻辑型boolean(布尔)
boolean类型适于逻辑运算,一般用于程序流程控制。
Java语言中boolean类型数据只允许取值为true或false。
注意:不可以以0或非0的整数代替false和true,这点和C语言不同
字符型char
char类型数据用来表示一个单个字符
char类型占2个字节。
用单引号引起来的一个英文字母或一个中文汉字都可以
由于Java底层使用unicode编码,所以可以涵盖世界上所有书面语的字符
char类型的运算
char类型在字符编码表中由对应的数值(当作整数)。
char类型可以用来参与算数运算,运算的本质使用的Unicode编码中十进制编号
ASCII(American Standard Code for Information Interchange,美国信息互换标准代码)
在上个世纪60年代,美国制定了一套字符编码,对英文字符与二进制位的关系做了统一规定,这被称为ASCII码
ASCII:在计算机底层,所有数据都是用二进制来表示的,每一个二进制位(bit)有0和1两种状态,因此8个二进制位就可以组合出256中状态,这就被称为一个字(byte)
一个字节一共可以表示256种不同的状态,每一个状态对应着一个符号,从00000000到11111111.
ASCII码一共规定了128个字符的编码(包含32个不能打印出来的控制符号),只占用了一个字节的后7位,最前面的1位统一规定为0
缺点:不能表示所有字符
Unicode(Universal Multiple-Octet Coded Character Set)
将世界上所有的符号都纳入其中。这个编号从0x000000到0x10FFFF(十六进制),有110多万,每个字符都有一个唯一的Unicode编号,这个编号一般写成16进制,在前面加上U+
java底层采用unicode编码来存储字符
String不是基本数据类型,属于引用数据类型
使用一对双引号引起来表示一个字符串,内部可以包含0,1或多个字符
声明方式:String 字符串名 = "dasfhklk";
String是Java类库中提供的一个类,用类当作变量的数据类型
运算法则:
- 八种基本数据类型只能进行"+"(连接)运算,结果还是String类型
- String不能转换成其他类型
基本数据类型转换
转换分为默认转换和强制转换
规则:
- 将范围小的类型自动转换为范围大的类型
- 将范围大的类型转换为范围小的类型时,要加上强制类型转换符"()",但可能造成精度缺失或溢出
- 在多种数据类型进行混合运算时,系统首先将所有数据类型转换成范围最大的那一个,然后再进行运算

| 第1位 | 第2~9位 | 第10~33位 |
|---|---|---|
| S | E | M |
浮点数不是简单的表示数字的大小,而是按照一定的标准来分配的。其中第1位(符号位),即S,第2~9位(指数域),即E,第10~32位(小数域),即M。浮点数不是直接转换位十进制数值的,二十按照公式(V = (-1)^S * M * 2^E)计算而来的,虽然只用到4个字节,但比长整型的最大值要大。
七、运算符
| 分类 | 运算符 |
|---|---|
| 算数运算符 | +、-、*、/、%、++、-- |
| 赋值运算符 | =、+=、-=、*=、/=、%= |
| 比较(或关系)运算符 | >、>=、<、<=、==、!= |
| 逻辑运算符 | &、|、^、!、&&、|| |
| 位运算符 | &、|、^、~、<<、>>、>>> |
| 条件运算符 | (条件表达式)?结果1:结果2 |
算数运算
| 运算符 | 运算 |
| + | 正号 |
| - | 负号 |
| + | 加 |
| - | 减 |
| * | 乘 |
| / | 除 |
| % | 取余 |
| ++ | 自增运算 (在前)先加1,再使用其值 (在后)先用其值,再加1 |
| -- | 自减运算 (在前)先减1,再使用其值 (在后)先用其值,再减1 |
| + | 连接字符串 |
比较运算符
| 运算符 | 运算 |
| == | 相等 |
| != | 不等 |
| < | 小于 |
| > | 大于 |
| <= | 小于等于 |
| >= | 大于等于 |
| Instanceof | 判断是否为类的对象 |
比较运算符的结果都是boolean型(true or false)
比较运算符"=="不要误写成赋值运算符"="
逻辑运算符
| 运算符 | 运算 |
| &(逻辑与) | 只要一个为false, 结果就为false. 全为true,结果为true |
| |(逻辑或) | 只要一个为true, 结果就为true. 全为false,结果为false |
| !(逻辑非) | !true->false !false->true |
| &&(短路与) | 只要一个为false, 结果就为false. 全为true,结果为true |
| ||(短路或) | 只要一个为true, 结果就为true. 全为false,结果为false |
| ^(逻辑异或) | boolean值相同为false boolean值不同为true |
"&"和"&&"的区别:
- 进行"&"运算时,左边的表达式无论真假,右边的所有表达式都要进行运算
- 进行"&&"运算时,如果左边的表达式为真,右边表达式进行运算;如果左边的表达式为假,则右边的表达式不进行运算
"|"和"||"的区别同理,"||"当左边表达式为真,右边的表达式不运算
- 建议使用"&&"和"||",能减少运行时间
赋值运算符
符号:=
当"="两侧数据类型不一致时,可以使用自动类型转换或使用强制类型转换
扩展赋值运算符:+=、-=、*=、/=、%=
+= 符号进行隐式转换,将右边的数据类型自动转换为和左边一样的数据类型
short s =2;
s = s+2;//s+2系统自动转换为int类型,编译错误
s +=2;//系统隐式转换
条件运算符
(条件表达式)?表达式1:表达式2;
//条件表达式为true时,运算结果为表达式1
//条件表达式为false时,运算结果为表达式2
//如果将条件表达式的值赋给一个变量,要求表达式1和表达式2是同种或兼容的类型
位运算
| 运算符 | 运算 |
| << | 左移,高位丢弃,空位补0 |
| >> | 右移 最高位为0时,空位补0 最高位为1时,空位补1 |
| >>> | 右移 最高位不管是0还是1,空位都补0 |
| & | 二进制位进行&运算,只有1&1时结果为1,否则为0 |
| | | 二进制位进行|运算,只有0|0时结果为0,否则为1 |
| ^ | 相同为0,不同为1 1^1=0,0^0=0 1^0=1,0^1=1 |
| ~ | 各二进制码按补码各位取反 |
控制台输入与输出
/*Java提供的Scanner类来实现从控制台向程序输入信息的功能具体步骤:1.导包:import java.util.Scanner;(使用系统其它类时,也需要先导入,java.lang包除外)2.创建Scanner类型的对象:Scanner scan = new Scanner(System.in);3.调用Scanner类的相关方法(next()/nextXxx()),用户要输入的数据类型是什么就使用next+数据类型()的方法*/
//样例如下
import java.util.Scanner;//导包public class CSDN {public static void main(String[] args) {Scanner scan = new Scanner(System.in);//创建Scanner类型的对象String name = scan.next();//用字符串name来接收从控制台输入的姓名System.out.println("姓名:"+name);//打印姓名int age = scan.nextInt();//用int类型的age变量来接收从控制台输入的年龄System.out.println("年龄:"+age);//打印年龄}
}
控制语句
条件语句
根据不同条件,执行不同语句
if,if...else,if...else if...else if...else
循环语句
重复执行某些相同操作
for,while,do...while
八、条件语句
if (条件) {//条件表达式必须是一个返回boolean结果的表达式,true则执行语句,false则跳过//语句
}
if (条件1) {//语句1
} else {//语句2
}
if (条件1) {//语句1
} else if (条件2) {//语句2
}... ...
}else if(){//语句n
}else{//语句n+1
}
switch (表达式) {//表达式可以是byte,short,int,char,枚举类型,String类型case value1://case语句后面只能使用常量表达式且不能重复//语句1break;case value2://如果某个case分支没有提供break语句,则继续执行下一个case语句,直到遇到break或switch语句结束 //语句2break;case value3://case语句的穿透性,不写break,一旦匹配成功,不会判断下一个case的值,直接向后运行//语句3break;... ...case valueN://语句Nbreak;defaultvalueN+1://语句N+1break;
}
if-else语句与switch-case语句比较
switch-case语句可以转换为if-else语句,反之不成立
优先使用switch-case语句
if-else语句使用范围比switch-case语句广
九、循环
循环语句的四个组成部分
循环变量初始化 循环条件部分 循环体部分 迭代部分
while(逻辑表达式){//表达式结果为Boolean类型//循环体//迭代部分
}//逻辑表达式结果为true,则执行循环,直至为false,若一直为true则此循环为死循环
do{//语句;
}while(逻辑表达式);//先进入循环,再判断逻辑表达式
for (表达式1;表达式2;表达式3) {//语句;}//执行过程:执行表达式1,再执行表达式2(结果为true),则执行循环语句,再执行表达式3,返回判断表达式2;重复操作,直到表达式2位false
三种循环的比较
do-while循环至少执行一次
三种循环可以实现相互转换
break&continue
break语句用于强行终止循环,或在switch语句中终止某一语句
continue语句用于循环语句中,用于终止单次循环,跳过continue语句下面未执行的循环,开始下一次循环
循环嵌套
将一个循环放在另一个循环体内,就形成了嵌套循环,三种循环均可以作为外层循环和内层循环
只有内层循环条件为false时,才会完全跳出内层循环,才可结束外层循环的当次循环
如果要在内层循环中跳出外层循环,则需要使用标签,在循环前定义一个标签,如label,然后在需要跳出的地方,用break label就行了
十、方法
Java中的方法类似于其他语言中的函数,方法相当于一种功能和行为,定义方法是为了减少代码冗余,简化代码,Java里的方法不能"独立存在",所有的方法都必须定义在类里
方法声明格式:[访问权限修饰符 修饰符…] [返回值类型] 方法名(形式参数类型 参数名){Java语句;… … …[return 返回值;]}
修饰符:告诉编译器如何调用该方法,定义了该方法的访问类型
形式参数:在方法被调用时用于接收外界输入的数据
返回值类型:想要返回的是什么数据类型,就定义哪种返回值类型,如无返回值,必须给出返回值类型void
方法体:必须用{}括起来,在{}中编写完成方法功能的代码
返回值:方法在执行完毕后返还给它调用它的环境的数据
实参:调用方法时实际传给方法的数据
调用方法
类名/对象名.方法名(实参列表)实参的数量、数据类型和次序必须和所调用的方法声明的形参列表匹配,return语句用于从当前执行的方法中推出,返回到调用该方法的语句处继续执行.
return有两种格式:return 值;//将值返回,方法必须声明有返回值
return;//不返回任何值,表示终止方法执行,可以在声明为void的方法中使用
main方法/函数是Java程序的入口,启动方法
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

