JAVA小白进阶之路
java各种标识符命名规则
说明
1.规则:
标识符:(自己起名字的地方)
1)严格区分大小写
2)不可使用关键字保留字,但能包含
3)数字不能开头
4)由数字、字母、下划线、$组成,不能含空格
2.JAVA命名规范(建议遵守)
1)包名:所有字母小写
2)类名、接口名:多个单词组成是所有单词首字母大写
3)变量名、方法名:多个单词组成时,第一个单词首字母小写,第二个单词 开始每个单词首字母大写
4)常量名:所有字母都小写,多单词时,每个单词间用下划线连接
注意:尽可能将命名做到见名知意; 不遵守规则,编译不通过,字节码文件不能生成;java 采用unicode字符集,但不建议使用汉字
举例
public class Snippet {
public static void main(String[] args) {
int myNumber = 10;
System.out.print(myNumber);
}
public class MyFisrst{
int id;
public void myPrint() {
}
}
}
变量
说明
1.变量必须先声明后使用
2.使用要在作用域内
3.同一个作用域不能声明同名的变量
使用:
数据类型 变量名 = 变量值;
或
数据类型 变量名;
变量名 = 变量值;
举例
class VariableTest{
public static void main(String[] args){
//变量的定义
int myAge = 12;
//变量的使用
System.out.println(myAge);
int myNumber;
myNumber = 1001;
System.out.println(myNumber);
//System.out.println(myClass); 错误:2
}
public void method(){
int myClass = 1;
}
}
数据类型
说明
1.分类(按数据类型)
基本数据类型:
整型:byte(1) short(2) int(4) long(8)
浮点型:float(4) double(8)
字符型:char(一个字符=2个字节)
布尔型:boolean
引用数据类型:
类:class,String
接口:interface
数组:
2.运算规则:(不包含Boolean)
1)自动类型的提升
当容量小的数据类型与容量大的数据类型做运算时,结果自动提升为容量大的数据类型
byte、char、 short–》 int–》 long–》 float–》 double
特别的:当byte char short 做运算时,结果为int型
2)强制类型的转换:自动提升运算的逆运算(会损失精度,JAVA是个严格的语言O),
需要强制类型符
可能会导致精度损失
注意:
关于long
long a = 123;
long a =123L;
都是对的,但解释不一样,假如前者a的赋值超出int表示范围会报错
关于float:
float f = 1.24; //编译不通过,默认类型为double
float f = 1.24F; //可以
说明:此时的容量大小是表示数的范围的大和小,比如float容量要大于long的容量
举例
例1
class VariableTest1{
public static void main(String[] args){
byte b1 = 12; //-128~127
byte b2 = -128;
System.out.println(b1);
System.out.println(b2);
// char 通常使用单引号,只能放一个
//声明一个字符
//声明一个转义字符
//使用Unicode值表示字符常量
char c1 = 'a';
System.out.println(c1);
//boolean
//只有俩值:true/false
boolean bb1 = true;
System.out.println(bb1);
boolean isMarried = true;
if(isMarried){
System.out.println("你就不能参加单身party了,很遗憾!");
}else{
System.out.println("欢迎你");
}
}
}
例2
class VariableTest2{
public static void main(String[] args){
byte b1 = 2;
int i1 = 129;
//编译通过
int b2;
b2 = b1 + i1;
System.out.println(b1);
//强制类型转换
double d1 = 2.9;
int i2 = (int)d1; //截断操作
System.out.println(i1);
//
long a = 123; //自动类型提升
System.out.println(a);
//long a1 = 1234556778887;
//System.out.println(a1);
//编译失败
byte b = 12;
//byte b1 = b + 1; 编译失败
//float f1 = 1.4;
//编译失败,默认类型为double型
// float f1 = b + 12.3;
//编译失败
double f1 = b + 12.3;
}
}
计算机中的进制表示:
补充(关于String与自动类型提升)计算机中不同进制使用说明:
二:0,1 0b或0B开头
八:0~7 0开头
十:0~9
十六:09及AF, 0x或0X开头,不区分大小写
转换:
二进制:
正:原、反、补相同
负:原到反:除符号位外各位取反,反倒补:末尾加1
在计算机底层存的都是补码
+127:0111 1111
-128:1000 0000
其他通过二进制做桥梁
说明
1.String属于引用数据类型
2.申明String类型变量时,使用一对" "
3.String可以和8(含布尔)种数据类型个变量做运算,且只能是连接
4.运算的结果任然是String
注意:String是不能转换成Int的;String str = 123;//编译不通过
举例
class StringTest{
public static void main(String[] args){
String s1 = "Hello World";
System.out.println(s1);
char c = ' ';
//char c = ""; char c = '';
//编译不通过
System.out.println(c);
int number = 1001;
String numberStr = "学号:";
String info = numberStr + number; //+:连接运算
System.out.println(info);
//练习1
char c1 = 'a';
int num = 10;
String str = "hello";
System.out.println(c1 + num + str); //107hello
System.out.println(c1 + str + num ); //ahello100
System.out.println(c1 + (num + str)); //ahello10
System.out.println((c1 + num) + str); //107hello
System.out.println(str + num + c1); //hello10a
//练习2
//* *
System.out.println("* *");
System.out.println("*"+"\t"+"*");
System.out.println('*' + "\t" + '*');
System.out.println('*' + '\t' + '*'); //bu
//char 与char int
System.out.println('*' + '\t' + "*"); //bu
System.out.println('*' + ('\t' + "*"));
//与String类型都是String
//String str1 = 123; 编译不通过
String str2 = 123 + "";
System.out.println(str2);
//int str3 = (int)str2; 编译不通过
//String不能转换为 int
}
}
判断能否通过编译:
1.
short s = 5;
s = s - 2; //no
2.
byte b = 3;
b = b + 4; //no
b = (byte)(b + 4); //yes
3.
char c = ‘a’;
int i = 5;
float d = .314F;
double result = c + i + d; //yes
4.
byte b = 5;
short s = 3;
short t = s + b; //no,int才行