- 博客(18)
- 收藏
- 关注
原创 数据结构----单链表的增删改查
首先建立一个节点对象代码实现如下:/定义HeroNode结点,每个HeroNode对象就是一个结点class HeroNode { public int no;//编号 public String name;//姓名 public String nickname;//昵称 public HeroNode next; //指向下一节点 //创建构造器 public HeroNode(int no, String name, String nickname
2021-03-12 22:52:18 377
原创 数据结构----数组实现队列和环形队列
队列1.应用场景银行排队等2.关于队列1)队列是一个有序列表,可以用数组或单链表实现2)队列遵循先进先出的原则,即:先存入进队列的数据先取出,后存入的后取出3)示意图:3.单队列实现思路1)队列本身是有序列表,若使用数组的结构来存储队列的数据,则队列数组的声明如下图, 其中maxSize 是该队列的最大容量。2)因为队列的输出、输入是分别从前后端来处理,因此需要两个变量front 及rear 分别记录队列前后端的下标,front 会随着数据输出而改变,而rear 则是随着数据输入而改变
2021-03-12 10:32:41 226
原创 数据结构----二维数组与稀疏数组
1.基本概念当一个数组中大部分数据是0或者同一个值的数组时,可以使用稀疏数组来保存该二维数组2.处理方法1)记录数组一个有多少行多少列,和多少个不同的值2)将不同值的行和列以及该值本身记录在一个小规模数组中,以达到缩小数组规模的目的3.举例说明4.实现思路1.二维数组转稀疏数组首先遍历二维数组得到有效数据的个数sum2)根据sum创建稀疏数组sparseArray[sum+1][3];将二维数组中的有效数据插入到稀疏数组中2.稀疏数组转二维数组1)首先读取稀疏数组第一行得到行数
2021-03-12 10:32:09 207
原创 算法学习----两个有序链表合并为新的有序链表
将两个有序链表合并,合并后的链表仍为有序链表思路分析:1)首先定义一个新的链表,并且将其初始化,再定义一个辅助节点cur,该节点指向新的链表的头节点mergeHead2)循环遍历两个链表h1,h2,每次遍历时各取出一个节点,将一个节点的data域与另一个的节点的data域相比较,看那个较小。将较小的节点赋给cur的next域3)再将较小的节点后移,并且将cur节点也后移一个位置4)当h1或者h2其中一个为空的时候跳出循环,如果h1不为空则将h1赋给cur.next,否则将h2赋给cur.next
2021-03-12 10:31:24 1510
原创 Java学习——反射机制
1.Class类对象实例化调用Object类中的getClass()方法,但是如果要使用此类操作则必须要有实例化对象。使用“类.class”取得,此时可以不需要通过指定类的实例对象取得。调用Class类提供的方法:publics static Class<?> forName(String className) throws ClassNotFoundException。package Reflect;import java.util.Date;public cl
2020-12-13 20:09:28 129
原创 框架学习——mybatis逆向工程(自动生成代码利器)
mybatis逆向工程的创建方法:1.首先先建数据库表2.去maven的中心仓库下载依赖 <!-- 这是地址:https://mvnrepository.com/artifact/org.mybatis.generator/mybatis-generator-core --> <dependency> <groupId>org.mybatis.generator</groupId> <artifactId>
2020-12-11 23:17:10 109
原创 final、finally、finalize的区别
final、finally、finalize的区别1.final表示终结器,用于定义不能被继承的父类,不能被重写的方法、常量2.finally是异常处理的出口3.finalize()是Object类定义的一个方法,用于执行对象回收前的收尾操作...
2020-12-10 19:36:41 130 1
原创 Java学习——String类和StringBuffer类以及StringBuilder类的区别
String类和StringBuffer类以及StringBuilder类的区别1.String类的内容一旦声明了则不可改变,而StringBuffer类以及StringBuilder类的内容可以随意改变。2.StringBuffer类的方法都是同步方法,属于线程安全操作;而StringBuilder中的方法都属于异步方法,属于非线程安全型操作。StringBuffer中的方法StringBuilder中的方法...
2020-12-10 19:19:43 101
原创 java学习之——线程的几种操作状态
线程的几种操作状态状态转换图如下:一般的线程都具有五种状态:创建状态:在程序中使用构造方法创建一个线程对象后,新的线程对象便处于新建状态,此时,它已经具有相应的内存空间和其他资源,但任然处于不可运行状态。新建线程的方法:Thread thread = new Thread().就绪状态:新建线程对象后,调用该线程的start()方法使线程进入就绪状态。此时,线程将进入线程队列中排队,等待CPU的调度,它已经具备了运行的条件运行状态:当就绪状态的线程被调用,且已经被分配资源,线程就进入
2020-12-09 14:36:57 194
原创 java学习之——多线程
多线程两种实现方式的区别,以及相应的验证程序1…多线程的两种实现方式都需要一个线程的主类,而这个类可以实现Runnable接口或继承Thread类,不管使用何种方式都必须在子类中重写run()方法,此方法为线程的主方法。2…Thread类是Runnable 接口的子类,而且使用Runnable接口可以避免单继承局限,并且可以更加方便地实现数据共享。代码如下:使用Thread类:package mutithread;public class testThread { public sta
2020-12-09 13:48:15 76
原创 java学习之——throw 和 throws的区别
解释throw 和 throws 的区别:throw 和 throws 都是在异常处理中使用的关键字,这两个关键字的区别如下:· throw:指的是在方法中人为的抛出一个异常类对象(这个异常类对象可能是自己实例化或者抛出已存在的)package Exception;public class TestThrow { public static void main(String[] args) { try { throw new Exception("自
2020-12-08 15:19:35 120
原创 java学习之——this 和 super
为什么this() 和 super()无法存在于同一个构造方法内。1.this 和 super 的区别this()调用属性或方法的时,会先从本类去查找是否存在指定的属性或方法,如果没有则回去父类中查找是否存在指定的属性或方法。而super()是子类直接调用父类的属性或方法,不会查找本类定义2.this 和 super 的相似之处this() 和 super() 的相似之处:当构造方法有重载时,两者均会根据所给予的参数的类型和个数,正确的执行相应的构造方法;两者均必须编写在构造方法类的第一行,也正是
2020-12-08 14:34:30 104
原创 java学习——抽象类与接口的应用
抽象类与接口的区别抽象类应用——模板设计模式接口的实际应用——标准接口的应用——工厂设计模式(Factory)接口的应用——代理设计模式(Proxy)NO.#####区别 ######抽象类接口1关键字abstract classinterface2组成构造方法、普通方法、抽象方法、static方法、常量、变量抽象方法、全局变量3子类使用class子类 extends 抽象类class 子类 implements 接口,接口,…4权限
2020-12-07 17:36:24 229
原创 java学习——面向对象之继承
面向对象之继承1.java中只允许多层继承,而不允许多重继承。//多重继承,错误,相当于一个人只能有一个亲生父亲class A{}class B{}class C extends A,B{}//多层继承,正确,相当于儿子继承父亲,孙子继承儿子一样class A{}class B extends A{}class C extends B{}2.子类继承父类的时候会继承父类的所有操作,但对于所有的私有操作属于隐式继承,而非私有操作属于显式继承3.在子类对象构造前一定会默认调用父类的构造
2020-12-07 12:40:39 143
原创 java实现链表的增删改查
java实现单链表的增删改查代码如下package LinkLIst;public class linkList { public static void main(String[] args) { Link link = new Link(); link.add("jack"); link.add("tom"); link.add("jerry"); System.out.println(link.get(1));
2020-12-06 13:47:29 407
原创 java学习--面向对象
java学习——面向对象1. 面向过程与面向对象:面向过程的操作时以程序的基本功能实现为主,开发的过程中只是针对问题本身的实现,并没有很好的模块化的设计,所以在进行代码维护的时候较为困难。而面向对象,采用的更多的是进行子模块化的设计,每一个模块都需要单独存在,并且可以被重复利用。2. 面向对象的特性:封装性——特点:1.将对象属性的变量已经实现对象的功能的方法混合在一起,定义为一个程序单位,保证外界不能随意的更改内部的属性,也不能任意调动起内部的功能方法继承性——特点:继承机制,大大的提高了代码
2020-12-05 15:31:54 133
原创 idea如何设置代码模板
idea如何设置代码模板1.进入settings2.进入Editor目录下的File and Code Templates3.进入设置页面点击减号也可以删除模板4.创建好的模板使用方式这样就可以使用了
2020-11-03 23:02:06 723
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人