目录
初始Java main函数
public class Test {
public static void main(String[] args) {
System.out.println("hello");
}
class:定义一个类
Test:类名
public:如果一个类名被public修饰,那么源文件名应与此类名保持一致,否则会出错。
类存在于源文件中,方法(可以理解为C语言中的函数)存在于类中,语法存在于方法中;一个类中可以有多个方法,但main只能有一个。
Java程序的运行
标识符
定义:在程序中用户给类名,方法名或变量取的名字称为标识符
组成:字母,数字,下划线,$等
注意:不能以数字开头,不能是关键字,且严格区分大小写
【软性建议】
类名:每个单词的首字母大写(大驼峰)
方法名:首字母小写,后面每个单词的首字母大写(小驼峰)
变量名:与方法名规则相同
常量与变量
何为常量?即固定不变的值即是常量,程序运行前便确定的数值
数据类型和变量
四类:整数型,浮点型,字符型,布尔类型
八种基本数据类型:byte short int long float double char boolean
与C语言略显不同,Java中整型新增了一个新成员 byte ,占1个字节(与C语言中的char非常相似),少了一个成员 char ,也没有 long long类型了,而八种基本数据类型中,boolean(布尔类型)也是个新成员; 我们要尽快熟悉Java的语法,从C语言的习惯中摆脱出来。
Java中没有无符号类型,因此,除了布尔类型这个特殊的类型外,其余类型的变量在存储时,首个比特位为符号位;浮点数依然遵循其存储方法;另外一个需要注意的点是 Java中没有类似于C语言中求所占空间大小的操作符sizeof;各个类型所占字节的大小不因操作系统而改变,是多少就是多少,这也造就了Java的可移植性强。
那么接下来就简单介绍一下char和boolean这两种类型吧。
char - 字符型 - 2个字节
Java中所使用的字符集是Unicode,它更加的广泛包含多种语言,可以认为囊括了ASCII;
因此,char可以存储汉字,一个汉字占2个字节,
char ch = ' 六 ';
boolean - 布尔类型 - 非常特殊 没有明确大小
布尔类型的变量只有两种取值,true或者false
Java中真假统一用布尔类型来表示。
类型转换
自动类型转换(隐式)
代码运行过程中,编译器会将数据范围小的转换成数据范围大的。
public static void main(String[] args) {
long a = 10L;
short b = 4;
a = b;//b会被转换成long类型再被赋给a 此过程便发生了自动类型转换
b = a;//此代码会报错 因为b为short类型 a为long类型占8个字节 数据会丢失
}
float a = 9.1f;
double b = 9.99;
b = a;//此过程不会报错 因为double比float更为精确 数据范围更为广泛
a = b;//此过程则会报错 因为数据范围小的无法赋值给数据范围大的 会造成数据丢失
强制类型转换(显式)
int a = 10;
short b = 19;
b = (short)a; //强制类型转换成short类型,则不会报错
但是我们在使用强制类型转换时,要考虑是否有数据丢失的情况。
类型提升
因CPU是以4个字节进行读取的,为了运行方便,效率更高,通常会把小于4个字节的数据提升成4个字节再参与运算。
看,两个byte类型的变成先被提升成int类型再参与计算,因int类型所表示的数据更广所以当 a+b的结果赋值给byte类型的c时,编译器报错了;此时我们只需强制类型转换成byte便可运行此代码。