Java基础1(基础知识)
符号
'\n' 换行
'\t' 把前面字符串补齐到8/8的倍数
数据类型
- 整数、
- 小数、
- 字符串、" "
- 字符、 ''
- 布尔、
- 空类型、 null
- 数值取值范围:double>float>long>int>short>byte
标识符
小驼峰命名法:方法、变量 例:name firstName
大驼峰命名法:类名 例:Student GoodStudent
键盘录入
import java.util.Scanner;
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
运算符表达式
整数只能得到整数,小数得到结果可能不精确
数据类型不同不能进行运算,进行转换:
隐式转换:小->大 取值范围小的和大的进行运算,小的会先提升为大的 byte short char在运算时,会先提升为int,再进行运算
显式转换:大->小
强制转换:大给小,别超过取值范围
字符串的'+'拼接操作
自左向右:
System.out.println(1 + 2 + "acc" + 2 + 1)
结果为3abc21
自增 自减
++a 先加后用
运算符
- 赋值运算符
- 逻辑运算符:
逻辑与:& (都真为真)
逻辑或:| (都假为假)
逻辑异或:^(相同假不同真)
逻辑非:! (取反) - 短路逻辑运算符 && ||
- 三元运算符:关系表达式 ? 表达式1 : 表达式2 (关系表达式真,结果为表达式1,假为2)
原码反码补码
Java基础2(流程控制语句)
if
if(a > 1){
return;
}
if(b > 1){
return;
} else if{
}
...
else {
}
注意:
- 大括号可以在另起一行,但是建议写在第一行的末尾
- 如果只有一句代码,那么可以省略不写。大括号尽量不省
- 对布尔类型变量进行判断,不要使用==号,直接把变量写在小括号里即可
for
for(i = 0; i < = 100; i++){
return;
}
while
while(i < 10){
return;
}
注意:
- 循环结构选择:
for(知道循环次数或者范围)
while(知道循环的结束条件)
switch
switch(score) {
case 1,2,3,4,5 -> System.out.println("工作日");
case 6 -> System.out.println(2); //简化
case 7 -> {
System.out.println(3);
}
default->{
System.out.println(4);
}
}
简化写法
注意:
- case后面不能是变量 case给出的不能重复
- switch其他知识点: default的位置(任意位置,习惯在最下面)和省略(不建议)
- case穿透,break省略会导致case穿透(多个case语句重复了,考虑用此简化代码)
- 新特性 也可以写成如上,但是 -> 和 :不能同时用
- 大括号可以省略(只有一句)
- switch(有限个数据一一列举,任选其一)和if第三种格式各自使用场景(范围的判断)
数组
一种容器,可以存储同种数据类型的多个值。
- 存储数据时,需要结合隐式转换考虑
int[] arr = {1, 2, 3};
int[] arr2 = new int[3]; //动态初始化
arr[0] = 1;// 赋值
Java基础3(方法)
最小的执行单元
格式:
public static void playGame() {
//最基础
System.out.println(1);
}
public static void method(int num1, int num2) {
//带参数,数量和类型必须一一对应
int result = num1 + num2;
System.out.println(result);
}
public static int getSum(int num1, int num2) {
//带返回值
int result = num1 + num2;
System.out.println(result);
return result;
}
void 表示方法没有返回值 return 方法没有返回值,可以不写,写了表示结束方法 有返回值必须写
方法重载
- 方法名相同
- 参数不同(类型不同,个数不同),不包括形参名不同,与返回值无关
数据类型
- 基本数据类型:
传递时传递的是真实的数据,形参的改变,不影响实际参数的值 - 引用数据类型(new出来的):
传递时传递的是地址值,形参的改变,影响实际参数的值 - 方法的值传递,变量只在对应的方法中有效
Java基础4(面向对象)
类
成员变量(代表属性)
成员方法(代表行为)
Javabean类
描述一类事物的类
测试类
编写main方法的类
定义类
public class GirlFriend{
private int age;
private String name;
private String gender;
public void setName(String name){
this.name = name;
//局部变量表示测试类中调用方法传递过来的值
//等号右面name就近原则,表示成员位置的name,
}
public String getName(){
return name;
}
public void setAge(int age){
if(age >= 18 && age <= 50){
this.age = age;
}else{
System.out.println("非法参数")
}
}
public int getAge(){
return age;
}
}
GirlFriendTest.java
public class GirlFriendTest{
public static void main(String[] args){
GirlFriend gf1 = new GirlFriend();
gf1.setName("雅洁");
gf1.setAge("24");
System.out.println(gf1.getName());
}
}
注意:
- 类名首字母建议大写,需要见名知意,驼峰模式。
- 一个Java文件中可以定义多个class类,但只能一个类是public修饰,而且public修饰的类名必须成为代码文件名(实际开发中建议还是一个文件定义一个class类)
- 成员变量的完整定义格式是: 修饰符 数据类型 变量名称 = 初始化值;一般无需指定初始化值,存在默认值。
封装
原则:
对象代表什么,就得封装对应的数据,并提供数据对应的行为
- private关键字是一个权限修饰符
- 可以修饰成员(成员变量和成员方法)
- 被private修饰的成员只能在本类中才能访问
- 针对private修饰的成员变量,如果需要被其他类使用,提供相应的操作
- 提供"setXxx(参数)"方法,用于给成员变量赋值,方法用public修饰
- 提供"getXxx()"方法,用于获取成员变量的值,方法用public修饰
this
- 可以区别成员变量和局部变量
- 就近原则
- 见上方代码
构造方法
概述:创造对象的时候,虚拟机会自动调用构造方法,作用是给成员变量进行初始化
特点:
- 方法名与类名相同,大小写也要一致
- 没有返回值类型,连void都没有
- 没有具体的返回值(不能由return带回结果数据)
- 没写任何构造方法,会给一个空参构造方法
public class GirlFriend{
public GirlFriend(){
//空参构造
System.out.println("1");
}
public GirlFriend(String name, int age){
//有参构造
this.name = name;
this.age = age;
}
}
public class GirlFriend{
public static void main(String[] args){
GirlFriend gf1 = new GirlFriend("雅洁", 23);
}
}
系统会根据传的参数调用对应的构造
无论是否使用,都手动书写无参数构造方法,和带全部参数的构造方法
标准Javabean
- 类名需要见名知意
- 成员变量使用private修饰
- 提供至少两个构造方法:
无参构造方法
带全部参数的构造方法 - 成员方法
提供每一个成员变量对应的setXxx()/getXxx()
如果还有其他行为,也需要写上
public class User{
private String username;
private String password;
private int age;
public User(){
}
public User(String username, String password, int age){
this.username = username;
this.password = password;
this.age = age;
}
public void setUsername(String username){
this.username = username;
}
public String getUsername(){
return(username);
}
...
//password, age依次get set方法
}
内存图
基本/引用数据类型
基本数据类型:
- 整数类型
- 浮点数类型
- 布尔类型
- 字符类型
二者区别
this内存原理
成员变量和局部变量
成员变量:类中方法外的变量
局部变量:方法中的变量
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现