Java入门
Java注释
书写注释是一个非常好的习惯,平时写代码务必注意规范。
单行注释
//+注释内容即可
多行注释
/*
中间添加注释内容 ,可直接注释一段文字
*/
文档注释
一般和JavaDoc结合使用,输入时 “/**” 开头回车即可
/**
*中间可以添加参数
*@Description HelloWorld
*/
Java标识符
Java所有的组成部分都需要有名字。类名,变量名以及方法名都被称为标识符。
所有标识符都应该以字母(大小写均可),美元符($),或者下划线开始
不能使用关键字作为变量名或方法名
标识符大小写敏感,可以使用中文命名但是不建议!很低级!更不要说拼音!
Java数据结构
常使用基本数据类型不过多赘述,需要注意的点如下:
1. 需注意在long类型中,数字后面需要加上L;在float类型中,数字后需要加上F,否则默认为double类型。
2. char只能赋值单个字符,而非字符串,而String可赋值为字符串,但String并不是基本数据类型,而是一个类。
拓展
整数拓展:
进制问题
int i1 = 10 ; //正常十进制数
int i2 = 010 ; //以0开头即为八进制数
int i3 = 0b10 ; //以0b开头即为二进制数
int i4 = 0x10 ; //以0x开头即为十六进制数
浮点数拓展:
float类型是有限,离散并且存在舍入误差的,因此是一个大约数。
最好完全避免使用浮点数进行比较!!!
最好完全避免使用浮点数进行比较!!!
最好完全避免使用浮点数进行比较!!!
例如:
float f1 = 0.1f ;
double d1 = 1.0/10 ;
f1==d1 ; //flase
float f2 = 57489275982f ;
float f3 = f2+1 ;
f2==f3;//true
那么在类似于银行业务中怎么表示金额呢?
应当使用数学工具类中的BigDecimal.
字符拓展:
强制类型转换
char c1 = 'a' ;
char c2 = '中' ;
sout(c1) ; //a
sout(int(c1)) ; //97
sout(c2) ; //中
sout(int(c2)) ; //20013
char c3 = '\u0061'; //正常使用Unicode编码方式,c3结果为a
转换后的输出结果对应的是Unicode编码,在电脑存储中的字符本质还是数字。
类型转换
graph LR
A[低] ----> 高
byte,short,char ----> int ---->long ----> float ----> double
强制类型转化(高—>低)
需要写上需要转换的类型:(类型)变量名
例:
int i = 1 ;
byte j = (byte)i ; //一定注意大小不要越界,否则内存溢出
自动类型转换(低—>高)
无需另外注释,直接转换即可。
例:
byte i = 1 ;
int j = i ;
注意!!!
-
布尔型不能进行转换
-
不能把对象类型转换为不相干的类型
-
在高容量转换为低容量的时候,强制转换
-
转换的可能存在内存溢出,或者是精度问题!
例:
sout((int)48.74f);//48
-
在计算中可能出现的问题
例:
int i1 = 10_0000_0000 ; //JDK7新特性,数字之间可以使用下划线分割 int i2 = 10 ; int total = i1*i2 ; //-1474836480 计算的时候就已经溢出 long total2 = i1*i2 ; //结果仍为-1474836480 默认是int,转换之前就已经存在问题 long total3 = money*((long)years) ; //先把一个数转换为long,计算时就会转换为long
变量
变量命名规范:
- 所有变量,方法,类名:见名知意
- 类成员变量:首字母小写和驼峰原则:例:monthSalary 即除了第一个单词外,后面的单词首字母大写
- 局部变量:同上
- 常量名:大写字母和下划线:MAX_VALUE
- 类名:首字母大写和驼峰原则:Man,GoodMan
- 方法名:首字母小写和驼峰原则
作用域
类变量
全局都可以使用
实例变量
从属于对象,如果不自行初始化,这个类型的默认值为0/0.0,布尔值默认为false,基本类型外为NULL
局部变量
仅在方法内可以使用
public class HelloWorld {
static int i1 = 100 ; //类变量
int i2 = 200 ; //实例变量
public static void main(String[] args) {
int i3 = 300 ;//局部变量
System.out.println(i1);
HelloWorld helloWorld = new HelloWorld() ;//需要定义后才可使用类中的实例变量
System.out.println(helloWorld.i2);
System.out.println(i3);
}
}
常量
初始化后不可改变,常量名一般使用大写。
final 常量名=值;
例:final double PI = 3.14
注:如果定义类常量,static与final都是修饰符,不存在先后顺序问题。