1.java标识符的命名规则和规范
标识符的命名规则:
-
由26个英文字母大小写,0-9,_ 或者 $ 组成
-
数字不可以开头
-
不可以使用关键字和保留字,但能包含关键字和保留字
-
java中严格区分大小写,长度无限制
-
标识符不能包含空格
标识符的命名规范:
-
包名:多单词组成时所有字母都小写:aaa.bbb.ccc
-
类名、接口名:多单词组成时,所有单词的首字母大写:AaaBbbCcc
-
变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:aaaBbbCcc
-
常量名:所有字母都大写,多单词时每个单词用下划线连接:XXX_YYY_ZZZ
2.java中常用的转义字符
\t : 一个制表位,实现对齐功能
\n : 换行符
\\ : 一个\
\" : 一个"
\' : 一个'
\r : 一个回车
3.注释
注释用于注解说明,不会被编译器执行,提高了代码的阅读性,程序员需要有一个良好的写注释习惯
java中提供了三种注释类型:单行注释 多行注释 文档注释
文档注释:注释内容可以被JDK提供的工具 javadoc所解析,生成一套以网页文件形式体现的该程序的说明文档
文档注释生成命令(注意编码格式,否则会报编码映射错误):javadoc -d 文件夹 -参数 -参数 文件名
/**
* @author 小明
* @version 1.o
*/
public class HelloWorld{
//单行注释
public static void main(String[] args){
/*
多行注释
......
......
*/
System.out.print("Hello World");
}
}
4.变量
**概念:**相当于内存中一个数据存储空间的表示,通过变量名可以访问到变量中存储的值,值是可以改变的
注意事项:
- 变量必须先声明,后使用
- 变量表示内存中的一个存储区域(不同的变量,类型不同,存储空间也不相同)
- 变量在同一个作用域内不能重名
- 变量三要素:变量名、值、数据类型
int a; //声名
a = 100; //赋值
System.out.println(a); //输出变量a的值
5.程序中 + 号的使用
- 当左右两边都是数值型时,则做加法运算
- 当左右两边有一方为字符串,则做拼接运算
System.out.println(10 + 20); //30
System.out.println("10" + 20); //1020
//注意下面两个输出结果,加法是从左到右依次做运算的
System.out.println("hello" + 10 + 20); //hello1020
System.out.println(10 + 20 + "hello"); //30hello
6.java数据类型
1.基本数据类型
类型 | 字节 | 取值范围(二进制) | 取值范围(十进制) |
---|---|---|---|
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 | -2147483648 ~ 2147483647 |
long | 8字节 | -2^63 ~ 2^63-1 | -9223372036854775808 ~ 9223372036854775807 |
byte num1 = 10;
short num2 = 1000;
int num3 = 10000000;
//java的整数常量默认为int型,声名long型常量须在后面加"l"或"L"
long num4 = 100000000000000L;
类型 | 字节 | 取值范围 |
---|---|---|
float (单精度) | 4字节 | -3.403E38 ~ 3.403E38 |
double (双精度) | 8字节 | -1.798E308 ~ 1.798E308 |
//java的浮点型常量默认为double型,声名float型常量,须在后面加"f"或"F"
float num5 = 1.1111F;
double num6 = 1.11111111111111;
(1)浮点型常量有两种表示形式
十进制数形式: 1.32 12.0F .123
科学计数法形式: 1.34e2[1.34乘以10的2次方] 1.34e-2[1.34除以10的2次方]
(2)浮点数使用陷阱
如下:通过计算得到的小数和直接赋值的存在差异,这是计算机本身的漏洞,做比较运算时需特别注意
double d1 = 2.7;
double d2 = 8.1 / 3;
System.out.println(d1); //2.7
System.out.println(d2); //2.6999999999999997
类型 | 占用存储空间 | 范围 |
---|---|---|
char | 2字节 | 单个字符,例: ‘a’ , ‘我’ |
//字符常量是用单引号 '' 括起来的单个字符。例如:
char c1 = 'a';
char c2 = '你';
char c3 = '\t'; //这里的 "\" 代表的转义,实际还是一个字符
char c4 = 98;
//在java中,char的本质是一个整数,在输出时,是unicode码对应的字符
//可以直接给char赋值一个整数,在输出时,会按照对应的unicode字符输出
System.out.println((int) c1); //97
System.out.println(c4); //b
//char类型是可以进行运算的,相当于一个整数,因为它对应有unicode码
System.out.println(c1 + 10); //107
System.out.println('你' + 100); //20420
类型 | 占用存储空间 | 范围 |
---|---|---|
boolean | 1bit(位) | 只存放 true 或 false |
boolean isPass = true; //java中boolean的取值只能用true或false,不能用0或别的值b,会报错
if (isPass == true) {
System.out.println("考试通过");
} else {
System.out.println("考试失败");
}
2.引用数据类型
- 类(class)
- 接口(interface)
- 数组([ ])
3.介绍下字符编码表:
- ASCII(ASCII编码表一个字节表示,一共128个字符)
- Unicode(Unicode编码表 固定大小的编码 使用两个字节来表示字符,字母和汉字统一都是占用两个字节,这样浪费空间)
- utf-8(大小可变的编码 字母使用1个字节,汉字使用3个字节)
- gbk(可以表示汉字,而且范围广,字母使用1个字节,汉字2个字节)
- gb2312(可以表示汉字,表示范围小于gbk)
- big5(繁体中文,台湾,香港喜欢使用)
7.基本数据类型转换
1.自动类型转换
当java程序在进行赋值或者运算时,精度小的类型自动转换为精度大的数据类型,这就是自动类型转换
int a = 'A';
double d = 10000;
数据类型按精度大小排列为:
char --> int --> long -->float --> double
byte --> short --> int --> long -->float --> double
自动类型转换细节:
有多种类型的数据混合运算时,系统首先自动将所有数据转换成容量最大的那种数据类型,然后再进行计算
当我们把精度大的数据类型赋值给精度小的数据类型时,就会报错,反之就会进行自动类型转换
(byte,short)和char之间不会相互自动转换
byte b = 100;
//错误: char c = b;
char c = (char)b;
byte,short,char 它们三者可以计算,在计算时首先会转换成int类型
boolean 不参与转换
自动提升原则:表达式结果的类型自动提升为操作数中最大的类型
2.强制类型转换
自动类型转换的逆过程,将容量大的数据类型转换为容量小的数据类型,使用时要加上强制转换符(),但可能造成精度降低或溢出,使用时需格外注意
int i = (int) 1.9;
System.out.println(i);
int j = 100;
byte b = (byte) j;
System.out.println(b);
强制类型转换细节:
- 当数据的从大到小转换时,就需要使用到前置转换
- 强转符号只针对于最近的操作数有效,往往会使用小括号提升优先级
//错误: int x = (int) 10 * 3.5 + 8 * 1.3;
int x = (int) (10 * 3.5 + 8 * 1.3);
- char类型可以保存int的常量值,但不能保存int的变量值,需要强转
- byte和short类型再进行运算时,当做int类型处理
char c1 = 1000;
int i = 100;
//错误: char c2 = i;
char c2 = (char) i;
基本数据类型和String类型转换
介绍:在程序开发中,我们经常需要将基本数据类型转换成String类型,或将String类型转成基本数据类型
3.基本数据类型转String类型
语法:将基本类型的值 + “” 即可
int num1 = 2000;
double num2 = 3.1415926;
boolean b = true;
// 基本数据类型 --> String
String str1 = num1 + "";
String str2 = num2 + "";
String str3 = b + "";
System.out.println(str1 + "\n" + str2 + "\n" + str3);
4.String类型转基本数据类型
语法:通过基本数据类型的包装类调用parseXX方法即可
String str = "123";
byte num1 = Byte.parseByte(str);
short num2 = Short.parseShort(str);
int num3 = Integer.parseInt(str);
long num4 = Long.parseLong(str);
float num5 = Float.parseFloat(str);
double num6 = Double.parseDouble(str);
boolean bool = Boolean.parseBoolean("true");
怎么把char类型转换成String类型呢?
不能转换,char类型是一个字符,字符串无论如何也没法转成一个字符,但是可以从中取出一个:
String str = "123";
char c = str.charAt(0); //在计算机里数字是由0开始的,也就是说 0->1 1->2
System.out.println(c); //1
注意事项:在将String类型转成基本数据类型时,要确保String类型能够转成有效的数据,比如我们可以把“123”转成一个整数,但时不能把“hello”转成一个整数,如果格式不正确,就会抛出异常,程序就会终止