自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

原创 基于neo4j,百度地图API实现旅游地区检索图谱

基于neo4j,百度地图API实现旅游地区检索图谱第一步:安装JDK1.8,因为neo4j非关系型数据库是基于Java实现的,所以需要先预装JDK,这里还是选择万年不变的JDK1.8.具体步骤参见链接: link.第二步:安装数据库neo4j,这里版本要和自己的jdk版本对应。具体步骤参见链接:link.环境基本搭建完成,这里开发环境选择IDEA,使用Spring Boot导入maven依赖的方式统一管理jar包。下面我先展示下该项目的功能:图谱搜索界面:输入搜索信息后:比如西安市此时西安

2022-03-18 15:13:22 2736 9

原创 Java设计模式

单例模式**单例模式最核心的地方就是实例对象有且只有一个,所以构造方法私有化是必须的,对外界只留一个getInstance方法去获取唯一的实例对象,这样就防止该实例在类外部产生。**饿汉式:无论调用与否,都会产生实例对象package Singleton;//饿汉式public class Singleton1 { private Singleton1(){ } private static Singleton1 singleton1=new Singleton1().

2021-06-19 19:40:55 128

原创 Java特殊笔记

字符串拼接时一定会在堆上创建新的字符串常量。new字符串的时候一定会在堆上创建新的字符串常量,同理,当问String a=“abc”;产生多少对象时,答案是可能一个可能2个,因为要判断原来字符串常量池有没有这个字符串。如果使用String的sublist方法截取字符串,当传入参数截取的是整个字符串,那么返回的是原字符串,并不会产生新字符串在堆上,而如果截取的是部分原字符串,那么就会深复制一段新的所求字符串并放入堆中。4.Integer定义的对象在-128到127的闭区间之内,都会从常量..

2021-06-19 19:39:59 121

原创 BUG记录

1.LOL破败之王被击杀后戒指属性变为0000000000000010即十进制的2,但是被击杀会扣除4层,也就是会变成-2,那么这里写入内存的就是1111111111111110也就是-2的在计算机内存中存储的值,但是写另外一个接口的程序员直接读取了该值而这个值用长数据类型接收的话就是65534了,所以原因就出在前面程序员没有做归零的判断以及后面程序员没有对接口传输的数据进行类型匹配和校验;2.DNF云幂罐子事件,只要保证装备栏空一格且背包塞满,然后开罐子,就可以无限开罐子直到开出一亿金币的最终大奖,因为

2021-06-19 19:38:47 155

原创 网络原理之重点解析

拥塞控制都有什么手段和方法:**慢启动:拥塞窗口初始大小为1个报文段,在未达到门限值之前,会选择指数级增长速度增加拥塞窗口大小。当达到门限值,就会选择线性增长窗口大小,如果出现了丢包情况,此时会将门限值降低为发生丢包时窗口的一半。然后窗口大小置为1,重新开始慢启动过程。**快重传:当一连发送一堆报文段,而中间报文丢失,则丢失报文后面的报文ACK将和丢失段的ACK相同,如果发送端连续收到三个重复的确认信号就说明这一段报文丢失了,会立即重传丢失报文,而不是等待定时器溢出才知道报文丢失。**快恢复:这是..

2021-06-17 19:26:59 100 1

原创 网络原理之TCP-IP

1.应用层作用:满足日常需求的网络程序,都是在应用层DNS协议:从域名到IP地址(域名->IP)NAT/NAPT:NAT技术,将私网IP转换为公网IP。NAPT技术,将私网IP+port(端口)转换为公网IP+port2.传输层作用:负责数据能够从发送端传输到接收端端口号:标识主机上不同的应用程序用源IP,源端口号,目的IP,目的端口号,协议号这样的五元组来标识一个通信windows查看某个端口:netstat -ano | findstr “端口号”(显示进程的pid)Linux查看某

2021-06-17 19:26:12 231

原创 网络原理之编程实现

TCP的Socket常用APIvoid close()关闭此套接字代码实现基于TCP协议的客户端服务端的连接如下// 服务端代码import java.io.*;import java.net.ServerSocket;import java.net.Socket;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;public class Server { pub

2021-06-17 19:24:40 82

原创 网络原理初识

1.OSI七层模型网络传输数据主要考虑:1.效率 2.安全2.TCP/IP五层或四层模型:由下到上,(物理层),数据链路层,网络层,传输层,应用层。3.IP/MAC初识:MAC:网卡绑定的,在网卡出厂的时候就确定了,不能修改,代表物理地址(一个设备可以有多个网卡)IP:逻辑地址,屏蔽物理地址,代表网络上的某台设备(由四位数字组成:网络号(前三位)+主机号(第四位)每一位都是0-255的数字)IP地址描述的是路途总体的起点和终点MAC地址描述的是路途上的每一个区间的起点和终点注意事项:1.网络设

2021-06-17 19:23:48 121

原创 MySql事务,索引,引擎

索引**二叉搜索树**B树**B+树:一棵矮胖树,元素有序,一个结点有多个元素,只有叶子结点存储数据,而非叶子结点存放索引而不存放数据**索引遵循最左前缀匹配原则**索引是帮助Mysql高效获取数据排好序的数据结构**聚集索引:索引和数据放在一起,也叫聚簇索引,如Innodb**非聚集索引:索引和数据不放在一起,也叫非聚簇索引,如myisam**数据之间存在双向指针,在进行范围查找,如a>7就会先找a=7,完后将后面数据全部加载**联合索引:create index 索引名 on.

2021-06-17 19:22:32 74

原创 JVM虚拟机及GC机制算法

JVM基本结构**类加载子系统:加载二进制流的class文件,会经历加载,校验,准备,解析,初始化五步,校验是为了判断字节码是否合理合法。准备阶段是当一个类验证无误后需要给该类分配内存空间并将静态变量赋予默认值,构造相关数据结构,如方法表,final修饰的常量也在准备阶段初始化。解析阶段是将符号引用转化为实际的变量或方法的内存地址。初始化阶段是将已经完成解析的类装载到系统,初始化阶段重要的工作是执行类的初始化方法,但是是线程安全的,所以当执行类的初始化时容易发生死锁且很难排查。**方法区:JDK1...

2021-06-17 19:20:40 147

原创 常用Lambda表达式

核心:只要判断结果是正数那么就要进行交换。对集合元素进行排序Collections.sort(list, (p1,p2) -> p1.compareTo(p2));lambda表达式进行二维数组的排序,并且打印二维数组时使用Arrays.deepToString方法,否则对于一维的数组只能打印其哈希值public class text{ public static void main(String[] args) { int[][] arr=new int[][]{{

2021-06-17 19:19:22 102

原创 JUC类小结

1.为什么要设计可重入锁?**当方法A拥有一个对象锁,而方法B也拥有一个对象锁,当方法B调用方法A时如果锁不是可重入的,那么此时就会发生死锁,所以设计可重入锁就是为了防止死锁。ReentrantLock:信号量,实现限流,调用acquire方法…**CountDownLouch:计数器(自定义初始值),每次调用countDown方法,计数器减一,当计数器减到0时,会执行await后面的代码。该计数器是一次性的,用完不会重置**CyclicBarrier:循环屏障:与CountDownLouch相

2021-06-17 19:18:37 127

原创 多线程笔记总结

1.进程是系统分配资源的最小单位,线程是系统调度的最小单位,线程依赖于进程,进程不在了,线程也就没了。2.进程的状态一个类实现Callable接口然后重写call方法可以返回线程执行结果,创建一个FutureTask实例,传入Callable对象,最终可以通过FutureTask对象传入线程实例通过FutureTask对象的get方法得到返回值start方法是启动线程的方法,执行线程时就是并发执行。如果使用run方法,只是调用了线程的普通方法,还是串行执行,run可以调用多次,而start只

2021-06-17 19:16:21 65

原创 Java数据结构

1.集合集合与数据结构基本框架。2.List,Queue,Deque,Set,Map是接口。AbstractList是抽象类,实现了List接口。Vector,ArrayList,LinkedList均继承自AbstractList抽象类,而不是直接实现的List接口。Deque接口继承自Queue接口,相比List具体实现类还增加了PriorityQueue类。HashSet继承自AbstractSet抽象类且实现了Set接口,AbstractSet抽象类继承了AbstractCollecti

2021-06-17 19:13:55 68

原创 Java继承,多态,和抽象类及接口与Cloneable,Comparable,Comparator

Java继承,多态,和抽象类及接口Java中有继承,多态等特殊属性,这些特殊属性实现对应普通类,抽象类和接口.首先得知道关于定义这些特殊功能的关键字.1.定义普通类就是常用的class2.定义抽象类:abstract3.定义接口:interface普通类A与普通类B之间继承用extends,其意义就是A可以复用B的代码,但在继承时要注意子类也就是B要先帮助父类A构造,实现接口用implements,与继承不同的是,当一个类B实现Running接口时要实现接口中所有的方法,且接口中的方法自带pu

2021-01-17 17:31:10 384 1

原创 Java链表进阶,附力扣牛客真题

上一节讲了链表的基本用法,当我再深入刷题的时候,有被惊到,真的是细节满满,所以这一节来扯一下链表的一些进阶技巧1.反转一个链表这个问题就比较抽象了,仔细想很容易绕进去,但是琢磨一会思路还是会越来越清晰,反转链表就是把尾当头,头当尾,所以在实现的时候思想就是,定义cur指向头结点,用一个前驱prev装当前结点的头,用一个curNext装当前结点的尾,头和尾保存以后把cur的尾换成prev,再把prev换成当前cur作为下一个结点的尾,cur的头换成curNext,这样就完成了一个结点的反转,在这样遍历下去

2021-01-06 12:10:56 167

原创 Java链表的增删改查

1.首先得创建一个链表,代码如下:class Node{public int val;public Node next;public Node(){}public Node(int val){ this.val=val;}}////创建Node结点////////////////////public class MyLinkList {public Node head;// 1、无头单向非循环链表实现public void creatLinkList(){this.h

2021-01-06 09:32:27 632 1

原创 对Java类对静态方法静态变量及静态代码块的理解

开始入手Java类的时候,只知道一句静态方法和静态变量不依赖于对象,可这句话到底什么意思却很模糊,当仔细探索以后,现在对这一部分有了深刻的理解。 当我们使用Java产生一个对象的时候,便可以通过**引用名+静态方法名或静态变量名**来使用它,这也是最常见的类的使用方法,但对于静态方法或变量,一定要记住**静态方法和静态变量的产生不依赖于对象**,也就是说我们**可以不用引用名+静态方法名或静态变量名**来使用它,比如直接**类名+静态方法或静态变量名**直接使用 直接上图!!!...

2020-12-28 09:43:47 132

原创 初识Java——HelloWorld

先来一个HelloWorld!请看!!!!这是Powershell运行后的结果,但是指令不熟悉还是弄了很多错误这是运行后的结果!!!这是写的JAVA代码,上图这是编译后生成的文件tst.java是要编译的文件,生成的class文件才是我门要执行的文件另外一种便是IDEA上运行刚刚的程序结果如下奈斯,JAVA入门,向资深程序员迈进!...

2020-12-03 18:46:54 154

原创 单词逆序,LegendaryGZ的博客

#define _CRT_SECURE_NO_WARNINGS 1////完成单词的逆序输出,如输入Legendary GZ NB,得到NB GZ Legendary#include <stdio.h>#include <stdlib.h>void reverseWord(char *start, char *end)//完成数组的逆序,如输入的是12 34,则输出43 21{int len = end - start;////地址相减值为中间相差元素个数for (in

2020-11-23 17:29:08 234

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除