第二章 JavaSE基本语法
1.idea的使用
1. IDE(Integrated Development Environment )集成开发环境,是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器 和图形用户界面等工具。
2.常用的Java开发工具有:
(1).IntelliJ IDEA
(2).EClipse
2.注释
1.定义:以某种特殊符号作为标记,对程序功能的说明,程序在运行过程中执行注释.
2.注释
Java中注释分为三种方式:
(1).单行注释 // 快捷键 ctrl + /
(2)多行注释 /* */ 快捷键 ctrl + shift + /
(3)文档注释 /** */ 用于为类,方法,属性 功能进行说明,可在调用时提示,以及使用javadoc命令生成说明文档.
3.关键字
1.定义:被Java语言赋予了特殊含义,用做专门用途的单词.
2.特点:关键字中的所有字母都为小写.
3.关键字的分类:
用于定义数据类型的关键字 | ||||
class | interface | enum | byte | short |
int | long | float | double | char |
boolean | void | |||
用于定义流程控制的关键字 | ||||
if | else | switch | case | default |
while | do | for | break | contiune |
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保留字:现有Java版本尚未使用,但后续版本可能会被用做关键字使用.
- 定义:Java应对各种变量,方法和l类等要素命名时使用的字符序列.
- 技巧:凡是自己可以起名字的名称都可以叫标识符.
4. 标识符的命名规则
<1>.定义合法标识符规则
- 由26个英文字母大小写.0-9,_或$组成.
- 数字不可以开头
- 不可以使用关键字和保留字,但能包含关键字和保留字
- Java中严格区分大小写
- 长度无限制
- 标识符不能包含空格
<2>约定俗成(见名知意):
- 包名:全部字母小写。
- 类名:首字母大写,其他字母小写;多单词组成时,每个单词的首字母大写。
- 变量名,方法名: 首字母小写,多单词组成时,第二个单词开始首字母大写。
- 常量名: 常量名所有字母大写,多单词组成时,之间用_连接
eg:MAX_NUM
5.变量
- 变量是程序中最基本的存储单元,程序执行中的数值是可变的.
- 变量其实是内存中的一小块区域,使用变量名来访问这块区域,因此,每一个 变量使用前必须要先申请(声明),然后必须进行赋值(填充内容),才能使用.
- 变量是通过使用变量名来访问这块区域的.
6.数据类型
1..数据类型分类
<1>.基本数据类型
数值型 整数类型: (byte,short,int,long)
浮点型 :(float,double)
字符型 (char)
布尔型 (boolean)
<2>.引用数据类型
类 (class)
接口 (interface)
数组 ([])
2.整数类型
类型 | 占用存储空间 | 表数范围 |
byte | 1字节 | ~ |
short | 2字节 | ~ |
int | 4字节 | ~ |
long | 8zijie | ~ |
- Java语言的整形常量默认值为int型,声明long型变量可以后加 'l' 或 'L'.
3.浮点类型数据
- 与整数类型相似,Java浮点类型有固定的表数范围和字段长度,不受平台影响.Java浮点类型有两种表示方式
(1)十进制数形式,例如: 3.14 314.0
(2)数学计数法形式,如:3.14e2 3.14E2
类型 | 占用存储空间 | 表数范围 | 精度 |
float | 4字节 | -3.403E38 ~ 3.403E38 | 单精度 |
double | 8字节 | -1.798E308 ~ 1.798E308 | 双精度 |
- Java浮点型的默认类型为double型,所以给定义的float变量赋值时需要加f后F的后缀.
4.布尔型
- 逻辑型boolean(布尔)
- boolean 类型适于逻辑运算,一般用于程序流程控制 .
- java语言中boolean 类型数据只允许取值 true 或 false .
- 注意:不可以0或非 0 的整数替代false和true,这点和C语言不同.
5.字符型
- char类型用来表示单个字符.
例如:
char a = 'A' ;
- char类型占两个字节.
- char运算
char在字符编码中有对应的数值,在Java中,对char类型字符运行时,直接当做对应编码表(ASCII表)的整数来对待.
class Test {
public static void main(String[] args) {
char A = 'a';
char c = 'a' + 1;
int d = (int) c;
System.out.println(c);
System.out.println(d);
}
}
- 先将a 提升为int类型最后计算结果
6.--String
- String不是基本数据类型,属于引用数据类型.
- 使用一对""来表示一个字符串,内部可以包含0个、1个或多个字符.
例如:
String str = "abcd";
String name = "张三";
- String是java类库中提供的一个类,用类来当做字符串变量类型
运算规则:
1.任意八种基本数据类型的数据与String类型只能进行连接“+”运算,且结果一定也是String类型2.String类型不能转为其他的基本类型
System.out.println("余额:"+money); System.out.println("收入:"+s1); System.out.println("支出:"+s2);
7.基本数据类型转换
规则:
- 取值范围小的类型自动转换为取值范围大的类型.
- 取值范围大的类型转换为取值范围小的需要强制类型转换
强制转换可能会造成精度降低或溢出,使用时要格外小心.
7.运算符
- Java支持以下运算符:
1.算数运算
2.比较运算符
比较结果为boolean类型,不是true就是false.
注意:不能将 == 和 = 混淆.
3.逻辑运算符
- "&"和"&&"的区别:
&是逻辑与,左边的表达式无论真假,右边的表达式都参与运算
&&是短路与,如果左边为假,则右边不参与运算,
如果左边为真,则右边参与运算.
int a = 10;
int b = 5;
int c = 3;
System.out.println(a>b&&b>c);
System.out.println(a<b&&++b>c);
System.out.println(a<b&&b<c);
System.out.println(b);
System.out.println(a>b&b>c);
System.out.println(a<b&++b>c);
System.out.println(a<b&b<c);
System.out.println(b);
- "|"和"||"的区别:
|是逻辑或,左边的表达式无论真假,右边的表达式都参与运算
||是短路或,如果左边为假,则右边参与运算,
如果左边为真,则右边不参与运算.
int x = 10;
int y = 5;
int z = 3;
System.out.println(x>y||y>z);
System.out.println(x>y||++y<z);
System.out.println(x<y||y<z);
System.out.println(y);
System.out.println(x>y|y>z);
System.out.println(x>y|++y<z);
System.out.println(x<y|y<z);
System.out.println(y);
System.out.println("请输入变量名");
Scanner scanner=new Scanner(System.in);
4.赋值运算符
思考:
s=s+2; s+=2;两个表达式有什么区别?
s=s+2; s会被自动转换为int类型,而s+=2;不会
5.条件运算符
6.位运算
public class bytewiseOperators {
public static void main(String[] args) {
int a = 4;
int b = 8;
int c = -8;
/*
<< 左移 移动的是比特位
>> 右移
>>>无符号右移 (没有无符号左移)
& 与
| 或
^ 异或
~ 非
& | ~ 可以进行逻辑运算也可以进行数值运算
*/
c = c >>> 1;
System.out.println(c);
System.out.println(a<<1);//增大二倍
System.out.println(b>>1);//缩小二倍
//c的补码 11111111 11111111 11111111 11111000
//反码 11111111 11111111 11111111 11110111
//原码 10000000 00000000 00000000 00001000
//无符号右移后符号位变成零,所以变成01111111 11111111 11111111 11111100 == 2,147,483,644
}
}
8.控制台的输入
java提供Scanner类来实现从控制台向程序输入信息功能.具体步骤 :
1. 导入使用的类:import java.util.Scanner;
2. 创建Scanner类型的对象:Scanner scan = new Scanner(System.in);
3. 调用Scanner类的相关方法,来获取指定类型的变量
next()方法用以 取得用户输入的字符串;
nextInt()将取得的输入字符串转换为整数类型;
nextFloat()转换成浮点型;
nextBoolean()转 换成布尔型.
import java.util.Scanner;
class Test {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入名字:");
String name = scanner.next();
System.out.println("请输入年龄:");
int age = scanner.nextInt();
System.out.println("名字"+name+"年龄"+age);
}
}
9.控制语句
- 条件语句 - 根据不同条件,执行不同语句。
- if
- if .. else
- if .. else if
- if .. else if .. else if .. else
- switch
- 循环语句 – 重复执行某些动作
- for
- while
- do .. while;