前言
这几天开始自学JAVA,因为有c的基础,所以前面学起来也比较快。也是因为狂神大大讲的也比较细。
这篇随笔是基于狂神大大的讲课内容和笔记总结而成的。
注释
平时我们编写代码,在代码量比较少的时候,我们还可以看懂自己写的,但是当项目结构一旦复杂起来,我们就需要用到一个注释了。不然代码开始的话只有你和上帝知道,过几天只有上帝知道了。
public class Hello {
public static void main(String[] args)
{
System.out.print("hello world!");
/**
System.out.print("hello world!"); 多行注释
*/
//System.out.print("hello world!"); 单行注释
}
}
Java中的注释有三种:
单行注释:只能注释当前行,以//开始,直到行结束
//System.out.print("hello world!");
多行注释:注释一段文字,以/开始, /结束
/**
System.out.print("hello world!"); 多行注释
*/
文档注释:用于生产API文档,配合JavaDoc
标识符
Java 所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符。
关于 Java 标识符,有以下几点需要注意:
- 所有的标识符都应该以字母(A-Z 或者 a-z),美元符($)、或者下划线(_)开始
- 首字符之后可以是字母(A-Z 或者 a-z),美元符($)、下划线(_)或数字的任何字符组合
- 不能使用关键字作为变量名或方法名。
- 标识符是大小写敏感的
- 合法标识符举例:age、$salary、_value、__1_value
- 非法标识符举例:123abc、-salary、#abc
【 JAVA不采用通常语言使用的ASCII字符集,而是采用unicode这样的标准的国际字符集。因此,这里的字母的含义:可以表示英文、汉字等等。】
数据类型
Java是一种强类型语言,每个变量都必须声明其类型。
1.强弱类型语言
强类型语言也称为强类型定义语言。要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用。
Java、.NET、C++等都是强制类型定义的。也就是说,一旦一个变量被指定了某个数据类型,如果不经过转换,那么它就永远是这个数据类型了。
弱类型语言也称为弱类型定义语言。与强类型定义相反。像vb,php等就属于弱类型语言
2.数据类型
Java的数据类型分为两大类:基本类型(primitive type)和引用类型 (reference type)
【注:引用数据类型的大小统一为4个字节,记录的是其引用对象的地址!】
3.浮点型拓展
浮点类型float, double的数据不适合在不容许舍入误差的金融计算领域。如果需要进行不产生舍入误差的精确数字计算,需要使用BigDecimal类。
public class demo {
public static void main(String[] args) {
float f = 0.1f;
double d = 1.0/10;
System.out.println(f==d); //false
float d1 = 2131231231f;
float d2 = d1+1;
if(d1==d2){
System.out.println("d1==d2");
}else{
System.out.println("d1!=d2");
}
}
}
运行结果如下
由于字长有限,浮点数能够精确表示的数是有限的,因而也是离散的。浮点数一般都存在舍入误差,很多数字无法精确表示,其结果只能是接近,但不等于;二进制浮点数不能精确的表示0.1,0.01,0.001这样10的负次幂。并不是所有的小数都能可以精确的用二进制浮点数表示。最好完全避免使用浮点数比较 !
大数值:Java.math下面的两个有用的类:BigInteger和BigDecimal,这两个类可以处理任意长度的数值。BigInteger实现了任意精度的整数运算。BigDecimal实现了任意精度的浮点运算。
4.字符型拓展
- 单引号用来表示字符常量。例如‘A’是一个字符,它与“A”是不同的,“A”表示一个字符串。
- char 类型用来表示在Unicode编码表中的字符
- Unicode编码被设计用来处理各种语言的所有文字,它占2个字节,可允许有65536个字符;(之前还特别疑惑为什么JAVA的char为什么是两个字节,而C只有一个。现在清楚了)
代码演示
public class demo {
public static void main(String[] args) {
char a1 = 'a';
char a2 = '学';
System.out.println(a1);
System.out.println((int) a1);
System.out.println(a2);
System.out.println((int) a2);
}
}
运行如下
Java 语言中还允许使用转义字符 ‘\’ 来将其后的字符转变为其它的含义(和C一样),有如下常用转义字符:
5.布尔型拓展
- boolean类型(一位,不是一个字节),就是0|1
- boolean类型有两个值,true和false,不可以 0 或非 0 的整数替代 true 和 false ,这点和语言不同
- boolean 类型用来判断逻辑条件,一般用于程序流程控制
类型转换
- 由于Java是强类型语言,所以要进行有些运算的时候的,需要用到类型转换
- 整型、实型(常量)、字符型数据可以混合运算
- 运算中,不同类型的数据先转化为同一类型,然后进行运算
- 转换从低级到高级(根据容量来看)
数据类型转换必须满足如下规则:
- 不能对boolean类型进行类型转换
- 不能把对象类型转换成不相关类的对象
- 在把容量大的类型转换为容量小的类型时必须使用强制类型转换
- 转换过程中可能导致溢出或损失精度
1.自动类型转换
自动类型转换:容量小的数据类型可以自动转换为容量大的数据类型
例如: short数据类型的位数为16位,就可以自动转换位数为32的int类型,同样float数据类型的位数为32,可以自动转换为64位的double类型。
代码演示:
public class demo {
public static void main(String[] args) {
char a='a';
int b=a;
System.out.println(a);
System.out.println(b);
}
}
运行结果:
2.强制类型转换
- 强制类型转换,又被称为造型,用于显式的转换一个数值的类型
- 在有可能丢失信息的情况下进行的转换是通过造型来完成的,但可能造成精度降低或溢出
- 强制类型转换的语法格式: (type)var ,运算符“()”中的type表示将值var想要转换成的目标数据类型。 条件是转换的数据类型必须是兼容的。
代码演示:
public class demo {
public static void main(String[] args) {
double a=3.1415926;
int b=(int)a;
System.out.println(b);
}
}
运行如下
变量,常量
1.变量(variable)
- Java是一种强类型语言,每个变量都必须声明其类型
- Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域
- 变量在使用前必须对其声明, 只有在变量声明以后,才能为其分配相应长度的存储单元
注意事项:
- 每个变量都有类型,类型可以是基本类型,也可以是引用类型
- 变量名必须是合法的标识符
- 变量声明是一条完整的语句,因此每一个声明都必须以分号结束
2.变量作用域
变量根据作用域可划分为三种:
- 类变量(静态变量: static variable):独立于方法之外的变量,用 static 修饰
- 实例变量(成员变量:member variable):独立于方法之外的变量,不过没有 static 修饰
- 局部变量(lacal variable):类的方法中的变量。
代码演示
public class demo {
static int a; //类变量
String s="hello world"; //实例变量
public static void main(String[] args) {
}
public void test()
{
int a=0; //局部变量
}
}
局部变量
- 方法或语句块内部定义的变量。生命周期是从声明位置开始到”}”为止
- 在使用前必须先声明和初始化(赋初值)
- 局部变量没有默认值,所以局部变量被声明后,必须经过初始化,才可以使用
静态变量
- 使用static定义
- 从属于类,生命周期伴随类始终,从类加载到卸载
- 如果不自行初始化,他会自动初始化成该类型的默认初始值(数值型变量初始化成0或0.0,字符型变量的初始化值是16位的0,布尔型默认是false)
实例变量
- 方法外部、类的内部定义的变量
- 从属于对象,生命周期伴随对象始终
- 如果不自行初始化,他会自动初始化成该类型的默认初始值(数值型变量初始化成0或0.0,字符型变量的初始化值是16位的0,布尔型默认是false)
3.常量
常量(Constant):初始化(initialize)后不能再改变值,不会变动的值
4.变量的命名规范
- 所有变量、方法、类名:见名知意
- 类成员变量:首字母小写和驼峰原则 : monthSalary
- 局部变量:首字母小写和驼峰原则
- 常量:大写字母和下划线:MAX_VALUE
- 类名:首字母大写和驼峰原则: Man, GoodMan
- 方法名:首字母小写和驼峰原则: run(), runRun()
运算符
Java 语言支持如下运算符:
- 算术运算符: +,-,*,/,%,++,--
- 赋值运算符 =
- 关系运算符: >,<,>=,<=,==,!= instanceof
- 逻辑运算符: &&,||,!
- 位运算符: &,|,^,~ , >>,<<,>>>
- 条件运算符 ?:
- 扩展赋值运算符:+=,-=,*=,/=
字符串连接符
“+” 运算符两侧的操作数中只要有一个是字符串(String)类型,系统会自动将另一个操作数转换为字符串然后再进行连接。
代码演示:
public class demo {
public static void main(String[] args) {
String s1="hello";
String s2="world";
int a=1;
System.out.println(a+"."+s1+s2);
}
}
运行效果:
运算符优先级
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现