注释分为以下三种:
方法和类
之上,描述方法和类的作用,可用于生成自动文档
)Java中,对于变量、常量、函数、语句块等的名字,我们称之为标识符。
对于Java标识符,有三点基本要求:
字母
、数字
、下划线_
、美元符号$
组成,其中不能以数字开头
,不能使用Java中的保留字
(关键字)有意义
的简单名字$不要出现在代码中
变量
、方法
命名:标识符由多个单词组成,第一个单词首字母小写,第二个之后的单词首字母大写类
命名:类名是以大写字母开头的名词,如果由多个单词组成,则每个单词首字母大写。Java源文件文件名必须与公共类(public class)的名称相同不能以下划线或美元符号开始
,也不能以下划线和美元符号结束
严禁使用拼音和英文混合
方式,更不允许直接用中文
UpperCamelCase
风格,方法名、参数名、成员变量、局部变量统一使用LowerCamelCase
风格全部大写
,单词间用下划线隔开
eg:MY_STRING关键字:在所有程序中有特殊意义的文字标记,Java关键字如下
用于定义访问权限修饰符的关键字 | 用于定义类、函数、变量修饰符的关键字 | 用于定义类与类之间关系的关键字 | 用于定义建立实例及引用实例的关键字 | 用于异常处理的关键字 | 用于包的关键字 | 其他修饰符关键字 |
---|---|---|---|---|---|---|
private、protected、public | abstract、final、static、synchronized | extends、implements | new、this、super、instanceOf | try、catch、finally、throw、throws | package、import | native、strictfp、transient、volatile、assert |
有关Java关键字的几点说明:
goto
、const
null
、true
、false
assert
关键字;JDK1.5以后追加了enum
关键字在数据类型的选择上有如下建议:
整数就用int
,描述小数用double
编码转换
或者进行二进制流的操作
,使用byte(-127~128)在进行整型数据操作的过程之中也会存在数据溢出问题,指的是当已经达到了整型的最大最小值继续进行数学运算而可能产生的错误数据问题,如下
int maxValue = Integer.MAX_VALUE;
int minValue = Integer.MIN_VALUE;
System.out.println(maxValue+1);
System.out.println(minValue-1);
解决方案只要一个:更换数据类型
int maxValue = Integer.MAX_VALUE;
long num = maxValue+1;
System.out.println(num);
如上改进输出还是不对,因为所有程序的执行顺序是从右边到左边
,所以应该
int maxValue = Integer.MAX_VALUE;
long num = maxValue+1L;
System.out.println(num);
大的数据类型转为小的类型,必须强转,但有时会丢失内容
,如下
long num = 2147483648L;
int result = (int) num;//-2147483648
!!!!数据的默认值在主方法中无效
,如下
public static void main(String[] args) {
int num ; // 定义一个整型变量但并未赋值
System.out.println(num) ;
}
这时有两种解决方案:
byte类型保存的范围是:-128~127
public static void main(String[] args) {
//10是int,int范围大于byte范围,理论上要进行强转,可是这里没有,因为数据在byte保存范围内
byte data = 10;//10是int型,在byte范围内
System.out.println(data);//10
//同时必须注意,如果要将int变量赋值给byte类型,必须强转
int num = 10;
byte t = (byte)num;
System.out.println(t);//10
//注意如下代码输出
byte d = (byte)300;
System.out.println(d);//44
}
描述小数默认为double
//double定义小数
double num = 10.2;//这是一个小数
System.out.println(num * 2);//num是double型,2是int型
//输出
//20.4
注意
:float保存范围小于double,如果要使用float,必须强制类型转换,在后面加“F”或者“f”
//定义float变量
float f1 = 1.1f;
System.out.println(f1);//1.1
//注意如下代码
System.out.println(1.1*1.1);//精度不够导致输出1.2100000000000002
int numA = 10 ;
int numB = 4 ;
// int/int型还是int型
System.out.println(numA/numB) ;//2
// 如果要想准确计算,必须将其中一个变量变为double类型
System.out.println(numA/(double) numB) ;//2.5
字符型使用char来表示,并且使用’ '来表示字符变量内容,并且可以与int相互转换
char c = 'A' ;
int num = c ;
System.out.println(num);//65
int型转为char型需要强制类型转换
char c = 'A';
int num = c + 32;
char x = (char)num;
System.out.println(x);//a
!!!!注意
:字符型数字(‘0’ ~ ‘9’)与int数字(0~9)不同, if('0'== 0)结果一定是false
Java中使用Unicode
编码(一般其他语言采用ASC II编码),使用16进制编码,可以保存任何文字信息(包含中文),因此Java对字符的特性支持的比较好
。
在其他语言中,没有提供布尔类型,因此用’0’表示false,非0表示true。但在java中拥有布尔型。
char可以描述的只是单一的字符,现在要想描述多个字符,就必须利用字符串这一概念。String并不是基本数据类型,String是一个引用数据类型
,它的默认值为null
。
String name = "邹大炮" ;
String note = "学生" ;
System.out.println(name);//邹大炮
System.out.println(note);//学生
String类可以使用“+
”表示两个字符串的连接
。
int numA = 10 ;
double numB = 10.5 ;
String result = "计算结果:" +numA + numB ; // 此时“+”不是数学运算而是字符连接。
System.out.println(result) ;//1010.5
通过上述代码我们发现,只要使用了“+”出现了字符串,则所有的数据类型(包含引用类型)都变为String。如果要想得到正确的运算结果,必须使用"()"来解决问题
,如下
int numA = 10 ;
double numB = 10.5 ;
String result = "计算结果:" + (numA + numB ) ;
System.out.println(result) ;//20.5
在程序里还存在转义字符的概念,有如下几个常用转义字符:
\"
\'
System.out.println("邹大炮\n\t是我的\"小可爱\"啦啦啦啦");
//输出
//邹大炮
// 是我的"小可爱"啦啦啦啦
自增和自减运算
注:x++ 先运算后自增;++x 先自增后运算
三目是一种赋值运算,根据条件来判断赋哪个值,使用三目运算符可以简化代码
,语法如下:
数据类型 变量 = 布尔表达式?满足时赋值:不满足时赋值
int x = 3;
int y = 4;
int z = 3>4?x+y:x-y;
System.out.println(z);//-1
所有关系运算符返回类型均为布尔型(true,false)
,可以与逻辑判断语句一起使用
char a = 'a';
int num = 100;
System.out.println(a>num);//false
逻辑运算符为:与(&、&&)、或(|、||)、非(!)
if(1<2||(10/0==0)){
System.out.println("条件满足");
}else{
System.out.println("条件不满足");
}
//此时程序报错
if(1<2||(10/0==0)){
System.out.println("条件满足");
}else{
System.out.println("条件不满足");
}
//此时输出条件满足
总结如下
剩余的条件也要判断
;而如果使用”&&"(短路与
),只要有条件返回false,剩余条件不再判断
,返回false。剩余的条件也要判 断
;而如果使用”||"(短路非
),只要有条件返回true,剩余条件不再判断
,返回true。综上,逻辑判断中尽量使用短路与和短路非
位运算的关键在于二进制与十进制的转换