Java基础知识
注释
-
注释并不会被执行,是给我们写代码的人看的
-
书写注释是一个非常好的习惯
-
Java中的注释有三种
-
单行注释 //
-
多行注释 /**/
-
文档注释 /**回车
-
标识符和关键字
-
关键字
-
Java所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符。
-
-
标识符注意点
-
所有的标识符都应该以字母(A-Z或者a-z),美元符($)、或者下划线(_)开始
-
不能使用关键字作为变量名或方法名。
-
标识符是大小写敏感的
-
不能使用数字开头
-
可以使用中文命名,但是一般不建议这样去使用,也不建议使用拼音,很low
-
数据类型
-
强类型语言
要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用
-
弱类型语言
-
Java的数据类型分为两大类
-
基本类型(primitive type)
【注意】:字符串,String不是关键字而是类
float a = 2.5F;
long b = 123L;
-
引用类型(reference type)
类、接口、数组
-
什么是字节
-
位(bit):是计算机内部数据存储的最小单位,11001100是一个八位二进制数。
-
字节(byte):是计算机中数据处理的基本单位,习惯上用大写B来表示。
-
1B(byte,字节) = 8bit(位)
-
字符:是指计算机中使用的字母、数字、字和符号
-
1bit表示1位
-
1Byte表示一个字节 1B=8b
-
1024B=1KB
-
1024KB=1M
-
1024M=1G
数据类型扩展及面试题
-
整数扩展:二进制0b、十进制、八进制0、十六进制0x
-
int i = 10;
-
int i2 = 010 ;//八进制0
-
int i3 = 0x10;//十六进制0x 0~9 A~F
-
-
字符扩展
-
所有的字符本质还是数字
-
编码 Unicode 表:(97 = a 65 = A) 2字节 0 - 65536 Excel 可表示2的16次方=65536
-
转义字符 \t:制表符 \n :换行
-
-
浮点数扩展
-
银行业务怎么表示?钱
-
使用BigDecimal 数学工具类
-
最好完全避免使用浮点数进行比较
float 有限 离散 舍入误差 大约 接近但不等于
float f = 0.1f;//0.1
double d = 1.0/10;/0.1
System.out.println(f==d);//false
float d1 = 23121212312312313f;
float d2 = d1 + 1;
System.out.println(d1==d2);//true
-
类型转换
-
由于Java是强类型语言,所以要进行有些运算的时候,需要用到类型转换。
-
低------------------------------------------------------------------>高
byte,short,char -> int -> long -> float -> double
-
-
运算中,不同类型的数据先转化为同一类型,然后进行计算。
-
强制类型转换 (类型)变量名 高--低
-
自动类型转换 低--高
【注意】:
不能对布尔值进行转换
不能把对象类型转换成不相干的类型
在把高容量转换到低容量的时候,强制转换
转换的时候可能存在内存溢出或者精度问题!
-
操作数字比较大的时候,注意溢出问题
-
JDK新特性,数字之间可以用下划线分割
int money = 10_0000_0000;
System.out.println(money);//1000000000
-
变量
-
变量是什么:就是可以变化的量!
-
Java是一种强类型语言,每个变量都必须声明其类型。
-
Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。
-
type varName
//数据类型 变量名 = 值; 可以使用逗号隔开来声明多个同类型变量。
-
不建议在一行定义多个值
-
-
注意事项:
-
每个变量都有类型,类型可以是基本类型,也可以是引用类型。
-
变量名必须是合法的标识符。
-
变量作用域
-
类变量
-
实例变量
-
局部变量
public class Variable{
static int allClicks = 0; //类变量
String str = "hello world"; //实例变量
public void method(){
int i = 0; //局部变量
}
}-
局部变量在方法里,使用之前必须声明和初始化
-
实例变量从属于对象;如果不自行初始化,这个类型的默认值所有的数值类型初始化一般都是0或0.0,字符串初始化是u0000,布尔值默认为false。除了基本类型,其余的都是null,如String。
-
类变量带static
-
常量
-
常量:初始化后不能再改变值!不会变动的值。
-
所谓常量可以理解成一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变。
final 常量名 = 值;
final double PI = 3.14;
-
常量名一般使用大写字符。
变量的命名规范
-
所有变量、方法、类名:见名知意
-
类成员变量:首字母小写和驼峰原则:monthSalary 除了第一个单词以外,后面的单词首字母大写
-
局部变量:首字母小写和驼峰原则
-
常量:大写字母和下划线:MAX_VALUE
-
类名:首字母大写和驼峰原则:Man,GoodMan
-
方法名:首字母小写和驼峰原则:run(),runRun()
运算符
Java语言支持如下运算符:
-
算术运算符:+,-,*,/,%,++,--
-
赋值运算符:=
-
关系运算符:>,<,>=,<=,==,!=,instanceof
-
逻辑运算符:&&,||,!
-
位运算符:&,|,^,~,>>,<<,>>>(了解!!!)
-
条件运算符:?
-
扩展赋值运算符:+=,-=,*=,/=
-
类型转换:byte、short、char用运算符运算后自动转型为int类型
long a = 123123123123L;
int b = 123;
short c = 10;
byte d = 8;
System.out.println(a+b+c+d); //Long
System.out.println(b+c+d); //int
System.out.println(c+d); //int
-
++ -- 自增,自减 一元运算符
int a = 3;
int b = a++; //执行完这行代码后,先给b赋值,再自增
//a = a + 1;
System.out.println(a);
//a = a + 1;
int c = ++a; //执行完这行代码前,先自增,再给b赋值
System.out.println(a); //5
System.out.println(b); //3
System.out.println(c); //5
-
幂运算 2^3 很多运算,我们会使用一些工具类来操作!
double pow = Math.pow(2,3);
System.out.println(pow); //2*2*2=8.0 -
位运算,<<左移是*2,>>右移是/2
-
字符串连接符 +,String
int a = 10;
int b = 20;
System.out.println(""+a+b); //1020
System.out.println(a+b+""); //30 -
三目运算符
*x ? y : z
如果x==true,则结果为y,否则结果为z
必须掌握!
-
包机制
-
为了更好地组织类,Java提供了包机制,用于区别类名的命名空间。
-
包语句的语法格式为:
package pk1[.pk2[.pkg3...]];
-
一般利用公司域名倒置作为包名; 例如:com.chen.xxx
-
为了能够使用某一个包的成员,我们需要在Java程序中明确导入该包。使用"import"语句可完成此功能
import package1[.package2...].(calssname|*);
JavaDoc
-
javadoc命令是用来生成自己API文档的
-
参数信息
-
@author 作者名
-
@version 版本号
-
@since 指明需要最早使用的jdk版本
-
@param 参数名
-
return 返回值情况
-
throws 异常抛出情况
package com.chen.base;
/**
* @author chen
* @version 1.0
* @since 1.8
*/
public class Doc{
String name;
/**
* @author chen
* @param name
* @return
* @throws Exception
*/
public String tset(String name) throws Exception{
return name;
}
}
-
-
Java的jdk帮助文档
-
也可以使用idea生产JavaDoc文档! 面向百度编程!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器