自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(294)
  • 资源 (7)
  • 收藏
  • 关注

原创 mark-sweep algrithm pseudo

mark_sweep() { mark_phase() sweep_phase()}mark_phase() { for(r : roots) { mark(r) }}mark(obj) { if(obj.mark == false)) { obj.mark = true for(child : children(obj)) { mark(child) } .

2020-09-01 19:46:30 200

原创 检测有向图是否存在闭环的算法

要检测有向图中是否存在闭环,可以 使用如下算法。 1. 选择任意一个节点(类型)并标注为“查找中” 2. 沿着边依次访问所有与该节点相邻的节点 3. 如果访问到的节点没有标注任何状态,则将该节点标注为“查找中”;如果标注了“查找结 束”,则不做任何处理,返回之前的节点;如果已经标注为“查找中”,则说明存在闭环 4. 从当前的节点重复步骤 2 和 3,如果已经没有可访问的相邻节点,则将该节点标注为“查找 结束”,并沿原路返回 5. 按照上述流程对所有节点进行处理,如果查找过程.

2020-08-23 19:18:00 1992

原创 抽象语法树的生成

int main(int argc, char **argv){ int i, j = 5; if (i) { return (j * 1 - j); } else { exit(1); }}<<AST>> (D:\git\cbc\cbc-project\test\ast.cb:1)variables:functions: <<DefinedFunction>> (D:\git\cbc\cbc-project\tes.

2020-08-23 11:15:15 1441

原创 快速排序算法

分治法O(nlogn)pivot 基准元素选定了基准元素以后,我们要做的就是把其他元素当中小于基准元素的都移动到基准元素一边,大于基准元素的都移动到基准元素另一边。具体如何实现呢?有两种方法:1.挖坑法2.指针交换法用递归, 就是用空间换取时间void quickSort(int[] arr, int startIndex, int endIndex) { if...

2020-01-22 14:19:52 170

原创 基础排序算法

冒泡排序最好的情况是初始状态是正序的,一次扫描即可完成排序,所以最好的时间复杂度为 O(N);最坏的情况是反序的,此时最坏的时间复杂度为 O(N^2)。平均情况,每轮 N/2 次循环,N 轮时间复杂度为 O(N^2)。public void bubbleSort(int[] source) { for(int i = source.length - 1; i > 0; i-...

2020-01-22 11:48:52 147

原创 二叉树伪代码

Node { int key; E item; Node parent; Node leftChild; Node rightChild;}BinaryTree { Node root; Node find(int key) void insert(Node newNode) void traverse(Node startNode); Node ...

2020-01-22 11:25:56 1773

原创 LinkedList伪代码

在表头插入和删除速度很快,仅需改变一两个引用值,所以花费 O(1) 的时间。平均起来,查找、删除和在指定节点后面插入都需要搜索链表中的一半节点,需要O(N)次比较。在数组中执行这些操作也需要 O(N) 次比较,但是链表仍然要比数组快一些,因为当插入和删除节点时,链表不需要移动任何东西,增加的效率是很显著的,特别是当复制时间远远大于比较时间的时候。当然,链表比数组优越的另一个重要方面是链...

2020-01-22 11:24:44 460

原创 hashMap伪代码

hashMap原理的伪代码V put(K k , V v) { int hashCode = hashCode(k); Node node = new Node(k, v); if (table[hashCode] == null) { table[hashCode] = node; } else { Node firstNode = table[hashC...

2020-01-22 11:24:05 4139

原创 org.apache.thrift.TApplicationException: Invalid method name:XXX

问题是在client端报出来的。看了一下thrift生成的代码,远程调用是按照如下的流程进行的,发送请求,括号里面是参数然后接受响应,并返回,问题就是出在recv_xx里面,服务端返回的是个异常 send_xx(xx, xx, xx); return recv_xx(); 在ReceiveBase中,就直接抛出这个异常了服务端侧日志没有出现...

2019-11-26 10:32:36 2574 1

原创 maven 配置文件配置

<?xml version="1.0" encoding="UTF-8"?><!--Licensed to the Apache Software Foundation (ASF) under oneor more contributor license agreements. See the NOTICE filedistributed with this wor...

2019-11-24 19:48:54 289 1

原创 刷新页面后保存selectItem

<script type="text/javascript"> jQuery(document).ready(function() { var xx = jQuery('#xx'); if (localStorage.getItem('xx')) { ...

2019-11-16 15:09:04 233

原创 Oracle索引是区分大小写的

Oracle的索引的名字是区分大小写的select count(*) into index_count from user_indexes where lower(index_name) = 'xxx';因为使用了lower,那么xxx必须是小写。

2019-11-15 10:34:51 654

原创 Button按钮点击一次没反应,需要点击两次

在一个jsp页面中Button按钮点击一次没反应,需要点击两次。后来发现将<button>name</button>改成一行的形式<button ...>name</button>这个问题不知道是怎么回事,但是这么改的确就有用了。...

2019-11-14 16:54:10 1841

原创 Connection is not associated with a managed connection

Connection is not associated with a managed connection

2019-11-13 20:13:02 1367

原创 java.sql.SQLSyntaxErrorException: ORA-02289: sequence does not exist

JPA提供四种主键生成器策略GenerationType.IDENTITY多数数据库支持IDENTITY列,数据库会在新行插入时自动给ID赋值,这也叫做ID自增长列GenerationType.Auto把主键生成策略交给JPA厂商(Persistence Provider),由它根据具体的数据库选择合适的策略,可以是Table/Sequence/Identity中的一种。假如数据库是Ora...

2019-11-13 15:30:59 1072

原创 Hibernate中文手册

https://docs.jboss.org/hibernate/orm/3.5/reference/zh-CN/html/index.html

2019-11-12 17:16:23 408

原创 时间测试工具类

public class PerformanceMeasurementUtil { private static final Map<String, Long> accruedTimeMap = new ConcurrentHashMap<>(); private static final Map<String, Long> startTim...

2019-11-12 15:36:16 182

原创 docker容器修改时区

apk add tzdata ln -sf /usr/share/zoneinfo/America/Chicago /etc/localtime

2019-11-12 11:32:44 122

原创 Hibernate异常

aused by: org.hibernate.StaleStateException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1这个是更新entity的时候,数据库中找不到对应的数据,无法更新了。原因:因为每次更新的时候,都是先从缓存里...

2019-11-07 20:19:03 152

原创 Python2和Python3的比较

Python2和Python3的比较所有纠结学习Python 2还是Python 3的朋友都知道,按照Python官方的计划,Python 2只支持到2020年。可能大家接触Python的时间还不长,不知道Python官方曾经还说过,Python 2只支持到2015年(https://github.com/python/peps/blob/master/pep-0373.txt)。所以,大家可...

2019-11-04 18:42:31 93

原创 Python虚拟环境 virtualenv

创建一个独立的Python运行环境,命名为venv安装:pip3 install virtualenv创建虚拟环境:virtualenv env(创建虚拟环境)virtualenv env(创建纯净环境)virtualenv --system-site-packages env_django(创建环境,继承原安装的模块)#指定inteceptor 这里指定是python3.6...

2019-11-04 15:44:49 161

原创 Hibernate设置事务

<!--  事务隔离级别  hibernate.connection.isolation = 4  1-- Read uncommitted isolation  2-- Read committed isolation  4-- Repeatable read isolation  8-- Serializable isolation--><p...

2019-11-04 15:31:12 326

原创 git分支 MERGING状态

git reset --hard HEADgit log 命令可以显示所有提交过的版本信息如果感觉太繁琐,可以加上参数 --pretty=oneline,只会显示版本号和提交时的备注信息git log --pretty=onelinegit reflog可以查看所有分支的所有操作记录(包括已经被删除的 commit 记录和 reset 的操作)...

2019-11-03 19:12:08 3617

原创 Scala中apply方法与unapply方法

通常,在一个类的伴生对象中定义apply方法,在生成这个类的对象时,就省去了new关键字。class Currency(val value: Double, val unit: String) {}object Currency{ def apply(value: Double, unit: String): Currency = new Currency(value, uni...

2019-11-03 19:03:06 542

原创 Scala case class

Case Class一般被翻译成样例类,它是一种特殊的类,能够被优化以用于模式匹配,下面的代码定义了一个样例类://抽象类Personabstract class Person//case class Studentcase class Student(name:String,age:Int,studentNo:Int) extends Person//case class Tea...

2019-11-03 18:42:46 179

原创 数据库事务隔离级别

数据库事务的隔离级别有4个,由低到高依次为Read uncommitted、Read committed、Repeatable read、Serializable,这四个级别可以逐个解决脏读、不可重复读、幻读这几类问题。脏读,A事务读取B事务尚未提交的数据,此时如果B事务发生错误并执行回滚操作,那么A事务读取到的数据就是脏数据不可重复读,事务A在执行读取...

2019-11-03 18:31:19 78

原创 volatile不能保证原子性

public class T { volatile int count = 0; void m() { for(int i=0; i<10000; i++) count++; } public static void main(String[] args) { T t = new T(); List<Thread> threads = new A...

2019-10-31 14:20:26 69

原创 原子操作类

原子操作类的原理是CAS乐观锁。

2019-10-31 14:16:28 74

原创 什么是线程安全

1. 原子性 synchronized原子性:是指一个操作是不可中断的。即使是多个线程一起执行的时候,一个操作一旦开始,就不会被其他线程干扰。2. 可见性 volatile,synchronized可见性: 一个线程可以观察到其他线程对状态变量所做的更改。3. 有序性 volatile...

2019-10-31 14:09:09 64

原创 synchronized锁在发生异常的时候会自动释放锁

public class T { int count = 0; synchronized void m() { System.out.println(Thread.currentThread().getName() + " start"); while(true) { count ++; System.out.println(Thread.currentThread()...

2019-10-31 14:00:26 5476

原创 踩到的swich的坑

swtich()变量类型只能是int、short、char、byte和enum类型(JDK 1.7 之后,类型也可以是String了)。当进行case判断时,JVM会自动从上到小扫描,寻找匹配的case,可能存在以下情况:...

2019-10-26 17:42:07 155

原创 如何阅读代码

代码为什么复杂,因为现实是一个很复杂的世界,我们需要用计算机解决现实生活的问题,需要程序员们具有抽象能力, 逻辑思考能力,甚至是业务能力。但是代码再复杂,也是一行一行写出来的。抛开无意义的行。真正的核心逻辑占代码核心逻辑应该只有20%。所以我们应该在战术上重视,战略上藐视。无非是代码而已,又不是原子弹,再说原子弹咱们也能造出来,几行破代码算什么。工作中如果发现有重复劳动的情况...

2019-10-20 15:48:09 142

原创 IDEA 在commit log中回滚指定的文件

选中文件后,点击上图按钮即可回滚你指定的那个文件rebase也是很好用的pick 保留edit 编辑skip 放弃squash 合并

2019-10-20 15:29:28 1902

原创 maven 远程仓库配置

<mirrors> <mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> ...

2019-10-20 15:24:54 96

原创 Google protobuf 编码解码

官网https://developers.google.com/protocol-buffersProtocol buffers are a language-neutral, platform-neutral extensible mechanism for serializing structured data.protobuf是一个跨语言,平台的,可以序列化结构性数据的可扩展解决...

2019-10-19 13:53:05 1361

原创 Java序列化编解码器

ServerBootstrap bootstrap = new ServerBootstrap(); bootstrap.group(bossGroup, workerGroup) .channel(NioServerSocketChannel.class) .option(ChannelOp...

2019-10-19 13:36:54 312

原创 编码解码技术

什么是对象的编码,解码,其实就是序列化和反序列化,就是java对象和字节序列之间的转换过程。把对象转换为字节序列的过程称为对象的序列化。把字节序列恢复为对象的过程称为对象的反序列化。java对象的序列化方式大概有两种1. 文本方式 ,包括XML和JSON2. 二进制方式, 包括java原生序列化方式,protobuf, thrift.Java原生序列化技术的缺点...

2019-10-19 12:47:29 229

原创 分割符和定长解码器的应用

DelimiterBasedFrameDecoder 分隔符解码器FixedLengthFrameDecoder 定长解码器使用也非常简单,只需要加到Handler里面去就可以了ServerBootstrap bootstrap = new ServerBootstrap(); bootstrap.group(bossGroup, workerGroup...

2019-10-19 12:37:03 80

原创 Netty入门应用

这是一个简单的时间服务器,当客户端发来请求的时候,返回当前的时间public class TimeServer { public void bind(int port) throws Exception { // 配置服务端的NIO线程组 EventLoopGroup bossGroup = new NioEventLoopGroup(); ...

2019-10-19 10:35:44 158

原创 TCP 粘包和拆包

由于TCP无法理解上层的业务数据,所以底层无法保证数据包不被拆分和重组所以我们需要在上层设计协议栈来解决这个问题。主流的协议方案有1. 消息定长2. 在包尾部增加换行回车符3. 将消息分成消息头和消息体4. 其他为了展现未考虑TCP粘包导致的功能异常情况,将上一篇文章的时间服务器的channelRead方法改造一下。@Override public ...

2019-10-19 10:12:35 100

enwiki-latest-abstract1.xml.gz

wiki resources wiki resources wiki resources wiki resources wiki resources wiki resources

2020-08-25

Linux-0.11code.rar

Linux-0.11code.rar

2020-08-12

effectiveJava.tar.gz

effectiveJava源代码 effectiveJava源代码 effectiveJava源代码 effectiveJava源代码

2019-10-15

win7环境变量查看修改工具

win7环境变量查看修改工具

2017-02-03

win7 摄像头

win7 摄像头

2015-08-02

x86汇编语言-从实模式到保护模式.pdf

x86汇编语言-从实模式到保护模式.pdf

2015-06-11

二进制编辑器

BZ二进制编辑器,可以直接编辑机器码二进制编辑器(Binary Editor),简称:BZ编辑器,可以对二进制文件进行反编译。一般可以反编译未加壳的EXE程序。功能上类似于WinHex,但是功能不如winhex。

2015-03-30

空空如也

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

TA关注的人

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