javaOCA考点(基础)

在Java中,类是基本的块。类是对象的定义; 对象是类在内存中运行的具体实例。

1.定义变量:

基本格式:

java 复制代码
数据类型 变量名 = 值;

常用写法:

java 复制代码
int age = 20;           // 整数
double price = 99.9;    // 小数
String name = "张三";    // 字符串
boolean flag = true;    // 布尔值

简单例子:

java 复制代码
int num = 10;          // 定义整数变量
String text = "Hello"; // 定义字符串变量
double score = 95.5;   // 定义小数变量

2.定义java类:

基本格式:

java 复制代码
public class 类名 {
    // 属性(变量)
    // 方法
}

简单例子:

java 复制代码
// 定义学生类
public class Student {
    // 属性
    String name;
    int age;
    
    // 方法
    public void study() {
        System.out.println(name + "在学习");
    }
}

使用类:

java 复制代码
Student stu = new Student();  // 创建对象
stu.name = "张三";             // 设置属性
stu.age = 20;
stu.study();                  // 调用方法

3.引用宝

基本格式:

java 复制代码
import 包名.类名;      // 引用单个类
import 包名.*;         // 引用包中所有类

常用例子:

java 复制代码
import java.util.Scanner;      // 引用Scanner类
import java.util.*;           // 引用util包所有类
import java.time.LocalDate;   // 引用LocalDate类

4.代码示例(前三个总结):

java 复制代码
import java.util.Scanner;  // 第一步:引用包
import java.util.Date;

public class Test {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);  // 第二步:使用
        Date now = new Date();
    }
}

5.属性与方法:

属性(变量):

java 复制代码
public class Person {
    // 属性定义
    String name;     // 姓名
    int age;         // 年龄
    double score;    // 分数
}

方法:

java 复制代码
public class Person {
    String name;
    
    // 普通方法
    public void sayHello() {
        System.out.println("你好," + name);
    }
    
    // 带参数方法
    public void setInfo(String n, int a) {
        name = n;
        age = a;
    }
    
    // 带返回值方法
    public int getAge() {
        return age;
    }
}

使用:

java 复制代码
Person p = new Person();
p.name = "张三";      // 设置属性
p.sayHello();        // 调用方法
int a = p.getAge();  // 获取返回值

6. 注释

单行注释, 一般用 "// ... "

多行注释, 一般用 "/* ... */ "

Javadoc 多行注释, 一般用 "/** ... */ "

7.类和文件

一个文件下也可以放多个class, 但是要确保最多只有一个class 为 public class。

基本规则:

java 复制代码
一个文件 = 一个公共类
文件名 = 类名.java

例子:

java 复制代码
// Student.java
public class Student {  // 公共类名必须与文件名相同
    String name;
    int age;
}

特殊情况:

java 复制代码
// Main.java
public class Main {      // 公共类
    // 主方法
    public static void main(String[] args) {
        System.out.println("Hello");
    }
}

class Helper {            // 非公共类(同文件只能有一个公共类)
    void help() {
        System.out.println("帮助");
    }
}

文件结构:

java 复制代码
项目文件夹/
├── Main.java          // 文件
└── 其他文件.java

8.Java包和导入

包的作用:组织相关类,避免类名冲突。

定义包:

java 复制代码
// Student.java
package com.school;  // 必须第一行

public class Student {
    String name;
}

导入包:

java 复制代码
// Main.java
import com.school.Student;  // 导入Student类
import com.school.*;        // 导入school包所有类
import java.util.*;         // 导入java.util包

public class Main {
    public static void main(String[] args) {
        Student stu = new Student();  // 使用导入的类
    }
}

注意:

java 复制代码
1.import java.util.Scanner;
2.import java.util.*;

1 和 2 为重复导入, 当class 调用 Scanner 时, 则会调用 1 而不是 l 2, 因为 1 相较于 2 更加具体。

如果当导入的多个包都有此class, Java 会报编译错误,比如:

java 复制代码
import java.util.*;
import java.sql.*; 
public class Conflicts {
Date date;
}

为什么编译错误?原因:

java 复制代码
import java.util.*;  // 导入util包的所有类(包括Date)
import java.sql.*;  // 导入sql包的所有类(也包括Date)

public class Conflicts {
    Date date;  // 编译器不知道你要用哪个Date!
}

俩个包都有Date:

java 复制代码
java.util.Date    - Java自带的时间类
java.sql.Date     - 数据库专用时间类

两个包有同名类时,必须明确告诉Java用哪个,否则它会"不知道选哪个"而报错。

9.创建对象:

基本方法:

java 复制代码
类名 对象名 = new 类名();

简单例子:

java 复制代码
// 1. 先定义类
class Person {
    String name;
    int age;
}

// 2. 创建对象
public class Main {
    public static void main(String[] args) {
        Person p = new Person();  // 创建Person对象
        p.name = "张三";           // 给属性赋值
        p.age = 20;
    }
}

直接来:

java 复制代码
Person p = new Person();  // 创建对象并赋值

9.Java引用类型和基本类型的区别

基本概念:

基本类型直接存储数据,像是一个小盒子,里面直接放着值。

引用类型存储内存地址,像是一张藏宝图,告诉你数据在哪里。

10.基本类型(Primitives)

1.特点:

存储实际的值 ,在栈内存中,有固定大小,有默认值。

2.8种基本类型:

java 复制代码
int age = 25;       // 整数
double score = 95.5; // 小数
char grade = 'A';   // 字符
boolean flag = true; // 布尔

类比 :就像你钱包里直接放着100元现金

2.引用类型(References)

1.特点

存储内存地址 ,在堆内存 中存数据,用 new创建,默认值是 null。

2.常见引用类型:

java 复制代码
String name = "张三";           // 字符串
Person p = new Person();       // 对象
int[] nums = {1, 2, 3};        // 数组

类比 :就像你钱包里放着一张纸条,写着"保险箱密码是123"

3.关键区别

1. 赋值方式:

java 复制代码
// 基本类型:复制值
int a = 10;
int b = a;  // b得到10的复制

// 引用类型:复制地址
Person p1 = new Person("张三");
Person p2 = p1;  // p2和p1指向同一个对象

2.修改影响:

java 复制代码
int x = 5;
int y = x;
y = 10;  // x还是5,y变成10

Person p1 = new Person("张三");
Person p2 = p1;
p2.name = "李四";  // p1.name也变成"李四"!

解释:p1和p2是同一张"藏宝图",找到的是同一个宝藏,改一个都会变。

3.比较:

java 复制代码
int a = 5, b = 5;
System.out.println(a == b);  // true(比较值)

Person p1 = new Person("张三");
Person p2 = new Person("张三");
System.out.println(p1 == p2);  // false(比较地址)

4.总结:

特点 基本类型 引用类型
存储什么 实际值 内存地址
内存位置 堆(数据在堆,地址在栈)
默认值 0/false null
创建方式 直接赋值 用new
赋值行为 复制值 复制地址

记住:基本类型是"值本身",引用类型是"找到值的地址"!

先到这里

相关推荐
阿里云云原生1 小时前
告别“看不见的内存”!SysOM 如何实现 Java 进程内存全景分析?
java·云原生
Andy工程师1 小时前
Spring Boot 按照以下顺序加载配置(后面的会覆盖前面的):
java·spring boot·后端
繁星蓝雨1 小时前
小试Spring boot项目程序(进行get、post方法、打包运行)——————附带详细代码与示例
java·spring boot·后端
加藤不太惠1 小时前
【无标题】
java·数据结构·算法
学困昇2 小时前
Linux基础开发工具(下):调试器gdb/cgdb的使用详解
linux·运维·服务器·开发语言·c++
Knight_AL2 小时前
如何在 Spring Boot 中集成 IP2Region 实现高效 IP 地址地理位置查询
java·spring boot·tcp/ip
biter down2 小时前
C++ 组合与继承:从设计本质到实战,吃透高内聚低耦合
开发语言·c++
灰灰勇闯IT2 小时前
C语言实战:字符串元音字母提取器的实现与优化
c语言·开发语言