Day02Java基础语法
Java基础语法
注释
- 平时我们编写代码,在代码量较少的时候,我们还是可以看懂自己写的,但是当项目结构一旦复杂起来,我们就需要注释了!
- 注释不会被执行,是给写代码的人看的
- 养成写注释的习惯!
java中的注释有三种:
-
单行注释
-
//我是单行注释
-
多行注释
-
/* 我是多行注释 */
-
文档注释
-
/** * 我是文档注释 * @Description Helloworld * @Author 周某某 */
标识符
Java所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符。
- 所有的标识符都应该以字母(A-Z或者a-z),美元符($)、或者下划线(_)开始
- 首字符之后可以是字母(A-Z或者a-z),美元符($)、或者下划线(_)或数字的任何字符组合
- 不能使用关键字作为变量名或者方法名
- 常量的定义:全大写且可以用美元符($)、或者下划线(_)
- 标识符是大小写敏感的
- 可以使用中文命名,但一般不建议! 也不使用拼音,很Low!
访问控制修饰符
- public:公共的 谁都可以访问
- default:默认的,同一个包类可以访问
- protected:受保护的 同一个包类,以及子类可以访问
- private:私有的,只有自己本类可以访问
关键字
不能用关键字作为包名!
数据类型
-
强类型语言:要求变量的使用严格符合规定,所有变量都必须先定义后才能使用
-
弱类型语言
-
Java的数据类型分为两大类
-
基本类型
- 数值类型
- 整数类型:二进制 0b表示 八进制 0表示 十六进制 0x表示
- byte : 占一个字节 范围:-128~127 2的七次方
- short占两个字节范围:-32768~32767 2的15次方
- int 占四个字节范围:-21亿~21亿 2的31次方
- long占八个字节 2的63次方
- 浮点类型:最好完全避免使用浮点数进行比较 可以使用BigDecimal的数学工具类
- float 占四个字节
- double 占八个字节
- 整数类型:二进制 0b表示 八进制 0表示 十六进制 0x表示
- 字符类型 char 占两个字节
- boolean类型 占一位 其值只有 true 和false
- 数值类型
-
引用类型
- 类
- 接口
- 数组
-
八大基本类型的默认值
-
boolean false char ‘/uoooo’(null) byte (byte)0 short (short)0 int 0 long 0L float 0.0f double 0.0d
-
什么是字节
- 位 bit :是计算机内部数据存储的最小单位,11001100是一个八位二进制数。
- 字节 byte : 是计算机中数据处理的基本单位,一般用大写B来表示
- 1B (byte,字节)= 8 bit(位)
- 1024B = 1KB
- 字符:是指计算机中使用的字母、数字、字和符号
类型转换
- 由于Java是强类型语言,所以要进行有些运算的时候,需要用到类型转换,由低到高,小数的优先级高于整数
- byte,short,char->int->long->float->double
- 运算中,不同类型的数据先转化为同一类型,然后再进行运算。
- 强制类型转换
- 自动类型转换
注意点:
1.不能对布尔值进行转换
2.不能把对象类型转换为不相干的类型
3.在把高容量转换到低容量的时候,强制转换
4.转换的时候可能存在内存溢出,或者精度问题!
变量
-
变量是什么:就是可以变化的量!
-
Java是一种强类型语言,每个变量都必须声明其类型。
-
Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。
-
type varName [= value] [{,varName [= value]}]; 数据类型 变量名 = 值; 可以使用,隔开来声明多个同类型变量
-
注意事项
- 每个变量都有类型,类型可以是基本类型,也可以是引用类型。
- 变量名必须是合法的标识符。
- 变量声明是一条完整的语句,因此每一个声明都必须以分号结束
变量作用域
- 类变量 写在类里的变量 需要加个关键字 static 可以通过类名.变量名
- 实例变量 在类里面实例化的变量 通过实例化才能调用
- 局部变量 写在类下面的方法里的变量
变量的命名规范
-
所有变量、方法、类名:见名知意
-
类成员变量:首字母小写和驼峰原则:monthSalary
-
局部变量:首字母小写和驼峰原则
-
常量:大写字母和下划线:MAX_VALUE
-
类名:首字母大写和驼峰原则:Man , GoodMan
-
方法名:首字母小写和驼峰原则:run() , runRun()
//类变量 static 属于类的 跟随类生成 消失
//实例变量:从属于对象;如果不自行初始化,则会使用这个类型的默认值
//布尔值的默认值 是 :false
//除了基本类型 其余的默认值都是 null
//局部变量 必须声明和初始化值
// 是在方法里的;生命周期:从方法的括号开始 对应的括号结束
//常量 需要加上修饰符final 修饰符 不存在先后顺序
常量
-
常量:初始化后不能在改变值!不会变动的值
-
所谓常量可以理解成一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变
-
final 常量名 = 值; final double PI = 3.14 ;
-
常量名一般使用大写字符
运算符
- 算术运算符:+,-,*,/,%,++,--
- 赋值运算符:=
- 关系运算符:>,<,>=,<=,==,!=,instance of
- 逻辑运算符:&&,||,!
- 位运算符:&,|,^,~,>>,<<,>>>
- 条件运算符:?:
- 扩展赋值运算符:+=,-=,*=,/=,%=,<<=,>>=,&=,^=,|=
注意点
- 整数运算 结果也是整数 只能取到整数部分 涉及到小数 需要转换为double
- 有long类型的数据参与运算则返回的结果都是long类型的 如果没有则返回的一定是int
- 关系运算符返回的结果: 正确 或者 错误 只能返回布尔值
- a++ 是先参与运算 再 自增
- ++a 是先自增 在参与运算
逻辑运算符位运算符
// 与(and) 或 (or ) 非 (!)
boolean a = true ;
boolean b = false ;
// 短路:若a 一开始就是假 则 会直接返回结果 不会运行后面的b逻辑
System.out.println("a && b "+(a && b));//逻辑与(&&)运算 两个变量都为真 结果才为真
System.out.println("a || b "+(a || b)); //逻辑或(||)运算 两个变量有一个为真 , 则结果采薇真
System.out.println("!(a && b) "+!(a && b));//如果是真 结果则为假 如果是假 结果为真
/*
A = 0011 1100
B = 0000 1101
0000 0001
0001 0000
0000 1010
0000 1000
x = 0110 0100 100
y = 0011 0010 50
c = x&y = 0010 0000 32
d= x|y = 0111 0110 118
d= x^y = 0101 0110 86
d= c|y = 0011 0010 50
d= c^y = 0001 0010 18
补码:1101 1111 取反+1
源码 1010 0001
d= ~c = 1010 0001 -33
cc = ((x&y) > (x|y)) false
dd = ((c|d)>(~d)) 1010 0001 -33 > 32 false
dd&&cc false
dd&&cc||!cc true
1111 0101 这是原码
1000 1011 取反 加1
A&B = 0000 1100 只有当两个数都为1 的时候才为1
A|B = 0011 1101 只要有一个数为1 则为1
A^B = 0011 0001 ^(异或) 两个数相同则为0 不同则为1
~B = 1111 0010 ~ 取反 1取0 0取1
2*8怎么运算最快 》》2 * 2 * 2 * 2
<< 左移 相当于把数乘以*2
>> 右移 相当于把数除以/2
0000 0000 0
0000 0001 1
0000 0010 2
0000 0100 4
0000 1000 8
0001 0000 16
0000 1010
0000 0010 2
0000 1110
0000 0011
0000 1101
*/
int a = 0b1010101;
int b = 0b1111111;
System.out.println(a&b);
System.out.println(2<<3);
扩展赋值运算符 三元运算符
int a = 10;
int b = 20;
a+=b; //a= a+b;
a-=b; //a= a-b;
System.out.println(a);
//字符串连接符 + 加号两边只要有一方出现了字符串String类型的,就会把数据都变成String类型的
System.out.println(a+b);
System.out.println(""+a+b);//1020
System.out.println(a+b+"");//30 说明运算是从左到右
//x?y:z x为真 输出y 否则输出z
int score = 50;
String type = score < 60 ? "不及格" : "及格";
System.out.println(type);
包机制
-
为了更好地组织类,Java提供了包机制,用于区别类名的命名空间。
-
包语句的语法格式为:
-
package pkg1[.pkg2[.pkg3……]]
-
一般利用公司域名倒置作为包名
-
为了能够使用某一个包的成员,我们需要在Java程序中明确导入该包。使用“import ”语句可以完成此功能。
-
import package1[.package2……].(classname|*);
Java Doc
-
JavaDoc命令是用来生成自己的API文档
-
参数信息
- @author 作者名
- @version 版本号
- @since 指明需要最早使用的jdk版本
- param 参数名
- return 返回值情况
- throws 异常抛出情况
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)