Java基础之基本数据类型/变量/常量/运算符/包机制/javaDoc
基本数据类型
整型:byte,int,short,long
拓展,进制:二进制 0b,八进制0(010=8),十进制,十六进制0x(0x10=16)
int a = 10;//十进制
int a1 = 010;//八进制
int a2 = 0b10;//二进制
int a3 = 0x10;//十六进制
System.out.println("a="+a+",a1="+a1+",a2="+a2+",a3="+a3);
//输出:a=10,a1=8,a2=2,a3=16
浮点型:double,float
拓展,float和double存在舍入误差,避免使用浮点数进行比较,使用BigDecimal类进行比较
字符型:char
字符可以强制转换成数字,所有字符本质还是数字
编码 Unicode,占用2个字节,Unicode转义字符:"\u0000"~"\uFFFF"
转义字符:制表符:"\t",换行符"\n"
char ch = '我';
System.out.println((int)ch);//强制转换
//输出25105
布尔型:boolean
类型转换:运算中,不同类型的数据先转化为同一类型再进行计算
低------------------------------------------->高
byte,short,char-->int-->long-->floar-->double
强制类型转换,转换时要避免内存溢出
自动类型转换
int a = 10;
byte b = (byte)a;//强制转换
doUble d = a;//自动转换
注意点:
- 不能对布尔值进行转换
- 不能把对象类型转换为不相干的类型
- 在把高容量转换到低容量的时候,强制转换
- 转换的时候可能存在内存溢出或精度问题
- 数字进行计算时,如果结果存在内存溢出时要先转换后计算
System.out.println((int)23.7);//输出23
//JDK7新特性,数字之间可以用下划线分割
int money = 1_000_000_000;
int year = 2;
long a = money*((int)year);//先转换后计算
变量
注意点:
- 每个变量都有类型,可以是基本类型,也可以是引用类型
- 变量名必须是合法标识符
- 变量声明是一条完整的语句,必须以分号结尾
- 命名规则,首字母小写,驼峰原则
类变量:static,从属于类
实例变量:写在方法外,类里面,从属于类,不初始化值则赋值为默认值
局部变量:写在方法里的,必须声明和初始化值,生命周期在声明的方法中
public class Hello {
int b;//实例变量
static int a = 1;//类变量
public static void main(String[] args){
//变量定义
int a = 1;
String str = "TTK";
}
}
常量:final,命名规则:定义为大写+下划线
final static double DB = 3.14;
运算符:
Java支持的运算符
- 算数运算符:+,-,*,/,%,++,--
- 赋值运算符:=
- 关系运算符:>,<,>=,<=,==,!= ,instanceof(返回结果为boolean值)
- 逻辑运算符:&&,||,!
- 位运算符:&,|,^,~,>>,<<,>>>
- 条件运算符:?:
- 扩展赋值运算符:+=,-=,*=,/=
public static void operAtor(){
int a = 10;
long b = 10;
short c = 10;
byte d = 10;
int e = 10;
int f = 23;
// int long short byte 运算,若存在long类型则结果为long类型,否则为int类型
System.out.println(a+a);//20,int类型
System.out.println(a-b);//0,long类型
System.out.println(a*c);//100,int类型
System.out.println(a/d);//1,int类型
System.out.println(a>e);//false
System.out.println(a<e);//false
System.out.println(a==e);//true
System.out.println(a!=e);//false
//取余,模运算
System.out.println(f%a);//3
/*=======================================*/
//++,——,自增,自减,一元运算符
int i = 1;
int j = i++;//先赋值,在自增
/*int j = i;
i = i+1;*/
int k = ++i;//先自增,后赋值
/* i = i+1;
int k = i;*/
System.out.println("i="+i+",j="+j+",k="+k);//i=3,j=1,k=3
//幂运算 2^3 2*2*2,使用工具类Math运算
double ma = Math.pow(2,3);
System.out.println(ma);//8.0
}
/*逻辑运算符*/
//&&(与) ||(或) !(非)
boolean flag = true;
boolean flag1 = false;
System.out.println("flag && flag1 =" +(flag&&flag1));//false 逻辑与运算,全为true时才为true
System.out.println("flag || flag1 =" +(flag || flag1));//true 逻辑或运算,全为false时为false
System.out.println("!(flag && flag1) =" +(!(flag && flag1)));//true 逻辑非运算,如果为true时为false
//短路运算,逻辑与运算,第一个为false时,后面的不会继续比较
int g = 5;
boolean flag3 = (g<4)&&(g++==5);
System.out.println("g = "+g+",flag4 = "+flag4);//g = 5,flag3 = false
boolean flag4 = (g>4)&&(g++==5);
System.out.println("g = "+g+",flag4 = "+flag4);//g = 6,flag4 = true
/*
位运算
A = 0011 1100
B = 0000 1111
A&B = 0000 1100 //全为1时为1
A|B = 0011 1111 //全为0时为0
A^B = 0011 0011 //相同为0,不同为1
~B = 1111 0000 //和原来相反
<< 相当于*2
>> 相当于/2
*/
//三元运算符
//x ? y : z ,如果X为真,则结果为y,反之为z
包机制
命名规则,一般用公司域名倒置命名
使用"import"可导入包
JavaDoc
参数信息
- @author 作者名
- @version 版本号
- @since 指明需要最早使用的jdk版本
- @prarm 参数名
- @return 返回值情况
- @throws 异常抛出情况
命令:javadoc -encoding UTF-8 -charset UTF-8 Doc.java
IDEA生成javadoc文档
本篇为学习记录,源自https://www.kuangstudy.com/course,跳转

浙公网安备 33010602011771号