目录
1.注释
- 单行注释
- 格式://注释信息
- 多行注释
- 格式:/*注释信息*/
- 文档注释
- 格式:/**注释信息*/
2.关键字
2.1 概述
关键字就是被Java语言赋予了特定含义的单词。
2.2 特点
- 关键字的字母全部小写。
- 常用的代码编辑器,针对关键字有特殊的颜色标记,非常直观。
3.常量
3.1 常量概述
在程序运行过程中,其值不可以发生改变的量。
3.2 常量分类
整型常量
整型常量是整数类型的数据,有二进制、八进制、十进制和十六进制4种表示形式具。
浮点数常量
浮点数常量就是在数学中用到的小数,分为foat单精度浮点数和double双精度浮点数两种类型。其中,单精度浮点数后面以F或f结尾,而双精度浮点数则以D或d结尾。当然,在使用浮点数时也可以在结尾处不加任何的后缀,此时虚拟机会默认为double双精度浮点数。浮点数常量还可以通过指数形式来表示。
字符常量
字符常量用于表示一个字符,一个字符常量要用一对英文半角格式的单引’’号引起来,它可以是英文字母、数字、标点符号以及由转义序列来表示的特殊字符。
字符串常量
字符串常量用于表示一串连续的字符,一个字符串常量要用一对英文半角格式的双引号””引起来。
布尔常量
布尔常量即布尔型的两个值true和false,该常量用于区分一个事物的真与假。
null常量
null常量只有一个值null,表示对象的引用为空。
4.数据类型
4.1 概述
Java语言是强类型语言,对于每一种数据都给出了明确的数据类型,不同的数据类型也分配了不同的内存空间,所以它们表示的数据大小也不一样。
4.2 分类
1)四种整数类型(byte、short、int、long):
-
byte:8 位,用于表示最小数据单位,如文件中数据,-128~127
-
short:16 位,很少用,-32768 ~ 32767
-
int:32 位、最常用,-2^31-1~2^31 (21 亿)
-
long:64 位、次常用
注意事项: int i=5; // 5 叫直接量(或字面量),即 直接写出的常数。
整数字面量默认都为 int 类型,所以在定义的 long 型数据后面加 L或 l。
小于 32 位数的变量,都按 int 结果计算。
强转符比数学运算符优先级高。见常量与变量中的例子。
2)两种浮点数类型(float、double):
float:32 位,后缀 F 或 f,1 位符号位,8 位指数,23 位有效尾数。
double:64 位,最常用,后缀 D 或 d,1 位符号位,11 位指数,52 位有效尾
注意事项:
二 进 制 浮 点 数 : 1010100010=101010001.0*2=10101000.10*2^10(2次方)=1010100.010*2^11(3次方)= . 1010100010*2^1010(10次方)
尾数: . 1010100010
指数:1010
基数:2
浮点数字面量默认都为 double 类型,所以在定义的 float 型数据后面加F 或 f;double 类型可不写后缀,但在小数计算中一定要写 D 或 X.X float 的精度没有 long 高,有效位数(尾数)短。
float 的范围大于 long 指数可以很大。
浮点数是不精确的,不能对浮点数进行精确比较。
3)一种字符类型(char):
char:16 位,是整数类型,用单引号括起来的 1 个字符(可以是一个中文字符),使用 Unicode 码代表字符,0~2^16-1(65535) 。
注意事项: 不能为 0个字符。
转义字符:\n 换行 \r 回车 \t Tab 字符 \" 双引号 \\ 表示一个\
两字符 char 中间用“+”连接,内部先把字符转成 int 类型,再进行加法运算,char 本质就是个数!二进制的,显示的时候,经过“处理”显示为字符。
4)一种布尔类型(boolean):true 真 和 false 假。
5)类型转换:
char--> 自动转换:byte-->short-->int-->long-->float-->double
强制转换:①会损失精度,产生误差,小数点以后的数字全部舍弃。②容易超过取值范围。
6)记忆:
8位:Byte(字节型)
16位:short(短整型)、char(字符型)
32位:int(整型)、float(单精度型/浮点型)
64位:long(长整型)、double(双精度型)
最后一个:boolean 布尔类型
5.变量
5.1 概述
变量在运行过程中,其值可以发生改变的量。
从本质上将,变量是内存中的一小块区域
5.2 变量的定义
- 格式:数据类型 变量名 = 变量值;
- 规范:int a = 10;
5.3 变量的使用
变量的使用:取值和修改值
- 取值格式:变量名
- 范式:a
- 修改值格式:变量名 = 变量值
- 范式:a = 20;
5.4 变量使用的注意事项
- 名字不能重复
- 变量未赋值,不能直接使用
- long类型的变量定义的时候,为防止整数过大,后面要加L
- float类型的变量定义的时候,为防止类型不兼容,后面要加F
6.标识符
6.1 标识符概述
标识符:就是给类,方法,变量等起名字的符号。
6.2 标识符定义规则
- 由数字、字母、下划线、$符号组成
- 不能以数字开头
- 不能是关键字
- 区分大小写
6.3 常见命名约定
一、小驼峰式命名法:(方法、变量)
约定1:标识符是一个单词的时候,首字母小写。
示例1:name。
约定2:标识符由多个单词组成的时候,第一个单词首字母小写,其他单词首字母大写。
示例2:firstName。
二、大驼峰式命名法:(类)
约定1:标识符是一个单词的时候,首字母大写。
示例1:Students。
约定2:标识符由多个单词组成的时候,第一个单词首字母小写,其他单词首字母大写。
示例2:GoodStudents。
7. 类型转换
1)强制类型转换
即强行将类型范围大的变量、数据赋值给类型范围小的类型。只有当两种数据类型不兼容,或目标类型的取值范围小于源类型时,这时就需要进行强制类型转换。
例题:
描述:
设计一个方法,将一个小于2147483647的double类型变量以截断取整方式转化为int类型
输入描述:
随机double类型变量
输出描述:
转化后的int类型变量
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
double d = scanner.nextDouble();
System.out.println(Main.typeConversion(d));
}
public static int typeConversion(double d){
//write your code here......
int i = (int)d;
return i;
}
}
表达:数据类型 变量2 = (数据类型)变量1、数据;
强制类型转换会带来的问题:
1.可能会造成数据丢失;
2.上述例题中,将浮点型强转成整形,直接丢掉小数部分,保留整数部分返回,数据的精确度不一致,例如输入12.65,输出为12;
二)自动类型转换
即:数字表示范围小的数据类型可以自动转换成范围大的数据类型,且两种数据类型兼容的情况下,就会发生自动类型转换。
范围:
其中char 类型比较特殊,char 自动转换成 int、long、float 和 double,但 byte 和 short 不能自动转换为 char,而且 char 也不能自动转换为 byte 或 short。
例如:
类型一:低级变量可以直接转换为高级变量,下列语句可在java直接通过
byte b;
int i=b;
long l=b;
float f=b;
double d=b;
类型2:若char型向高级类型(整型)转换时,会转换为对应ASCII码值
char c='c';
int i=c;
System.out.println("输出:"+i);
//结果是:输出:99;
注意:byte,short,char三种类型而言,他们是平级的,不能相互自动转换,需使用强制类型转换。
三)包装类过渡类型转换
包装类,就是可以直接将简单类型的变量表示为一个类,在执行变量类型的相互转换时,我们会大量使用这些包装类。Java共有六个包装类,分别是Boolean、Character、Integer、Long、Float和Double,从字面上就可以看出它们分别对应于 boolean、char、int、long、float和double。
对比之前两种简单数据类型转换,包装类过度类型转换属于高级数据类型转换,即先声明一个变量,然后生成一个对应的包装类,利用包装类的各种方法进行类型转换。
例:
当把float型转换为double型时:
float f1=100.00f;
Float F1=new Float(f1);
double d1=F1.doubleValue();//F1.doubleValue()为Float类的返回double值型的方法
简单类型的变量转换为相应的包装类,可以利用包装类的构造函数。即:Boolean(boolean value)、Character(char value)、Integer(int value)、Long(long value)、Float(float value)、Do)
而在各个包装类中,总有形为××Value()的方法,来得到其对应的简单类型数据。利用这种方法,也可以实现不同数值型变量间的转换,例如,对于一个双精度实型类,intValue()可以得到其对应的整型变量,而doubleValue()可以得到其对应的双精度实型变量。