Java轻松入门基础(四)
一、标识符
定义:凡是自己可以起名字的地方都叫标识符。
涉及到的结构:
包名、类名、接口名、变量名、方法名、常量名
命名规范(必须遵守):
1.由26个英文字母大小写,0~0,_或$组成
2.数字不可以开头
3.不可以使用关键字和保留字,但可以包含关键字和保留字
4.Java中严格区分大小写,长度无限
5.标识符不能包含空格
常用起名规范(可以不遵守):
包名:多单子组成所有字母都小写:xxyyzz
类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz
变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz
常量名:所有字母都大写,多单词时每个单词用下划线连接XXX_YYY_ZZZ
二、变量
变量:程序中最基本的存储单元,包含数据类型、变量名和存储的值
java变量格式:数据类型 变量名=变量值;
//第一种变量的定义和使用
int age=12;
//第二种变量的定义和使用
int age;
age=12;
常见问题:
1.变量必须先声明赋值,然后使用
2.变量的定义只在其作用域内有效,出作用域失效。
3.同一作用域内,不可以声明两个同名的变量。
三、java数据类型
整数类型
bit是计算机中的最小存储单位。byte是计算机中的基本存储单元。
浮点类型
字符类型
char型数据用来表示通常意义上“字符”(2字节)。
java中所有的字符都是用Unicode编码,故一个字符可以存储一个字母,一个汉字或者是其他书面语的一个字符。
字符型三种表示方式:
1.字符常量用单引号(’’)括起来的单个字符,例如:char c1=‘a’;
2.java中允许使用转义字符‘\’,例如:char c2=’\n’,’\n’表示换行符。
3.直接使用Unicode值表示字符型常量,例如:\u00a表示\n。
注:char类型是可以进行直接运算的。因为他有对应的Unicode码。
布尔类型
只能取两个值之一:true、false(在c语言中:0表示false;非0表示true)。
常在条件判断、循环结构中使用。
四、基本数据类型之间的运算规则
注:只讨论7种基本数据类型间的运算,不包含boolean类型。
1.自动类型提升
当容量小的数据类型的变量与容量大的数据类型变量做运算时,结果自动提升为容量大的数据类型。(容量大小指的是表示数的范围大小,比如:float容量大于long容量)
byte、char、short–>int–>long–>float–>double
注:当byte、char、short三种数据类型的变量做运算时,结果为int
class Test01{
public static void main(String[] args){
byte a1=2;
int i1=129;
int i2=a1+i1;
long l1=a1+i1;
System.out.println(i2);
float f=a1+i1;
System.out.println(f);
short s1=123;
double d1=s1;
System.out.println(d1);
//********特殊情况*******
char c1='a';
int i3=10;
int i4=c1+i3;
System.out.println(i4);
short s2=10;
//char c2=c1+s2;//编译不通过
byte b2=10;
//char c3=c1+b2;//编译不通过
//short s3=b2+s2;//编译不通过
//short s4=b1+b2;//编译不通过
//**********************
}
}
2.强制类型转换
自动类型提升运算的逆运算
1.需要使用强转符:()
2.注:强转可能会导致精度损失。
class Test02{
public static void main(String[] args){
double d1=12.9;
//精度损失案例1
int i1=(int)d1;//截断操作,不会四舍五入
System.out.println(i1);//结果12
//精度损失案例2
int i2=128;
byte b=(byte)i2;
System.out.println(b);//结果-128
//没有精度损失
long l1=123;
short s2=(short)l1;
}**加粗样式**
}
3.String类型运算
1.String属于引用数据类型,翻译为:字符串。
2.声明String类型变量时,使用一对“”。
3.String可以和8种基本数据类型做运算,且只能是连接运算:+。(此处+表示连接符的意思)
4.运算结果仍然是String类型。
五、进制转换
二进制:0,1,满2进1。以0b或0B开头。
十进制:0~9,满10进1。
八进制:0~7,以数字0开头表示。
十六进制:0-9及A-F,满16进1。以0x或0X开头表示。此处A-F不区分大小写,如0x21AF+1=0X21B0
1.二进制十进制转换
二进制:0000 1110
十进制:1*2^3+1*2^2+1*2^1=14
十进制:13
二进制:除2取余,然后逆书写
13/2=6........1
6/2=3.........0
3/2=1.........1
1/2=0.........1
0/2=0.........0
...............
(补足8位书写出来)
然后逆书写:1011 0000
得出结果二进制为:1011 0000
2.二进制八进制十进制十六转换
类比二进制和十进制转化
小转大:寻找2的幂次数(八进制:3次幂;十六进制4次幂)
大转小:除进制数取余,逆书写。(类比十进制转化为二进制)