自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 ReentrantReadWriteLock

JUC锁: ReentrantReadWriteLock详解ReentrantReadWriteLock源码分析类的继承关系public class ReentrantReadWriteLock implements ReadWriteLock, java.io.Serializable可以看到,ReentrantReadWriteLock实现了ReadWriteLock接口,ReadWriteLock接口只是定义了读锁和写锁的方法体,具体实现需要到子类中去定义。同时还实现了序列化接口。类的内部

2020-09-21 07:28:28 185

原创 UC锁 锁核心类AQS详解

JUC锁: 锁核心类AQS详解前几天已经总结过AQS的相关知识点。但是总感觉学的不够扎实,今天根据网上的blog在此进行总结。什么是AQS、为什么它是核心?AQS是用来构造锁和同步器的框架,中文队列同步器。在java中有很多的同步器都是由AQS作为基础核心的。比如:ReentrantLock、Semaphore等等。程序员也可以自己利用AQS定义符合自己需求的同步器。AQS的和核心思想?底层数据结构是什么?核心思想:**宏观:**AQS的核心思想是,如果一个线程正在请求一个空闲的共享资源,那么A

2020-09-21 07:22:20 343

原创 JUC原子类: CAS, Unsafe和原子类详解

JUC原子类: CAS, Unsafe和原子类详解CASCAS的全称是Compare-And-Swap,中文含义就是对比并交换。CAS并不是java中的方法,他实际上是CPU的原子指令,==其作用是让CPU先比较两个值是否相等,然后根据判断条件原子性的更新某个位置的值。==CAS是基于硬件平台(Intel、Linux)的汇编指令,也就是说CAS是靠硬件来实现的。而在JVM或者JDK源码中,只是封装了汇编调用方法。比如AtomicInteger类便是使用了这些借口来完成多线程的安全性操作。CAS:输入两

2020-09-11 21:50:50 525

原创 java并发编程的艺术-Lock

Java并发编程的艺术-Lock1、锁的内存语义锁可以让临界区互斥执行。对一个锁的解锁,happens-before与随后这个锁的加锁操作。当线程释放锁时,JMM会把线程对应的本地内存中的共享变量刷回主内存,当另一个线程获取锁的时候,JMM会把其本地内存区域的共享变量全都失效,保证锁的临界区域中的共享变量只能从主内存中读取。线程A释放锁,相当于线程A向接下来马上要获取锁的线程传输消息,消息一般指的是线程A对于共享变量的修改。线程B获取锁,相当于线程B接收了释放锁线程的发来的消息以上这两个过程

2020-09-11 21:33:42 282

原创 HashMap源码分析

HashMap源码分析1、简介HashMap是非同步的,即线程不安全的。HashMap中的key和value都可以为null。public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable {HashMap继承自AbstractMap,并且实现了Map、Cloneable、Serializable接口。2、构造函数publi

2020-09-03 16:35:52 159

原创 ArrayList源码分析

ArrayList源码分析在Arrays源码分析中,我们提到ArrayList是Array的内部类,并不是其子类。所以有的初始化方法是不对的,具体可以看Arrays.md。线程不安全1. ArrayListpublic class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializablepublic

2020-09-03 16:33:33 102

原创 Arrays源码分析

Arrays源码分析简介Arrays.class中是对array进行操作的类,主要的操作包括排序和搜索。如果array的引用为空,则会抛出空指针异常NullPointerException方法1.rangeCheck 数组越界检查private static void rangeCheck(int arrayLength, int fromIndex, int toIndex) { if (fromIndex > toIndex) { throw new

2020-09-03 16:32:43 246

原创 第8章-虚拟机字节码执行引擎

第8章-虚拟机字节码执行引擎运行时栈帧结构栈帧是虚拟机运行时数据区的java虚拟机栈的基本单位。栈帧是支持虚拟机进行方法调用和方法执行的数据结构,栈帧中存储了方法的局部变量表和操作数占、动态链接、方法返回地址等信息。每一个java方法从开始调用到执行结束,都对应着一个栈帧在虚拟机栈里面的入栈到出栈的过程。栈帧中需要多大的局部变量表、多深的操作数栈,在编译期间都已经完全确定下来了。与运行期间的变量数据无关。在活动的当前线程中,只有位于栈顶的栈帧才是有效地,被称为当前栈帧,这个栈帧相关联的方法是当前

2020-09-03 16:29:38 99

原创 第8章-虚拟机字节码执行引擎

第8章-虚拟机字节码执行引擎运行时栈帧结构栈帧是虚拟机运行时数据区的java虚拟机栈的基本单位。栈帧是支持虚拟机进行方法调用和方法执行的数据结构,栈帧中存储了方法的局部变量表和操作数占、动态链接、方法返回地址等信息。每一个java方法从开始调用到执行结束,都对应着一个栈帧在虚拟机栈里面的入栈到出栈的过程。栈帧中需要多大的局部变量表、多深的操作数栈,在编译期间都已经完全确定下来了。与运行期间的变量数据无关。在活动的当前线程中,只有位于栈顶的栈帧才是有效地,被称为当前栈帧,这个栈帧相关联的方法是当前

2020-09-03 16:23:18 146

原创 第7章-类加载机制

第7章-类加载机制类加载发生在虚拟机之外1 概述1.1 什么是类加载机制虚拟机把描述类的数据从Class文件加载到内存中,并对数据进行校验、转换解析、和初始化,最终形成可以被java虚拟机直接使用的java类型,这就是类加载机制。类加载机制发生在java程序运行阶段1.2 类加载的时机当JVM第一次主动引用类的时候,加载该类。但当是被动引用的时候并不会引发类的加载操作。也就是说,JVM对于类的加载,并不是一口气直接加载所有的类,只是在用到某个类的时候,才对此类进行加载。1.3 主动引用和被动

2020-09-03 16:17:50 111

原创 第3章-垃圾收集器和内存分配策略

第3章-垃圾收集器和内存分配策略[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5Hz7NvWZ-1599120408711)(https://github.com/TangBean/understanding-the-jvm/raw/master/Ch1-Java%E5%86%85%E5%AD%98%E7%AE%A1%E7%90%86%E6%9C%BA%E5%88%B6/pic/%E5%88%A4%E6%96%AD%E5%AF%B9%E8%B1%A1%E7%9A%84%E7

2020-09-03 16:11:40 155

原创 第2章-Java内存区域和内存溢出异常

第二章·Java内存区域和内存溢出异常1.JDK8中的JVM内存布局图1.1程序计数器简介:程序计数器是一块比较小的内存空间,可以看作是当前线程所执行字节码指令的行号指示器。字节码解释器在工作时通过改变这个计数器的数值,完成字节码指令的跳转,从而完成分支、循环、跳转等操作。多线程与线程私有:JVM中多线程的实现,是通过线程之间轮流切换并分配处理器执行时间来完成的,所以在视觉上,感觉是同步的。实际上,在特定时刻,只有一个线程在执行。因此,为了保证线程恢复之后,能够从上次的断点位置,继续执行

2020-09-03 16:06:15 184

原创 目标检测系列一:RetinaNet之anchor

前言自进入吉大,开始硕士生活之后,本人便很少有时间写一些blog,毕竟忙起来之后时间真的比较紧,不过细想想感觉自己也没忙出个什么。这次,导师给安排的项目是病变细胞检测的项目(Emmmmm,这是我的第三个项目,我研一),在深度学习领域上,属于目标检测的范畴。我主要采用的是RetinaNet,那么今天简单总结一下anchor的相关知识。什么是Anchor为什么会出现anchor、anchor处...

2020-03-22 21:19:30 5257 8

原创 卷积神经网络总结

深度学习系列~卷积神经网络漫谈毕业设计顺利结束,这三个月以来每天都有事做的感觉真的很好,能够专注的去读论文、写代码、写论文,并且毕设期间确实学到了很多东西,尤其是大学四年很少涉及的算法,这几个月通过不断地学习与编码实践,感觉自己的算法能力稍稍提高了些,也对自己未来研究生阶段的学习增添了信心吧。福利后台回复"机器学习"可获得电子版西瓜书等资源,回复"深度学习"可获得花书等资源。简介本篇文...

2019-06-19 19:16:47 1019

原创 解决Deepin系统下,有线连接总是获取地址问题

Deepin有线网络问题解决简介:在使用了整整4个月ubuntu之后,虽然我很感叹于Ubuntu的简洁,以及写代码的方便。不过我更无奈的是Ubuntu的Gnome图形化界面和文件系统的脆弱性,根本经不起“重启”、“强关”的打击,恰逢毕设全部完毕,代码也都上传至github。所以今天重新安装Linux操作系统——国产“deepin"。但是deepin在安装完之后,却发现只要重启,有线网络便不可...

2019-06-03 19:13:49 7626 2

原创 机器学习实战三——步履维艰svm推导

简介:清明过后,也快一周的时间了,毕设还在计划中进行。昨天晚上和一个考研到西安交通大学的朋友聊天,也互相交流了一下看法,因为他是做蚁群算法的,所以说也都算是算法类的毕设。能够感觉到他对自己的要求也很高,也都是自己独立推导数学公式,优化算法,哈哈,以后又多了一个能够交流的小伙伴。然后也跟哈深的基友交换了看法,都是感觉自己能够看懂别人的算法,但是自己独立实现还是有困难,enmmmmm还是自身底蕴不够...

2019-04-12 11:49:37 325

原创 机器学习实战二——贝叶斯和朴素贝叶斯

简介:在上一篇博文中,机器学习实战一——朴素贝叶斯中文情感分类模型我们介绍了如何把朴素贝叶斯应用到中文情感的分类上来,以及自然语言处理的简单使用,当然无论从准确性、还是文本的特征处理上来说,做法都相当稚嫩,可改善的地方也比较多。今天打算总结一下贝叶斯的数理推导以及朴素贝叶斯在机器学习的应用,要尽快写下来,以防遗忘。概率论基本概念及贝叶斯和公式贝叶斯公式p(y∣x)p(y|x)p(y∣x)...

2019-04-04 13:37:29 637

原创 机器学习实战一——朴素贝叶斯中文情感分类模型

简介:考研复试顺利结束,目前正忙于毕业设计——《网络文本数据的爬取与数据分析》,如题,概括的说包括两项任务,一个是爬虫与数据采集,另外一个是进行数据分析。目前爬虫工作全部完成,爬取的内容是豆瓣的电影评论(23000条),后文我会提供数据下载链接。而对于后者数据的分析,需要做的主要工作是对于评价文本进行情感的分类。也就是积极或者消极。对于其初步实现,初步计划是使用朴素贝叶斯、svm、cnn三种方法...

2019-04-02 11:01:01 10058 7

转载 python 遍历避免list index out of range 超界问题 ----使用句柄遍历

https://blog.csdn.net/qq_27261889/article/details/80422528

2019-03-31 12:23:08 19361

原创 Ubuntu搭建数据分析开发环境----Anaconda+jupyter_notebook+vscode

Ubuntu搭建数据分析开发环境----Anaconda+jupyter_notebook+vscodeUbuntu数据分析环境搭建考研结束,成功上岸,目前处于空档期,所以打算好好做毕设的同时,也要额外学习一些别的东西,比如目前正在学习的数据分析课程. 今天利用晚上的时间搭建了一下数据分析的开发环境.记录一下,以防遗忘简介Anaconda jupyter_notebookAnaconda...

2019-02-27 09:14:51 1653

原创 ubuntu 使用github

ubuntu默认安装 git 无须手动安装第一:配置全局账号及邮箱信息git config --global user.name "Your name" //用户名git config --global user.email "your [email protected]" //邮箱信息第二:生成ssh秘钥ssh-keygen -t rsa -C "GitHub的邮箱地址"...

2019-02-23 10:32:11 146

原创 Ubuntu18.0.4 安装 pgadmin4 远程连接 (自用)

最近接了个爬虫项目,需求很简单,就是爬一下速卖通的网站,不过要求是每天固定时间爬取,而且听说反爬虫机制很变态。由于客户的数据库放在公司的服务器上,所以只能使用pgadmin4等类似的数据库gui远程连接上,毕竟如果连都连不上的话 ,就算爬虫写出来也没有用。简单介绍下 ubuntu安装pgadmin4的操作注意:希望使用python3环境 ,因为python3环境直接支持pgadmin4的环...

2019-01-19 08:08:58 1424

原创 windows解决端口号冲突

解决端口冲突,无非就是找到端口所冲突的端口号,进而找到占用此端口号的进程,杀死进程就可以了。命令一:查看端口号(以1085端口为例)netstat -ano 命令二:查找占用端口号的进程netstat -ano|findstr "1085"如上图所示,此进程编号(pid)为16524命令三:杀死进程,解放端口taskkill /pid 16524 -t -f...

2018-02-22 11:46:28 20262

原创 java词云推荐(KUMO)

hello,各位,大年初二,给大家拜年了!今天给大家介绍一下,使用java生成词云的方法和框架——KUMO(来自github),KUMO是一款使用java编写,应用于词频分析,词云生成的开源技术。不过应用不算广泛,毕竟现在python生成词云wordcloud太方便了,KUMO的出现方便了更擅长使用java的同学。那好,下面做简单介绍:1.准备词语文本:实例如下您可能会问,这么多词...

2018-02-17 13:00:51 14986 9

原创 2018 02 11 告别选择困难症——webmagic爬虫爬取拉勾网职位信息

我好久没来csdn写文章了,为什么呢?说句实话,其实不是自己不来写文章了,而是自己太关注形式化的东西了,有一段时间把文章写在github上面,感觉有自己的站点很特殊,很与众不同。其实用github来写文章确实是很不错的,使用mackdown标记语言给人一种高效编写的感觉。所以打算好好利用这两个平台,csdn的简洁性,可以让自己在使用windows系统时写一写技术文章同时很好地与他人进行评论交流。在...

2018-02-11 23:36:33 10033 7

原创 Max Consecutive Ones

Given a binary array, find the maximum number of consecutive 1s in this array.给定一个二进制数组,查找这个数组中连续的1的最大数量。Example 1:Input: [1,1,0,1,1,1]Output: 3Explanation: The first two digits or the

2017-08-16 21:37:23 243

原创 Find All Numbers Disappeared in an Array

Given an array of integers where 1 ≤ a[i] ≤ n (n = size of array), some elements appear twice and others appear once.Find all the elements of [1, n] inclusive that do not appear in this array.

2017-08-10 22:44:43 184

原创 Move Zeroes

Given an array nums, write a function to move all 0's to the end of it while maintaining the relative order of the non-zero elements.给定一个数组nums,编写一个函数,在保持非零元素的相对顺序的同时,将所有的0移动到它的末尾。For example, g

2017-08-08 22:49:07 204

原创 Contains Duplicate

Given an array of integers, find if the array contains any duplicates. Your function should return true if any value appears at least twice in the array, and it should return false if every element

2017-08-07 21:57:20 224

原创 Two Sum II - Input array is sorted

Given an array of integers that is already sorted in ascending order, find two numbers such that they add up to a specific target number.The function twoSum should return indices of the two numb

2017-08-05 21:43:38 195

原创 Maximum Product of Three Numbers

Given an integer array, find three numbers whose product is maximum and output the maximum product.给定一个整数数组,查找三个数字,它们的乘积是最大的,并且输出最大的乘积。Example 1:Input: [1,2,3]Output: 6 Example 2:Input...

2017-08-03 10:23:07 223 1

原创 Maximum Average Subarray I

Given an array consisting of n integers, find the contiguous subarray of given length k that has the maximum average value. And you need to output the maximum average value.给定一个由n个整数组成的数组,查找给定长度

2017-08-02 16:28:45 234

原创 最大字段和算法

最大字段和算法:这个算法在本学期的课程中,已经稍作了解。不过印象不够深刻。今天重新复习一下,加深理解。最大字段和,无非就是三种情况:①MAX在左半部分②MAX在右半部分③MAX在中间①②均可以使用递归来解决,情况三也并不是很复杂。先附上代码,然后逐条解释。public class Solution{ public int maxSubArray(int[] n

2017-07-31 21:43:40 1173

原创 VScode编辑器 ~常用快捷键

官方快捷键大全:https://code.visualstudio.com/docs/customization/keybindingsVisual Studio Code是个牛逼的编辑器,启动非常快,完全可以用来代替其他文本文件编辑工具。又可以用来做开发,支持各种语言,相比其他IDE,轻量级完全可配置还集成Git感觉非常的适合前端开发。 所以我仔细研究了一下文档未来可能会

2017-07-31 20:05:30 1281

原创 Search Insert Position算法

Given a sorted array and a target value, return the index if the target is found. If not, return the index where it would be if it were inserted in order.You may assume no duplicates in the array.

2017-07-29 22:36:33 250

原创 Remove Element(去除数组中重复的值)

Given an array and a value, remove all instances of that value in place and return the new length.Do not allocate extra space for another array, you must do this in place with constant memory.

2017-07-26 21:34:45 675

原创 Remove Duplicates from Sorted Array

public class Solution { public int removeDuplicates(int[] nums) { if (nums == null || nums.length == 0) { return 0; } int last = 0; for (int i = 1; i <

2017-07-26 09:32:27 166

原创 Two Sum算法

①算法描述:Given nums = [2, 7, 11, 15], target = 9,Because nums[0] + nums[1] = 2 + 7 = 9,return [0, 1].解决方法:  一:使用java for循环,暴力搜索方式public int[] twoSum(int[] nums, int target) { for (int

2017-07-24 21:34:22 650 1

空空如也

空空如也

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

TA关注的人

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