1.标识符:凡是自己可以起名字的地方都叫标识符
比如:类名、变量名、方法名、接口名、包名···
2.标识符命名规则
由26个英文字母大小写,0-9,_或¥组成
数字不可以开头
不可以使用关键字和保留字,但能包含关键字和保留字
Java中严格区分大小写,长度无限制
标识符不能包含空格
3.Java中的名称命名规范 建议大家遵循
包名“多单词组成时所要字母都小写:xxyyzz
类名、接口名:多单词组成时,所有单词的首字母大写: XxxYxxZxx
变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:aaaBbbCcc
变量名:所有字母大写,多单词时每个单词用下划线连接:XXX_YYY_ZZZ
4.起名字要有意义
注意1:在起名字时,为了提高阅读性,要尽量有意义,“见名知意”
注意2:java采用unicode字符集,因此标识符也可以使用汉字声明,但是不建议使用。
1.java定义变量的格式:数据类型 变量名 = 变量值
2.说明:
a.变量必须先声明,后使用
b.变量都定义在其作用域内。它是有效的。换句话说,出了作用域,就失效了
c.同一个作用域内,不可以声明两个同名的变量
class VariableTest
{
public static void main(String[] args)
{
int myAge = 12;
System.out.println(myAge);
int myNumber;
myNumber = 1000;
System.out.println(myNumber);
}
public void method(){
int myClass = 1;
}
}
/*
基本数据类型
整型:
类型 | 占用存储空间 | 表数范围 |
---|---|---|
byte | 1字节=8bit | -128——127 |
short | 2字节 | -215—— 215-1 |
int | 4字节 | -231—— 231-1 |
short | 8字节 | -263—— 263-1(必须l和L结尾) |
浮点型 :
类型 | 占用存储空间 | 表数范围 |
---|---|---|
float | 4字节=8bit | –3.403E38 - 3.403E38(结尾必须加f和F) |
double | 8字节 | -1.798E308 - 1798E308 |
布尔型 boolean:
引用数据类型
类(class)
接口(interface)
数组(array)
成员变量 VS 局部变量
*/
class VariableTest1
{
public static void main(String[] args)
{
byte b1 =12;
byte b2 = -125;
short s1=128;
int i1 = 12345;
long l1 = 123523154l;
System.out.println(l1);
double d1 = 123.45;
System.out.println(d1+1);
float f1 = 12.3f;
System.out.println(f1);
//char(1字符=2字节)
char c1 = 'a';
c1 = 'A';
char c2 ='中';
System.out.println(c1);
System.out.println(c2);
//表示方式:1.声明一个字符 2.转义字符 3.直接使用Unicode值来表示字符常量
char c3 = '\n';
System.out.println("Hello" + c3);
char c4 = '\u0123';
System.out.println(c4);
//布尔型
//只能用true 和false
//常常在条件判断、循环结构中使用
boolean is = true;
if(is){
println("true");
}
else{
println("false");
}
}
}
前提:这里讨论只是7种基本类型变量间的运算,不包含boolean的类型
1.自动类型提升
当容量小的数据类型的变量与数据类型的变量做运算时,结果自动提升为容量大的
char\byte ==> short ==> int ==> long ==》float ==> double
特别的:char\byte\short做运算时结果为int
2.强制类型转换
说明此时容量大小指的是,表示数的范围和大和小,比如 float 容量要大于long的容量
class VariableTest2
{
public static void main(String[] args)
{
byte b1 = 2;
int i1 =12;
int i2 = b1+i1;
System.out.println(i2);
long l1 = b1 + i1;
System.out.println(l1);
float f = b1+i1;
System.out.println(f);
short s1 = 123;
double d1 = s1;
System.out.println(d1);
char c1 = 'a';
int i3 = 10;
int i4 = c1 + c3;
System.out.println(i4);
}
}
/*
1.需要使用强转符:()
2.注意点:强制类型转换,可能导致精度损失
*/
class VariableTest3
{
public static void main(String[] args)
{
double d1 = 12.3;
int i1 = (int)d1;
System.out.println(i1);
long l1 = 123;
short s2 = (short)l1;
int i2 = 128;
byte b = (byte)i2;
System.out.println(b);
}
}
编译失败
class VariableTest4
{
public static void main(String[] args)
{
//1.编码情况
long l =12313;
System.out.println(l);
//编译失败,过大的整数
//long l1 = 213214142421;
long l1 = 1231245412L;
//编译失败
//float = 12.3;
//编码情况2
//整型常量,默认类型为int型
//浮点类型常量,默认类型为double
byte b = 12;
//byte b1 = b + 1;//编译失败
//float f1 = b + 12.3; //编译失败
}
}
/*
1.String属于引用数据类型,字符串
2.声明String类型变量时,使用一对""
3.Sting可以和8中基本数据类型变量做运算
4.运算的结果仍然是String
*/
class StringTest
{
public static void main(String[] args)
{
String s1 = "hello world";
System.out.println(s1);
String s2 = "a";
String s3 = "";
//char c = '';//编译不通过
int number = 1001;
String numStr = "学号";
String info = numStr + number;
System.out.println(info);
boolean b1 = true;
String info1 = info + b1;
System.out.println(info1);
//练习1
char c = 'a';
int num = 10;
String str = "hello";
System.out.println(c + num + str);//107hello
System.out.println(c + str + num);//ahello10
System.out.println(c + (num + str));//a10hello
System.out.println((c + num) + str);//107hello
System.out.println(str + num + c);//hello10a
//练习2
//* *
System.out.println("* *");
System.out.println('*'+'\t'+'*');
System.out.println("*"+"\t"+"*");
System.out.println('*'+'\t'+"*");
System.out.println('*'+('\t'+"*"));
String str1 = 123+"";
System.out.println(str1);
int num1 = Integer.parseInt(str1);
System.out.println(num1);
}
}
对于整数,有四种表示方式
二进制(binary)0,1 满2进1 以0B和0b开头
十进制(decimal)0-9
八进制(octal)0-7 满8进1 以数字0开头
十六进制(nex)0-9以及A-F 以0x和0X开头
class BinaryTest
{
public static void main(String[] args)
{
int num1 = 0b110;
int num2 = 110;
int num3 = 0127;
int num4 = 0x110A;
System.out.println("num1=" + num1);
System.out.println("num2=" + num2);
System.out.println("num3=" + num3);
System.out.println("num4=" + num4);
}
}
1.标识符的命名规则有哪些?
a.java中能用作标识符的有:26个英文字母(大、小写),数字,下划线,美元符号$。
但是不能以数字开头。
b.类名首个字母必须大写,多个单词组成的,每个单词首字母都要大写。
c.方法名一般首个字母小写(构造方法例外),多个单词组成方法名,后面单词首字母大写。
d.变量命名规则同方法名名。
2.标识符的命名规范有哪些?
包名:xxxyyyzzz
类名、接口名:XxxYyyZzz
变量名、方法名:xxxYyyZzz
常量名:XXX_YYY_ZZZ
3.java变量按照数据类型怎么划分?并指出java的基本数据类型有哪8种,并且指出各自占内存多少
byte short int long
char 2字节
float double
boolean
引用数据类型:类、接口、数组
4.说明基本数据类型变量之间自动类型提升的运算规则
byte、short、char=》int=》long=》float=》double=》String
5.说明基本数据类型变量之间强制转换的使用规则和强转可能出现的问题
容量大=》容量小
使用强制转换()
精度损失