JavaSE基础语法大汇总
Java基础语法
注释
写注释是一个很好的习惯
- 单行注释
- 多行注释
- 文档注释
创建一个空项目 ---> file ---> new ---> model (注意这里不能new 一个project,因为空项目本身就是一个project) ---> 然后就是一套熟悉的创建j
ava项目的过程了
public class HelloWorld {
public static void main(String[] args) {
//单行注释
//输出一个Hello,World!
System.out.println("Hello,World!");
/*多行注释
* 第一行
* 第二行*/
//JavaDoc 文档注释
/**
*@Description Hello World!
*/
}
}
标识符
- 关键字
- 标识符都应该以A-Z,a-z,_ 开始,首字符之后可以是任意组合。甚至可以用中文命名
String 王者荣耀 = “0001”
。但是非常不建议用中文!! - 标识符大小写敏感
数据类型
-
强类型语言
- 所有变量必须先定义再使用
-
弱类型语言
- 比强类型语言快一点,但是强类型语言更安全
-
Java数据类型两大类
-
基本类型(主要先学好这个)
String 不是关键字,是类
-
数值型
一个字节 = 8个bit 表示的范围 0~255,如果能表示负数,那就是 -128 ~ 127
- byte 1个字节 -128~127
- short 2个字节
- int 4个字节
- long 8个字节
- float 4个字节
- double 8个字节
- char 2个字节
-
boolean型
- 占一位,只有true和false
-
public class HelloWorld { public static void main(String[] args) { //八大基本数据类型 //整数 int num1 = 10; byte num2 = 20; short num3 = 30; long num4 = 30L;//long类型后面要加L; //小数、浮点数 float num5 = 50.1F; double num6 = 3.1415926535874965126529; //字符 char name = 'A'; //String 字符串 不是关键字是类 String name = "yuyuyu627"; //布尔值 :只有是非两种值 boolean flag1 = true; boolean flag2 = false; } }
- 引用类型
- 类
- 接口
- 数组
-
数据类型扩展以及面试题
整数拓展
public class HelloWorld {
public static void main(String[] args) {
//整数拓展 进制:二进制0b 十进制 八进制0 十六进制0x
int i1 = 10;
int i2 = 010;//八进制 逢八进一 010=8 0~7
int i3 = 0x10;//十六进制 逢十六进一 0x10=16 0~9 A~F
System.out.println(i1);
System.out.println(i2);
System.out.println(i3);
}
}
输出:
10
8
16
浮点数拓展
public class HelloWorld {
public static void main(String[] args) {
//========================================================
//浮点数拓展 银行业务怎么表示 绝不能用float
//BigDecimal 数学工具进行比较 银行业务绝对不能用flloat进行表示
//=========================================================
//float 有限 离散 舍入误差 大约 接近但不等于
//double
//最好完全避免使用浮点数比较
float f = 0.1f;//0.1
double d = 1.0/10;//0.1
System.out.println(f==d);//false
System.out.println(f);
System.out.println(d);
float d1 = 23123123123123f;
float d2 = d1 + 1;
System.out.println(d1==d2);//true
}
}
输出:
false
0.1
0.1
true
字符拓展
public class HelloWorld {
public static void main(String[] args) {
//========================================================
//字符拓展
//=========================================================
char c1 = 'a';
char c2 = '中';
System.out.println(c1);
System.out.println((int)c1);//强制转换
System.out.println(c2);
System.out.println((int)c2);
//所有的字符本质还是数字
//编码 Unicode 占2字节 65535 Excel:最长只有2^16=65536这么长
//Unicode 包含ASCII编码还有机内码
//U0000 UFFFF
char c3 = '\u0061';
System.out.println(c3);//a
//转义字符
// \t 制表符 \n换行符...
System.out.println("Hello\tWorld");
System.out.println("Hello\nWorld");
}
}
输出:
a
97
中
20013
a
Hello World
Hello
World
布尔值拓展
public class HelloWorld {
public static void main(String[] args) {
//========================================================
//布尔值拓展
//=========================================================
boolean flag = true;
//下面这两行代码一样的 代码要精简易读
if(flag==true){}
if(flag){}
}
}
类型转换
-
java是强类型语言。所以在进行一些运算的时候要进行类型转换
低 ----------------------------> 高 byte,short,char->int->long->float->double
-
不同类型先转换为同一类型再计算
-
强制类型转换
-
自动类型转换
public class HelloWorld {
public static void main(String[] args) {
int i = 128;
//byte b = i; 报错
byte b = (byte)i;//内存溢出 输出 -128
//强制类型转换 高==>低 (类型)变量名
System.out.println(i);
System.out.println(b);
//自动转换 低==>高
double d = i;//这里不会报错
System.out.println(d);
/*
注意:
1. 不能对布尔值进行转换 因为布尔是按位的
2. 不能把对象类型转换成不相干的类型
3. 高容量往低容量转的时候要强制转换,反之不用懂,会自动转换
4. 转换的时候可能存在 内存溢出 或者 精度问题
*/
System.out.println("===========");
System.out.println((int)23.7);
System.out.println((int)-45.89f);
char c = 'a';
int t = c+1;
System.out.println(t);//98
System.out.println((char)t);//b
}
}
输出:
128
-128
128.0
===========
23
-45
98
b
public class HelloWorld {
public static void main(String[] args) {
//操作数比较大的时候,注意溢出的问题
//JDK7新特性:数字之间可以用下划线分割而不会输出下划线 1000_0000
int money = 10_0000_0000;
int years = 20;
int total = money * years;//-1474836480
long total2 = money * years;//-1474836480 默认是int,结果在转换之前就出问题了
long total3 = money * ((long)years);//先把其中一个转换成long
System.out.println(total3);//20000000000
}
}
变量
注意
-
java是强类型语言,每个变量都有类型,基本类型 / 引用类型
-
java变量是最基本的存储单元,要素包括变量名,变量类型和作用域。
变量的分类
- 类变量
- 实例变量
- 局部变量
import com.sun.xml.internal.ws.api.model.wsdl.WSDLOutput;
public class HelloWorld {
//类变量
static double salary = 2500;
//属性:变量
//实例变量:从属于对象 不初始化会有一个默认值 数值型的默认值一般是 null或者0;bool值默认false
//除了基本类型,默认值都是null
String name;//不用初始化就能用
int age;
//main方法
public static void main(String[] args) {
//局部变量;必须声明和初始化值
int i = 10;//就是得给i一个初始值10才行
System.out.println(i);
//变量类型 变量名字 = new HelloWorld()
HelloWorld helloWorld = new HelloWorld();
System.out.println(helloWorld.age);
System.out.println(helloWorld.name);
//类变量 static
System.out.println(salary);
}
//其他方法
public void add(){
}
}
输出:
10
0
null
2500.0
常量:初始化之后不能再改变的值,常量命名一般使用大写字符
final 常量名 = 值
final double PI = 3.14
import com.sun.xml.internal.ws.api.model.wsdl.WSDLOutput;
public class HelloWorld {
//修饰符不存在先后顺序,即:double前面的都是修饰符,谁先谁后不影响最后输出
static final double PI = 3.14;//同 final static double PI = 3.14;
public static void main(String[] args) {
System.out.println(PI);//输出3.14
}
}
变量的命名规范
- 变量、方法、类名:见名知意
- 成员变量、局部变量、方法名:首字母小写+驼峰原则
- monthSalary
- lastName
- runRun( )
- 常量:大写字母+下划线
- MAX_VALUE
- 类名:首字母大写+驼峰原则
- GoodMan
一些运算符
package base;
public class operator {
public static void main(String[] args) {
//二元运算符
//Ctrl + D :复制当前行到下一行
int a = 10;
int b = 20;
int c = 25;
int d = 25;
System.out.println(a+b);
System.out.println(a-b);
System.out.println(a*b);
System.out.println(a/(double)b);//强制类型转换,不然除出来是整数
long a1 = 123231231233121323L;
int b1 = 123;
short c1 = 10;
byte d1 = 8;
System.out.println(a1+b1+c1+d1);//只要有一个long,输出结果就是long
System.out.println(b1+c1+d1);//int
System.out.println(c1+d1);//int,即便是short+byte相加也是int
//关系运算符返回结果:正确/错误 布尔值
}
}
自增、自减、幂运算
package base;
public class Demo02 {
public static void main(String[] args) {
//++ -- 自增 自减 一元运算符
int a = 3;
int b = a++;//先给b赋值,再自增
//相当于在这加一行 a = a + 1
System.out.println(a);//4
//相当于在这加一行 a = a + 1
int c = ++a;//先自增,再给c赋值
System.out.println(a);//5
System.out.println(b);//3
System.out.println(c);//5
//幂运算 2^3 2*2*2 = 8 借助类工具
double pow = Math.pow(3,2);
System.out.println(pow);//9.0
}
}
逻辑运算符、位运算符
package base;
public class Demo03 {
public static void main(String[] args) {
//短路运算
int c = 5;
boolean d = (c<4)&&(c++<4);//实际上执行到 c<4 发现是 false直接短路,不会执行后面的 c++<4
//验证:c++<4 不会执行
System.out.println(d);
System.out.println(c);//输出:5。如果执行 c++<4 应该是输出 6
//位运算的面试题目
/*
A = 0011 1100
B = 0000 1101
A&B = 0000 1100
A|B = 0011 1101
A^B = 0011 0001
~B = 1111 0010
2*8 怎么运算最快?按位左移(直接和底层打交道)
<< *2
>> /2
很多算法题目里会用移位计算,效率极高
*/
}
}
字符串连接
package base;
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
//运算符的优先级 采用加括号的形式,把优先级表示的明明白白
}
}
包机制
- 包的本质是文件夹
- 一般利用公司的域名倒置作为包名
- www.baidu.com ---包名---> com.baidu.www
包语法关键字:package
导入包:import
package com.yuyuyu.base.*;//" * "表示通配符,将包里面的所有类都导入
JavaDoc
-
javadoc 命令是用来生成自己的API文档
-
参数信息
-
通过命令行输入
javadoc 参数 Java文件
生成 JavaDoc 文档
使用IDEA生成JavaDoc文档
教程非常之很详细,easy!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!