目录
注释书写
书写注释是十分重要的习惯,在Java中注释有三种:
-
单行注释:在一行内进行注释
// "//"后的内容即为注释,在编译时会删除;快捷键为"Ctrl+/"
-
多行注释:可以在多行内进行注释
/* 这是多行注释,快捷键为"Ctrl+sift+/" */
-
文档注释:在文档中注释可以对文档进行作者、版本等注释
/** @version 1.0 @author zhang */
建立Project
-
在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}\\ 字符类型 \quad\text{char}\quad占用2个字节 \end{cases}\\ \text{Boolean类型} & 值为\text{true或false,占一位} \end{cases} \\ 引用类型& \begin{cases} \text{类}\\ \text{接口}\\ \text{数组}\\ \end{cases} \end{cases}
$$
注意:String 不是关键字,是类。
整数拓展
/* * 进制 二进制 八进制 十进制 十六进制 * 表示 0b 0 / 0x * */ 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
还有一些转义字符:"\t" 为制表符,"\n"为换行符,"\b"为退格符,"\v"为纵向制表符。
类型转换
运算中不同类型的数据需转为同一类型,再进行计算。
注意点:
-
不能对布尔值进行转换;
-
不能把对象转换为不相干的类型;
-
“小转大自动转,大转小需强转”;
-
转化的时可能存在内存溢出或精度丢失问题(默认向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