自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(261)
  • 资源 (2)
  • 收藏
  • 关注

转载 数据库之删除表数据drop、truncate和delete的用法

数据库中删除表数据的关键字,最常用的可能就是delete了,另外其实还有drop和truncate两个关键字。老大:drop命令格式:drop table tb ---tb表示数据表的名字,下同。说明:删除内容和定义,释放空间。简单来说就是把整个表去掉.以后要新增数据是不可能的,除非新增一个表。老二:truncate命令格式:drop table tb说明:删除内容、释放空间但不删除定义,也就是数据表的结构还在。与drop不同的是,它只是清空表数据而已,它比较温柔。至于释...

2021-08-25 20:14:23 10193 1

转载 go benchmark 性能测试

go 性能测试基准测试基准测试主要是通过测试CPU和内存的效率问题,来评估被测试代码的性能,进而找到更好的解决方案。编写基准测试 func BenchmarkSprintf(b *testing.B){ num:=10 b.ResetTimer() for i:=0;i<b.N;i++{ fmt.Sprintf("%d",num) } } 基准测试的代码文件必须以_test.go结尾 基准测试的函数必须以Be.

2021-01-08 15:00:19 554

转载 Golang 的 “omitempty” 关键字略解

原文载于 https://old-panda.com/2019/12/11/golang-omitempty/用法熟悉 Golang 的朋友对于 json 和 struct 之间的转换一定不陌生,为了将代码中的结构体与 json 数据解耦,通常我们会在结构体的 field 类型后加上解释说明,例如在表示一个地址的时候, json 数据如下所示{ "street": "200 Larkin St", "city": "San Francisco", "state": "C

2020-09-02 15:54:08 9657

转载 Protobuf 使用指南

一、简介最近在手撸 IM 系统,关于数据传输格式的选择,犹豫了下,对比了 JSON 和 XML,最后选择了 Protobuf 作为数据传输格式。毕竟 Google 出品,必属精品????,[官网地址]。好了,舔狗环节结束,关于技术选择,都是需要根据实际的应用场景的,否则都是耍流氓,下文会进行简单的对比,先来看看官网的介绍:他是一种与语言无关、与平台无关,是一种可扩展的用于序列化和结构化数据的方法,常用于用于通信协议,数据存储等。他是一种灵活,高效,自动化的机制,用于序列化结构化数据,对比于

2020-08-27 15:28:49 731

转载 Go语言的工作空间和GOPATH环境变量

Go语言并没有强制一定要使用一定的工作空间和项目结构,对于小型的Go程序依靠Go run等命令就可以直接编译运行。然而,保持良好的工作空间和文件结构,对于管理源代码和发布程序都是非常有帮助的。对于大型的Go语言项目,工作空间则是一定要的。1、Go语言的工作空间结构Go语言的工作空间其实就是一个文件目录,目录中必须包含src、pkg、bin三个目录。其中src目录用于存放Go源代码,pkg目录用于package对象,bin目录用于存放可执行对象。使用Go的编译命令工具可以将源代码或package编

2020-08-18 17:19:33 289

转载 .zshrc文件与.bashrc文件作用

使用baiman bash命令查看到的联机帮助文件中的du相zhi关解释如下:.bashrc - The individual per-interactive-shell startup file.这个文件主要保存个人的一些个dao性化设置,如命令别名、路径等。下面是个例子:# User specific aliases and functionsPATH="/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin"LANG=zh_C

2020-08-18 16:55:47 8665

原创 golang中 = 和 :=区别

= 是赋值语句 :=是声明类型(编译器帮你做的)并赋值1、=要和var 关键字一起使用。var可以在函数中使用,也可以在函数外使用。:=只能在函数中使用,所以只能定义局部变量。var a = 3 // 可以省略类型var b int = 5c := 32、用var定义之后,用=赋值之后,还可以改变。但是用:=定义的变量不能改变值(也就是c:=x,在函数中不能再重新这样定义 c:=y,但是可以c=z)c := 3c :=4//提示错误,不能声明类型后,再声明类型c = 5//正常

2020-08-18 10:04:30 1710

原创 象棋人机对战中所用的极大极小值-alpha-beta剪枝算法介绍

前言之前毕设做了一个象棋游戏,做个记录。极大极小值搜索算法什么是极大极小搜索算法?所有双向搜索算法的最基本的思想都是“极大-极小”(MAX-MIN)原理。它可以追溯到中世纪,但最早是由冯-诺依曼(John von Nuoma,1903-1957,美籍匈牙利数学家)在60年前完整描述的[6]:假设有对局面评分的方法,来预测棋手甲(极大者MAX)会赢,或者对手(极小者MIN)会赢,或者是和棋。评分用数字表示,正数代表极大者领先,负数代表极小者领先,零代表谁也不占便宜。 极大者的任务是增加棋

2020-08-06 11:34:46 2493

原创 深入理解List的toArray()方法和toArray(T[] a)方法

深入理解List的toArray()方法和toArray(T[] a)方法上面这篇博文讲的比较好,可以看下,其中里面介绍toArray(T[] a)没有例子,我这补充下:public static void main(String[] args) { List<Integer> list = new ArrayList(); list.add(1); list.add(5); list.add(3); In

2020-08-04 16:28:15 635

转载 MyBatis typeAliases别名设置

因为类的全限定名一般包括包名,显得很长,在使用过程中不是很方便,所以MyBatis中允许我们使用一种简写的方式来代替全限定名,这就是别名。这就相当于我们在玩微信的时候,有些人的昵称很长很难记,怎么办?我们给它加一个备注,方便我们快速识别,但是如果有两个相同的备注名怎么区分到底谁是谁呢,你可能会说通过头像,那再极端一点万一这俩人的头像也是一摸一样的呢?所以这就说明一个问题,别名必须是能够唯一标示一个类,否则容易引发冲突,这些问题在MyBatis的配置中都有对应的处理方式,待会会介绍。别名又分为系统别名和自定义

2020-08-02 20:53:18 214

转载 引用计数法的循环引用问题

引用计数法关于引用计数法,我们可以先看一段wiki上的描述:As a collection algorithm, reference counting tracks, for each object, a count of the number of references to it held by other objects. If an object's reference count reaches zero, the object has become inaccessible, and c

2020-07-31 21:14:18 2293 1

转载 快速理解<? extends T>和<? super T>

原文链接:https://www.jianshu.com/p/520104cfd0ff在 Java 泛型中存在通配符的概念: <? extends T>:上界通配符(Upper Bounds Wildcards) <? super T>:下界通配符(Lower Bounds Wildcards) 通配符存在的意义有类就会有继承,在开发中我们经常接触泛型,肯定希望在使用泛型的时候可以兼容其子类,但是在使用集合或者其他类似的情景时会出现问题。下面用集合例子模拟

2020-07-27 21:33:06 323

转载 IDEA中如何使用debug调试项目 一步一步详细教程

原文链接:http://www.yxlzone.top/show_blog_details_by_id?id=2bf6fd4688e44a7eb560f8db233ef5f7在现在的开发中,我们经常采用Debug来追踪代码的运行流程,通常在程序运行过程中出现异常,启用Debug模式可以分析定位异常发生的位置,以及在运行过程中参数的变化。通常我们也可以启用Debug模式来跟踪代码的运行流程去学习三方框架的源码。  所以学习下如何在Intellij IDEA中使用好Debug,主要包括如下内容:  

2020-07-27 17:40:10 1193

转载 常用的并发工具类 CountDownLatch CyclicBarrier Semaphore Exchanger

信号量SemaphoreSemaphore 适用于什么样的使用场景呢,我们举个通俗的例子:假如现在有一个停车场,里面有只十个停车位,当着十个停车位都被占用了,外面的车就不允许进入了,就必须在外面等着。出来一辆车才允许进去一辆车这个场景不同于我们一般的并发场景,一般来说,我们的临界资源只能允许一个线程进行访问,其他线程都地等着。但是,有一种场景是,临界资源允许多个线程同时访问,超过限定数量的外的线程得阻塞等待。这种情境使用原始的那一套也是能实现的,但那叫「造轮子」,Java 并发框..

2020-07-25 12:06:59 180

转载 HashMap由并发引起的链表死循环

文章来源:阿里P8架构师谈:深入探讨HashMap的底层结构、原理、扩容机制3. 扩容机制扩容(resize)就是重新计算容量,向HashMap对象里不停的添加元素,而HashMap对象内部的数组无法装载更多的元素时,对象就需要扩大数组的长度,以便能装入更多的元素。当然Java里的数组是无法自动扩容的,方法是使用一个新的数组代替已有的容量小的数组,就像我们用一个小桶装水,如果想装更多的水,就得换大水桶。我们分析下resize的源码,鉴于JDK1.8融入了红黑树,较复杂,为了便于理解我们仍然使用J

2020-07-24 15:48:51 313

原创 hashCode和equals的区别

1.对象存储在散列表中(如hashset,hashmap等)此时hashCode方法和equals方法才有关联,百度都会有这句话“equals方法重写了hashcode方法也要重写”个人理解为:例如在hashset中存储,而hashset的底层实现的,底层存储的数据结构是先通过hashcode方法确定index,而当table[index]已存在其它元素时,会在table[index]位置形成一个链表,再继续判断继续通过equals方法判断当前要存放的对象是否已经在链表中出现过,如果没有出现过就加入

2020-07-23 20:54:02 235

转载 java中的string对象深入了解

这里来对Java中的String对象做一个稍微深入的了解。Java对象实现的演进String对象是Java中使用最频繁的对象之一,所以Java开发者们也在不断地对String对象的实现进行优化,以便提升String对象的性能。Java6以及之前版本中String对象的属性在Java6以及之前版本中,String对象是对char数组进行了封装实现的对象,其主要有4个成员成员变量,分别是char数组、偏移量offset、字符数量count和哈希值hash。String对象是通过offset和

2020-07-23 11:57:47 222

原创 源码分析Integer自动装箱拆箱中-128 ~ 127 的缓存问题

什么是包装类型Java 设计当初就提供了 8 种 基本数据类型及对应的 8 种包装数据类型。我们知道 Java 是一种面向对象编程的高级语言,所以包装类型正是为了解决基本数据类型无法面向对象编程所提供的。下面是基本数据类型与对应的包装类型。基本数据类型 包装类型 byte Byte boolean Boolean short Short char Character int Integer long Long float

2020-07-23 10:25:09 324

原创 异常的执行顺序与异常中return的分析

异常有try块,catch块,finally块若程序(try块中)无异常,则先执行try块,再执行finally块public class exceptionClass { public static void main(String[] args) { Scanner in = new Scanner(System.in); System.out.print("请输入被除数:"); try { int num1 =

2020-07-22 12:36:03 521 1

转载 Java内部类详解

一.内部类基础在 Java 中,可以将一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类。广泛意义上的内部类一般来说包括这四种:成员内部类、局部内部类、匿名内部类和静态内部类。下面就先来了解一下这四种内部类的用法。1.成员内部类成员内部类是最普通的内部类,它的定义为位于另一个类的内部,形如下面的形式:class Circle { double radius = 0; public Circle(double radius) { this

2020-07-22 11:02:34 119

原创 源码分析equlas和==的区别

对于“==”是直接比较的两个对象的堆内存地址,如果相等,则说明这两个引用实际是指向同一个对象地址的对于基本数据类型(byte,short,char,int,float,double,long,boolean)来说,他们是作为常量在方法区中的常量池里面以HashSet策略存储起来的,对于这样的字符串 "123"也是相同的道理,在常量池中,一个常量只会对应一个地址,因此不管是再多的 123,"123" 这样的数据都只会存储一个地址,所以所有他们的引用都是指向的同一块地址,因此基本数据类型和String常量.

2020-07-21 21:00:22 125

原创 虚拟机Virtualbox -1908问题处理总结

虚拟机安装中和因为ubuntu内核升级后可能出现的高概率错误及解决方法总结 这是我内核更新到5.3.0-51-generic,而virtualbox是5.2.34,产生了这个问题 处理过程: VirtualBox Linux内核驱动程序( vboxdrv )未加载,或者/dev/vboxdrv存在权限问题。安装virtualbox-dkms软件包并通过执行来加载内核模块 modprobe vboxdrv...

2020-05-14 20:07:35 2971

转载 3GPP 协议导读

24.008 Mobile radio interface Layer 3 specification; Core network protocols; Stage 3 Must Have 這是我最常用到的spec之一,對我而言也是最入門的一份。大多數spec是用來查的,但是這份從第四章開始是可以一頁 頁讀過的。它定義了Mobility Management(MM/GMM)、...

2020-04-20 10:38:51 1940

转载 关于S-GW和P-GW

1、从另外一个角看:S-GW的功能:RNC用户面、MSC语音、SGSN用户面;P-SW的功能:GGSN的功能;2、S-GW终结和E-UTRAN的接口,主要负责用户面处理,负责数据包的路由和转发等功能,支持3GPP不同接入技术的切换,发生切换时作为用户面的锚点;P-GW终结和外面数据网络(如互联网、IMS等)的SGi接口,是EPS锚点,即是3GPP与non-3GPP网络间的用户面数据链路的锚点...

2020-01-13 16:13:14 1788

转载 短信猫发送GSM 和 CDMA PDU长短信

GSM和CDMA网络制式下发送PDU长短信实例短信内容:【这是一封长短信,支持中文。长短信在发送的过程中,需要被拆分成多条短短信发送,而每一条短短信的长度最多仅有67个中文字符。这些被拆分的短短信将会在目标终端上合并为一条短信展示。】电话号码:15521071000GSM PDU 字符串及AT指令:发送GSM短信初始化指令(若后面都发送GSM短信,只需设置一次):>AT...

2019-09-11 17:53:01 429

转载 AndroidStudio、gradle、buildToolsVersion概述,版本对应关系

使用AndroidStudio 开发也已经2年了,每次gradle 或者studio 有推荐更新后,项目重新sync后都会报错,提示更新相应的其他版本,比如AndroidStudio、gradle、buildToolsVersion版本;AndroidStudio: 是Google官方基于IntelliJ IDEA开发的一款Android应用开发工具,,类似之前的eclipse,但是比ecl...

2019-07-17 16:19:41 3860 2

转载 linux中ln(link)命令创建链接以及链接的删除和更新

ln(即link) 的功能是为某一个文件在另外一个位置建立一个同步的链接。有两种链接方式,一种是硬链接(hard link),另一种是符号链接(symbolic link),又称软链接。硬链接和原有文件是存储在同一物理地址的两个不同的名字,因此硬链接是相互的;符号链接的内容只是一个所链接文件的文件名,在使用ls –l时,符号链接的第一项的第一位为“l”。 ...

2019-07-15 17:03:08 1406

转载 repo详解

本文转载自:https://blog.csdn.net/weixin_38599972/article/details/789824081、 repo start ##创建并切换分支repo start newbranchname [--all | projectName]刚克隆下来的代码是没有分支的,repo start是对git checkout –b 命令的封装。为指定的项目或所...

2019-07-10 14:36:54 782

原创 linux 环境变量 /etc/profile、/etc/bashrc、~/.profile、~/.bashrc的区别

bashrc与profile都用于保存用户的环境信息,bashrc用于交互式non-loginshell,而profile用于交互式login shell。/etc/profile,/etc/bashrc 是系统全局环境变量设定 ~/.profile,~/.bashrc用户目录下的私有环境变量设定当登入系统获得一个shell进程时,其读取环境设置脚本分为三步:首先读入的是全局环境...

2019-06-10 22:20:41 413

转载 最新鲜最详细的Android SDK下载安装及配置教程

最近在配置Android 开发环境的时候,遇到了一个大问题,那就是Google Android的官网居然成功的被我天朝给墙掉了,一直没搞明白这是为了什么。难度我天朝打算自己搞套手机系统出来,所以不让俺们去用Android了?甚是郁闷,想想俺当年开发Android的时候,那网站都还妥妥地上得去啦。这个世界变得真是太快啊。更令人发指的是,去网上看很多Android开发环境的教程,居然还明目张胆的叫我们...

2019-05-19 21:42:20 2300

转载 Java GUI编程基础

概念:GUI(Graphical User Interface):图形用户接口。GLI(Command line user Interface):命令用户接口。Awt:Abstract window Toolkit:抽象接口工具包。java.Awt :重量级控件 更依赖系统。javax.Swing:即xwt 属轻量级控件 依赖系...

2019-05-07 12:50:33 1662

转载 使用jsmooth将jar文件转换成可在无java的环境中运行的exe文件

因为项目需要将jar文件转换成exe文件,并确保在无java的环境中也可以正常运行。在网上查了下发现jsmooth可以实现这个功能,但是根据网上的教程在无java环境中运行不了。最后终于发现问题出在哪一步了,在这里整理一下。从eclipse中导出jar文件开始:1.导出为可执行的jar文件,如下图:2.点击nexe后出现如下的界面,Export destination:中...

2019-04-19 11:47:20 256

转载 java中AWT和SWing的区别与联系

AWT和Swing都是java中的包。AWT(Abstract Window Toolkit):抽象窗口工具包,早期编写图形界面应用程序的包。Swing :为解决 AWT 存在的问题而新开发的图形界面包。Swing是对AWT的改良和扩展。AWT和Swing的实现原理不同: AWT的图形函数与操作系统提供的图形函数有着一一对应的关系。也就是说,当我们利用 AWT构件...

2019-04-07 21:45:35 259

原创 Eclipse4.6 出现Could not create the Java virtual machine问题

错误环境:  操作系统---win10家庭中文版 64位  jdk版本-----1.6.0_45  参考eclipse.ini配置文件的官方说明文档----http://wiki.eclipse.org/Eclipse.ini#-vm_value:_Windows_Example主要错误:直接在eclipse官网下载最新的eclipse!而该eclipse的版本仅支持jd...

2019-04-07 11:52:02 662

转载 Java中xxx.class.getResource和xxx.class.getClassLoader().getResource()的区别

Java中gegetResource和gegetClassLoader().getResource()的区别xxx.class.getResource()用来从当前类(xxx)所在的目录下(也就是以当前类所在路径为根路径)获得资源;xxx.class.getClassLoader().getResource()用来从classpath路径下(也就是以classpath所在路径为根路径)获...

2019-04-01 17:12:04 206

转载 LIS最长上升子序列详解

LIS定义LIS(Longest Increasing Subsequence)最长上升子序列一个数的序列bi,当b1 < b2 < … < bS的时候,我们称这个序列是上升的。对于给定的一个序列(a1, a2, …, aN),我们可以得到一些上升的子序列(ai1, ai2, …, aiK),这里1 <= i1 < i2 < … < iK <= ...

2019-03-24 12:43:54 390

转载 TCP/IP的应用层协议

应用 应用层协议 运输层协议 名字转换 DNS UDP 文件传送 TFTP UDP 路由选择协议 RIP ...

2019-03-24 10:38:16 2804

转载 有符号右移>>,无符号右移>>>

计算机表示数字正负不是用+ -加减号来表示,而是用最高位数字来表示,0表示正,1表示负1.有符号右移>>(若正数,高位补0,负数,高位补1)正数:例如4>>2首先写出4的二进制数,因为是正数所以最高位为0,也就是第一个0000 0000 0000 0000 0000 0000 0000 0100右移两位得到(高位补0)000000 0000 0000...

2019-03-23 15:16:47 166

转载 Java基础-原码反码补码

 注意,我们这里举列的原码和反码只是为了求负数的补码,在计算机中没有原码,反码的存在,只有补码。一.原码1>.正数的原码就是它的本身  假设使用一个字节存储整数,整数10的原码是:0000 10102>.负数用最高位是1表示负数  假设使用一个字节存储整数,整数-10的原码是:1000 1010二.反码1>.正数的反码跟原码一样  假设...

2019-03-23 15:10:55 336

转载 java中byte数组与int类型的转换(两种方式)

java中byte数组与int类型的转换,在网络编程中这个算法是最基本的算法,我们都知道,在socket传输中,发送、者接收的数据都是 byte数组,但是int类型是4个byte组成的,如何把一个整形int转换成byte数组,同时如何把一个长度为4的byte数组转换为int类型。下面有两种方式。//第一种方式publicstaticbyte[]int2byte(intres)...

2019-03-22 12:08:13 1381

myelcise破解工具

myelcise破解工具myelcise破解工具myelcise破解工具myelcise破解工具myelcise破解工具

2018-06-24

坦克大战小游戏源码

坦克大战小游戏源码,可用于课设参考坦克大战小游戏源码,可用于课设参考坦克大战小游戏源码,可用于课设参考坦克大战小游戏源码,可用于课设参考坦克大战小游戏源码,可用于课设参考坦克大战小游戏源码,可用于课设参考坦克大战小游戏源码,可用于课设参考

2018-06-23

空空如也

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

TA关注的人

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