Java基础
Java基础
注释
-
单行注释
//
-
多行注释
/*
*/
-
文档注释
/**
*@Author
*@Description
*...
*/
注重注释规范
数据类型
Java是强类型语言,要求变量的使用要严格符合规定,所有变量必须先定义后才能使用
java的数据类型分为两大类
基本类型
-
整数类型
- byte:1个字节
- short:2个字节
- int:4个字节
- long:8个字节 定义的数后面加个L long num = 30L
扩展:进制
-
二进制 0b
-
十进制
int i = 10;
-
八进制 0
int i = 010;
-
十六进制 0x
int i = 0x10;
-
浮点类型
- float:4个字节 定义的数后面加个F float num = 50.1F
- double:8个字节
扩展:银行业务怎么表示?
float是有限的,也是离散的,存在舍入误差,是个大约的数,即接近但是不等于,所以最好避免使用浮点数进行比较!
float f = 0.1f; //0.1 double d = 1.0/10; //0.1 System.out.println(f == d); //输出的是false float d1 = 23131312312312313f; float d2 = d1 + 1; System.out.println(d1 == d2);//输出的是true
所以如何表示银行业务---》使用一个类,名为BigDecimal 这是一个数学工具类
-
字符类型
- char:2个字节 字符只有一个字
注:字符串string不是关键字,它是类
扩展
所有的字符本质还是数字
char c1 = 'a'; char c2 = '中'; System.out.println(c1); //a System.out.println((int)c1); //97 强制类型转换 System.out.println(c2); //中 System.out.println((int)c2); //20013 char c3 = '\u0061'; System.out.println(c3); //a
涉及到编码问题:Unicode编码 2字节 最多表示65536个字符 早些年的Excel表格只有2^16 = 65536行
转义字符:
- \t 制表符
- \n 换行
- ...
-
boolean类型:占1位
引用类型
- 类
- 接口
- 数组
扩展
==比较,如果比较的对象是基本数据类型,则比较其值是否一致;如果比较的是引用数据类型,则比较对象的地址是否一致
String sa = new String("hello world");
String sb = new String("hello world");
System.out.println(sa==sb); //false
String sc ="hello world";
String sd ="hello world";
System.out.println(sc==sd); //true
数据类型转换
低——————————————————---------->高
byte、short、char--->int--->long--->float--->double
-
强制类型转换
(类型)变量名 高--->低
存在内存溢出的问题或是精度问题!
int i = 128; //128 byte b = (byte)i; //-128 int c = (int)23.7; //23 int d = (int)-45.89f //-45
-
自动类型转换
低--->高
注:
- 不能对布尔值进行转换
- 布恩那个吧对象类型转换为不相干的类型
- 在把高容量转换到低容量的时候要用强制类型转换
- 转换的时候可能存在内存溢出或者精度问题
变量
Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。
变量作用域:
-
类变量
有关键字static
-
实例变量
和类变量相比没有static
-
局部变量
写在方法里面
public class Demo2 {
//类变量 static 从属于该类,与类一同消失
static double salary = 2500; //自动类型转换
//实例变量:从属于对象,可以不初始化,不初始化就是这个类型的默认值 数值类型初始化为0或者0.0;布尔型默认false;其他默认都是null
String name;
int age;
public static void main(String[] args) {
// 局部变量:必须声明和初始化
int i= 10;
System.out.println(i);
// age作为一个实例变量从属于Demo2这个类就得这么使用
Demo2 demo02 = new Demo2();
System.out.println(demo02.age); // 0
System.out.println(demo02.name); // null
// salary可以直接用
System.out.println(salary); //2500.0
}
}
常量
初始化后不能改变的值,需要使用关键字 final
final 常量名 = 值;
常量名一般使用大写字符
static final double PI = 3.14;
// 修饰符不存在先后顺序,将static和final换个位置也没事
命名规范
- 见名知意
- 类成员变量、局部变量:首字母小写和驼峰原则:monthSalary
- 常量:大写字母和下划线:MAX_VALUE
- 类名:首字母大写和驼峰原则:Man,GoodMan
- 方法名:首字母小写和驼峰原则:run(),runRun()
运算符
算术运算符、赋值运算符、关系运算符、逻辑运算符(&&、||、!)、位运算符(&、|、^、~、<<、>>、>>>)、条件运算符、扩展赋值运算符
记录一下位运算:将A、B两个数都换位二进制,然后每个位上与或非
- ^:异或
- ~:非
面试题:如何最快计算2×8?
-
2×8 = 2×2×2×2
-
将2左移3位
注:
-
算术运算符会自动向高容量转型,比如int+long会变成long;short+byte会自动转为int
-
关于算数运算符的+,如果左右两边有一个是String类型,是有点讲究的
int a = 10; int b = 20; System.out.println(""+a+b); //1020 字符串出现在前面,则也将ab看成字符串,拼接起来了 System.out.println(a+b+""); //30 先完成a+b的操作,然后拼接一个空字符串
包机制
类似于文件夹
一般利用公司域名倒置作为包名
包语句语法格式为
package pkg1[.pkg2[.okg3...]]
为了能够使用某一个包的成员,我们需要再Java程序中明确导入该包。使用import导入。用*可以导入包内所有的类。
JavaDoc
JavaDoc命令是用来生成自己的API文档的
参数信息:
- @author 作者名
- @version 版本号
- @since 指明需要最早使用的jdk版本
- @param 参数名
- @return 返回值情况
- @throws 异常抛出情况
可在类所在文件夹下输入cmd打开命令提示符,使用javadoc+java文件生成自己的api文档,在index.html中查看
javadoc -encoding UTF-8 -charset UTF-8 xxx.java
设置两个UTF-8编码以防乱码
同样也能在IDEA中生成JavaDoc文档,具体方法如下:
- 左上角工具--->生成JavaDoc
- 选择将整个项目生成文档还是只生成当前文件或者自定义范围
- 选择输出目录
- 在区域设置选项中输入zh_CN,这样文档的语言就是中文
- 在其他命令行实参中一般可输入 -encoding UTF-8 -charset UTF-8 -windowtitle “文档HTML页面标签的标题” -link http://docs.Oracle.com/javase/7/docs/api
可能会遇到的情况
- 单词的大小写不能出现问题,大小写敏感
- 尽量用英文
- 文件名和类名必须一致,并且首字母要大写
- 符号使用中文输入法打出,会报错
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix