自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 深入理解Java并发编程之线程池技术

本文转载自个人掘金博客:https://juejin.im/post/5ee75a2b6fb9a0480170718f线程池的好处Java中的线程池是运用场景最多的并发框架,几乎所有需要异步或并发执行任务的程序都可以使用线程池。在开发过程中,合理地使用线程池,相对于单线程串行处理(Serial Processing)和为每一个任务分配一个新线程(One Task One New Thread)的做法能够带来3个好处。降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。 提高响.

2020-06-15 19:28:51 318 1

原创 深入理解Java并发编程之扣一下Condition

本文转载自个人掘金博客:https://juejin.im/post/5ed9a09a6fb9a047d45ba4b0前言本文为《Java并发编程的艺术》第五章第6节的读书笔记。任意一个Java对象,都拥有一组监视器方法(定义在java.lang.Object上,实际作用于这个对象对应的monitor),主要包括wait()、wait(long timeout)、notify()以及notifyAll()方法,这些方法与synchronized同步关键字配合,可以实现等待/通知模式。Condit

2020-06-12 21:09:18 215

原创 深入理解Java并发编程之Lock和AQS

本文主要为《Java并发编程的艺术》第三章的读书记录笔记Lock接口Lock vs synchronizedJava SE 5之后,并发包中新增了Lock接口(以及相关实现类)用来实现锁功能,它提供了与synchronized关键字类似的同步功能。但是,它们却有以下不同:synchronized:使用synchronized的关键字将会隐式地获取和释放锁。同时,使用什么类型的锁(偏向,轻量级锁,重量级锁)以及锁的具体实现都是由JVM底层实现。Lock接口:Lock接口相关实现类对于锁的获

2020-06-12 21:03:27 321

原创 深入理解Java并发编程之线程Thread

前言现代操作系统在运行一个程序时,会为其创建一个进程。例如,启动一个Java程序,操作系统就会创建一个Java进程。现代操作系统调度的最小单元是线程,也叫轻量级进程(Light Weight Process),在一个进程里可以创建多个线程,这些线程都拥有各自的计数器、堆栈和局部变量等属性,并且能够访问共享的内存变量。处理器在这些线程上高速切换,让使用者感觉到这些线程在同时执行。Java线程通过调用线程的start()方法进行启动,随着run()方法的执行完毕,线程也随之终止。线程优先级Jav

2020-06-01 09:13:30 184

原创 深入理解Java并发编程之把ThreadLocal扣烂

本文转载自个人掘金博客:https://juejin.im/user/5dcbe4ccf265da30454fa660/posts基本含义ThreadLocal字面意思是线程局部变量,它为每一个线程提供了独立的互不干扰的局部变量。ThreadLocal类是一个泛型类,也就是说这个局部变量可以是各种类型,比如:Long,List等等。 ThreadLocal类提供了get和set方法以在线程运行周期内获取和改变这个局部变量的值。 每一个线程的线程局部变量ThreadLocal是相互独立,互不干

2020-05-30 09:36:41 264

原创 深入理解Java并发编程之通过JDK C++源码以及Debug源码死扣Thread.join()

本文转载自个人掘金博客:https://juejin.im/post/5ece5f71f265da76de5cda58基本含义如果一个线程A执行了thread.join()语句,其含义是:当前线程A等待thread线程终止之后才从thread.join()返回。线程Thread除了提供join()方法之外,还提供了join(long millis)和join(long millis,int nanos)两个具备超时特性的方法。这两个超时方法表示,如果线程thread在给定的超时时间里没有终止,那

2020-05-27 21:37:48 294

原创 深入理解Java并发机制之volatile和synchronized

本文转载自个人掘金博客:https://juejin.im/user/5dcbe4ccf265da30454fa660本文为《Java并发编程的艺术》一书第二,三章的读书笔记。这内容之前看过几遍,不过容易忘,索性记下来吧,忘了就在看看,放在网上也方便- -。前言Java代码在编译后会变成Java字节码,字节码被类加载器加载到JVM里,JVM执行字节码,最终需要转化为汇编指令在CPU上执行,Java中所使用的并发机制依赖于JVM的实现和CPU的指令。Java内存模型(JMM)线程之间的通信

2020-05-22 21:29:33 238

原创 全方位深入理解Java包装类

前言这篇文章主要从使用角度,源码角度以及JVM内存位置等角度深入解析Java的基本数值包装类。1. 包装类1.1 包装类的定义:Java中每一种基本类型都会对应一个唯一的包装类(位于java.lang.*package中),基本类型与其包装类都可以通过包装类中的静态或者成员方法进行转换。每种基本类型及其包装类的对应关系如下表所示。 | 基本数据类型 | 包装类 | | ------------ | --------- | | byte | B

2020-05-21 21:51:15 444

原创 Python的按位取反运算符~的简单解析

Python的按位取反运算符~的解释是:对数据的每个二进制位取反,即把1变为0,把0变为1。~x 类似于 -x-1。如a =61= 0b0011 1100,按位取反后的结果是:0b1100 0011=195,可是Python中运算结果并非如此,输出的~a的结果是:~a=62,a=61~aOut[66]: -62这是怎么回事呢?计算机中的符号数有三种表示方法,即原码、反码和补码。三种表示方法均...

2018-06-26 23:43:14 12343

原创 给定一个n*m矩阵,求从左上角到右下角走的项目3个问题?

这个问题中走矩阵的格子还是定点是不一样的。这里给出两个解法。题目1:给定一个n*m矩阵,求从左上角格子到右下角格子总共存在多少条路径,每次只能向右走或者向下走。  # 题目1:给定一个n*m矩阵,求从左上角格子到右下角格子总共存在多少条路径,每次只能向右走或者向下走。# 注意走格子和走定点是不一样的# 解法1dic = {} #动态规划思想,储存单步运算的结果,避免...

2018-05-04 16:55:39 14052

原创 python统计某路径下文件个数,文件夹个数

# -*- coding:utf-8 -*-import ospath = os.getcwd() #获取当前路径num_dirs = 0 #路径下文件夹数量num_files = 0 #路径下文件数量(包括文件夹)num_files_rec = 0 #路径下文件数量,包括子文件夹里的文件数量,不包括空文件夹for root,dirs,files in os.walk(p

2017-12-19 20:04:03 19910

原创 Python 常用函数介绍及备忘

作为个人的备忘记录,所以持续更新中ing1.count统计list中某个元素的个数,listobj.count(cntobj) l = [1,1,2,2,3,3]l.count(1)22.OrderedDict 有序的字典,会记住(key,value)加入字典的顺序,打印或读取的时候按加入顺序操作 from collections import Or...

2017-11-24 16:17:28 260

原创 图核graph kernel方法Python工具包graphkernels的安装和使用

图核graph kernel是一种有效的图结构相似度的近似度量方式,针对不同的图结构(labeled graphs, weighted graphs, directed graphs, etc.) 有不同的Graph kernel。这里,我们不介绍graph kernel的算法理论,只是简单介绍下其Python工具包graphkernels的安装和使用。graphkerne

2017-11-21 11:43:40 9792 4

原创 LeetCode 86. Partition List 链表的划分 Python Solution

此题目对应于86. Partition List题目要求基于一个给定的值x对链表做一个划分partition,使得小于x的放在前,大于等于x的放在后,两部分各自保持原有顺序。解题思路很简单:1.设置两个链表,一个存放小于x的元素,一个存放大于等于x的元素2.合并两个链表,这里需要注意的是需要对第二个辅助链表的表尾进行制空,以防止出现从头到尾的循环链表。下面附上python代码:

2017-11-02 16:54:15 414

原创 LeetCode 331. Verify Preorder Serialization of a Binary Treet 二叉树前序遍历验证 Python Solution

此题目对应于LeetCode 331题目要求一个前序遍历字符串是否能对应一个二叉树,值得注意的是原二叉树的空节点都用#代替了。解这个题目需要先介绍一些预备知识:1.二叉树中节点的度数指的是该几点底下有多少个孩子节点,如下图中针对结点1,他下面有两个孩子3、4,所以说结点1的度为2;针对结点4,他下面一个孩子都没有,所以说结点4的度为0.2.二叉树中节点数和度数的关系式。

2017-10-31 16:22:11 417

原创 LeetCode 114. Flatten Binary Tree to Linked List 拉平二叉树 Python Solution

此题目对应于LeetCode 114题目要求:Given a binary tree, flatten it to a linked list in-place.For example,Given 1 / \ 2 5 / \ \ 3 4 6The flattened t

2017-10-27 09:23:40 232

转载 台大Machine Learning 2017Fall 卷积神经网络 Convolutional Neural Network

这是台大李宏毅教师Machine Learning 2017Fall课程 关于讲述卷积神经网络 Convolutional Neural Network内容的部分。课程主页如下:台大Machine Learning 2017Fall   感兴趣的可以去学习下,主页提供了教学ppt和教学视频。首先有这样一个问题,为什么CNN非常适用于图像识别?这里给出了3个解释。1.

2017-10-26 19:15:12 531

原创 LeetCode 144,94,145,102,103 Binary Tree Traversal 二叉树遍历 Python Solution

这篇文章汇总介绍 LeetCode 上的二叉树的遍历题目,由于内容可能比较多,所以持续更新中ing首先是94. Binary Tree Inorder Traversal题目要求:

2017-10-23 09:37:07 1287

原创 LeetCode 148. Sort List 单链表排序 Python Solution

此题目对应于LeetCode 148题目要求:Sort a linked list in O(n log n) time using constant space complexity.用O(n log n) 的排序算法,很容易让人想到用递推去做。思路就是将单链表一分为二划分成两个子问题,然后递归调用算法,最后在做一个对两个有序的单链表的合并操作(O(n))。

2017-10-20 21:00:31 1483

原创 LeetCode 105,106. Construct Binary Tree 重建二叉树 Python Solution

此题目对应于 LeetCode 105题目要求:Given preorder and inorder traversal of a tree, construct the binary tree.Note:You may assume that duplicates do not exist in the tree.重建二叉树是二叉树的基本操作,通常给出二叉

2017-10-16 09:31:55 1212

转载 台大Machine Learning 2017Fall HW0字数统计和图片淡化 解答

这是台大李宏毅教师Machine Learning 2017Fall课程 的第0次的作业HW0课程主页如下:台大Machine Learning 2017Fall 感兴趣的可以去学习下,主页提供了教学ppt和教学视频。HW0有2个问题:Q1:出现字数统计。1.读取words.txt中的所有英文单词,单词由分隔。2.按照单词出现的次数,给予编号(0,1,2)。3.统计单词

2017-10-11 20:35:19 1230 2

原创 LeetCode 260. Single Number III Python Solution

此题目对应于 LeetCode 260题目要求:Given an array of numbers nums, in which exactly two elements appear only once and all the other elements appear exactly twice. Find the two elements that appear only

2017-10-11 17:01:59 382

原创 LeetCode 1. Two Sum Python Solution

此题目对应于 LeetCode 1此题目对应于1. 两数之和题目要求: Given an array of integers, return indices of the two numbers such that they add up to a specific target.You may assume that each input would have exactly...

2017-10-10 11:45:33 316

原创 Python求一个数对应二进制最低位为1对应的数字lowbit

要求一个数对应二进制最低位为1对应的数字lowbit,如lowbit(5),5的二进制位101,对应的结果就,001即1,lowbit(4),4的二进制位100,对应的结果就,100即4。由于计算机采用二进制补码作为数学运算,所以可以用x&-x来求得举例:x=1,原码0001,以4位表示,x的补码就是0001,   -x=-1,原码1001,-x的补码就是1111,所以x&-x =

2017-10-10 10:51:32 3027 1

原创 LeetCode 136. Single Number找数组单元素 Python Solution

此题目对应于  LeetCode 136题目要求:Given an array of integers, every element appears twice except for one. Find that single one.Note:Your algorithm should have a linear runtime complexity. Could you

2017-10-10 10:03:04 312

原创 用python介绍4种常用的单链表翻转的方法。

python,单链表反转,LeetCode

2017-09-28 20:31:28 6649

空空如也

空空如也

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

TA关注的人

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