一些基础知识
关键字
被赋予了特定意义的单词称之为关键字,关键字不能用于标识符的定义了
标识符
类名,接口名,变量名,方法名等我们都可以称之为标识符。标识符不能是关键字,否则程序会报错。
标识符遵循驼峰式命名,类名,接口名为大驼峰式命名(列如:HelloWorld),而变量名,方法名一般为小驼峰式命名(getName)。
数据类型
计算机语言大致分为强类型语言和弱类型语言,java属于强类型。
数据类型为基本数据类型和引用数据类型
基本数据类型有4类8种:byte(1字节),char(2字节),short(2字节),int(4)字节,long(8字节),float(4字节),double(8字节),boolean(没有明确定义,依赖于jvm)。
引用数据类型:类,接口,数组等等。
位和字节
-
位(b)是计算机中数据存储最小单位,字节(B)是数据处理的基本单位,1个字节等于8位。
-
字节的单位有B,KB,MB,GB,TB,PB
1KB=1024B=1M 1024M=1G
1MB=1024KB
1GM=1024MB
1TB=1024GB
1PB=1024TB
32位和64位的区别
主要是寻址能力,32位的寻址空间是2的32次方位,64位的寻址空间是2的64次方位
进制
-
2进制
0b 比如说0b10=2
-
8进制
0 比如说010=8
-
10进制
比如说10=10
-
16进制
0x 比如说0x10=16
浮点数拓展
float f= (float) (1.0+0.6);
double d=(double)(1.0+0.6);
System.out.println(f);
System.out.println(d);
System.out.println(f==d);
/*这边的f==d输出的是false,只要是浮点数,在进行小数运算的时候会发生精度损失
所以在进行和钱有关的重要的数据进行计算的时候,我们要用BigDecimal
*/
字符和字节
字符本质上都是数字我们可以用强制转换成int
字符可以可以对照ascll码表转换成对应字节。
字节也可以转换成对应的字符。
基本类型的互相转换
低->高 自动类型转换
高->低 强制类型转换
强制类型转换可能会发生内存溢出导致精度的损失
布尔类型在java中不能进行转换!
转换时不可以转换成无关的类型!
变量
内存中的一小块存储单元,里面存放着经常会改变的数据。
数据类型 变量名=变量值(,变量名=变量值,。。。。);
常量
值在运行过程中不会发生改变的量。
final 数据类型 数据名=数据值(,变量名=变量值,。。。);
被常量修饰的变量可以在类中方法内,也可以在类中方法外
但是被static修饰只能在类中方法外了
变量分为局部变量和全局变量,局部变量必须赋初值,全局变量可以不用赋初值,系统会自动分配给它默认的值!
作用域
{}
作用域中的变量只能在作用域中生效,同一个作用域中,变量不可重名
Math类
与数学有关的工具类
Math.abs()
Math.pow()
............
>> <<
右移 左移
左移 *2
右移 /2
2*8=16
<=>2 * 2 * 2 * 2
2<<3
00000010 变成了
00010000
三元运算符
语法:表达式?值1:值2;
包机制
包package要位于第一行,包上不可以有任何东西
如果不是java.lang包下的类,需要导包。
JavaDoc
javadoc -encoding UTF-8 -charset utf-8 文件名.java
这是对文档注释的
@author
@version
@since
@param
@return
@throws
也可用idea生成文档
在tools中找到generate doc
我再生成文档的时候老是报错,后来我把环境变量中的classpath删除了,然后我的包可能不小心建的有些乱,然后把包删了重新建,就能生成doc了。
Scanner
//Scanner的方法next()和nextLine()的区别前者有空格也会合并掉,后者可以有空格
int num=0;
int sum=0;
Scanner sc=new Scanner(System.in);
while(sc.hasNextInt()){
num=sc.nextInt();
sum+=num;
}
System.out.println(sum);
sc.close();
//============================================
String num="";
int sum=0;
Scanner sc=new Scanner(System.in);
while(!sc.hasNext("#")){
num = sc.next();
}
sc.close();
反编译
idea它支持反编译
将要反编译的字节码放入和java类一块的目录中即可
比如Project Structure ->D:\mad_speak\out看到类似这个路径把它找到,并找出相应的class字节码文件粘贴,和java类放一块,再在idea里打开即可。
方法重载
参数不同即个数不同或顺序不同或类型不同
但方法名要相同
可变参数
可变参数必须放在参数列表的最后面,否则会报错
可变参数可以理解它就是个数组
例如
public static void main(String[] args) {
can(5,1,2,3,7,9);
}
public static void can(int a,int...num){
for(int n:num){
System.out.println(n);
}
System.out.println("a="+a);
}
//=======================================================================================
public static void main(String[] args) {
can(5,1,2,3,7,9);
can(5,new int[]{1,2,7,9});
}
public static void can(int a,int...num){
for(int n:num){
System.out.println(n);
}
System.out.println("a="+a);
}