java基础语法
基础语法
1. 注释
-
概念
类似于课堂笔记,让其他程序员也能看懂代码所具备的功能
-
三种注释
- 单行注释 //单行注释
- 对行注释 /多行注释/
- JavaDoc:文档注释 /** 文档注释 */
2.标识符
-
关键字
abstract assert boolean break byte case catch class class const continue default do double else enum extends final finally float for goto if implements import instanceof int interface long native new package private protected public return strictfp short static super switch synchronized this throw throws transient try void volatile while -
注意
- 所有标识符应以字母(A-Z或者a-z)、美元符($)、或者下划线(_)开始
- 首字母之后可以是字母、美元符、下划线或者数字任何字符组合
- 不能使用关键字作为变量名或者方法名
- 标识符大小写敏感
- 非法标识符举例:123abc、-salary
3. 数据类型
-
强类型语言
- 要求变量的使用要严格符合规定,变量都必须定义后再使用
-
弱类型语言
-
Java数据类型分为两大类
-
基本类型
-
数值类型
-
整数类型
-
byte占1个字节范围:-128~127
-
short占2个字节范围:-32768~32767
-
int占4个字节范围:-2147483648~2147483647
-
long占8个字节范围:-9223372036854775808~9223372036854775807
使用时在数值后面加l
-
-
浮点类型
- float占4个字节 使用时在数值后面加f
- double占8个字节
-
字符类型:char占2个字节
-
boolean类型:占1位,其值只有true和false
-
-
-
引用类型
- 类
- 接口
- 数组
-
4. 数据类型面试题
-
进制问题
- 二进制 0b
- 十进制
- 八进制 0
- 十六进制 0x
-
浮点数拓展
-
//float 有限 离散 舍入误差 接近但不等于
-
银行业务怎么表示?
答:BigDecimal 数学工具类
-
-
字符拓展
-
所有字符的本质还是数字
-
编码:Unicode 2字节 0-65535
char c3 = '\u0061'; //a
-
转义字符
System.out.println("helo\tworld\n") //"/t"制表符 "/n"换行符
-
-
布尔值拓展
boolean flag = ture; if(flag == ture){ //和if(flag){}相同 }
5. 类型转换
-
运算中,需要先把数据转换为同一类型,然后才可以计算
public class demo05 { public static void main(String[] args) { int i = 128; byte b = (byte)i; //内存溢出 //强制转换 (类型)变量名 高->低 //低----------------------------->高 //byte,short,char,int,long,float,double //自动转换 高->低 /* 注: 1.不能对boolean进行转换 2.不能把对象类型转换为不相干的类型 3.高容量要转换成低容量使需强制转换 低----------------------------->高 byte,short,char,int,long,float,double 4.转换的时候可能出现内存溢出,或者精度的问题 5.操作大数时,注意溢出问题 */ System.out.println(i); System.out.println(b); } }
6. 变量
-
变量:可以变化的量
-
变量是java基本的存储单元,包括变量名、变量类型和作用域。
-
格式
数据类型 变量名 = 值;
-
注意
- 每个变量都有类型,可以是 基本类型 / 引用类型
- 变量名必须是合法标识符
- 变量声明是一条完整语句,以分号结束
-
变量作用域
- 类变量 //需要加static关键词
- 实例变量
- 局部变量 //在方法里使用
public class Demo06 { //类变量 static 只能在Demo06类中使用,随类产生,随类消失 static double salary = 2500; //实例变量:从属于对象;如果不自行初始化,就为这个变量的默认值 0 0.0 //布尔值:默认是false //除了基本类型 其余的默认值都是null String name; int age; //main方法 public static void main(String[] args) { //局部变量:必须声明和初始化值 int i = 0; System.out.println(i); //变量类型 变量名字 = new 变量类型(); Demo06 demo06 = new Demo06(); System.out.println(demo06.age); System.out.println(demo06.name); System.out.println(salary); } //其他方法 public void method(){ } }
7. 常量
-
常量:初始化后不会变的值
-
命名
final 数据类型 常量名 = 值;
final double PI = 3.14;
-
注:常量名一般使用大写字符
public class Demo07 { //修饰符不区分先后循序 修饰符(final static) final static double PI = 3.14; public static void main(String[] args) { System.out.println(PI); } }
8. 变量命名规范
- 所有变量、方法、类名:见名知意
- 类成员变量:首字母小写和驼峰规则:MonthSalary
- 局部变量:首字母小写和驼峰原则
- 常量:大写字母和下划线:MAX_VALUE
- 类名:首字母大写和驼峰原则:Man , GoodMan
- 方法名:首字母小写和驼峰原则:run(),runRun()
9. 运算符
-
算术运算符
+,-,*,/,%(模运算),++,--
-
赋值运算符
=
-
关系运算符
<,>,>=,<=,==,!=,instanceof
-
逻辑运算符
&&,||,!
短路运算
public class Demo02 { public static void main(String[] args) { //短路运算 如果第一个(c<4)为false,那么剩下的(c++<6)不会运算 int c = 5; boolean d = (c<4)&&(c++<6); System.out.println(d); System.out.println(c); } }
-
位运算符
&,|,^,~,>>,<<,>>>(了解!!)
public class Demo03 { public static void main(String[] args) { /* A = 0011 1100 B = 0000 1101 ---------------------------------------------- A&B = 0000 1100 (与运算:有0结果为0,全1结果为1) A|B = 0011 1101 (或运算:有1结果为1,全0结果为0) A^B = 0011 0001 (异或运算:相同为0,不同为1) ~B = 1111 0010 (非运算:原1结果为0,原0结果为1) << 数字*2 例:2<<3 -> 2*2*2*2 == 2*2的3次方 >> 数字/2 0000 0000 0 0000 0001 1 0000 0010 2 0000 0100 4 0000 1000 8 0001 0000 16 */ } }
-
条件运算符
? :
//三元运算符 public class Demo05 { public static void main(String[] args) { //x ? y : z //如果x == true ,则结果为y //如果x == false,则结果为z } }
-
扩展赋值运算符
+=,-=,*=,/=
-
Math类
通过Math实现复杂的数学运算
public class Demo02 { public static void main(String[] args) { double pow = Math.pow(3,2); //实现幂运算 3的2次方 System.out.println(pow); } }
-
字符串连接符
数 + 数 +“”(string型)
public class Demo04 { public static void main(String[] args) { int a = 10; int b = 20; System.out.println(""+a+b); //等于1020 会拼接 System.out.println(a+b+""); //等于30 先运算,再转换成string类 } }
10. 包机制(类似于文件夹)
- 一般利用公司域名倒置作为包名
- 为了使用某个包成员,我们需要在Java程序中明确引入包,使用import语句完成
11. JavaDoc
-
JavaDoc命令是用来生成自己的API文档
-
参数信息
- @author 作者名
- @version 版本号
- @since 指明需要最早使用的jdk版本
- @param 参数名
- @return 返回值情况
- @throws 异常抛出情况
-
代码
/** * @author jam * @version 1.0 * @since jdk1.8 */ public class Demo08 { /** * * @param name * @return name * @throws Exception */ public String test(String name) throws Exception{ return name; } }
-
生成javadoc的命令
- 打开命令行
- 输入 javadoc -encoding UTF-8 -charset UTF-8 java文件(命令行方式)
- 打开idea -->tool -->generate javaDoc (idea生成方式)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)