Java预备知识
注释
java中共有三种注释方式
- 单行注释(Line comment)(只能对单一一行进行注释)
//单行注释(//后面便是需要注释的具体内容,仅限于这一行)
- 多行注释(Block comment)(可以连续注释多行内容)
//多行注释(只需要输入/*后回车即可,会在下面的行里面自动出现*/,在/*和*/之间的多个行均可书写需要注释的具体内容).
/*
*/
- javaDoc
//JavaDoc注释,输入/**后回车,会在下面的行出现*/,并且/**和*/之间的每一行开头都有一个*,在*后面输入一些特定的词可以有相应的功能,如@Description可以进行描述,@auther 可以标明作者。
/**
*@auther 作者名
*@version 版本号
*@since 指明需要最早使用的jdk版本
*@param 参数名
*@return 返回值情况
*@throws 异常抛出情况 //param,return,throws是针对类的方法的注释
*/
修改注释的颜色,可以通过File>>settings>>Editor>>Color Scheme>>java>>comments(注释),可以依次对Line comment, Block comment, JavaDoc 的颜色进行修改
idea生成JavaDoc文档
Tools—>GenerateJavaDoc,在弹出的界面选择要输出什么(整个项目还是模块或是file),选择输出目录(Output Directory),
Locale填写zh_CN,
Other commend line arguments 填写**-encoding UTF-8 -charset UTF-8**
命令行窗口生成JavaDoc文档。
在要生成javadoc文档的文件夹内,搜索框目录地址前输入cmd并空格,打开命令行窗口,输入javadoc -encoding UTF-8 -charset UTF-8 java文件
标识符
java所有的组成部分都需要名字,类名、变量名、方法名都被称为标识符。
关键字
数据类型
- 强类型语言:要求变量的使用要严格符合规定,所有变量必须先定义在使用。
- 弱类型语言:
java的数据类型
注意:字符串string不是关键字,而是一个类;八大基本数据类型都是关键字
补充:位(bit)是计算机内部数据存储的最小单位;字节(Byte或B)是计算机中数据处理的基本单位。
1Byte=8bit;(一个字节等于8位)
1KB=1024B(或1024Byte);
1024KB=1M;
1024M=1G;
1024G=1TB;
//八大基本数据类型示例
//整数
byte num1=10;//byte类型的整数占一个字节范围,可取的数值范围为(-128,127)
short num2=1000;//short类型的整数占两个字节范围,可取的数值范围为(-32768,32767)
int num3=111;//int类型的整数占四个字节范围
long num4=1234567L;//long类型的整数占八个字节范围,且在后面需加上L以表示是long类型的整数。
//浮点数
float num5=1.43456F;//float类型的浮点数占四个字节范围,且在后面需要加上F表示这是一个float类型的浮点数。
double num6=3.141592653579;//dounle类型的浮点数占八个字节范围。
//字符
char num7="a";//字符类型的数据占两个字节,只能由单个的字符来赋值。
//布尔值
boolean flag=true;
boolean flag1=false;//布尔值类型的变量只能赋值为true或false,布尔值类型的数据只占1位。
**注意:**浮点数不可以用来比较。
进制
二进制:由0和1这两个数字构成,java中在数据前面加上0b表示该数据是二进制的数据。eg : 0b10
八进制:由0~7这八个数字构成,java中在数据前面加上0表示该数据是八进制的数据。eg : 010
十进制:由0~9这十个数字构成,java中在数据前面不用加任何标志表示该数据是十进制的数据。eg : 010
十六进制:由09和AF这十六个数字构成,java中在数据前面加上0x表示该数据是二进制的数据。eg : 0x10
进制间的转换:二进制数每三个一划分就可转换成八进制数,二进制数每四个一划分便可转化为十六进制数,相反的八进制数每一位按照对应的转换规则转换为三位则变为二进制,十六进制数每一位按照对应的转换规则转换为四位则变为二进制。
十进制<——>二进制<——>八进制或者十六进制.
Extra:Unicode编码可以处理各种语言的文字。Unicode码扩展自ASCII字元集,占用两个字节,最多可表示65536个字符,从U0000到UFFFF,用一张表将各个字符与一个数字对应,\Uxxxx对应的就是一个Unicode编码的字符(xxxx指从0000到FFFF的某一个十六进制的数).例如\U0061,十六进制的0061对应的十进制数是97,97对应的字符是a.
类型转换
运算中,不同类型的数据先转换为同一类型的在进行运算。
等级由低到高:
byte,short,char—>int—>long—>float—>double
**强制类型转换:**将高等级类型数据转换为低等级类型数据时需要强制转换,具体操作为在数据或者变量之前添加括号,在括号内输入需要转换的数据类型。(强制类型转换可能存在内存溢出的问题,因为不同等级类型的数据占用不同的字节数,即可取的数值范围是不同的,高等级转低等级就可能会超出低等级低的取值范围。)
自动类型转换*:低等级类型的数据可直接转换为高等级类型的数据。
//强制类型转换
int num1=100;
short num2=(short)num1;//在num1前面加括号并且输入讲要转换的数据类型,具体过程是将int型变量num1对应的int型数据100转换为short类型的数据,之后将该值赋值给num2.
//自动类型转换
byte num1=10;
int num2=num1;//将byte类型的num1转换为int类型的num2不用在num1前面加括号及转换的类型,可自动转换。
变量
变量包含三部分,变量名、变量类型、作用域。
变量的类型:类变量、局部变量、实例变量
- 类变量
类变量定义在方法之外类的里面,和实例变量差不多,但是要在最前面加一个static,可以直接输出。
- 局部变量
局部变量定义在方法中使用,必须先定义和初始化值才能使用,作用域仅限于本方法。
- 实例变量
实例变量从属于对象,定义在方法的外面类的里面。实例变量如果不自行初始化,则它的值为该数据类型的默认值(基本数据类型中整数或浮点数默认为0或0.0布尔值类型的默认为false;除了基本数据类型外,其余的数据类型默认为null。)
public class demo01{
/*方法之外类的里面,在前面加上static表示定义的类变量,如下面定义的salary和num。*/
static String salary;
static double num;
//方法之外类的里面,定义的变量name和sum都是实例变量
String name;
int sum;
public static void main(String [] args){
System.out.println(salary);
System.out.println(sum);
//定义的类变量可以直接输出。
demo01 test=new demo01();
System.out.println(test.name);
System.out.println(test.sum);
/*定义的实例变量需要借助demo01 test=new demo01()来进行操作*/
}
}
常量
常量经过初始化它的值被确定后,在程序运行过程中是不允许改变的。
格式: final 变量名=值;(变量名一般使用大写符号)。
eg: final double PI=3.14;
变量的命名规范
- 类成员变量:首字母小写和驼峰原则(驼峰原则:第一个单词首字母小写,后面的单词首字母都大写)。
- 局部变量:首字母小写和驼峰原则。
- 常量:大写字母和驼峰原则。
- 类名:首字母大写和驼峰原则。
- 方法名:首字母小写和驼峰原则。
运算符
/:得到的是商 %(模运算):得到的是余数
逻辑运算符: &&(与) ||(或) !(非)
++:自增 ——:自减
//i++的用法
int i=1,a;
a=i++;//此处先是把i的值赋给a,然后i在加1
//++i的用法
int i=1,b;
b=++i;//此处先是i加1,然后把i的值赋给b。
//扩展赋值运算符
a+=b //a=a+b
a-=b //a=a-b
a*=b //a=a*b
a/=b //a=a/b
位运算符:
&:对应位进行与操作
|:对应位进行或操作
~:对某位进行非操作
^:对应位进行异或操作(一样则为0不一样则为1)
<<:左移(相当于乘2) >>:右移(相当于除2)
x<<y//x,y均为一个整数,将x代表的数换算成为对应的二进制数,然后左移相应的y位并在后面补上0得到新的二进制数,换算为十进制后可以发现,最后的结果就是x乘以2^y。
条件运算符(? : )
x? y : z
如果x为true,则为y,否则为z。