# JavaSE **Repository Path**: hrbu2023/java-se ## Basic Information - **Project Name**: JavaSE - **Description**: JavaSE Java语法、面相对象、Java工具(utils、date) - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-10-15 - **Last Updated**: 2025-11-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 添加文档注释 ```java /** * * @date ;${DATE} ${TIME} * @author :金山老师 * project: ${PROJECT_NAME} * 描述 : ${desc} */ ``` ![image-20251016134443780](./assets/image-20251016134443780.png) # 自定义模板字符串 ![image-20251016134018418](./assets/image-20251016134018418.png) # 值传递和引用传递 ## 值传递 ```java package com.neuedu.javase.methods; /*** * 项目名称: MyJavaSE * 包: com.neuedu.javase.methods * date: 2025/10/23 10:28 * 描述: 方法的值传递、引用传递 * @author : 张金山 * 作者博客: https://blog.fulfill.com.cn */ public class MethodVarTransmit { /** * 基本类型变量 4 类 8中 * @param numa */ public static void doubleNum(int numa){ numa = numa * 2; System.out.println("方法内部的numa: "+numa); //200 } public static void main(String[] args) { // 基础类型 传递的值 int num = 100; System.out.println("=========调用方法之前: "+num); //100 doubleNum(num); System.out.println("=========调用方法之后: "+num);//100 } } ``` ![image-20251023104510036](./assets/image-20251023104510036.png) ## 引用传递 ```java package com.neuedu.javase.methods; /*** * 项目名称: MyJavaSE * 包: com.neuedu.javase.methods * date: 2025/10/23 10:28 * 描述: 方法的值传递、引用传递 * @author : 张金山 * 作者博客: https://blog.fulfill.com.cn */ public class MethodVarTransmit { /** * 数组 * @param numa */ public static void doubleArrayNum(int numa[]){ numa[0] = numa[0] * 2; System.out.println("方法内部的numa[0]: "+numa[0]); //20 } public static void main(String[] args) { int nums[] = {10,20,30}; System.out.println("=========调用方法之前数组: "+nums[0]); //10 doubleArrayNum(nums); System.out.println("=========调用方法之前数组: "+nums[0]); //20 } } ``` ![image-20251023104539571](./assets/image-20251023104539571.png) # 面向对象基础 ![image-20251023112427538](./assets/image-20251023112427538.png) ![image-20251023112438944](./assets/image-20251023112438944.png) ## 编码: 优先定义一个模板(类型 class ) 形状 ``` public class 类型的名字{ //特征---属性 定义变量 类型 类型名字 //动作---方法 public 修饰符 返回类型 方法名称(参数列表 .... ){ //方法体 } } ``` ## 定义人类的类型( Human ) ``` package com.neuedu.javase.oo.basics; /*** * 项目名称: MyJavaSE * 包: com.neuedu.javase.oo.basics * date: 2025/10/23 11:29 * 描述: * @author : 张金山 * 作者博客: https://blog.fulfill.com.cn */ public class Human { //定义属性 属性是有默认值 /*** * 类的属性 * * 基础 默认值 * byte short int long 0 * double float 0.0 * char \u0000 * boolean false * * 引用类型 : null * * String null * 数组: null * */ String name; int age; char gender; int nums[]; //定义方法 public void sport(){ System.out.println(name +" 在跑步"); } public void cal(int numa ,int numb){ System.out.println(name +" 在算数 "+numa+" + "+numb+" = "+(numa + numb)); } public void paint(){ System.out.println(name +" 在画画"); } } ``` ![image-20251023114148132](./assets/image-20251023114148132.png) ## 对象的创建、访问属性、方法 ```java package com.neuedu.javase.oo.basics; /*** * 项目名称: MyJavaSE * 包: com.neuedu.javase.oo.basics * date: 2025/10/23 11:32 * 描述: * @author : 张金山 * 作者博客: https://blog.fulfill.com.cn */ public class Runner { public static void main(String[] args) { //创建数组 int age[] = new int[10]; // 对象的创建 new Human() Human zhangsan = new Human(); Human lisi = new Human(); //访问属性; zhangsan.name = "张三"; lisi.name = "李四"; System.out.println("zhangsan.name: "+zhangsan.name); System.out.println("zhangsan.nums: "+zhangsan.nums); //访问方法 zhangsan.sport(); zhangsan.paint(); } } ``` ## 继承 ## 封装 ## 多态 接口中的默认方法 查找文件快捷键 - 查找class(Java)CTRL+N - 非Java文件 CTRL+SHIFT+N ![image-20251029085214734](./assets/image-20251029085214734.png) 查看继承关系 ![image-20251029085420391](./assets/image-20251029085420391.png) 查找错误的 原因 ``` package com.neuedu.javase.myex; /*** * 项目名称: MyJavaSE * 包: com.neuedu.javase.myex * date: 2025/10/29 8:55 * 描述: * @author : 张金山 * 作者博客: https://blog.fulfill.com.cn */ public class Runner { public static void m3(){ int result = 0; int numa = 10; int numb = 0 ; //调用方法 语句一旦出错 就导致 方法栈 不能继续调用了 //使用try cath 处理下 // try{ //把可能报错的业务逻辑放到此处 result = numa / numb; // }catch (ArithmeticException e){ //java.lang.ArithmeticException // // catch 捕获 异常的信息 // // e 异常的消息 // e.printStackTrace(); //打印异常的栈信息 // } System.out.println("result = " + result); } public static void m2(){ m3(); } public static void m1(){ m2(); } public static void main(String[] args) { m1(); System.out.println("程序执行完成..."); } } ``` ![image-20251029092333465](./assets/image-20251029092333465.png) 查找错误的异常定位 应该是 从上往下找,找到一个我们写的代码 Runner.m3 23行 ![image-20251029092557954](./assets/image-20251029092557954.png) Throws ![image-20251029095744163](./assets/image-20251029095744163.png) # ArrayList 和LinkedList比较 ![image-20251105085044156](./assets/image-20251105085044156.png) # HashSet底层(HashMap)解构 ![image-20251105091413552](./assets/image-20251105091413552.png)