JAVA语言基础
文章目录
1.JAVA主类结构
-
Java的基本组成单位为类,类体又包括属性与方法两部分。每一个应用程序都必须包括一个main()法,含有main()方法的雷称为主类。
- 代码中的所以标点符号都是英文字符。
- 文件名必须要与类名一致(class后的)。主要大小写,java是区分大小的。
-
main()方法是类体的主方法。该方法从"{"开始至“}”结束。public ,static和void分别是main()方法的权限修饰符,静态修饰符,返回值修饰符,java中main()方法必须声明为public static void 。String args[]是一个字符串类型的数组,它是main()方法的参数。
2.基本数据类型
1.整数类型
-
整数类型简称整数,用啦储存整数数值,即没有小数部分。可以是整数,也可以是负数。
数据类型 储存空间(字节) 取值范围 byte 1 -128~127 short 2 -32768~32767 int 4 -2147483648~2147483647 long 8 -9223372036852775808~9223372036852775807 1.int型
int x; //定义int型x int x,y; //同时定义int型下x,y int x=10,y=5; //同时定义x,y并赋值 int x=5+10; //定义x,并且给x赋值(5+10)的计算结果
int型在内存占4个字节,也就是32位,在计算机中bit是由0和1来表示的,所以int型值5在计算机中是这样显示的
00000000 00000000 00000101
int型是java整形值的默认数据类型。当对多个尚未定义的数据类型的整数做运算时,运算的结果位默认的int型。
2.byte型
定义方式与int型相同
3.short型
定义方式与int型相同。
4.long型
由于long型的取值范围要比int型大,且属于高精度数据类型,所以在赋值时要与int型做出区别,需要在整数后面加上L或l。
long number; long num; long number=12345667l; long num=123123141L;
- 十进制,不能以0作为数据开头
- 八进制,必须以0作为开头
- 十六进制,以0X或0x作为开头
2.浮点类型
- 浮点类型又称为浮点数,用来储存含有小数的部分。java的浮点类型分为单精度浮点型(float)和双精度浮点型(double).
数据类型 | 内存空间 | 取值范围 |
---|---|---|
float | 4个字节 | 1.4E-45~3.4028235E38 |
double | 8个字节 | 4.9E-324~1.7976931348623157E308 |
在默认情况下的小数都被看作double型,若想使用float型小数,需要在后面添加F或f。
如果定义float型不加F或f,系统会认为位double型,进而出错。
3.字符类型
- char型用于储存单个字符,占用两个字节的内存空间。在定义字符型变量时要以单引号表示,如’S’,“s”为一个字符串。
- 转义字符,是一种特殊的字符变量,它以“\”开头,后跟一个或多个字符。
4.布尔类型
- 布尔类型又称为逻辑类型,简称布尔型,通过Boolean来定义布尔类型,布尔类型分为true和false两个值,分别代表布尔逻辑中的真和假。布尔值不能与整数类型进行转换。
3.常量与变量
1.标识符和关键字
-
标识符
标识符可以简单的理解为一个名字,是用于表示类名,方法名,数组名,文件名的有效序列。
java语言中标识符是由任意的字母,下画线,美元符号和数字组成的,并且第一个不能是数字。java中的标识符是严格区分大小写的。
-
关键字
关键字又称为保留字,是Java语言中已经被赋予特定意义的一些单词,这些单词不能作为标识符来使用。
2.声明变量
int age;
int age=29;
char c='a';
3.常量的声明
在程序运行过程中一直不会发生改变的量称为常量,通常也被称为“final变量“。常量在整个过程中只能被赋值一次。常量的名称通常为大写字母。基本语法:
final 数据类型 常量名称=值
final double PI=3.1415;
4.变量的有效围
1.成员变量
在类体中声明的变量为成员变量,成员变量在整个类中都有效。类的成员变量又可以分为两种,即静态变量和实例变量。
class i{
int x=78;
static int y=99;
}
其中x为实例变量,y为静态变量(也称类变量)。如果在成员变量前面加上关键字static这样成员变量就称为静态变量。静态变量的有效范围可以跨类,甚至可达到整个应用程序之内。对于静态变量,除了能在声明它的类内存取,还可以直接以“类名.静态变量”的方式在其他类内使用。
class o{
static int y=0;
}
class p{
int z=o.y;
}
2.局部变量
在类的方法体中声明的变量(方法内部定义,“{”与“}”之间的代码中声明的变量)称为局部变量。局部变量只在当前的代码块中有效,也就是之内在“{”与“}”之间使用。
public class i{
static int c=3;
public static void main(String args[]){
int c=4;
System.out.println("c的值为:"+c);
}
}
4. 运算符
1. 赋值运算符
赋值运算符“=”表示,它是一个二元运算符(对两个操作数进行处理),其功能是将右方操作数所含的值赋予给左方的操作数。
int y=100;
由于运算符“=”处理时会先取得右方表示的处理后的结果,因此一个表示式中若有两个即以上的“=”运算符,会从最右边的“=”开始处理。
int a=5;
int c=b=a+4
则结果为:c=9,b=9;
2.算术运算符
运算符 | 说明 | 实例 | 结果 |
---|---|---|---|
+ | 加 | 12.45f+15 | 27.45 |
- | 减 | 12.45f-10 | 2.45 |
* | 乘 | 5*15 | 75 |
/ | 除 | 15/5 | 3 |
% | 取余 | 10/3 | 1 |
3.自增和自减运算符
假如a=8
++a; //a先自增 a=9
--a ; //a先自减 a=7
b=++a; //a先自增,再赋值给b,a=9,b=9
b=--a; //a先自减,再赋值给b,a=7,b=7
4.比较运算符
运算符 | 作用 | 举例 | 操作数据 | 结果 |
---|---|---|---|---|
> | 比较左方是否大于右方 | 103>102 | 整型,浮点型,字符型 | true |
< | 比较右方是否大于左方 | 209<110 | 整型,浮点型,字符型 | flase |
== | 比较左方是否等于右方 | 110==999 | 基本数据类型,引用型 | flase |
>= | 比较左方是否大于等于右方 | 1000>=999 | 整型,浮点型,字符型 | true |
<= | 比较右方是否大于等于左方 | 999<=1000 | 整型,浮点型,字符型 | true |
!= | 比较左方是否不等于右方 | 100!=100 | 整型,浮点型,字符型 | flase |
5.逻辑运算符
运算符 | 含义 | 用法 | 结合方向 |
---|---|---|---|
&& | 逻辑与 | num1&&num2 | 从左向右 |
|| | 逻辑或 | num1||num2 | 从左向右 |
! | 逻辑非 | num1!num2 | 从右向左 |
6. 位运算符
位运算符除“按位与”和“按位或”运算符外,其他只能处理整数的操作数,包括byte,short,char,int和long等数据类型。位运算是完全针对位方面的操作,整型数据在内存中以二进制的形式表示,左边最高位为符号位,0表示整数,1表示负数。负数采用补码的方式。
求负数的补码:先求出负数的原码,再求反码,再+1就是补码。例如:
-
“按位与”运算;
运算法则为:两个都为1时才为1,否则为0.(&)
-
”按位或“运算
运算法则:当两个都是0时,才为0,否则为1(|)
-
"按位取反"运算
运算法则:1变成0,0变成1(~)
-
"按位异或"运算
运算法则:当两者相同是为1,当两者不同是为0(^)
-
”移位操作"
<<:左移
/>>:右移
/>>>:不带符号右移
负数的左移,和右移,都是先求出移位前的补码,再移位,再根据移位后的补码,-1变成移位后的反码,再取反变为移位后的原码。
左移:扩大2^n
右移:缩小2^n(小数部分直接省略,当移位后小于1则为1,当大于-1则为-1)
7.三元运算符
表达式?值1:值2; //如果表达式为真,则取值1,为假则取值2
8.运算符的优先顺序
- 增量和减量运算
- 算术运算
- 比较运算
- 逻辑运算
- 赋值运算
5.数据类型转换
如果从低精度向高精度数据类型转换,则永远不会溢出,并且总是成功;而把高精度数据类型向低精度数据类型转换时,则会有信息丢失,有可能失败。数据转换有两种方式:隐式转换和显示转换。
1.隐式类型转换
从低精度数据类型向高精度数据类型的转换,系统会自动执行,这种转换称为隐式转换。
byte<short<int<long<float<double
2.显示转换
当把高精度的变量的值赋予给低精度的变量时,必须使用显示转换。
int a=(int)45.69f;
long y=(long)45.69f
当把整数赋值给一个byte,short,int,long型变量时,不可以超出它的取值范围,否则必须进行强制转换。
失败。数据转换有两种方式:隐式转换和显示转换。
1.隐式类型转换
从低精度数据类型向高精度数据类型的转换,系统会自动执行,这种转换称为隐式转换。
byte<short<int<long<float<double
2.显示转换
当把高精度的变量的值赋予给低精度的变量时,必须使用显示转换。
int a=(int)45.69f;
long y=(long)45.69f
当把整数赋值给一个byte,short,int,long型变量时,不可以超出它的取值范围,否则必须进行强制转换。