Java基础知识
1Java基础知识
一、注释
- 单行注释
- 多行注释
- 文档注释
/** */
也能注释多行内容,一般用在类、方法、变量上,用来描述其作用,注释后,鼠标放在类和变量上会自动显示注释的内容
也可以识别标签,标签通常以@开头
二、标识符
变量名、方法名、类名都称为标识符
标识符以数字、下划线、字母、美元符组成(首字母不能是数字)
标识符有区分大小写(尽量不用中文和拼音)
标识符不能用关键字
三、数据类型
1、基本类型
- boolean类型:只有true和false两种类型,占一个字节
- 数值类型:
- byte:占一个字节范围
- short:2个字节
- long:8个字节
- int:4个字节
- float:4个字节
- double:8个字节
- char:字符类型 2个字节
扩展1
1 Byte(字节)=8 bit(位)
1024B=1KB
1024KB=1M
1024M=1G
整数扩展
二进制:ob
八进制:o
十六进制:ox
浮点数扩展
浮点数是大约的,接近但不等于
最好避免完全使用浮点数进行比较
银行业务不用浮点数去比较,可以用BigDecieml数学工具类比较(由运行所得的true和false可得)
字符类型扩展
可以强制转换成数字
char s='a';
system.out.println((int)a);
a:97 A:65
转义字符
\t:制表符 \n:换行 \b:退格
布尔值扩展
if(flag==true){}和if(flag){}这两个是一样的
2、引用类型
类、接口、数组
例如:类String String a="上岸";
字符串连接符有‘String’和 ‘+’以及‘,’
3、类型强制转换
byte short char int long float double
没有达到int类型的,默认转换为int类型计算
级别低的可以自动转换成级别高的,高转低要强制转换 system.out.println((int)23.1),得到的结果是23(存在精度问题)
不能对布尔值进行转换
转换过程可能会遇到内存溢出或者精度问题
char c='a';
int d=c+1;
system.out.println(d);
扩展
JDK7新特性,数字之间可以用下划线,且输出时下划线不会输出:10_0000_0000
考虑内存可能溢出的情况
注意只修改前面那个内存还是溢出了
同时也要将years强制转换
四、变量
包含变量名、变量类型、作用域
数据类型 变量名=值
变量声明是一条完整的语句
五、变量作用域
参考文章
全局变量就是成员变量,包含了类变量(等同于静态变量)和实例变量;还有一个局部变量
-
类变量:前面要加static
-
实例变量:前面不加static;
在方法外面,类的里面,不初始化的话会变成这个类型的默认值,布尔值默认false,string是null(除了基本类型其余都是null);
从属于对象,也就是说必须借用类来使用 -
局部变量:是在方法里面,只在方法内有用,且必须声明和初始化值(图中的age是实例变量,写错了~)
六、常量
常量必须要用到Final,常量名必须大写,是修饰符(不存在先后顺序)
static final double PI=3.14 (static 静态的 哪里都可以调用)
扩展
类成员变量和局部变量和方法名:首字母小写和驼峰原则
类名:首字母大写和驼峰原则
常量:大写字母和下划线
七、运算符
- 算术运算符:+ - * / % ++ --
- 赋值运算符:=
- 关系运算符:> < >= <= == != instanceof(左边的对象是右边的类或子类创建的,其结果为true)
- 逻辑运算符:&& || !
- 位运算符:& | ~
- 条件运算符:?:(是三元运算符)
- 扩展赋值运算符:+= -= *= /=
扩展:自增 自减
int a=3
int b=a++(a=a+1在这行之后执行)
把a先赋值给b,然后a=a+1=4
int b=++a(a=a+1在这行之前执行)
a已经提前+1,等于4,然后再将4赋值给b
扩展:幂运算
double pow=math.pow(2,3)//2的三次方
system.out.println(pow);
逻辑运算符
短路运算:a&&b 当a是假的时候,b不会执行
位运算符
">>"表示右移 /2
“<<”表示左移 *2
面试题:2 * 8=16 怎么用简便方法计算
0000 0000 0
0000 0001 1
0000 0010 2
0000 0100 4
0000 1000 8
0001 0000 16
system.out.println(2<<3)
该式子表示2再往左移3位,也就是2*2^3
扩展赋值运算符
a+=b 等同于 a=a+b
int a=3;
int b=4;
system.out.println("字符串"+a+b);//最后输出结果为34字符串
system.out.println(a+b+"字符串");//最后输出结果为7字符串
即字符串在前面起到连接符的作用,如果字符串在后面会先计算再连接
三元运算符
x?y:z 如果x为true则结果为y,否则结果为z
int score=100;
String type="如果成绩>60"?"及格":"不及格";
system.out.println(type);
八、包机制
包的本质就是文件夹
一般用公司域名倒置作为包名
如www.baidu.com的包名为com.baidu.www
要用某些变量,需要导入包,用import
如 import Java.util.Date
九、JavaDoc
JavaDoc命令是用来生成java的API文档也就是帮助文档
网址:API帮助文档
参数信息
@author 作者名
@version 版本号
@since 指明需要最早使用的jdk
@param 参数名
@return 返回值情况
@throws 异常抛出情况
public String test(String name) throws Exception{
return name;
}
扩展
使用命令行生成JavaDoc文档
在命令行窗口运行刚写的Java文件
回到刚刚Java文件所在的文件,发现多了个index(网页)的文件,点击进入网页
使用IDEA生成JavaDoc文档
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)