1. 注释
注释是对代码的解释和说明文字。
-
单行注释://......
-
多行注释:
/*
.......
*/
-
文档注释:
/**
.....
*/
使用的技巧
如果我们要对代码进行解释,那么就可以使用注释。
当注释的内容比较少,一行就写完了,可以用单行注释。
如果注释的内容比较多,需要写在多行,那么可以使用多行注释。
注意点
注释的内容不会参与编译和运行的,仅仅是对代码的解释说明而已。
所以,不管在注释当中写什么内容,都不会影响代码运行的结果。
2. 关键字
被Java赋予了特定含义的英文单词。
当我们在代码中写了关键字之后,程序在运行的时候,就知道要做什么事情了。
注意:关键字很多,不用刻意去记。
abstract | assert | boolean | break | byte |
---|---|---|---|---|
case | catch | char | class | const |
continue | default | do | double | else |
enum | extends | final | finally | float |
for | goto | if | implements | import |
instanceof | int | interface | long | native |
new | package | private | protected | public |
return | strictfp | short | static | super |
switch | synchronized | this | throw | throws |
transient | try | void | volatile | while |
2.2 第一个关键字class
表示定义一个类。创建一个类。
类:Java项目最基本的组成单元,一个完整的Java项目有可能会有成千上万个类来组成的。
class后面跟随的就是这个类的名字,简称:类名。
在类名后面会有一对大括号,表示这个类的内容。
举例:
public class HelloWorld{
}
解释:class表示定义类。
类名:HelloWorld
HelloWorld后面的大括号表示这个类的范围。
3. 字面量
作用:告诉程序员,数据在程序中的书写格式。
字面量类型 | 说明 | 程序中的写法 |
---|---|---|
整数 | 不带小数的数字 | 666,-88 |
小数 | 带小数的数字 | 13.14,-5.21 |
字符 | 必须使用单引号,有且仅能一个字符 | ‘A’,‘0’, ‘我’ |
字符串 | 必须使用双引号,内容可有可无 | “HelloWorld”,“你好,王东东" |
布尔值 | 布尔值,表示真假,只有两个值:true,false | true 、false |
空值 | 一个特殊的值,空值 | 值是:null |
public class HelloWorld {
public static void main(String[] args) {
System.out.println(10); // 输出一个整数
System.out.println(5.5); // 输出一个小数
System.out.println('a'); // 输出一个字符
System.out.println(true); // 输出boolean值true
System.out.println("你好,王东东"); // 输出字符串
}
}
区分技巧
-
不带小数点的数字都是整数类型的字面量。
-
只要带了小数点,那么就是小数类型的字面量。
-
只要用双引号引起来的,不管里面的内容是什么,不管里面有没有内容,都是字符串类型的字面量。
-
字符类型的字面量必须用单引号引起来,不管内容是什么,但是个数有且只能有一个。
-
字符类型的字面量只有两个值,true、false。
-
空类型的字面量只有一个值,null。
4. 变量
4.1 什么是变量?
- 内存中的一个存储区域
- 该区域有自己的名称(变量名)和类型(数据类型)
- 该区域的数据可以在同一类型范围内不断变化
4.2 变量的定义格式
数据类型 变量名 = 数据值;
示例:
int count = 1;
4.2.1 格式详解
数据类型:限定了变量当中能存储什么类型的数据。
如果要存10,那么数据类型就需要写整数类型。
如果要存10.0,那么数据类型就需要写小数类型。
变量名:其实就是这个容器的名字。
当以后想要使用变量里面的数据时,直接使用变量名就可以了。
数据值:真正存储在容器中的数据。
分号:表示语句的结束,就跟以前写作文时候的句号是一样的。
4.2.2 变量的注意事项
-
变量名不能重复
-
在一条语句中,可以定义多个变量。但是这种方式影响代码的阅读,所以了解一下即可。
-
在赋值给变量之前,必须声明变量。方法中声明的变量在使用之前必须被赋值(初始化)。任何时候,都要尽可能一步完成变量的声明和初始化。这会使得程序易读同时避免程序设计错误。
-
每个变量都有使用范围。变量的使用范围(作用域)是指变量可以被引用到的程序的部分。
4.3 变量的练习
需求:说出公交车到终点站之后,车上一共有多少乘客?
一开始没有乘客。
第一站:上去一位乘客,没有下来乘客。
第二站:上去两位乘客,下来一位乘客。
第三站:上去两位乘客,下来一位乘客。
第四站:没有上去乘客,下来一位乘客。
第五站:上去一位乘客,没有下来乘客。
问:到了终点站之后,车上一共多少乘客?
代码解析:
public class VariableTest1 { public static void main(String[] args) { //一开始没有乘客。 int count = 0; //第一站:上去一位乘客 //在原有的基础上 + 1 count = count + 1; //System.out.println(count); //第二站:上去两位乘客,下来一位乘客 count = count + 2 - 1; //第三站:上去两位乘客,下来一位乘客 count = count + 2 - 1; //第四站:下来一位乘客 count = count - 1; //第五站:上去一位乘客 count = count + 1; //请问:到了终点站,车上一共几位乘客。 System.out.println(count);//3 } }
5. 数据类型
5.1 Java语言数据类型的分类
-
基本数据类型
-
引用数据类型(面向对象的时候再深入学习)
5.2 基本数据类型的四类八种
数据类型 | 关键字 | 内存占用 | 取值范围 |
---|---|---|---|
整数 | byte | 1 | 负的2的7次方 ~ 2的7次方-1(-128~127) |
short | 2 | 负的2的15次方 ~ 2的15次方-1(-32768~32767) | |
int | 4 | 负的2的31次方 ~ 2的31次方-1 | |
long | 8 | 负的2的63次方 ~ 2的63次方-1 | |
浮点数 | float | 4 | 1.401298e-45 ~ 3.402823e+38 |
double | 8 | 4.9000000e-324 ~ 1.797693e+308 | |
字符 | char | 2 | 0-65535 |
布尔 | boolean | 1 | true,false |
说明
e+38表示是乘以10的38次方,同样,e-45表示乘以10的负45次方。
在java中整数默认是int类型,浮点数默认是double类型。
对于单精度浮点数,运行速度相比double更快,占内存更小,但是当数值非常大或者非常小的时
会变得不精确。双精度比单精度表示的位数大 精确的位数多,简单地说, float表示的小数点位数少。
需要记忆以下几点
byte类型的取值范围:
-128 ~ 127
int类型的大概取值范围:
-21亿多 ~ 21亿多
整数类型和小数类型的取值范围大小关系:
double > float > long > int > short > byte
最为常用的数据类型选择:
-
在定义变量的时候,要根据实际的情况来选择不同类型的变量。
比如:人的年龄,可以选择byte类型。
比如:地球的年龄,可以选择long类型。
-
如果整数类型中,不太确定范围,那么默认使用int类型。
-
如果小数类型中,不太确定范围,那么默认使用double类型。
-
如果要定义字符类型的变量,那么使用char
-
如果要定义布尔类型的变量,那么使用boolean
5.3 定义8种基本数据类型变量
public class VariableTest3{
public static void main(String[] args){
//1.定义byte类型的变量
//数据类型 变量名 = 数据值;
byte a = 10;
System.out.println(a);
//2.定义short类型的变量
short b = 20;
System.out.println(b);
//3.定义int类型的变量
int c = 30;
System.out.println(c);
//4.定义long类型的变量
long d = 123456789123456789L;
System.out.println(d);
//5.定义float类型的变量
float e = 10.1F;
System.out.println(e);
//6.定义double类型的变量
double f = 20.3;
System.out.println(f);
//7.定义char类型的变量
char g = 'a';
System.out.println(g);
//8.定义boolean类型的变量
boolean h = true;
System.out.println(h);
}
}
注意点
-
如果要定义 一个整数类型的变量,不知道选择哪种数据类型了,默认使用int。
-
如果要定义 一个小数类型的变量,不知道选择哪种数据类型了,默认使用double。
-
如果要定义一个long类型的变量,那么在数据值的后面需要加上L后缀。(大小写都可以,建议大写。)
-
如果要定义一个float类型的变量,那么在数据值的后面需要加上F后缀。(大小写都可以)
- 同一个整数可以使用不同的进制表示:
默认的进制10进制
二进制: 是 0b 或者 0B开头
八进制: 是0开头
十六进制: 0X (0x) 开头
上面输出的是 10进制
5.4 练习1
需求:定义5个变量记录老师的信息并打印
代码示例:
public class VariableTest1{
public static void main(String[] args){
//1.定义字符串类型的变量记录老师的姓名
String name = "阿玮";
//2.定义整数类型的变量记录老师的年龄
int age = 18;
//3.定义字符类型的变量记录老师的性别
char gender = '男';
//4.定义小数类型的变量记录老师的身高
double height = 180.1;
//5.定义布尔类型的变量记录老师的婚姻状况
boolean flag = true;
//输出5个变量的值
System.out.println(name);
System.out.println(age);
System.out.println(gender);
System.out.println(height);
System.out.println(flag);
}
}
5.6 练习2
需求:选择其中一部手机,将(手机价格,手机品牌)两个信息选择不同类型的变量,随后打印出来。
代码示例:
public class VariableTest3{
public static void main(String[] args){
//1.定义小数类型的变量记录手机的价格
double price = 5299.0;
//2.定义字符串类型的变量记录手机的品牌
String brand = "华为";
//输出变量记录的值
System.out.println(price);
System.out.println(brand);
}
}
6. 标识符
业内大多数程序员都在遵守阿里巴巴的命名规则。
6.1 硬性要求:
Java中的包、类、方法、参数和变量的名字。所有的标识符必须遵循以下规则:必须要这么做,否则代码会报错。
-
必须由数字、字母、下划线_、美元符号$组成。
-
数字不能开头
-
不能是关键字
-
区分大小写的。
合法的标识符
username
user_name
_userName
$username
不合法的标识符
class
3.14
6.2 软件建议:
如果不这么做,代码不会报错,但是会让代码显得比较low。
6.2.1 小驼峰命名法
适用于变量名和方法名
-
如果是一个单词,那么全部小写,比如:name
-
如果是多个单词,那么从第二个单词开始,首字母大写,比如:firstName、maxAge
6.2.2 大驼峰命名法
适用于类名
-
如果是一个单词,那么首字母大写。比如:Demo、Test。
-
如果是多个单词,那么每一个单词首字母都需要大写。比如:HelloWorld
不管起什么名字,都要做到见名知意。
阿里巴巴命名规范细节:
-
尽量不要用拼音。但是一些国际通用的拼音可视为英文单词。
正确:alibaba、hangzhou、nanjing
错误:jiage、dazhe
-
平时在给变量名、方法名、类名起名字的时候,不要使用下划线或美元符号。
错误:_name
正确:name
7. 键盘录入
键盘录入的实际功能Java已经帮我们写好了,不需要我们自己再实现了,而Java写好的功能都放在了Scanner这个类中,所以,我们只要直接使用Scanner这个类就可以了。
使用步骤:
第一步:
导包:其实就是表示先找到Scanner这个类在哪。
第二步:
创建对象:其实就表示申明一下,我准备开始用Scanner这个类了。
第三步:
接收数据:也是真正干活的代码。
代码示例:
//导包,其实就是先找到Scanner这个类在哪
import java.util.Scanner;
public class ScannerDemo1{
public static void main(String[] args){
//2.创建对象,其实就是申明一下,我准备开始用Scanner这个类了。
Scanner sc = new Scanner(System.in);
//3.接收数据
//当程序运行之后,我们在键盘输入的数据就会被变量i给接收了
System.out.println("请输入一个数字");
int i = sc.nextInt();
System.out.println(i);
}
}
-
Scanner在java.util包中。在第一行被导入。
-
import语句有两种类型:明确导入和通配符导入。
-
明确导入时在import语句中指定单个的类:import java.util.Scanner;
-
通配符导入指使用星号作为通配符,导入一个包中的所有类import java.util.*;
-
除非要在程序中使用某个类,否则关于被导入包中的这些类的信息在编译时或运行时是不被导入的。导入语句至少告诉编译器在什么地方能找到这些类。明确导入和通配符导入在性能上是没有什么差别的。
7.1练习
需求:根据键盘录入的半径,求圆的面积
import java.util.Scanner;//Scanner在java.util包中,使用需要将其导入进来
public class ComputeArea{
public static void main(Stirng[] args){
System.out.println("请输入圆的半径");
Scanner sc = new Scanner(System.in);
//每个变量都有名字,类型、大小和值
double radius = sc.nextDouble();
//计算面积
double area = radius * radius * 3.14;
//显示面积
System.out.println("半径为:" + radius + "的圆的面积为:" + area);
}
}
8.常量
一个变量的值在程序执行过程中可能会发生变化,但是常量则表示从不改变的永久数据。在程序中,π是一个常量。如果频繁使用它但又不想重复地输入3.14,代替的方式就是声明一个常量π。语法如下:
final datatype CONSTANTNAME = value;
常量必须在同一条语句中声明和赋值。单词final是声明常量的java关键字。
举例:
import java.util.Scanner;
public class ComputeAreaWithConstant {
public static void main(String[] args) {
final double PI = 3.14;
System.out.println("请输入圆的半径:");
Scanner sc = new Scanner(System.in);
//读取半径
double radius = sc.nextDouble();
//计算圆的面积
double area = PI * radius * radius;
//显示面积
System.out.println("半径为:" + radius + "的圆的面积为:" + area);
}
}
使用常量的好处:
1.不必重复输入同一个值
2.如需修改常量值,只需要在源代码中的一个地方做修改
3.给常量一个描述性名字会提高程序的易读性