目录
注释书写
建立Project
标识符
数据类型
字节
数据类型分类
整数拓展
精度丢失
短路问题
字符拓展
类型转换
变量
包机制
注释书写
书写注释是十分重要的习惯,在Java中注释有三种:
单行注释:在一行内进行注释
// "//"后的内容即为注释,在编译时会删除;快捷键为"Ctrl+/"
多行注释:可以在多行内进行注释
文档注释:在文档中注释可以对文档进行作者、版本等注释
建立Project
在IDEA中新建一个空工程(project);
新建一个模块(module)
打开项目结构
在设置面板上调整SDK版本及语言版本,使其与我们所用的版本一致
在IDEA中新建一个空工程(project);
新建一个模块(module)
打开项目结构
在设置面板上调整SDK版本及语言版本,使其与我们所用的版本一致
标识符
Java中所有的组成部分都需要名字,类名、变量命名以及方法名都被称为标识符,标识符的大小写敏感。
数据类型
强类型语言(安全性高、速度慢)
要求变量的使用严格符合规定,所有的变量都必须先定义、再使用。
Java是强类型语言。
弱类型语言
变量的使用可以不符合规定。
字节
位(bit):计算机存储的最小单位,11001100是一个八位二进制数
字节(byte):计算机数据处理的基本单位,习惯上用B表示
字符:指计算机中使用的字母、数字、字、符号
1B=8bit 1024B=1KB 1024KB=1M 1024M=1G
数据类型分类
$$
数据类型 begin{cases} 基本类型& begin{cases} 数值类型 & begin{cases} 整数类型begin{cases} text{byte}& text{1个字节,-128-127}\ text{short}& text{2个字节,-256-256}\ text{int} & text{4个字节}\ text{long}& text{8个字节}\ end{cases}\ 浮点类型 begin{cases} text{float} & text{4个字节}\ text{double} & text{8个字节} end{cases}\ 字符类型 quadtext{char}quad占用2个字节 end{cases}\ text{Boolean类型} & 值为text{true或false,占一位} end{cases} \ 引用类型& begin{cases} text{类}\ text{接口}\ text{数组}\ end{cases} end{cases}
$$
注意:String 不是关键字,是类。
整数拓展
static int num1 = 0b10; //输出为2
static int num2 = 010; //输出为8
static int num3 = 10; //输出为10
static int num4 = 0x10; //输出为16
精度丢失
//精度丢失
float num5 = 1/10F; //浮点数表示有限、离散,具有舍入误差,接近但不等于
double num6 = 0.1;
boolean flag1 = (num5==num6);
System.out.println(flag1); //float和double型的精度丢失,两数并不相等;
//最好完全避免使用浮点数进行比较
短路问题
//短路问题
int num7 = 40;
boolean flag2 = num7<0 && num7++>0;
System.out.println(num7);//运行且运算时,num7<0为假不进行后续计算,故num7值不变;
System.out.println(flag2);
字符拓展
//字符拓展:强制转换,所有的字符实际上还是数字
//Unicode编码
char c1 = 'a';
int num8 = c1 + 1;//自动类型转换;
System.out.println((int) c1);//字符通过转换变为对应的Unicode编码97;
System.out.println((char) 97);//Unicode编码转换为对应的字符a;
System.out.println(num8);//输出为98
//精度丢失 float num5 = 1/10F; //浮点数表示有限、离散,具有舍入误差,接近但不等于 double num6 = 0.1; boolean flag1 = (num5==num6); System.out.println(flag1); //float和double型的精度丢失,两数并不相等; //最好完全避免使用浮点数进行比较
短路问题
//短路问题
int num7 = 40;
boolean flag2 = num7<0 && num7++>0;
System.out.println(num7);//运行且运算时,num7<0为假不进行后续计算,故num7值不变;
System.out.println(flag2);
字符拓展
//字符拓展:强制转换,所有的字符实际上还是数字
//Unicode编码
char c1 = 'a';
int num8 = c1 + 1;//自动类型转换;
System.out.println((int) c1);//字符通过转换变为对应的Unicode编码97;
System.out.println((char) 97);//Unicode编码转换为对应的字符a;
System.out.println(num8);//输出为98
//字符拓展:强制转换,所有的字符实际上还是数字 //Unicode编码 char c1 = 'a'; int num8 = c1 + 1;//自动类型转换; System.out.println((int) c1);//字符通过转换变为对应的Unicode编码97; System.out.println((char) 97);//Unicode编码转换为对应的字符a; System.out.println(num8);//输出为98
还有一些转义字符:"t" 为制表符,"n"为换行符。
类型转换
运算中不同类型的数据需转为同一类型,再进行计算。
注意点:
不能对布尔值进行转换;
不能把对象转换为不相干的类型;
“小转大自动转,大转小需强转”;
转化的时可能存在内存溢出或精度丢失问题(默认向0取整);
public class DataType {
public static void main(String[] args) {
String string1 = "JavaString";
System.out.println(string1);
byte num1 = 80;
int num2 = 123123123;
int num3 = 100;
long num4 = num2 * num3; //两个int型数相乘所得结果为int型且超出int的取值范围;
System.out.println(num4);
System.out.println("----------------");
long num5 = num2 * (long)num3;
//通过long进行强制数据类型转换,将结果转换为long型,完整显示结果;
System.out.println(num5);
System.out.println("---------------");
float num6 = 30.F;
double num7 = 43.3;//默认小数为double型;
long num8 = 17L;//long型在数字后加大写L;
}
}
操作数值比较大的数时,注意溢出问题
JDK7中,数字可用小划线分割表示
long money = 1000_000_000_0000;
byte/short/int在和int一起计算时会转化为int
变量
Java变量是最基本的存储单元,要素包括:变量名、变量类型、作用域
变量的作用域:
类变量:在变量的前面加上“Static”
局部变量:必须声明和初始化值,在方法中使用
实例变量:从属于对象,如果没有初始化,则为默认值,在方法外类中使用。布尔值的默认值为false,除基本类型外默认值均为null,而基本类型的默认值为0
public class Variable {
//类变量:可不进行初始化,此时为默认值
static int num1;
static char c1;
static boolean flag1;
static String s1;
//实例变量
int num2 = 5;
//静态常量
static final double PI = 3.14;
public static void main(String[] args)
{
//引用实例变量
Variable variable2 = new Variable();//格式:变量类型 变量名字 = new + 类名;
System.out.println(variable2.num2);
System.out.println("---------");
//局部变量
int num3 = 10;
System.out.println(num1);
System.out.println(c1);//全局变量char类型默认为空字符;
System.out.println("-------");
System.out.println(s1);
System.out.println(flag1);
//常量
System.out.println("------");
System.out.println(PI);
}
}
变量的命名原则
类成员、局部变量、方法名:驼峰原则、首字母小写
类名:驼峰原则、首字母大写
常量:大写字名和下划线
字符串连接符:“+”
public class StringConcatenator {
public static void main(String[] args) {
int num1 = 20;
int num2 = 10;
System.out.println(
" -"+num1+num2 //" "将num1和num2强制转换为字符,而“+”是字符串连接符;
);
System.out.println(
num1+num2+"-"
);
}
}
包机制
包的本质就是文件夹
一般利用公司域名倒置作为包名
如:com.baidu.xxx



