Java基础
注释
单行注释://
多行注释:/* */
标识符
1、所有标识符都应该以字母、美元符、或者下划线开始。
2、首字符之后可以是字母、美元符、下划线或者任何字符组合。
3、不能使用关键字作为变量名或方法名。
4、标识符是大小写敏感的。
数据类型
所有变量都必须先定义后才能使用
格式:数据类型 变量名=值;
数据类型分为两大类(基本类型和引用类型)
数据类型 | 字节数 | |||
---|---|---|---|---|
基本类型 | 数值类型 | 整数类型 | byte | 1 |
short | 2 | |||
int | 4 | |||
long | 8 | |||
浮点类型 | float | 4 | ||
double | 8 | |||
字符类型 | char | 2 | ||
boolean类型 | 1 | |||
引用类型 | 类 | |||
接口 | ||||
数组 |
位(bit)是计算机内部数据储存最小单位
字节(byte)是计算机中数据处理的基本单位,习惯上用大写B表示。
1字节=8位
字符:计算机中使用的字母、数字、字、符号
进制
二进制0b
十进制
八进制0
十六进制0x
//整数拓展 二进制0b 八进制0 十进制 十六进制0x
int i=10;
int i2=010; //八进制0
int i3=0x10;//十六进制0x 0~9 A~F 16
System.out.println(i); //10
System.out.println(i2); //8
System.out.println(i3); //16
拓展
银行业务不能用float及double数据类型,需要用数学工具类。
原因:浮点数是有限、离散的,舍入误差,大约,接近却不等于。
编码表
1.所有的字符本质还是数字
- 占2字节
- 最高2^16=65536
//u0000 uffff
char c3='\u0061';
System.out.println(c3); //输出结果为a
转义字符
\t 空格
\n 换行
System.out.println("hello\tworld");
System.out.println("hello\nworld");
hello world
hello
类型转换
为什么需要类型转换?
原因:由于Java是强类型语言,所以运算中,不同类型的数据先转化为同一类型,然后进行运算。
低到高
byte,short,char》int》long》float,double
强制转换 (类型)变量名 高》低
自动转换 低》高
/*
* 注意点:
* 1.不能对布尔值进行转换
* 2.不能把对象类型转化为不相干的类型
* 3.把大容量转化为低容量时,强制转换
* 4.转化的时候可能会存在内存溢出,或者精度问题*/
数字之间可以用下划线分割,并且下划线不会被输出
变量
Java变量是程序中最基础的存储单元,其要素包括变量名,变量类型和作用域。
格式:数据类型 变量名=值;可以用逗号隔开来声明多个同类型变量。
注意点:
每个变量都有类型,类型可以是基本类型,也可以是引用类型。
变量名必须是合法的标识符。
变量声明是一条完整的语句,因此每一个声明都必须以分号结束。
变量作用域分为类变量(static)、实例变量、局部变量。
局部变量:必须声明和初始化值
实例变量:从属于对象;如果不自行初始化,这个类型的默认值 0 0.0
布尔值:默认是false;除了基本类型,其他都是null
类变量 :static
常量
格式:final 常量名=值;
初始化后不能再改变值。
常量名一般使用大写字符。
final和static两个可以颠倒,因为修饰符不存在先后顺序。
命名规范
驼峰原则:除了第一个单词以外,后面的字母首字母大写
类成员变量:首字母小写和驼峰原则
局部变量:首字母小写和驼峰原则
常量:大写字母和下划线
类名:首字母大写和驼峰原则
方法名:首字母小写和驼峰原则
运算符:优先级()
算术运算符:+,-,*,/,%,++,–
赋值运算符:=
关系运算符:>,<,>=,<=,==,!=
逻辑运算符:&&(与),||(或),!(非)
位运算符:&,|,^,~,>>,<<,>>>
条件运算符:?:
扩展赋值运算符:+=,-=,*=,/=
int a5=10;
int b5=20;
System.out.println(a5/b5);//0
System.out.println(a5/(double)b5);//0.5
// /为整除,若要精确计算,应转换数据类型
若运算中存在long数据类型,则结果默认为long,反之,一般为int。
long g =12312312321312112l;
int h=123;
short k=10;
byte p=8;
System.out.println(g+h+k+p);//long
System.out.println(h+k+p);//int
System.out.println(k+p);//int
%取余 模运算
//取余 模运算
int y=10;
int q=21;
System.out.println(q%y);// q/y 21/10=2...1
//结果为1
++ – 自增,自减 一元运算符
//++ -- 自增,自减 一元运算符
int k1=3; //k1=3
int g1=k1++; //g1=3 k1=4
//执行完这行代码后,先给g1赋值,再自增
System.out.println(k1);//k1=4
int y1=++k1; //k1=5 y1=5
//执行完这行代码后,先自增,再给g1赋值
System.out.println(k1);//5
System.out.println(g1);//3
System.out.println(y1);//5
幂运算
//幂运算 2^3 2*2*2=8 很多运算,我们会使用一些工具来操作
double pow =Math.pow(2,3);
System.out.println(pow);
逻辑运算符
//逻辑运算符
//与(and) 或(or) 非(取反)
boolean z=true;
boolean j=false;
System.out.println("z&&j:"+(z&&j));
//两个变量都为真,结果才为true
System.out.println("z||j:"+(z||j));
//两个变量有一个为真,则结果就为true
System.out.println("!(z&&j):"+!(z&&j));
//若真为假,若假为真
短路运算
int l1=5;
boolean l2=(l1<4)&&(l1++<4);//后面不执行
System.out.println(l1);//5
System.out.println(l2);//false
位运算符
/*
* A=0011 1100
* B=0000 1101
* 与 A&B 0000 1100 有0就为0
* 或 A|B 0011 1101 有1就为1
* 异或 A^B 0011 0001 相同就为0,不相同就为1
* 取反 ~B 1111 0010
*
* 左移 *2
* 右移 /2
* 0 0000 0000
* 1 0000 0001
* 2 0000 0010
* 3 0000 0011
* 4 0000 0100
* 8 0000 1000
* 16 0001 0000
* */
System.out.println(2<<3);//16
System.out.println(16>>3);//2
拓展赋值运算符
w1+=w2;//w1=w1+w2
w1-=w2;//w1=w1-w2
字符串连接符 +
int w1=10;
int w2=20;
System.out.println(""+w1+w2);//1020
System.out.println(w1+w2+"");//30
包机制
一般利用公司域名倒置作为包名。
为了使用某一个包的成员,我们需要在java程序中明确导入该包,使用import语句即可。
package必须放在最上面。
import放在package下面。
JavaDoc
Javadoc命令是用来生成自己API文档。
参数信息
@author 作者名
@version 版本号
@since 指明需要最早使用的jdk版本
@param 参数名
@return 返回值情况
@throws 异常抛出情况