- 博客(34)
- 收藏
- 关注

原创 数据结构——链式存储结构(单向链表)
关于顺序存储结构的内容,就止步于双端队列了。接下来要介绍的是链表的内容,相对用于实现顺序表的数组来说,链表的定义即实现就比较抽象和麻烦一些,而且还难!but!虽然难,“我”也不会气馁!该说还得说啊,虽然自己是个菜鸟,但是总有一天,......算了,先介绍一下链表是啥吧。先来看一条生活中常见的链子:我们发现,生活中不管金链子也好、还是银链子也好、亦或者是铁的都是由一个小小的环连在一起,然...
2019-09-17 02:24:03
1773
6

原创 八皇后问题(Java)
八皇后问题是一个以国际象棋为背景的问题:如何能够在 8×8 的国际象棋棋盘上放置八个皇后,使得任何一个皇后都无法直接吃掉其他的皇后?为了达到此目的,任两个皇后都不能处于同一条横行、纵行或斜线上。问题分析:根据题意也就是说开始放置一个皇后在棋盘上,然后再放置一个皇后要考虑当前位置是否能放置,直到所有位置都比对过后不能放置,这就是八皇后的一种情况,假设我们现在逐个查找,从第一个开始查找,第一个位置...
2019-08-01 15:14:50
1562
3

原创 递归函数(Java)
在之前讲解函数内容时提到过函数自身调用自身叫做“递归”。那么为什么要用到递归?,下面我们对递归的内容和在程序中的使用进行介绍,来说明为什么会用到递归以及何时进行递归。递归的定义及优点 递归的定义:递归做为一种算法在程序设计语言中广泛应用。 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略...
2019-07-26 16:56:17
554
原创 mybatis(二)
前面一篇做好了准备工作,现在可以介绍其基本的操作啦,再开始写代码之前,先介绍几个比较重要的配置文件: 一、mybatis-config.xml文件,这个文件中包含了会深深影响 MyBatis 行为的设置和属性信息,首先我们先来看一下他的结构:configuration(配置)properties(属性) settings(设置) typeAliases(类型别名) typ...
2020-02-08 22:20:51
210
原创 mybatis(一)初览——环境搭建
终于开始了框架的学习,之前的web知识拉下很多,我会慢慢的补起来的,这篇主要讲解的是mybatis框架,那么首先一个问题 ,什么是框架,在学习的过程的中,首先要明确自己学的是什么,才能知道怎么学,所以框架是什么? 答:框架是一个半成品,已经对基础的代码进行了封装并提供相应的API,开发者在使用框架是直接调用封装好的api可以省去很多代码编写,从而提高工作效率和开发速度。...
2020-02-05 22:08:09
207
原创 数据结构——链式存储结构(链栈、链式队列、循环链表)
链表的基础内容在上篇已经介绍完了,现在介绍链栈的内容,栈的先进后出的特点我就不再赘述了。在介绍用顺序表实现栈结构的时候,已经对栈进行了一个完整的介绍,关于用结点去实现一个栈结构在Java基础的文章中也已经介绍过了,请参照文章(https://blog.csdn.net/weixin_45432742/article/details/99850913),在这里介绍的是用上篇文章中已经实现的Lin...
2019-09-19 21:58:08
1031
3
原创 数据结构——顺序存储结构(队列)
说到队列其实很简单,第一反应肯定就是排队买奶茶。排队的一队人就可以看成是一个队列结构,先来的人排在前面先点餐然后拿到自己要的东西就先走了。走了以后,后面的人一个一个的向前移动。后来的人总是排在后面的。(杠精的不要说可能后来的点的餐会先好,然后比先来的先走。我们按常规来好吗?)队列所以队列与栈结构是反正来的,队列说:先到先得啊;而栈说:先来的没肉次,晚点来。(两个死对头打一架,看谁能赢。咳咳...
2019-09-13 01:18:33
432
原创 数据结构——顺序存储结构(栈)
在之前基础的介绍中,我有写过一篇关于栈的内容(https://blog.csdn.net/weixin_45432742/article/details/99850913),介绍了栈以链表实现的方法和以以数组实现的方法,但是实现的栈将其存储的数据类型限制了,只能存储int类型的数据。在这里,再优化一下,加入泛型,并用顺序表实现一个栈结构,并且将其扩展,变成一个双端栈结构。栈栈是限定仅在表尾...
2019-09-12 22:11:40
598
原创 数据结构——顺序存储结构(线性表)
在介绍顺序存储结构之前,我们先来看看动态数组的内容。首先Java内置数组的特点:数组的长度一旦确定则不可更改、只能存储同一类型的数据、每个存储空间大小一致且地址连续、提供角标的方式访问元素。 Java内置数组的潜在问题:容量不够(只能定义一个新的数组进行一一赋值,达到扩容的目的)、指定位置插入或删除元素带来的不便(在尾端插入方便,如果在头或者中间插入元素,则要进行元素的移动)、数...
2019-09-11 15:18:00
315
原创 数据结构与算法——初识(概念)
终于到了数据结构和算法的阶段了,前段时间被校招题虐的惨惨的,毅然决定要好好学数据结构和算法了,希望和我一起参加校招的朋友们也加油啊!数据结构在开发中是很重要的,不对应该是非常重要的,一定要好好学,如果想搞开发的话。在今后的大部分程序中,不管是一个小的系统也好,大的软件也好,都离不开我们的数据结构和算法的运用,我们完全可以说:程序=数据结构+算法。数据结构和算法是两个概念,这是单独的两门课,...
2019-09-10 15:42:30
288
原创 集合初识和用法——List(java)
List是一种有序、提供角标、一维数据列表、允许重复元素、允许null元素的集合。它是collection的一个子接口,其已知实现的子类且常用的有ArrayList、LinkedList和Vector。下面将对List的一些方法的使用和它的常用子类的方法的使用进行介绍。List的方法测试和使用示例以及说明import java.util.ArrayList;import java.ut...
2019-09-02 20:49:40
237
原创 集合初识和用法——collection(Java)
Collection接口继承了Iterable接口,能够被foreach使用,是可迭代的。下面介绍它已实现的子接口:在API中它的已知子类和实现的类有很多,目前在这里只介绍几个它常用的子接口和collection的用法。List接口有序的 collection(也称为序列)。此接口的用户可以对列表中每个元素的插入位置进行精确地控制。用户可以根据元素的整数索引(在列表中的位置)访问...
2019-09-01 17:10:55
624
原创 异常2——深化(Java)
在异常初识中只是简单的介绍了异常的体系和异常的解决方法,这篇文章将对异常的一些特殊情况进行介绍。1.自己定义一个异常类进行声明或者捕获当我们不了解异常的种类或者异常中没有我们想要的类那么可以自己定义一个异常类,但是这个异常类要根据是编译时异常还是运行时异常去继承不同的异常类,当然可以直接继承最终的异常类或是包括最大的异常类。一般而言都是运行时异常,而运行时异常要继承的类为RuntimeEx...
2019-09-01 13:27:07
232
原创 异常1——初识(Java)
在编程过程中,我们所写的代码会遇到很多问题,有些语法上的错误或是逻辑上的错误我们都是可以在编译之后或是运行之后进行更改的,然而有些错误是不知道什么时候出错,在编译过程中我们发现了也不能更改的错误。那么这个时候我们就要做相应的处理,以确保一个程序能继续运行。先来看一个例子:我们发现在打印10/0这个结果的时候,编译时并没有报错,但是运行时出现了ArithmeticException这样的...
2019-08-26 18:10:39
159
原创 内部类、object类的方法解析和基本数据的包装类(Java)
内部类当我们在描述一个事物的时候发现,该事物中有存在另一个事物,那么将后者称之为内部类,前者称之为外部类。就如在前面介绍的链栈结构,链表和结点就是这样的关系。链表是由结点组成,所以结点类是链表的内部类,而链表是结点的外部内。但是之前都是在该外部类里面对内部类进行操作的,那么如何在外部类的外面对内部类进行操作呢?下面一 一介绍:首先展示一下内部类的表现形式:class Outer{...
2019-08-23 23:56:27
205
原创 eclipse的下载、介绍和快捷键的使用
eclipse是现在大多学Java编程的人员使用的一个开发工具,在进行Java代码的开发时,首先应该安装JDK,然后用eclipse编写的代码才能在虚拟机上运行。eclipse的下载可在官网上:www.eclipse.org 新版在线安装我这里提供一个eclipse的安装包下载解压即可用:链接:https://pan.baidu.com/s/1hrk7nGF4OvUHVjmJiBfBGg...
2019-08-21 15:37:56
222
原创 设计模式——单例模式和代理模式(Java)
说到设计模式,很多人都听过什么23中设计模式,或者一些常见的模式名称,在Java中确实有23种设计模式,但是设计模式并不是随着Java的开发而产生的,它是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结,是由无数的开发者总结出来的一些代码经验,针对一些比较特殊的场合。使用设计模式的目的:为了代码可重用性、让代码更容易被他人理解、保证代码可靠性。 设计模式使代码编写真正工程化;设计模...
2019-08-20 21:57:12
602
原创 栈——链栈和数组栈(Java)
栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。栈最大的特点就是先进后出上面是栈存取数据的示意图,栈主要分为两种结构...
2019-08-20 18:40:01
389
原创 抽象类和接口(Java)
抽象类在介绍抽象类之前,我们先来看一段代码:class Animal{ int age; String name; Animal(){} //Animal的构造函数 public void eatFood(){} //每个动物都有吃的食物 public void speaking(){} //每个动物都有它叫的声音 public...
2019-08-20 15:31:44
220
原创 面向对象三大特点——封装、继承和多态
学过面向对象的我们都知道,面向对象有三大特点为——封装、继承和多态。封装之前在介绍函数时我们说一个函数就是封装的体现,封装就是将一类事物进行封装成一个类,或者封装具有独立功能的代码块,封装的好处就是明确了内外,内部的东西外部无需知道,只要创建一个类的实例对象进行调用其中的方法即可。目前我们所见的封装体现有:循环、函数、类、 private(用该关键词修饰的函数和对外界是不可被访问的,且也不...
2019-08-19 15:59:11
350
原创 静态和成员的特点(Java)
为了更加能方便的理解我们的静态函数、变量和成员函数、变量,通过两个问题来详细描述一下我们静态和成员的特点。问题一:class Demo03{ public static void main(String[] args){ A a=new A(); }}class A{ A a=new A(); }我们发现平时在创建对象时...
2019-08-14 18:00:13
684
原创 面向对象——变量和函数、Java内存分配
在面向对象中,我们会定义很多类,然后在类中去定义它的属性和行为,其属性就是变量,行为就是函数,其中有的变量是定义在类中但在函数之外的、有的变量是定义在函数中的、有的变量加上了相应的关键字如static,final等,包括类中的函数也有加上关键字的,这些差异造成了他们之间的不同,产生了不同的调用法则,这次我们来说说类中的变量、函数的不同。变量 成员变量之前在讲面向对象的基础时,我们提到...
2019-08-11 23:22:13
252
1
原创 面向对象——访问器、修改器、构造函数、对象的创建流程
在之前的代码讲解中,我们将一类事物封装成一个类,再去创建一个相应的对象去调用方法完成相应的操作这是非常方便的,但是在之前的代码我们发现,对象不仅仅能调用类中的方法,还可以访问到该类中的成员变量并进行赋值,在点坐标中只要是int类型的值我们都取值,这是因为坐标的涵盖数值是非常广的,那么如果一个类的成员变量是其他含义,那么对值的随意改变就是不合理的了,比如如果一个成员变量是为年龄(age),那么年龄的...
2019-08-09 19:04:35
1474
原创 String 类的解析
在编程过程中,我们都会用到String定义的字符串,但是String在Java定义中是一个类,被final修饰即该String类不能够被继承,但是String类继承了三个接口:Serializable接口(该String类的对象可以进行序列化(将内存中的数据移交到硬盘上的一个过程))、Comparable接口(该String类的对象可以进行大小的比较)、CharSequence接口(该String...
2019-08-06 00:00:09
209
原创 用面向对象解决问题
import java.util.Scanner;class Class21{ //主类用于运行程序 public static void main(String[] args){ Scanner scanner=new Scanner(System.in); //创建一个Scanner类的对象 System.out.print("Enter...
2019-08-05 23:57:10
510
原创 面向对象基础
学习过前面的内容之后,我们已经能够使用选择、循环、方法和数组解决很多程序设计问题。但是,这些 Java 的特性还不足够用来开发图形用户界面和大型软件系统。假设希望开发一个图形化界面,如我们现在用到的各种软件等,点击某个按钮就完成相应的动作,那么该如何完成呢?按照我们现在的水平是无法完成的,但完成一个系统或是一个软件、网页的开发,我们都离不开一个编程思想——面向对象 说到这里,我们就要引入面向...
2019-08-05 22:08:40
309
原创 二维数组
前面我们学习了一位数组,在讲解到八皇后的问题时,我们也用到了二位数组,那么什么是二维数组呢?相信大家都应该学过二维矩阵如:其实二维数组就是一个二维的矩阵,矩阵的行列对应的位置就是二维数组每个元素对应的下标位置当然,和一维数组一样,它也是存储在堆内存的,并且每个元素都会进行初始化,所以由此可以看出,二维数组额本质就是一位数组,由几个不同的一位数组组成的,只不过所存储的元素是另一个一维...
2019-08-01 16:27:26
1651
原创 LeetCode题解(Java)
题目描述:给定一个非负整数组成的非空数组,在该数的基础上加一,返回一个新的数组。最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。 你可以假设除了整数 0 之外,这个整数不会以零开头。https://leetcode-cn.com/problems/plus-one/示例1: 输入: [1,2,3] 输出: [1,2,4] 解释: 输入数组表示数字 12...
2019-07-28 12:58:29
490
原创 数组题解
思路一:边输入边判断边对数组进行扩容存储,最后输出数据:存储数字的数组nums 存储次数的数组counts步骤:1.获取一个数字2.判断该数字 2.1 如果是0 则跳出循环 2.2 如果不是 当前数字是否在nums中 在 相应counts位置++ 不在 nums扩容将数字传进去 counts扩容 1次数3...
2019-07-27 20:11:16
372
原创 一维数组
在执行程序的过程中,经常需要存储大量的数据,例如,假设需要读取 100 个数,计算它们的平均值,然后找出有多少个数大于平均值。首先,程序读入这些数并且计算它们的平均值,然后将每个数与平均值进行比较判断它是否大于平均值。为了完成这个任务,必须将全部的数据存储到变量中。必须声明 100 个变量,并且重复书写 100 次几乎完全相同的代码。这样编写程序的方式似乎是不太现实的,那么该如何解决...
2019-07-27 10:13:36
199
原创 函数
学到这里,你会发现我们写的代码都放在主函数里,现在我们所写的代码都是比较简单的,如果要写的代码很多呢,全放在主函数是不好的,在这里我们要学会分离和封装,将引入函数的介绍。 什么是函数呢?函数主要用于封装具有独立功能的一段代码,减少代码的冗余,提高代码的复用率。我们先来看一个问题:假如需要分别求出从1到 10、从 8 到 37以及从35到 49的整数和,按照以往的编写方...
2019-07-25 19:18:26
202
原创 while循环题解
//求1+2+3+...+100class Demo01{ public static void main(String[] args) { sum=0; //用于存放最后的结果 i=1; //从1开始 while(i<=100){ //i小于等于100是否为真 sum+=i; //为真,加i ...
2019-07-24 18:05:52
614
原创 for循环题解
/* 打印图形 ******** ******** ******** *********/class Demo01{ public static void main(String[] args) { //第一种写法 for(int i=1;i<=4;i++){ //外层循环控制打印的行数为4行 System.out...
2019-07-24 17:15:05
841
原创 循环语句—for/while/do...while
在介绍之前引入一个问题:为什么要写循环语句?在此我们先来看一个常见问题:为此,为了不重复输入大量的冗余代码,我们需要用到循环语句,来帮我们简化代码的结构。循环是用来控制语句块重复执行的一种结构。Java语言中有三种主要的循环结构语句,即:for循环、while循环、do…while循环,现在对其一 一介绍for循环首先是for循环的语法结构:for(1.初始化;2.循环继续的条件;4....
2019-07-24 15:19:46
703
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人