java基础知识
文章目录
(一)java中的标识符
1、标识符的定义
java中的包、类、方法、参数和变量的名字可由任意顺序的大小写字母、数字、下划线(_)和美元符号($)组成
2、标识符的命名规则
1、由字母、数字、下划线(_)和美元符号($)组成,但不能以数字开头
2、严格区分大小写,java是一门严格的强类型语言,强类型语言:所有变量都必须先定义再使用
3、标识符不能用关键字
// 合法标识符:age,$salary,_name _2_score
// 不合法标识符1baby,-enjoy,&arry
3、标识符的命名规范
1、见名知其意,不要过长
2、驼峰原则
3、包的命名:全部小写,多级包用“.”隔开
package com.zwf.project_7
4、类或者接口:每个单词的首字母大写
public class Test
5、方法或变量:第一个单词全部小写,第二个单词开始每个单词首字母大写
public class Test {
static int age=21;//有static修饰,此变量是 :类变量,从属于类的,
String name="zwf";//实例变量,也叫成员变量,从属于对象的,注意:如果不进行初始化,则输出这个类型的默认值
public int print(int b){
int c=2;//局部变量,注意:必须声明和初始化值
int d=c+b;
return d;
}
}
注意事项:
(1)每个变量都有类型,类型可以是基本类型,也可以是引用类型
(2)变量名必须是合法的标识符
(3)变量声明是一条完整的语句,因此每一个声明都要以分号结束(;),必须是英文的分号
6、常量:全部大写,每个单词之间使用_进行分割(有final关键字)
定义: 修饰符 final 常量名=值;
public final String NAME="zwf";
注意:
(1)一种特殊的变量,其值被设定后,程序运行中不允许被改变
(2)常量一般使用大写符号
7、可以使用中文命名,但不建议,也不建议拼音命名
public String 玩笑="开玩笑";
4、java的注释
1、作用:
(1)让自己和其他用户可以方便的阅读每段程序,提高程序的可读性。
(2)可以通过注释屏蔽掉一些暂时不用的语句,等需要到时直接取消注释。
2、注释分类:
(1)单行注释:就是在注释内容前面加双斜杠(//),java编译器会忽略掉这部分信息
//int a=1;
(2)多行注释:就是在注释内容前面以单斜杠加一个星行标记开头,并在注释内容末尾以一个星行标记加单斜杠结束
/*
int a=1;
int b=2;
*/
(3)文档注释:就是在注释内容前面以单斜杠加两个星行标记开头,并以一个星行标记加单斜杠结束,用这种方法注释的内容会被解释成程序的正式文档,用以说明该程序的层次结构及方法
//JavaDoc :文档注释
/**
*@Author zwf 凯里学院
*/
5、java代码调试注意点
调试前必须打断点
(二)数据类型划分
1、数据类型
java的数据类型可分为:基本数据类型和引用数据类型
2、基本数据类型的划分
1、数值型:
整数类型:byte、short、int、long;整数类型的默认类型为:0
浮点类型:float、double;浮点型只是近视值,默认型:0.0
float f=0.1f;
double d=1.0/10;
System.out.println(f==d);//运行结果:flase,因为浮点型只是近视值,故最好少用浮点型来判断
2、字符型:char;必须用单引号括起来,默认型:***‘\u0000’***
char c1='a';
char c2='猪';
System.out.println(c1+"\t"+c2);
System.out.println((int)c1+"\t"+(int)c2);//强制性转换
//运行结果:
//a 猪
//97 29482
//所有的字符本质还是数字
3、布尔类型:boolean;默认型为:flase
3、引用数据类型
1、类(class);字符串不是基本类型,String首字母大写,它是一个特殊类
2、接口(interface)
3、数组
4、引用数据类型的默认值为:null
4、特殊数据类型——布尔类型
1、布尔数据只有两个值true和flase,不能写成bool(这是c语言的写法)
2、布尔数据只能参与逻辑关系运算:&& || == != !
5、不同类型变量存储范围
1、byte:占用一个字节,-Math.pow(2, 7)到Math.pow(2, 7)-1; -128到127
2、short:占用两个字节,-Math.pow(2, 15)到Math.pow(2, 15)-1; -32768到32767
3、int:占用四个字节,-Math.pow(2, 31)到Math.pow(2, 31)-1; -2147483648到2147483647
4、long:占用八个字节,-Math.pow(2, 63)到Math.pow(2, 63)-1; -9223372036854775808到9223372036854775807
5、float:占用四个字节,
6、double:占用八个字节,
7、char:占用两个字节,0到Math.pow (2, 16)-1
8、boolean:占用一个字节,其取值只有两个true和flase
9、注意:
数据范围与字节数不一定相关,float数据范围比long更广泛,float 4个字节,long 8个字节
6、数据类型的转换
1、自动类型转换(隐式)
定义:数据范围从小到大
2、强制类型转换(显示)
定义:数据范围从大到小
错误:报错了
正确:
3、注意:
(1)不能对boolean类型进行类型转换
(2)把容量大的类型转换为容量小的类型时,必须使用强制类型转换
(3)整型,实型、字符型数据可以混合运算
(4)运算中,不同类型的数据先转换为同一类型,然后进行运算,以下转换从低级到高级:
(低) byte---->char---->int----> long---->float---->double(高)
System.out.println(2+4.0f);//int+float得到float型,运行结果为6.0
(三)java中的运算符
1、表达式
1、由操作数与运算符组成:
a+b//a与b是操作数,+是运算符,这是表达式。有分号“;”是表达式语句
2、操作数:可以由变量、常量、也可以由方法组成
逻辑运算符的优先级为:!运算级别最高,&& 运算高于 || 运算。!运算符的优先级高于算术运算符,而 && 和 || 运算则低于关系运算符。结合方向是:逻辑非(单目运算符)具有右结合性,逻辑与和逻辑或(双目运算符)具有左结合性。
2、赋值运算符
等号(=)在java中不是等于的意思,是***赋值***的意思,为不同数据类型的变量给定初值
int a=1;//把1赋给整型变量a
3、算术运算符(二元运算符)
1、加法(+)的三种不同含义
(1)“+”可以表示数值的相加
(2)“+”可以表示字符串的联接,任何数据和字符串连接的时候,结果都会变成字符串
System.out.println(123+"ad");//整型与字符串连接,得到结果为:123ad
System.out.println("abc"+123);//字符串与整型连接,得到结果为:abc123
2、减法(-)
3、乘法(*)
4、除法(/)
除法的运算结果是和运算对象的数据类型有关
(1)整型/整型
//Ctrl+D:复制当前到下一行
int a=4;
int b=3;
int c;
c=a/b;
System.out.println("4/3="+c);//整型除以整型,得到的结果向下取整结果是1(直接舍去小数部分)
double d;
d=a/b;
System.out.println("4/3="+d);//计算出a/b的结果1,再将1转换成double型1.0
(2)double/整数,整数/double,double/double
double a=6.0;
int b=3;
double c;
c=a/b;
System.out.println("6.0/3="+c);//double除以整型,得到double型,结果是2.0
整数/double
int a=6;
double b=3.0;
double c;
c=a/b;
System.out.println("6/3.0="+c);//整型除以double,得到double型,结果是2.0
double/double
double a=6.0;
double b=3.0;
double c;
c=a/b;
System.out.println("6.0/3.0="+c);//double除以double,得到double型,结果是2.0
(3)精度由低到高转换正确,精度由高到低转换是错误的,因为由高到低转换会丢失精度。
精度低的遇到精度高的会自动转换成精度高的。
double a=6.0;
int b=3;
int c;
c=a/b;//此处会报错
5、取余运算符(%)
java中支持取余运算符的被除数与除数是实数(C语言只支持整数),但所得余数的正负只和被除数相同
System.out.println(19.0%(9));//被除数为实型,结果也为实型1.0
System.out.println(-19.0%(9));//被除数为负实型,结果也为负实型-1.0
System.out.println(19.0%(-9));//被除数为正实型,结果也为正实型1.0
System.out.println(-19.0%(-9));//被除数为负实型,结果也为负实型-1.0
4、关系运算符
关系运算符:> >= < <= != ==
返回结果:正确或者错误,布尔型
int a=1;
int b=2;
System.out.println(a>b);
System.out.println(a<b);
System.out.println(a==b);//等于用两个==表示,一个=是赋值
System.out.println(a!=b);
5、逻辑运算符
1、返回结果:正确或者错误,布尔型
2、定义逻辑运算符又叫条件运算符,即运算的结果只有两种,真(true)或假(false)。
3、逻辑非(!):(这是一个一元运算符)
! 可以用来对一个值进行非运算,非运算就是值进行取反操作(布尔类型的表达式)
int x=2;
int y=3;
System.out.println(!(x>y));//2>3是错误的,应该是flase,但是有逻辑非,最后的结果为true
4、逻辑与(&&)
&&可以对符号两侧的值进行与运算并返回结果(有一个假则为则输出假,全真才输出为真)
boolean flag;
int x=1;
int y=2;
flag=x>0&&y>0;
System.out.println(flag);//运行结果:true
注意:
(1)当&&两边的值都为真时,才能得到布尔的值为真,其余结果为假
(2)若&&左边的值为假时,直接输出flase,不用再进行右边的判断(程序没走右边)
boolean flag;
int x=1;
int y=2;
flag=x<0&&y>0;
System.out.println(flag);//运行结果:flase
5、逻辑或(||)
||可以对符号两侧的值进行与运算并返回结果(有一个假则为则输出真,全假才输出为真)
boolean flag;
int x=1;
int y=2;
flag=x<0&&y>0;
System.out.println(flag);//运行结果:true
注意:
(1)当||两边的值都为假时,才能得到布尔的值为假,其余结果为真
boolean flag;
int x=1;
int y=2;
flag=x<0||y<0;
System.out.println(flag);//运行结果:flase
(2)若&&左边的值为真时,直接输出true,不用再进行右边的判断(程序没走右边)
6、自增与自减运算符
1、自增运算符
(1)定义:令一个整型变量增加1
(2)两种写法:
① i++:先使用i,再将i加1
② ++i:先将i加1,再使用i
int x=1;
int y=2;
int a=x++;
int b=++y;
System.out.println("++在后a的值:"+a+"\tx=1后:"+x);//先使用x,再将x加1
System.out.println("++在前b的值:"+b+"\ty=2后:"+y);//先将y加1,再使用y
(3)口诀:++在前,先将i加1,再使用i
++在后,先使用i,再将i加1
2、自减运算符
(1)令一个整型变量减少1
(2)用法与自增一样
7、位运算符
定义:指进行二进制位的运算
位运算符 | 描述 |
---|---|
& | 按位与 |
| | 按位或 |
^ | 异或(相同为0,不同为1 |
~ | 取反 |
<< | 左移位 |
>> | 右移位 |
>>> | 无符号右移位 |
注意:
左位移 << 运算符后面的值就是2的几次方(相当于乘以2的几次方)
System.out.println(12<<2);//运行结果:48,相当于12乘以2的2次方
右移位 >> 运算符后面的值就是2的几次方(相当于除以2的几次方)
System.out.println(12>>2);//运行结果:3,相当于12除以2的2次方
8、运算符的优先级
序号越小表示优先级越高
运算符 | 类 | 结合性 | 序号 |
---|---|---|---|
() | 括号运算符 | 由左至右 | 1 |
[] | 方括号运算符 | 由左至右 | 1 |
!、+(正号)、-(负号) | 一元运算符 | 由右至左 | 2 |
~ | 位逻辑运算符 | 由右至左 | 2 |
++、– | 自增与自减运算符 | 由右至左 | 2 |
*、/、% | 算术运算符 | 由左至右 | 3 |
+、- | 算术运算符 | 由左至右 | 4 |
<<、>> | 位左移、位右移运算符 | 由左至右 | 5 |