Java基础知识
1、注释
注释不会被执行,是给写代码的我看的
养成习惯!养成习惯!养成习惯!
单行注释
多行注释
文档注释
/***
* .,:,,, .::,,,::.
* .::::,,;;, .,;;:,,....:i:
* :i,.::::,;i:. ....,,:::::::::,.... .;i:,. ......;i.
* :;..:::;::::i;,,:::;:,,,,,,,,,,..,.,,:::iri:. .,:irsr:,.;i.
* ;;..,::::;;;;ri,,,. ..,,:;s1s1ssrr;,.;r,
* :;. ,::;ii;:, . ................... .;iirri;;;,,;i,
* ,i. .;ri:. ... ............................ .,,:;:,,,;i:
* :s,.;r:... ....................................... .::;::s;
* ,1r::. .............,,,.,,:,,........................,;iir;
* ,s;........... ..::.,;:,,. ...............,;1s
* :i,..,. .,:,,::,. .......... .......;1,
* ir,....:rrssr;:, ,,.,::. .r5S9989398G95hr;. ....,.:s,
* ;r,..,s9855513XHAG3i .,,,,,,,. ,S931,.,,.;s;s&BHHA8s.,..,..:r:
* :r;..rGGh, :SAG;;G@BS:.,,,,,,,,,.r83: hHH1sXMBHHHM3..,,,,.ir.
* ,si,.1GS, sBMAAX&MBMB5,,,,,,:,,.:&8 3@HXHBMBHBBH#X,.,,,,,,rr
* ;1:,,SH: .A@&&B#&8H#BS,,,,,,,,,.,5XS, 3@MHABM&59M#As..,,,,:,is,
* .rr,,,;9&1 hBHHBB&8AMGr,,,,,,,,,,,:h&&9s; r9&BMHBHMB9: . .,,,,;ri.
* :1:....:5&XSi;r8BMBHHA9r:,......,,,,:ii19GG88899XHHH&GSr. ...,:rs.
* ;s. .:sS8G8GG889hi. ....,,:;:,.:irssrriii:,. ...,,i1,
* ;1, ..,....,,isssi;, .,,. ....,.i1,
* ;h: i9HHBMBBHAX9: . ...,,,rs,
* ,1i.. :A#MBBBBMHB##s ....,,,;si.
* .r1,.. ,..;3BMBBBHBB#Bh. .. ....,,,,,i1;
* :h;.. .,..;,1XBMMMMBXs,.,, .. :: ,. ....,,,,,,ss.
* ih: .. .;;;, ;;:s58A3i,.. ,. ,.:,,. ...,,,,,:,s1,
* .s1,.... .,;sh, ,iSAXs;. ,. ,,.i85 ...,,,,,,:i1;
* .rh: ... rXG9XBBM#M#MHAX3hss13&&HHXr .....,,,,,,,ih;
* .s5: ..... i598X&&A&AAAAAA&XG851r: ........,,,,:,,sh;
* . ihr, ... . .. ........,,,,,;11:.
* ,s1i. ... ..,,,..,,,.,,.,,.,.. ........,,.,,.;s5i.
* .:s1r,...................... ..............;shs,
* . .:shr:. .... ..............,ishs.
* .,issr;,... ...........................,is1s;.
* .,is1si;:,....................,:;ir1sr;,
* ..:isssssrrii;::::::;;iirsssssr;:..
* .,::iiirsssssssssrri;;:.
*/
2、标识符
类名,变量名,方法名等都被称为标识符
关键字
注意:
所有标识符都是以字母(A-Z或a-z)、美元符($)、下划线(_)开头的
首字符之后是以是字母(A-Z或a-z)、美元符($)、下划线(_)、数字组合的
不能使用关键字作为方法名或者变量名
标识符是对大小写敏感的
虽然可以使用中文命名,但一般不使用,同样也不使用拼音
3、数据类型
Java数据类型分两大类,基本数据类型(primitive type)和引用数据类型(reference type)
注意:
long类型要在数字后加L,long a = 3000000000L;
float类型要在数字后加F,float b = 13.1F;
1bit表示1位,1byte表示1字节,1B=8b
1KB=1024B,1024KB=1MB,1024MB=1GB
4、类型转换
自动类型转换(小到大)
强制类型转换(大到小)
int i = 66;
byte b = (byte) i; //66
System.out.println("-----------");
System.out.println((int)13.14);//13 精度丢失
System.out.println((int)-32.78F);//-32
//内存溢出问题
public class Demo05 {
public static void main(String[] args) {
//操作数字比较大的时候,注意溢出问题
int money = 1000000000;
int year = 20;
int totalmoney = money*year;
System.out.println(totalmoney); //-1474836480 因为计算的时候溢出
long totalmoney2 = money*(long)year;
System.out.println(totalmoney2);//20000000000 先把一个数转换成long类型就能避免计算溢出
}
}
注意:
不能对布尔值进行转换
不能把对象类型转换为不相干的类型
数据类型由高到低时强制转换
转换的时候可能存在内存溢出或者精度丢失
?
5、变量,常量,作用域
java是强类型语言,每个变量必须要声明其类型
变量格式:数据类型 变量名 = 值;
变量的作用域:类变量(static)、实例变量(从属于对象)、局部变量(在方法里)
常量:初始化之后不可改变
常量格式:final 数据类型 常量名 = 值; 常量名一般都用大写字母
变量的命名规范:
变量、方法名、类名做到见名知意
类成员变量:小驼峰原则,oneDay
局部变量:小驼峰原则,twoDay
常量:大写字母下划线,MAX_SCORE
类名:大驼峰原则,NiceGirl
方法名:小驼峰原则,goHome();
6、基本运算符
自增自减运算符:++在后,先赋初始值,再运算;++在前,先运算,再赋值
幂运算:使用Math工具类操作
//求2^3=8
double pow = Math.pow(2, 3);
System.out.println(pow); //8.0
逻辑运算符:与&&(两个都为真结果才为真) 或||(两个个都为假结果才为假) 非!(取反)
短路运算:当先执行假时则不会再执行后面的内容
//短路运算
//若执行了后面的内容则c++会变成6,没执行还是5
int c = 5;
boolean d = (c<4) && (c++<4);
System.out.println(c); //5
位运算:
/*
A = 1100 0011
B = 0000 1111
A & B = 0000 0011 都为1才为1
A | B = 1100 1111 都为0才为0
A ^ B = 1100 1100 相同为0不同为1
~ B = 1111 0000 取反
2*8=16 2*2*2*2=16
位运算效率极高
<
>>右移 /2
*/
System.out.println(2<<3);//16 2是0000 0010,左移三位为0001 0000,即为十进制的16
三元运算符:
//x ? y : z
//若x为true则结果为y否则为z
int score = 80;
String type = score < 60 ? "不及格" : "及格了";
System.out.println(type);
扩展赋值运算符:
int a = 10;
int b = 20;
System.out.println(a+=b); //a=a+b=30
System.out.println(a-=b); //a=a-b=30-20=10
System.out.println(a*=b); //a=a*b=200
System.out.println(a/=b); //a=a/b=200/20=10