Java基础
文章平均质量分 51
学以致用
千寻简
欢迎来到星辰的博客!我专注于分享 Java 微服务架构和人工智能(AI)领域的最新动态与技术实践。在这里,你将深入了解微服务架构的设计与实现,探索 Spring Boot、Spring Cloud 等框架的应用,以及如何在实际项目中运用这些技术。同时,我也会分享 AI 领域的最新进展,特别是 ChatGPT 和大型语言模型(LLMs)方面的内容,包括模型训练、优化、应用实例等。无论你是 Java 开发者还是 AI 爱好者,这里都有你感兴趣的内容。感谢大家的支持与关注!
展开
-
【小教程】5步调用 Mybatis 批量删除 创建 Long[] ids
1创建一个数组,可以是 Set集合 也可以是 list集合。2查询业务,获取到所有数据,谨慎操作,这里方便演示数全查,全删了,实际请根据自身3情况使用,正式数据库请删除业务前请备份好数据库。循环出id加入到集合中。4将 Set/list数组转成 Long[]。5调用批量删除方法。原创 2023-04-08 16:33:44 · 380 阅读 · 0 评论 -
【记录】JSONArray 转 map
【代码】【记录】JSONArray 转 map。原创 2023-02-09 14:56:29 · 792 阅读 · 0 评论 -
模块开发的理解分析
1️⃣功能模块的概念2️⃣模块拆分原则①高内聚性②低耦合性3️⃣如何进行模块拆分①基于不同业务场景,使用规范的设计模式,降低依赖:②为功能模块规划标准的调用边界③模块实现应于模块边界分离④数据耦合和参数耦合是最低的耦合形态,应该尽可能使用⑤文档支持4️⃣实际功能模块拆分举例...转载 2022-08-12 15:20:25 · 988 阅读 · 0 评论 -
千寻简刷八股文丨第一天
1️⃣【JAVA基础】解释对象创建的过程?2️⃣【JAVA基础】"=="和equals方法究竟有什么区别?3️⃣【JAVA基础-集合】Java集合类框架的基本接口有哪些?4️⃣【JAVA基础-集合】Collection和 Collections的区别?5️⃣【缓存】Redis集群有没有了解过,主从和选举是怎么样子的?6️⃣【缓存】Redis的缓存击穿及解决方案7️⃣【锁】乐观锁和悲观锁的解释及其应用场景8️⃣【锁】什么是死锁(deadlock)?9️⃣【数据库】什么是索引?.........原创 2022-07-11 16:02:26 · 421 阅读 · 0 评论 -
37 Java基础 总结 完结篇 知识串讲 Java语言初识 基础语法 流程控制 方法 数组 面向对象 内部类 异常 常用类 集合框架 IO流 多线程 网络编程 GUI 注解
Java语言初识HelloWorld基础语法流程控制方法数组面向对象内部类异常常用类集合框架IO流多线程网络编程GUI注解和反射原创 2022-03-07 12:40:15 · 243 阅读 · 0 评论 -
36 异常机制 自定义异常 实际应用中的经验总结 尽量添加finally语句块去释放占用的资源
自定义异常概念使用Java内置的异常可以描述在编辑时出现的大部分异常情况。除此之外,用户还可以自定义异常。用户自定义异常类,只需继承Exception类即可。在程序中使用自定义异常类,大体可分为以下几个步骤:创建自定义异常类在方法中通过throw关键字抛出异常对象如果在当前抛出异常的方法中处理异常,可以使用try-catch语句捕获并处理;否则在方法的声明处通过throws关键字指明要抛出给方法调用者的异常,继续进行下一步操作。在出现异常方法的代用者中捕获并处理异常。代码// 自原创 2022-03-06 01:09:08 · 93 阅读 · 0 评论 -
35 异常机制 异常处理机制 异常处理五个关键字 try、catch、finally、throw、thorws 代码
异常处理机制概念抛出异常捕获异常异常处理五个关键字try、catch、finally、throw、thorws代码// main{ int a = 1; int b = 0; // 假设要捕获多个异常:从小到大 try{// try 监控区域 if(b==0){ //throw thorws throw new ArithmeticException();//原创 2022-03-06 01:08:11 · 352 阅读 · 0 评论 -
34 异常机制 异常体系结构 Java把异常当做对象来处理 并定义一个基类java.lang.Throwable作为所有异常的超类 Error Exception
异常体系结构概念Java把异常当做对象来处理,并定义一个基类java.lang.Throwable作为所有异常的超类。在Java API中已经定义了许多异常类,这些异常类分为两大类,错误Error和异常Exception。ErrorError 类对象由Java 虚拟机生成并抛出,大多数错误与代码编写者所执行的操作无关。Java虚拟机运行错误(Virtual MachineError),当JVM不再有继续执行操作所需的内存资源时,将出现OutOfMenmoryError。这些异常发生时,J原创 2022-03-06 01:07:21 · 88 阅读 · 0 评论 -
33 异常机制 什么是异常 异常发生在程序运行期间,它影响了正常的程序执行流程。 简单分类 检查性异常 运行时异常 错误
什么是异常概念实际工作中,遇到的情况不可能是非常完美的。比如 :你写的某个模块,用户输入不一定符合你的要求、你的程序要打开某个文件,这个文件可能不存在或者文件格式对,你要读取数据库的数据,数据可能是空的等。我们的程序在跑着,内存或硬盘可能满了等等…软件程序在运行过程中,非常可能遇到上面提到的这些异常问题,我们叫异常,英文是:Exception,意思是例外。这些例外情况,或者叫异常,怎么让我们写的程序作出合理处理。而不至于程序崩溃。异常指程序运行中出现的不期而至的各种情况,如:文件原创 2022-03-06 01:05:58 · 297 阅读 · 0 评论 -
32 面向对象编程 内部类 1、成员内部类 2、静态内部类 3、局部内部类 4、匿名内部类 代码
内部类概念内部类就是在一个类的内部在定义一个类,比如,A类中定义一个B类,那么B类相对A类来说就称为内部类,而A类相对B类来说就是外部类了。1、成员内部类2、静态内部类3、局部内部类4、匿名内部类代码// main:内部类{ // 没有名字初始化,不用将实例保存到变量中 new Apple().eat(); Outer outer = new Outer(); // 通过外部类去new实例化内部类 outer.Inn原创 2022-03-06 01:04:32 · 107 阅读 · 0 评论 -
31 面向对象编程 接口 普通类:只有具体实现 声明类的关键字是class,声明接口关键字是interface 接口的作用
接口概念普通类:只有具体实现抽象类:具体实现和规范(抽象方法)都有!接口:只有规范!自己无法写方法!专业的约束!约束和实现分离:面向接口编程~接口就是规范,定义的是一组规则,体现了现实世界中“如果你是…则必须能…”的思想。如果你是天使,则必须能飞。如果你是骑车,则必须能跑。接口的本质是契约,就像外面人间的法律一样。制定好后大家都遵守。OO的精髓,是对对象的抽象,最能体现这一点就是接口。为什么外面讨论设计模式都只针对具备了抽象能力的语言(比如C++、Java、原创 2022-03-06 01:03:44 · 334 阅读 · 0 评论 -
30 面向对象编程 抽象类 abstract 修饰符可以用来修饰方法也可以修饰类
抽象类概念abstract 修饰符可以用来修饰方法也可以修饰类,如果修饰方法,那么该方法就是抽象方法;如果修饰类,那么该类就是抽象类。抽象类中可以没有抽象方法,但是有抽象方法的类一定要声明为抽象类。抽象类,不能使用new关键字来创建对象,它是用来让子类继承的。抽象方法,只有方法的声明,没有方法的实现,它是用来让子类实现的。子类继承抽象类,那么就必须要实现抽象类没有实现的抽象方法 ,否则该子类也要声明为抽象类。代码// abstract 抽象类: 类 exten原创 2022-03-06 01:03:00 · 268 阅读 · 0 评论 -
29 面向对象编程 static 关键字
补充:static代码// staticpublic class Student{ private static int age; // 静态的变量 多线程 private double score; // 非静态的比那辆 public void run(){ } public static void go(){ } // main 方法 {原创 2022-03-06 01:02:05 · 131 阅读 · 0 评论 -
28 面向对象编程 instanceof 代码 小结 父类引用指向子类对象
instanceof代码// main// Object > Person >StudentObject object = new Student();// 提取公式:XY之间是否存在父子关系// System.out.println(X instanceof Y);// 能不能编译通过!System.out.println(object instanceof Student);// trueSystem.out.println(object instanceof Perso原创 2022-03-06 01:00:36 · 207 阅读 · 0 评论 -
27 面向对象编程 多态 代码 多态注意事项 有些方法不能重写
多态概念动态编译:类型:可扩展性即同一方法可以根据发送对象的不同而采用多钟不同的行为方式。一个对象的实际类型是确定的,但可以指向对象的引用类型有多很多多态存在的条件有继承关系子类重写父类方法父类引用指向子类对象注意:多态是方法的多态,属性没有多态性。instanceof代码// main// 一个对象的实际类型是确定的new Student();new Person();// 可以指向的引用类型就不确定了Stuent s1 = new Stu原创 2022-03-06 00:59:49 · 170 阅读 · 0 评论 -
26 面向对象编程 方法的重写 代码 重写总结
方法的重写代码// main类 is 人 :派生类,子类// 静态的方法和非静态的方法区别很大! //静态方法: 方法的调用只和左边,定义的数据类型有关// 非静态:重写public static void main(String[] args){ A a = new A(); a.test(); // A // 父类的引用指向了子类 B b = new A(); b.test(); // B}// 继承public cl原创 2022-03-03 11:37:35 · 240 阅读 · 0 评论 -
25 面向对象编程 继承概念 代码 快捷键 super注意点
继承概念继承的本质是对某一批的抽象,从而实现对现实世界更美好的建模。extends的意思的“扩展”。子类是父类的扩展。JAVA中类只有单继承,没有多继承!理解:一个儿子只能有一个爸爸,但是一个爸爸可以有多个儿子!继承是类和类之间的一种关系。除此之外,类和类之间的关系还有依赖、组合、聚合等。继承关系的两个类,一个为子类(派生类),一个为父类(基类)。子类继承父类,使用关键词extends来表示。子类和父类之间,从意义上讲应该具有“is a”的关系。object类原创 2022-03-03 11:36:51 · 96 阅读 · 0 评论 -
24 面向对象编程 面向对象三大特征 封装概念 代码 封住的意义
面向对象三大特征*封装概念该露的露,该藏的藏我们程序设计要求**”高内聚,低耦合“**。高内聚就是类的内部数据操作细节自己完成,不允许外部干涉。低耦合:仅暴露少量的方法给外部使用。封装(数据的隐藏)通常,应禁止直接访问一个对象中数据的实际表示,而应通过操作接口来访问,这成为信息隐藏。记住这句话:属性私有,get/set代码// mainStudent s1 = new Student();//s1.name = "";// private 的属性没办法操作s1原创 2022-03-03 11:34:54 · 68 阅读 · 0 评论 -
23 面向对象编程 对象的内存分析 小结
对象的内存分析概念代码// mainPet dog = new Pet();dog.name = "旺财";dog.age = 1;dog.shout();// 定义一个宠物public calss pet{ public String name; public int age; // 无参构造 public void shout(){ System.out.println("叫了一声"); }}原创 2022-03-03 11:34:05 · 105 阅读 · 0 评论 -
22 面向对象编程 对象的创建分析 类与对象的关系 创建与初始化对象
对象的创建分析类与对象的关系类是一种抽象的数据类型,它是对某一些事物整体描述/定义,但是并不能代表某一个具体的事务动物、植物、手机、电脑…Person类、Pet类、Car类等,这些类都是用来描述/定义某一类具体的事物应该具备的特点和行为对象是抽象概念的具体实例张三就是人的一个具体实例,张三家里的旺财就是狗的一个具体实例。能够体现出特点,展现出功能的是具体的实例,而不是一个抽象的概念。创建与初始化对象概念使用new关键字创建对象使用new关键字创建的时候,除了分配内原创 2022-03-03 11:32:05 · 98 阅读 · 0 评论 -
21 面向对象编程 方法回顾和加深 代码:方法的定义 代码:方法的调用
方法回顾和加深概念方法的定义修饰符返回类型break(跳出switch,结束循环) 和 return (方法结束)的区别方法名:注意规范(驼峰命名规则),见名知意参数列表:(参数类型,参数名) …异常抛出方法的调用:递归静态方法非静态方法形参和实参值专递和引用传递this关键字:当前这个类,当前这个对象代码:方法的定义/* 修饰符 返回值类型 方法名(...){ // 方法体 return 返回值; }*/// return 结束方法,返回一个原创 2022-03-03 11:30:25 · 144 阅读 · 0 评论 -
20 面向对象编程 面向过程 &面向对象 什么是面向对象
面向对象编程Java的核心思想就是OOP(Object-Oriented Programming)初识面向对象面向过程 &面向对象面向过程思想步骤清晰简单,第一步做什么,第二步做什么…面向过程适合处理一些较为简单的问题面向对象思想物以类聚,分类的思维模式,思考问题首先会解决问题需要那些分类,然后对这些分类进行单独思考。最后,才对某个分类下的细节进行面向过程的思索。面向对象适合处理复杂的问题,适合处理需要多人协作的问题!对于复杂的事物,为了从宏观上把握、从整体上原创 2022-02-25 23:15:27 · 87 阅读 · 0 评论 -
19 数组 稀疏数组 稀疏数组介绍 代码
稀疏数组概念稀疏数组的是一个数据结构需求:编写五子棋游戏中,有存盘退出和续上盘的功能。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-b8j5DwEr-1645802026222)(E:\aChihiro\MD文件夹\开发区\存档文档\image-20220225184142453.png)]分析问题:因为该二维数组的很多值是默认值0,因此记录了很多没有意义的数据。解决:稀缺数组稀疏数组介绍当一个数组中大部分元素为0,或则为同一值的数组时,可以使用原创 2022-02-25 23:14:13 · 200 阅读 · 0 评论 -
18 数组 冒泡排序
冒泡排序概念冒泡排序无疑是最为出名的排序算法之一,总共有八大排序!冒泡的代码还是相当简单的,两层循环,外层冒泡轮数,里层依次比较,江湖中人尽皆知。我们看到嵌套循环,应该立马就可以得出这个算法的时间复杂度为O(n2).思考:如何优化?代码// 冒泡排序// 1、比较数组中,两个相邻的元素,如果第一个数比第二数大,我就就交换他们的位置// 2、每一次比较,都会产生出一个最大,或则最小的数字;// 3、下一轮则可以少一次排序// 4、依次循环,直到结束!public原创 2022-02-25 23:13:30 · 120 阅读 · 0 评论 -
17 数组 Arrays类
Arrays类概念数组的工具类java.util.Arrays由于数组对象本身并没有什么方法可以供我们调用,但API中提供了一个工具类Arrays供我们使用,从而可以对数据对象进行一些基本的操作。查看JDK帮助文档Arrays类中的方法都是static修饰的静态方法,在使用的时候可以直接使用类型进行调用,而”不用“使用对象来调用(注意是不用,而不是不能)具有一下常用功能给数组赋值:通过fill方法。对数组排序:通过sort方法,按升序。比较数组:通过 equals 方原创 2022-02-25 23:12:10 · 217 阅读 · 0 评论 -
16 数组 多维数组 实例
多维数组概念多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一维数组,其没一个元素都是一个一维数组。二维数组int a[][] = new int[2][5];解析:以上二维数组 a 可以看成一个两行五列的数组。思考:多为数组的使用?num[1][0];实例// 定义/* 定义了一个[3行][2列]的数组 1,2 array[0] 3,4 array[1] 5,6 array[2]*/int[][] array = {{1,2},{3,4原创 2022-02-25 23:11:17 · 212 阅读 · 0 评论 -
15 数组使用
数组使用For-Each 循环// 实例:普通for循环int[] arrays = {1,2,3,4,5,6};// 打印全部的数组元素for(int i =0;i < arrays.length;i++){ System.out.println(arrays[i]);}// 计算所有元素的和int sum = 0;for(int i = 0;i < arrays.length;i++){ sum += arrays[i];}System.out.原创 2022-02-25 23:10:25 · 81 阅读 · 0 评论 -
14 数组 数组的四个基本特点 数组边界
数组的四个基本特点其长度是确定的。数组一旦被创建,它的大小就是不可以改变的。其元素必须是相同类型,不允许出现混合类型。数组中的元素可以是任何数据类型,包含基本类型和引用类型。数组变量属引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。数组本身就是对象,Java中对象是在堆中的,因此数组无论保存原始类型还是其他对象类型,数组对象本身是在堆中的。数组边界下边的合法区间:[0,length-1],如果越界就会报错;public static void main(Stri原创 2022-02-25 23:09:50 · 200 阅读 · 0 评论 -
13 数组 Java内存分析 三种初始化
Java内存分析三种初始化静态初始化//静态初始化 创建+赋值int[] a = {1,2,3};Man[] mans = {new Man(1,1),new Man(2,2)};动态初始化//动态初始化 包含默认初始化int[] a = new int[2];a[0] = 1;a[1] = 2;数组的默认初始化数组是引用类型,它的元素相当于类的实例变量,因此数组一经分配空间,其中的每个元素也被按照实例变量同样的方式被隐式初始化。...原创 2022-02-25 23:08:46 · 146 阅读 · 0 评论 -
12 数组 数组概述 数组声明创建
数组概述数组的定义:一个类型的所有数据的集合数组是相同类型数据的有序集合。数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。其中,没一个数据称作一个数据元素,每个数组元素可以通过一个下标来访问它们。数组声明创建首先必须声明数组变量,才能在程序中使用数组。下面声明数组变量的语法:dataType[] arrayRefVar; // 首先的方法或dataType arrayRefVar[]; // 效果相同,但不是首选方法Java语言使用new操作符来创建数原创 2022-02-25 22:54:49 · 498 阅读 · 0 评论 -
【11】 Java方法递归
递归、递归应用到的场景、斐波那契数列、文件系统遍历、二叉树操作、图算法、回溯算法原创 2022-02-25 22:53:08 · 131 阅读 · 0 评论 -
【10】 Java方法可变参数
可变参数、可变参数的找出最大值案例原创 2022-02-08 22:01:38 · 368 阅读 · 0 评论 -
【09】 Java方法的重载 命令行传参
方法的重载、命令行传参原创 2022-02-08 22:01:16 · 89 阅读 · 0 评论 -
【08】 Java方法的定义 方法调用 什么是值传递和引用传递
方法的定义、形参、实参、方法调用、值传递、引用传递原创 2022-02-08 22:01:00 · 152 阅读 · 0 评论 -
【07】Java的方法 方法命名规范
Java的方法、方法的命名规范原创 2022-02-08 22:00:42 · 256 阅读 · 0 评论 -
【06】 for循环 增强for循环
for循环、增强for循环、退出循环、break、continue原创 2022-02-08 22:00:19 · 376 阅读 · 0 评论 -
【05】Java 运算符
对应的代码实例、算术运算符、关系运算符、逻辑运算符、赋值运算符、位运算符、条件运算符(三元运算符)、自增和自减运算符、位运算过程原创 2022-02-08 21:57:54 · 112 阅读 · 0 评论 -
【04】变量 变量作用域 变量的命名规范 常量final
变量、变量是什么、变量作用域、局部变量的作用域、成员变量的作用域、类变量(静态变量)、变量的默认值、变量的命名规范、常量final原创 2022-02-08 21:47:46 · 245 阅读 · 0 评论 -
【03】Java的数据类型 基本类型 引用类型 类型转换
数据类型、基本数据类型、引用数据类型、扩展知识、整数、浮点数、常用的方法比较浮点数、字符、转义字符、布尔值、类型转换、强制类型转换、自动类型转换原创 2022-02-08 21:46:20 · 168 阅读 · 0 评论 -
【02】卸载JDK 安装JDK Java程序运行机制
JDK、JRE、JVM、卸载JDK、安装JDK 、Java程序运行机制原创 2022-02-08 21:43:34 · 139 阅读 · 0 评论