1. 注释、标识符、关键字
注释:不会被执行,方便人阅读代码
书写注释是个很好的习惯
注释
Java中的三种注释
- 单行注释 // +注释
- 多行注释 /* 注释*/
- 文档注释
标识符
- 关键字
abstract | assert | boolean | break | byte |
---|---|---|---|---|
case | catch | char | class | const |
continue | default | do | double | else |
enum | extends | final | finally | float |
for | goto | if | implements | import |
instanceof | int | interface | long | native |
new | package | private | protected | public |
return | strictfp | short | static | super |
switch | synchronized | this | throw | throws |
transient | try | void | volatile | while |
- Java所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符
不能使用关键字作为变量名或方法名
2. 数据类型
-
强类型语言
- 要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用
-
弱类型语言
-
Java的数据类型分为两大类
-
基本类型
- 数值类型
- 整数类型 byte short int long(long类型要在数字后面加个L)
- 浮点类型 float(float类型要在数字后面加个F) double
- 字符 char 字符串 String(String不是关键字,类)
- boolean类型 占1位其值只有true和false两个
- 数值类型
-
引用类型
- 类
- 接口
- 数组
数据类型拓展
//整数拓展:二进制0b 十进制 八进制0 十六进制0x int i=0b1; //二进制 int i2=010; //八进制 int i3=0x10; //十六进制0x 0~9 A~F //浮点数拓展 //BigDecimal 数学工具类 //float 有限 离散 舍人误差 大约 接近但不等于 //double //最好避免使用浮点数进行比较 //最好避免使用浮点数进行比较 //最好避免使用浮点数进行比较 float f = 0.1f; //0.1 double d = 1.0/10; //0.1 System.out.println(f==d); //false f:0.1 d:0.1 float d1 = 232323233323232233333f; float d2 = d1 + 1; System.out.println(d1==d2); // true //字符拓展 char c1 = 'a'; char c2 = '中'; System.out.println(c1); System.out.println((int)c1); // 97 强制转换 System.out.println(c2); System.out.println((int)c2); //20013 强制转换 //所有字符本质还是数字 //编码 Unicode 2字节 0 - 65536 //转义字符 // \t 制表符 // \n 换行符
-
3. 类型转换
低 ---------------------------------------------------------->高
byte,short,char->int->long->float->double
- 运算中,不同类型的数据先转化为同一类型,然后进行计算
int i = 128;
byte b = (byte)i; // -128 内存溢出
//强制转换 (类型)变量名 高--低
//自动转换 低--高
/*
注意点:
1.不能对布尔值进行转换
2.不能把对象类型转换为不相干的类型
3.在把高容量转换到低容量的时候,强制转换
4.转换的时候可能存在内存溢出,或者精度问题
*/
System.out.println((int)23.7); //23
System.out.println((int)-45.89f); //-45
//操作比较大的数的时候,注意溢出问题
//JDK7新特性,数字之间可以用下划线分割
int money = 10 _0000_0000;
int years = 20;
int total = money *years; //-1474836480,计算的时候溢出了
long total2 = money*years; //默认是int,转换前已经存在问题了
long total3 = money*((long)years); //先把一个数转换为long
4. 变量、常量
- 变量:可以变化的量
- Java是一种强制类型语言,每个变量都必须声明其类型
- Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域
type varName [=value][{,varName[=value]}];
//数据类型 变量名 = 值;可以使用逗号隔开来声明多个同类型变量
变量作用域
- 类变量
- 实例变量
- 局部变量
public class Variable{
static int allClicks = 0; //类变量
String str = "hello world"; //实例变量,方法之外,从属于对象;
public void method(){
int i = 0; //局部变量,必须声明和初始化值
}
}
public class Demo08 {
//类变量 static
static double salary = 2500;
//实例变量:从属于对象;如果不自动初始化,这个类型的默认值 0 0.0
//布尔值:默认是false
//除了基本类型,其余的默认值都是null;
String name;
int age;
//main方法
public static void main(String[] args) {
//局部变量:必须声明和初始化值
int i = 10;
System.out.println(i);
//变量类型 变量名字 = new Demo08();
Demo08 demo08 = new Demo08();
System.out.println(demo08.age);
System.out.println(demo08.name);
//类变量 static
System.out.println(salary);
}
//其他方法
public void add(){
}
}
常量
- 常量:初始化后不能再改变的值
- 常量是一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变
final 常量名 = 值;
final double PI = 3.14;
- 常量名一般使用大写字符
public class Demo09 {
//修饰符,不存在先后顺序
static final double PI = 3.14;
public static void main(String[] args) {
System.out.println(PI);
}
}
变量名的命名规范
- 所有变量、方法、类名:见名知意
- 类成员变量:首字母小写和驼峰原则:monthSalary除了第一个单词以外,后面的单词首字母大写
- 局部变量:首字母小写和驼峰原则:Man,GoodMan
- 常量:大写字母和下划线:MAN_VALUE
- 类名:首字母大写和驼峰原则
- 方法名:首字母小写和驼峰原则:run(),runRun()
5. 运算符
- 算术运算符:+,-,*,/,%(取余),++,–
- 赋值运算符:=
- 关系运算符:>,<,>=,<=,==,!=instanceof
- 逻辑运算符:&&,||,!
- 位运算符:&,|,^,~,>>,<<,>>>
- 条件运算符: ?:
- 扩展赋值运算符:+=,-=,*=,/=
int a = 3;
int b = a++; //b=3,执行完这行代码后,先给b赋值,再自增
int c = ++a; //c=5,执行完这行代码前,先自增,再给c赋值
//幂运算 使用工具类
double pow = Math.pow(3,2);
System.out.println(pow);
//短路运算
int c = 5;
boolean d = (c<4)&&(c++<4);
System.out.println(d); //false
System.out.println(c); //5
int a = 10;
int b = 20;
//字符串连接符 + , String
System.out.println(""+a+b); //1020
System.out.println(a+b+""); //30
//三元运算符
// x ? y : z
//如果x==true,则结果为y,否则结果为z
int score = 80;
String type = score < 60 ? "不及格" : "及格";
6. 包机制、JavaDoc
包机制
- 为了更好地组织类,Java提供了包机制,用于区别类名的命名空间
- 包语句的语法格式:
package pkg1[.pkg2[.pkg3…]];
- 使用"import" 导入包成员
import package1[.package2…].(classname|*);
JavaDoc
- javadoc命令是用来生成自己API文档的
- 参数信息
- @author 作者名
- @version 版号名
- @since 指明需要最早使用的jdk版本
- @param 参数名
- @return 返回值情况
- @throws 异常抛出情况
7.字节
- 位(bit):计算机内部数据储存的最小单位,11001100是一个八位二进制
- 字节(byte):计算机中数据处理的基本单位,用大写B表示
- 1B(byte,字节) = 8bit(位)
- 字符:计算机中使用的字母、数字、字和符号
- 1bit表示1位
- 1Byte表示一个字节 1B=8b
- 1024B=1KB
- 1024KB=1M
- 1024M=1G
- 1024G=1TB