Java基础语法
注释
注释介绍
注释是在程序中指定位置添加的说明性信息
也就是对代码的一种解释,并不会参与程序的运行
单行注释:
格式: //注释信息
//定义类名,class后面紧跟类名 public class HelloWorld { //程序的入口,main方法也称为主方法 public static void main(String[] args){ //在控制台打印HelloWorld这句话 System.out.println("HelloWorld"); } }
多行注释:
格式: /注释信息/
/* 下面的代码定义了一个类名HelloWorld 让程序帮我们在控制台中输出打印HelloWorld */ public class Helloworld { public static void main(String[] args){ System.out.println("HelloWorld"); } }
文档注释: /** 文档注释信息 */
注释的注意事项:注释的内容不会参与编译和运行
关键字
关键字介绍
关键字是指被Java赋予了特定含义的英文单词,这些单词是不允许使用的
>例如像我们所学的第一个HelloWorld程序中的 ***class***;***String***;***public***;***static***;***System***;***main*** ... 等都是Java中的关键字
字面量
平常所说的常量或者是字面量常量,都称为字面量
常用数据 | 生活中写法 | 程序中写法 | 说明 |
---|---|---|---|
整数 | 888 , -888 | 888 , -888 | 写法一致 |
小数 | 3.14 , -13.4 | 3.14 , -13.4 | 写法一致 |
字符串 | 我是Mr.Tu | “我是Mr.Tu” , “Java” | 程序中必须使用双引号 |
字符 | A , 0 , 我 | ‘A’ , ‘0’ , ‘我’ | 程序中必须使用单引号,且仅能一个字符 |
布尔值 | 真 , 假 | true , false | 只有两个值:true代表真 , false代表假 |
空值 | 值是: null | 一个特殊的值,空值 | |
程序中的写法: |
public class NoteDemo{
public static void main(String[] args){
System.out.println(888); //表示打印一个整数
System.out.println(-888); //表示打印一个负数
System.out.println(3.14); //表示打印一个小数
System.out.println(-3.14); //表示打印一个小数的负数
System.out.println("我是Mr.Tu"); //表示打印一个字符串
System.out.println('A'); //表示打印一个英文字符
System.out.println('我'); //表示打印一个中文字符
System.out.println(true); //表示打印一个布尔值true
System.out.println(false); //表示打印一个布尔值false
System.out.println(null); //表示打印一个空值null
}
}
需求:某网站需要展示歌曲信息,请使用Java程序实现
专辑名:加州旅馆
表演者:老鹰乐队(Eagles)
专辑类型:选集
介质:CD
唱片数:3
评分:9.8
public class NoteDemo {
public static void main(String[] args){
System.out.println("加州旅馆");
System.out.println("老鹰乐队(Eagles)");
System.out.println("选集");
System.out.println("CD");
System.out.println(3);
System.out.println(9.8);
}
}
变量
变量就是在内存中的存储空间,空间中存储这经常发生改变的数据
定义变量: 数据类型 变量名 = 数据值;
使用变量:根据变量名进行使用
变量名注意事项
- 变量名不允许重复定义
public class NoteDemo { public static void main(String[] args) { //变量不允许这样重复定义 int a =888; int a = -888; } }
- 一条语句可以定义多个变量
public class NoteDemo { public static void main(String[] args) { int a =888 , b= -888 , c= 999 , d= -999; } }
- 变量在使用前一定要进行赋值
public class NoteDemo { public static void main(String[] args) { int a ; //变量在使用前一定要先赋值 //打印没有赋值的变量a,编辑器会报错:Variable 'a' might not have been initialized(中文意思是变量'a'未初始化) System.out.println(a); } }
标识符
标识符就是给类,方法,变量等起名的符号
标识符命名规则
1.由字母,数字,下划线_,和美元符$ 组成
2.不能以数字开头
3.不能是Java关键字
4.区分大小写符合规则如:
- bj
- b2
- _2b
- ak47
- Class
- heeloworld
不符合规则如:
- class
- 2b
- #MrTu
标识符命名规范
小驼峰命名法
规范1:标识符是一个单词的时候所有字母小写
范例1: name
规范2:标识符由多个单词组成的时候,从第二个单词开始,首字母大写
范例2:firstName此命名规则建议给变量
大驼峰命名法
规范1:标识符是一个单词的时候,首字母大写
范例1: Name
规范2:标识符由多个单词组成的时候,每个单词首字母大写
范例2:FirstName此命名方法建议给类命名
无论是大驼峰命名法还是小驼峰命名法,起名需要见名知意
例如: int a = 18;
见名知意: int age = 18; (看到age变量,就知道是年龄的意思)
数据类型
基本数据类型
数据类型 | 关键字 | 取值范围 | 内存占用 |
---|---|---|---|
整数 | byte | 取值范围:-128~127 | 1个字节 |
short | 取值范围:-32768~32767 | 2个字节 | |
int | 取值范围:-2147483648~2147483647**(10位数)** | 4个字节 | |
long | 取值范围:-923372036854775808~923372036854775807**(19位数)** | 8个字节 | |
浮点数 | float | 取值范围:1.401298e-45到3.402823e+38(单精度) | 4个字节 |
double | 取值范围:4.9000000e-324 到1.797693e+308(双精度) | 8个字节 | |
字符 | char | 取值范围:0~65535 | 2个字节 |
布尔 | boolean | 取值范围:true false | 1个字节 |
说明:e+38表示是乘以10的38次方
e-45表示是乘以10的负45次方
1个字节等于8个二进制位
不同基本数据类型变量的定义和使用
个人信息
姓名:Mr.Tu //使用String类型
年龄:18 //使用int类型
身高:180.8 //使用double类型
是否单身:是 //使用boolean类型
public class NoteDemo {
public static void main(String[] args) {
String name = "Mr.Tu";
int age = 18;
double height = 180.8;
boolean single = true;
System.out.println(name);
System.out.println(age);
System.out.println(height);
System.out.println(single);
}
}
今后使用思路
1.整数类型:首选int,如果发现int装不下了,将类型换成long,需要注意如果定义long类型变量需要加入L的标识public class NoteDemo { public static void main(String[] args) { //由于这里的int类型只能存10位数的整数,11位int装不下,编辑器会报错:Integer number too large(中文的意思是整数太大) int tel = 18888888888; //定义long类型变量需要加入L的标识,否则编辑器会报错Integer number too large(中文的意思是整数太大) long tel1 = 18888888888L; } }
2.小数类型:定义小数类型变量今后首选double,非要用float时需要加入F标识
public class NoteDemo { public static void main(String[] args) { //使用double定义变量没有问题 double height = 180.8; //使用float定义变量时如果不加上F标识会报错:不兼容的类型: 从double转换到float可能会有损失(因为double是双精度而float是单精度,双精度的运算要比单精度更加准确.所以从double转换到float会损失数据准确性) float height2 = 180.8F; } }
注意事项:
所有整数默认为int类型
所有小数默认double类型
知识扩展
char的数值范围为什么是0~65535?
首先了解什么是编码表:
计算机中字节到字符的一套对应关系
学会查ASCII码表
American Standard code for Information Interchange(美国信息交换标准代码)
ASCII码 - 基本ASCII码和扩展ASCII码,最全的ASCII码对照表
public class NoteDemo { public static void main(String[] args) { char test = 97;//结果为小写字母 a } }
通过ASCII码表得出结论: 所有字符,计算机底层都会存在一份数值表示形式
Scanner键盘录入
键盘录入效果
程序使用者通过手动录入的方式提供数据的给程序处理,因此键盘录入可以使程序中使用的数据更加灵活
Scanner键盘录入的三个步骤
1.找到Java代码仓库的键盘录入功能
代码:import java.util.Scanner;
import java.util.Scanner; public class NoteDemo { public static void main(String[] args){ } }
位置: class的上面
含义: 能够让自己的类ScannerDemo,从代码仓库中找到Scanner键盘录入这个功能
**2.使用Scanner功能**
代码:Scanner sc = new Scanner(System.in);
import java.util.Scanner; public class NoteDemo { public static void main(String[] args){ Scanner sc = new Scanner(System.in); } }
位置:main方法里面
含义:使用代码仓库中找到的Scanner键盘录入这个功能
3.接收用户输入的数据
代码: int age = sc.nextInt(); //使用int类型接收用户输入的整数数据
import java.util.Scanner; public class NoteDemo { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int test = sc.nextInt(); System.out.println(test); } }
Scanner键盘输入功能能接收的数据
import java.util.Scanner; public class NoteDemo { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int age = sc.nextInt(); //使用int类型接收用户输入的整数数据 double height = sc.nextDouble();//使用double类型接收用户输入的小数 boolean flag = sc.nextBoolean();//使用boolean类型接收用户输入的布尔 char age = sc.nextChar() //使用char类型接收用户输入的单个字符 String age = sc.next() //String接收用户输入的字符串数据 } }
需求:使用Scanner模拟简单的注册功能
请输入姓名:
请输入年龄:
请输入性别:
请输入身高:
请输入婚姻状况:falseimport java.util.Scanner; public class NoteDemo { public static void main(String[] args){ Scanner sc = new Scanner(System.in); System.out.println("请输入您的姓名"); String userName = sc.next(); System.out.println("请输入年龄"); int age = sc.nextInt(); System.out.println("性别"); String sex = sc.next(); System.out.println("请输入身高"); double height = sc.nextDouble(); System.out.println("婚姻状况"); boolean flage = sc.nextBoolean(); System.out.println(userName); System.out.println(age); System.out.println(sex); System.out.println(height); System.out.println(flage); } }