Java
文章平均质量分 54
数据Java
学无止境,不断学习,不断探索,慢慢成长!
展开
-
在idea中设置文档注释的方法(图文版)
文档注释的自动录入!!!原创 2022-07-11 15:51:41 · 10167 阅读 · 2 评论 -
JDBC基础+使用Java代码操作数据库
JDBC其实就是用Java语言来操作关系型数据库的一套API。全称(Java DataBase Connectivity)Java数据库连接。原创 2022-06-06 00:47:16 · 547 阅读 · 0 评论 -
maven下载及安装教程(保姆及教程)
一、前期准备工作1.电脑上的jdk必须是1.7及以上的版本;2.电脑版本为Windows10系统;3.下载安装包。下载地址:点击进入下载二、下载解压安装包下载之后解压在想要安装的路径下,然后配置环境。maven环境配置控制面板----系统----关于-----高级系统设置----环境变量—系统变量— 新建变量名:MAVEN_HOME变量值:E:\apache-maven\apache-maven-3.8.4path变量:%MAVEN_HOME%\bin查看maven是否安装成功原创 2022-03-05 19:52:20 · 1967 阅读 · 4 评论 -
编写日历(自己编写日历详解)
日历的编写1.键盘信息录入查看需要知道的年份的日期。Scanner scanner = new Scanner(System.in);System.out.print("请输入你想要查看的日期(输入格式:2022-2-12):");String i = scanner.next();System.out.println(i);2.将String类型转化为日期类型:java.sql.Date d = java.sql.Date.valueOf("2022-2-1");2.1:将Date类原创 2022-01-24 22:11:01 · 1912 阅读 · 0 评论 -
Calendar(日历)类
Calendar(日历)类Calendar这个类是非常强大的,有关日期的方法都可以进行处理。操作日期通常情况下操作到年月日—时分秒,Date这个方法就已经可以了,所以在开发中Calendar就用到的相对较少。创建Calendar对象:日历的常用属性读取:源码+注释:import java.util.Calendar;import java.util.GregorianCalendar;public class DateTest03 { public static void原创 2022-01-24 15:58:37 · 670 阅读 · 0 评论 -
DateFormat日期格式化
DateFormat日期格式化将字符串转换成java.util.DateString–>java.util.Date步骤://1.String--->java.util.Date//String--->java.sql.Datejava.sql.Date d1 = java.sql.Date.valueof("2020-3-15");//2.java.sql.Date---->java.util.Datejava.util.Date d2 = d1;System.ou原创 2022-01-17 22:50:15 · 1256 阅读 · 0 评论 -
时间相关的处理类
时间相关的处理类Date(日期)创建一个日期对象:在创建对象出错的时候,可能原因是什么:如果是抽象类,不能创建对象;如果是接口,不能够创建对象;如果没有空构造器,不能够创建对象;如果有构造器,但是构造器被private修饰,不能创建对象;有可能没有进行导包。...原创 2022-01-16 20:58:21 · 213 阅读 · 0 评论 -
StringBuilder原理分析(图文解析+代码源码注释)
文章目录StringBuilder原理分析StringBuilder原理分析原创 2022-01-06 21:02:39 · 991 阅读 · 4 评论 -
String类图文详解
String类属于Java的lang包下,所以不需要导包;字符串是由字符组成;类被final修饰,不能够被继承;内部比较器接口可以肯定的是内部重写了compareTo。String原创 2021-12-28 21:20:20 · 552 阅读 · 13 评论 -
重载重写的比较(代码+注释)图文
重载重写的比较重写(override):当子类对父类的方法不满意的时候,要对父类的方法进行重写;重写的注意点:子类方法的名字,和形参列表(顺序、类型、个数)必须与父类保持一致。重载(overload):同一个类中;方法名必须相同;形参列表必须不同(顺序、类型、个数)修饰符:无关重载与重写的区别:位置不同修饰符返回值方法名参数抛出异常方法体重载同一个类中无关无关相同不同无关不同重写子类和父类间大于等于小于等于相同相同原创 2021-12-23 17:06:02 · 385 阅读 · 0 评论 -
标识符+关键字的简单介绍
标识符方法和变量的名字统称为标识符。标识符也是需要有一定的语法规则,如下所示:标识符必须以字母(A-Z或a-z),下划线(_)和"$"符号开头;后跟任意数目的字母、数字(0-9)下划线(_)和$符号的组合;标识符不能和Java关键字相同;标识符区分大小写;标识符没有长度限制。除了标识符的语法规则外,类、变量和方法名需要遵循一定的编程规范。规范如下所示:类名和接口名应该以大写字母开头,使用驼峰命名法,也就是组成词的每个单词的首字母需要大写;变量和方法名首字母小写,其余单词的首字母大写;原创 2021-12-09 18:53:53 · 127 阅读 · 0 评论 -
Java语言的相关介绍
Java语言的特性Java语言是简单的;面向对象的;分布式的;健壮的;安全的;体系结构是中立的;可移植的;解释型的;高性能的;多线程的;动态的。jdk的介绍jdk:开发Java程序所需的最小环境。JDK与JRE的区别:JRE:英文表示(Java Runtime Environment),是Java程序的运行环境。JDK:是面向开发人员使用的SDK,它提供了Java的开发环境和运行环境。SDK是Software Development Kit,一般指的是软件开发包,包括函数原创 2021-12-08 20:20:27 · 193 阅读 · 0 评论 -
利用多线程同步进行图片下载
利用多线程进行图片下载第一步:首先需要创建一个项目包,在百度中下载commons-io-2.6.jar包,下载之后直接复制粘贴在创建的项目包当中:如下图所示:第二步,直接选中该包名,鼠标右键,找到Add as Library并双击,将它加入到库里面。这样我们就可以看到刚刚复制过来的jar包就可以看到下面的内容了。如下图所示:在复制进去的时候是没有这个角标的。还可以在项目资源目录中进行查看,如下图所示:此时我们就可以看见lib目录了。现在进行代码实现,在代码中主要分成两大部分来进行:原创 2021-12-06 22:00:04 · 364 阅读 · 0 评论 -
查看MySQL服务+MySQL服务的开启与停止+MySQL的登录
查看MySQL服务第一步:找到“控制面板”,在控制面板中双击”系统和安全“。找到该服务的时候,我们可以选中该服务然后右键,可以启动该服务,也可以停止该服务,如果双击该服务还可以看到该服务的属性,也就是启动类型之类的操作都会在属性当中。只有数据库服务启动了才可以使用!!!MySQL服务的开启与停止在Windows中,使用命令来启动MySQL服务与关闭MySQL服务。语法:开启:net start 服务名称;关闭:net stop 服务名称;MySQL的登录...原创 2021-12-06 19:43:11 · 1265 阅读 · 0 评论 -
Java多线程+线程的创建(图示+代码注释)
什么是Java多线程多线程:其实就是一个程序或者说是一个进程,在运行时产生的不止一个叫进程。多线程在我们生活中是常见的,比如说在和朋友聊天、打游戏等都能够看到对方,这其实就是多线程的一个实现。在了解多线程我们需要了解到的几个知识点:多任务:就是在做某一件事时,还做了其他的事。 比如在骑车时听着音乐、在吃饭时看着手机等这些都是多任务的一个场景。这些多任务虽然在执行着两件或两件以上的问题,但是实质上却只在做一件事,比如在骑车时听音乐,我们在掌控车的方向时,实际上是没有在听音乐的;在吃饭时,我们吃饭的瞬间原创 2021-12-05 22:00:12 · 590 阅读 · 0 评论 -
外部比较器---排序
外部比较器外部比较器可以说是内部比较器的加强版,它在封装类的外面可以定义多个类来对不同的功能进行实现,如果说是内部比较器的话,那么会比较复杂,原创 2021-12-04 23:13:42 · 488 阅读 · 0 评论 -
内部比较器---排序(代码+图示注释)
内部比较器在内部比较器中,我们可以根据对名字、身高、年龄等进行排序。比如说两个名字进行排序,a和b,那么排序后就会是a在前b在后。一张图了解背后的秘密:在上面这张图当中,我们更多的是去关注该值是大于0还是小于0,或者说是等于0。根据不同的情况来说明该值的一个情况。首先需要定义一个排序的方法,需要对相应的值进行排序,由于需要排序的值会是很多种类型,所以需要定义一个排序在很多情况下仍然可以使用的排序。在上面的排序方法当中,我们可以在方法内部加上一个判断,如果说满足该条件就会执行里面的语句,如果说不原创 2021-12-04 21:47:49 · 403 阅读 · 0 评论 -
数组的基本排序方法调用+封装引用类型数组定义及使用(图示+代码实现)
数组的基本排序方法调用首先定义一个排序的方法,在方法中写入排序代码。如下图所示:在主方法中进行调用:代码+注释:这是定义好的排序程序:public class ArraysUntil { //定义一个排序方法,需要用到的时候直接在其他主方法直接调用即可 public static void sort(int[] arr){//定义一个排序方法 for (int i = 1; i <= arr.length-1; i++) {//对数组进行遍历,定义数组比较的两个元素 for原创 2021-12-04 13:17:22 · 926 阅读 · 0 评论 -
数组排序之堆排序(图文解说+代码实现+代码注释)
堆排序是利用堆这样的数据结构而设计的一种排序算法,堆排序是一种选择排序。涉及知识点也是相对较多,思路简单,程序设计会比较难的一个排序算法。原创 2021-12-03 22:20:26 · 833 阅读 · 0 评论 -
数组排序之基数排序(图文+代码注释)
基数排序对关键字进行“分配”与“收集”两种操作即可完成。基数排序原理(图文解说):{15,12,23,32,29,25,18,17,21,22}首先,将数组中的元素个位与方框中的数字对应,将数组元素依次的根据个位放在方框中,然后再依次取出,如下图示一与图示二。**第一轮是取个位上的数字。**图示一:现在进行第二步,依次将方框中的数依次取出。如图十二所示:第二轮是看十位上,十位上是哪一个数我们就将这个数放在相应的方框中,如果十位上没有数,那么就放在0方框中。如下图所示:首先我们先拿到刚刚初步原创 2021-12-02 14:22:54 · 490 阅读 · 0 评论 -
数组排序之归并排序(图文+代码注释)
归并排序(Merge sort)利用归并的思想进行排序的方法进行排序。程序思路:假设初始值有N个记录,则可以看成是N个有序的子序列,每个子序列的长度为1,然后两两归并,得到N/2个长度为2或1的子序列,再进行两两归并。一直不断的重复,直到得到一个长度为N的有序序列为止,这样的排序算法,称之为2路归并排序。利用数组元素进行理解(如下图示):元素:{28,15,22,26,16,29,21,18}代码图示+注释:代码+注释展示: //归并排序 public static vo原创 2021-11-30 21:58:50 · 738 阅读 · 0 评论 -
数组排序之快速排序(快排)---代码图文注释
快速排序快速排序就是从数组中取出一个元素,作为基数,原创 2021-11-30 13:09:59 · 2281 阅读 · 0 评论 -
数组排序之希尔排序+ kunth序列(克努特序列)---(文字解说+代码图示+代码实现+代码注释)
希尔排序希尔排序:希尔排序又称缩小增量排序。排序思想:先将原表按增量h分组,每个子文件按照直接插入法排序。同理,再用下一个增量h/2将文件再分为子文件,再直接插入法排序。直到h=1时整个文件排序完成。注意:选择一个合适的增量。思路解析图示:...原创 2021-11-28 21:33:31 · 975 阅读 · 1 评论 -
数组排序是直接插入排序(代码注释)图示版
直接插入排序插入排序是最简单的一种排序方法,排序思路也很简单。算法思路:将每一个数据插入到现有的有序表中,保持数据元素的有序。举例:int[] arr = {12,23,14,8,15,25};{12};{12,23};{12,14,23};{8,12,14,23};{8,12,14,15,23};{8,12,14,15,23,25};这就是插入排序的思想,最后将一组无序的元素进行排列。代码展示图示:方法一:源码与注释展示://插入排序 public static void原创 2021-11-27 22:05:19 · 453 阅读 · 0 评论 -
数组排序之选择排序详解+代码注释
选择排序排序原理:数组元素中从下标为0的元素依次与后面的元素进行比较,比较一轮之后,最小的元素将出现在第一个,也就是下标为0的元素。选择排序原理图示:选择排序代码图示:基础版:代码源码展示://选择排序 public static void main(String[] args) { int[] arr= {23,15,29,18,14,19,22}; int index = 0; //第一轮排序 for (int i = 1; i < arr.length; i原创 2021-11-27 20:31:41 · 907 阅读 · 0 评论 -
数组的排序之冒泡排序
数组常见的排序排序:将一组无序的数据进行某种方式变成一个有序的序列。冒泡排序选择排序插入排序希尔排序快速排序归并排序基数排序堆排序冒泡排序数组元素进行两两比较,从第一个到最后一个,得到最大的元素有序的往后放,最大值就会在最大索引处。第一轮排序,将最大值排在数组元素的最后:正如上图所示,每一轮都将在for循环中减1。全图如下:源码://冒泡排序详解 public static void main(String[] args) {// 排序:就是将一组数据有序的排列原创 2021-11-27 18:33:05 · 1194 阅读 · 0 评论 -
二维数组练习+数组索引查询数组中的某个元素(遍历查找元素+二分法查找元素详解) --- 代码注释
文章目录二维数组练习数组索引查询数组中的某个元素二维数组练习案例1:求出公司一年四个季度的销售额总额,并将每一个极度的总额单独输出,再求出最后四个季度的总额。单位(百万)第一季度:12,16,25第二季度:21,26,28第三季度:20,13,15第四季度:26,35,34结果如下图所示(思想:数组遍历进行数组元素的和累加):利用数组打印输出杨辉三角:如下图所示:代码实现图示:源码展示:public static void main(String[] args) {原创 2021-11-26 22:44:54 · 528 阅读 · 0 评论 -
数组常见的基础操作图示+main方法详解
数组常见的基础操作遍历数组:查看数组元素的个数:倒序遍历数组:输出数组元素当中的最大值:原创 2021-11-25 22:18:10 · 760 阅读 · 0 评论 -
Eclipse的基础使用(图示版)
Eclipse的基础使用一、调节版面的代码字体的大小第一步:第二步:第三步:第四步:根据需求调到合适即可二、修改编码格式一般情况下默认都是GBK编码格式,但是在实际当中,我们更多的需要UTF-8编码格式。修改编码格式:第一步:第二步:我们看到图中的默认编码格式,现在我们更改为自定义编码格式。第三步:三、设置设定的JDK版本第一步:第二步:第三步:下图当中是我们一个配置好的jdk,如果说jdk不是设定的那个版本,我们可以通过Edit来添加,找到路径点击确定即可原创 2021-11-24 21:19:32 · 361 阅读 · 0 评论 -
认识异常机制(Exception)+自定义异常
异常机制异常:就是不符合实际需求,在实际中可能不存在也可能不满足实际,所以出现的问题称之为异常。异常的三种类型:检查性异常用户错误或问题引起的异常,是程序员无法预见的。例如打开一个不存在的文件,就会发生一个检查性异常。运行时异常是可能被程序员避免的异常,与检查性异常相反,运行时异常可以在编译是被忽略。错误(ERROR)错误不是异常!错误是脱离了程序员的问题。一般不是程序员的问题。异常体系结构Java当中,万物皆对象,Java将异常当作对象来处理,定义了一个基类(父类),java.la原创 2021-11-23 21:31:12 · 591 阅读 · 0 评论 -
内部类详解
内部类内部类:就是在类的内部定义一个类。比如在A类中定义了一个B类,那么B类就称之为A类的内部类;A类就称之为B类的外部类。内部类又可以分为:成员内部类静态内部类局部内部类匿名内部类成员内部(外部)类和内部(外部)类方法的实现以及调用内部类访问外部的私有变量:静态内部类没办法访问非静态的属性。在Jana类当中只有一个public class,但是可以有多个class:局部内部类:匿名内部类的使用:匿名外部接口的使用(定义及调用):...原创 2021-11-23 14:56:36 · 188 阅读 · 0 评论 -
接口的实现详解
接口接口就是定义的规则,规范。声明类时需要使用的关键字时class,声明接口的关键字时interface;接口本身就是抽象的,需要一个实现类去实现接口中定义的内容。接口当中不能定义方法:接口本身就是抽象的 所在我们在抽象类中定义方法的时候,可以发现提示不用写也是一样的:在接口中的内容,需要一个实现类去实现接口当中的内容(接口实现类命名一般都是Impl结尾,编程习惯):implements表示实现的意思,接口实现类的关键字。必须要重写接口中的所有方法,否则就会报错:我们可以看到接口实现类原创 2021-11-22 22:34:28 · 7272 阅读 · 0 评论 -
抽象类详解
抽象类(abstract)通过abstract来修饰的类,我们称之为抽象类。抽象类中用abstract来修饰的方法,称为抽象方法。在这个方法中,只有方法的名字,没有方法的实现。当子类继承抽象类时,需要重写父类的方法,否则会提示错误信息:父类:子类:如果不想想要方法进行重写,那么可以将子类也定义为抽象方法:抽象类是不能够去new的,只能靠子类去实现,这其实就是一种约束!!!抽象类中可以写普通方法,但是抽象方法只能在抽象类中!!!...原创 2021-11-22 21:26:32 · 317 阅读 · 0 评论 -
Static+final关键字知识扩展详解
文章目录Static详解final关键字Static详解static在类中使用修饰的就是成员变量;在方法中就是修饰成员方法。在方法中就是静态方法,在属性当中时就是静态属性。它们之间的相互区别:类变量输出示例:静态属性与非静态属性的定义:从上图中可以看出,静态属性不能使用类变量来调用。静态的属性可以使用静态方法来调用。静态变量可以在类中去共享!静态方法与非静态方法的定义:上图中我们可以看到静态与非静态方法的定义以及调用,但是非静态方法我们直接调用是没办法调用的,所以需要new对象才能够调用,原创 2021-11-22 20:28:49 · 347 阅读 · 0 评论 -
面向对象三大特性之多态详解
面向对象三大特性之一多态多态的条件:存在继承关系;子类重写父类的方法;父类引用指向子类对象。多态指的是方法的多态,而不是属性,属性没有多态。多态:通过父类去new子类,这样的形势就是多态;多态:一种形式多种状态还有我们的Object也可以new,因为Object是所有类的父类,也就是说所有类都在Object当中!父类的引用指向子类对象能够执行那些方法,主要看对象左边有什么,和右边没有关系,如下图所示:子类重写了父类的方法,执行子类的方法; 如下图所示:方法重写时,父类原创 2021-11-21 23:16:02 · 676 阅读 · 0 评论 -
方法的重写(学习多态之前一定要掌握的基础)
多态原创 2021-11-21 19:06:15 · 623 阅读 · 0 评论 -
面向对象三大特性之继承+修饰符详解
继承继承,顾名思义。继承类与类之间得关系。继承关系得两个类,一个为父类,就是基类;另一个为子类,称之为派生类。子类继承父类,使用关键字extends来表示。extends表示的是”扩展“,子类是父类的扩展。下面我们就看一下父类与子类之间的关系:主程序:主方法中调用或是对象实例化的地方父类(基类):子类(派生类):子类(派生类):下面我们就简单的看一下继承的关系,用一个简单的方式呈现出来:主程序:我们在里面直接调用了学生类。父类:我们在父类里面输出了一句话。子类:我们发现子类里原创 2021-11-21 15:45:41 · 433 阅读 · 0 评论 -
面向对象三大特性之封装
封装面向对象三大特性:封装继承多态封装:属性私有(private),在一般情况下,禁止直接访问对象中的数据,需要用到接口来访问。上面的private其实与public是同一级别的,但是所表达的意思是不一样的,public表示的是公共的,但是private表示的是私有的。程序设计主要追求的是“高内聚,低耦合”。高内聚就是类的内部数据作细节自己完成,不需要外部干涉;低耦合就是给少量的方法供外部使用。就好像一部手机,内部零件我们都看不到,但是提供了充电和耳机的接口给到我们使用,道理是一样的。在原创 2021-11-20 21:53:32 · 323 阅读 · 0 评论 -
面向对象编程详解
面向对象编程(oop)原创 2021-11-20 19:51:52 · 1045 阅读 · 0 评论 -
稀疏数组解析(分为板块详细解析)
稀疏数组在这个版块中,稍微有些复杂,我们可以进行板块化的进行剖析。这个内容主要分为七个板块,在七个板块中详细的说明了每一步的情况,在代码中给到了最详尽的注释!!!**第一板块:**创建一个二维数组对象,给二维数组元素进行相应的赋值,然后使用for-each遍历出数组中的每一个元素,如下图所示:运行结果如下:**第二板块:**将定义好的数组转换为稀疏数组,遍历数组后,将数组中的有效值进行输出,图示如下:首先使用for循环进行遍历数组对象,在for循环内部加上一个判断,如果遍历除数组元素不为0原创 2021-11-16 21:43:06 · 210 阅读 · 0 评论