java
今日不断电
这个作者很懒,什么都没留下…
展开
-
springBoot集成RabbitMq
2 写rabbitmq配置类根据不同的模式 写法略有差异不过总的来说 都需要 交换机(有的模式默认原创 2022-04-07 16:29:16 · 1620 阅读 · 0 评论 -
Object与Json(String)对象的互相转换
import com.alibaba.fastjson.JSON;import org.assertj.core.util.Strings;public class ObjectConvertMethods { /** * * @param value 对象 * @param <T> 对象类型 * @return */ public static <T> String ObjectToString(T v.原创 2022-04-06 12:12:45 · 981 阅读 · 0 评论 -
Java 学习小记 ---- 反射
反射是通过.class文件获取一个类的信息JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制package edu.uestc.LearnningTest.Reflect;import lombok.Data;import java.lang.reflect.Field;import java.lang.reflect.Invocation原创 2022-04-05 17:14:40 · 3622 阅读 · 0 评论 -
java多线程之锁的应用
锁锁应用于java多线程中的同步机制,我们知道线程安全的问题大部分是由于多个线程并发的访问共享变量或共享数据。于是我们想到将并发访问变为串行访问,既一次只能有一个线程访问共享数据。这就是锁的思想如果你学过操作系统的多线程同步机制的话,相信你会对这部分有更好的理解。在操作系统中,多线程的同步是通过p,v原语,既waite(),signal()来解决线程同步问题,在访问临界区之前,所谓临界区就是p,v原语中间的代码,我们首先要对线程进行资源的申请操作p,访问结束后我们使用v归还资源。java多线程中的锁的原创 2021-06-11 20:52:24 · 1380 阅读 · 0 评论 -
java 线程三大特性
java 线程三大特性介绍三大特性之前,我们首先要粗略的了解一下什么是线程安全性,因为所谓的三大特性,既原子性,可见性,有序性都是围绕着线程安全开展工作的。线程安全性一般而言,如果一个类在单线程环境下能够正常工作,并且在多线程环境下,在其使用方不必为其做任何改变的情况下也能够正常运行,那么我们就称其是线程安全的,相应的我们称这个类具有线程安全性,反之,如果一个类在单线程环境下运行正常而在多线程环境下无法正常工作,那么这个类就是非线程安全的。一个类如果能够导致竞态,那么他就是非线程安全的,而一个类是线程原创 2021-06-09 20:58:36 · 399 阅读 · 0 评论 -
二叉排序树的创建与删除
二叉排序树的创建与删除二叉排序树:BST(Binary Sort Tree) 对于二叉排序树的任一个非叶子节点,要求左子节点的值比当前节点的值小,右子节点的值比当前的值大,如果有相同的值,可以将该节点放在左子节点或右子节点(需要保证左子树的任意节点的值都比右子树任意节点的值小)创建public void addNode(BinaryNode node) { if (node == null) { return; } // 值得比较 if (this.value < no原创 2020-09-02 22:25:02 · 140 阅读 · 0 评论 -
赫夫曼树
赫夫曼树赫夫曼树是带权路径长度(WPL)最小的树,,这样的树称为最优二叉树,也称为赫夫曼树。路径和路径长度:在一棵树中,从一个节点往下可以达到的孩子或孙子节点之间的通路称为路径,通路之间的分支的数目称为路径长度,从根节点到第L层的路径长度通常为L-1结点的权及带权路径长度:给结点赋一个某种原因的值,这个值称为结点的权,权*路径程度=带权路径长度树的带权路径长度:所有的叶子结点的带权路径长度之和为树的带权路径长度,权值最大的结点离根节点最近的二叉树是最优二叉树wpl最小的树就是赫夫曼树原创 2020-08-31 14:46:38 · 514 阅读 · 0 评论 -
线索化二叉树
线索化二叉树原创 2020-08-23 10:37:37 · 75 阅读 · 0 评论 -
java顺序存储二叉树
顺序存储二叉树public class 顺序存储二叉树 { public static void main(String[] args) { // TODO 自动生成的方法存根 int[] arr = { 1, 2, 3, 4, 5, 6, 7 }; arrBintree arrtree = new arrBintree(arr); arrtree.preOrder(0); }}class arrBintree { private int[] arr; arrBin原创 2020-08-22 15:03:01 · 69 阅读 · 0 评论 -
查找算法3 斐波那契查找
斐波那契查找(黄金分割法查找)public class FibSearch { public static int maxSize = 20; public static void main(String[] args) { // TODO 自动生成的方法存根 int[] arr = { 1, 8, 10, 89, 1000, 1234 }; System.out.println("index="+fibSearch(arr,1)); } // mid=mid+F(原创 2020-08-18 14:53:49 · 113 阅读 · 0 评论 -
查找算法3 插值查找
插值查找public class 插值查找 { public static void main(String[] args) { // TODO 自动生成的方法存根 int[] arr = { 1, 2, 3, 4, 5, 6, 7, 8 }; insertFind(arr, 0, arr.length - 1, 1); } public static void insertFind(int[] arr, int left, int right, int value) { //原创 2020-08-16 16:46:32 · 105 阅读 · 0 评论 -
查找算法2 二分查找
二分查找二分查找是一种重要的查找思想,它要求查找的序列表是有序的,具体实现如下步骤(假设该示例有序表为从小到大排序)public static void main(String[] args) { // TODO 自动生成的方法存根 int[] arr= {1,5,7,9,16,18,122,187}; int start=0; int end=arr.length; int value=187;原创 2020-08-16 16:06:22 · 119 阅读 · 0 评论 -
八大排序算法时间复杂度对比
八大排序算法时间复杂度对比原创 2020-08-16 10:31:48 · 453 阅读 · 1 评论 -
java基数排序
java 基数排序基数排序(radix sort)属于“分配式排序”(distribution sort),又称“桶子法”(bucket sort)或binsort,顾名思义,它是透过键值的部份资讯,将要排序的元素分配至某些“桶”中,藉以达到排序的作用,基数排序法是属于稳定性的排序,其时间复杂度为O (nlog®m),其中r为所采取的基数,而m为堆数,在某些时候,基数排序法的效率高于其它的稳定性排序法。...原创 2020-08-15 22:52:51 · 66 阅读 · 0 评论 -
java归并排序
java归并排序归并排序是利用归并的思想实现的排序方法,该算法采用经典的分治策略,将大问题分治成一些小问题然后递归求解,治将分的阶段得到的答案修补在一起实现分而治之归并排序具体图解如下实例代码public class MergeSorted { public static void main(String[] args) { // TODO 自动生成的方法存根 int[] arr= {8,4,5,7,1,3,6,2}; int temp[]=new i原创 2020-08-14 20:50:06 · 121 阅读 · 0 评论 -
java 快速排序
java 快速排序快速排序是冒泡排序的一种改进,基本思想是选定一个基准值并将所有要排序的数据分为两部分,其中一部分所有的数据都比另一部分的数据小,在按照方法接着进行排序。这里使用递归public class quickSorted { public static void main(String[] args) { // TODO 自动生成的方法存根 int[] arr= {-45,25,-9,0,4,96,56}; quicksort(arr,0,arr.length-1);原创 2020-08-13 15:57:52 · 91 阅读 · 0 评论 -
Java冒泡排序
Java-冒泡排序import java.util.Arrays;public class bubbleSorted { public static void main(String[] args) { // TODO 自动生成的方法存根 int arr[] ={3,9,-1,10,-2}; // 第一次排序3,-1,9,-2,10 // 第二次排序-1,3,-2,9,10 // 第三次排序-1,-2,3,9,1原创 2020-08-12 10:41:27 · 73 阅读 · 0 评论 -
Java -选择排序
Java -选择排序选择排序基本思想:第一次从arr[0]~arr[n-1]中找到最小值与arr[0]交换第二次从arr[1]~arr[n-1]中找到最小值与arr[1]交换…第i次从arr[i]~arr[n-1]中找到最小值与arr[0]交换总共通过n-1次交换,得到一个从小到大的有序序列...原创 2020-08-12 21:08:05 · 91 阅读 · 0 评论 -
java 插入排序
插入排序基本思想:把n个待排序的元素看成一个有序表和一个无序表,开始时有序表只包含一个元素,无序表中包含n-1个元素,排序过程每次从无序表取出第一个元素,把他的排序码依次与有序表中的进行比较,插入到有序表中的适当位置,使之成为新的有序表。插入排序可以使用辅助数组也可以不使用辅助数组实例代码(只使用原数组)import java.util.Arrays;public class insertsorted { public static void main(String[] args) {原创 2020-08-12 22:09:42 · 99 阅读 · 0 评论 -
java 希尔排序
java 希尔排序希尔排序:希尔排序是一种插入排序的改进算法,可以解决插入排序在某些情况下效率 低下的问题;基本思想:希尔排序是对无序表按一定的步长进行分组,每组使用直接插入排序算法(或其他排序算法)进行排序,随着步长的直接减少,当步长减为1时,无序表变为有序表组内交换法希尔排序(不建议)import java.util.Arrays;public class shellsorted { public static void main(String[] args) { // T原创 2020-08-13 14:44:28 · 842 阅读 · 0 评论