星空下的程序猿

日日编码,月月复盘,年年总结

二十三种设计模式总结

1 感想 设计模式大概花了两个月的时间来整理,说实话12月份写的现在已经忘记的差不多了,究其原因只是了解原理并没有落地使用,所以要想真正的掌握需要自己有意识的在项目中使用,这也是很多公司面试的要求。 在前期一直没有一个写作思路,不知道如何来写才能让自己或者别人更好的理解,网上也有很多大神写的关于设...

2019-01-29 10:15:51

阅读数 147

评论数 1

leetCode|只出现一次的数字

题目:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 示例 1: 输入: [2,2,1] 输出: 1 示例 2: 输入: [4,1,2,1,2] 输出: 4 J...

2019-08-20 07:24:43

阅读数 25

评论数 0

leetCode|合并两个有序链表

题目:将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4-&...

2019-08-19 07:21:17

阅读数 23

评论数 0

面试|详细分析ScheduledThreadPoolExecutor(周期性线程池)的原理

ScheduledThreadPoolExecutor 在进一步了解ScheduledThreadPoolExecutor类之前,先学习下ScheduledFutureTask类的构造。 1. ScheduledFutureTask 类的继承图: 类图显示,该类实现Runnable接口并继承Fu...

2019-08-18 23:23:49

阅读数 58

评论数 0

leetCode|有效的括号

题目:给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。 示例 1: 输入: “()” 输出: true 示例 2: 输入...

2019-08-17 23:57:07

阅读数 25

评论数 0

算法|最长公共前缀

题目:编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 “”。 示例 1: 输入: [“flower”,“flow”,“flight”] 输出: “fl” 示例 2: 输入: [“dog”,“racecar”,“car”] 输出: “” 解释: 输入不存在公共...

2019-08-17 07:19:53

阅读数 25

评论数 0

面试|详细理解优先队列DelayedWorkQueue

DelayedWorkQueue优先队列 该队列是定制的优先级队列,只能用来存储RunnableScheduledFutures任务。堆是实现优先级队列的最佳选择,而该队列正好是基于堆数据结构的实现。 1.关于堆的一些知识 堆结构是用数组实现的二叉树,数组下标可以表明元素节点的位置,所以省去指针的...

2019-08-16 19:23:41

阅读数 54

评论数 0

算法|罗马数转整数

题目:罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字...

2019-08-14 22:36:17

阅读数 25

评论数 0

算法|回文数判断

题目:判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数 示例1: 输入:121 输出:true 示例2: 输入:10 输出:false 示例3: 输入:-121 输出:false 代码: class Solution { public boolean ...

2019-08-14 06:49:22

阅读数 34

评论数 0

面试|newFixedThreadPool,newCachedThreadPool和newScheduledThreadPool的区别

前面主要分析ThreadPoolExecutor类的创建和运行过程,今天学习Executors类。 1.Executors类和Executor类的关系 Executor是含有执行提交Runnable任务的接口。如果你看了关于ThreadPoolExecutor类的分析,那么就知道线程池间接...

2019-08-13 00:23:44

阅读数 26

评论数 0

程序人生|《阶层跃迁》读后感

前段时间读了《阶层跃迁》这本书,这是一篇读后感;总体感觉书中的内容还行,适合大学生以及刚入职场的菜鸟看,不适合已经成家立业的人看,但最后的育儿经验还是可以参考下的。书中的内容对我们的实践具有一定的指导作用。 概括 这本书的主题很明了,主要围绕“阶层”和“跃迁”这两个关键词来讲;这里我大概列举下书中...

2019-08-11 14:48:30

阅读数 124

评论数 0

面试|ThreadPoolExecutor中的线程如何从等待队列获取任务

1.问题引出 我们知道一个线程创建的时候就会附带一个Runnable任务,如果该Runable任务执行完毕后,该线程如何从线程池的等待队列中获取一个任务呢? 上一篇博客讲到线程池中线程和该线程的第一个任务封装在一个Worker类中,这个Worker类本身实现了Runnable接口,源码定义: ...

2019-08-07 23:58:54

阅读数 61

评论数 0

面试|ThreadPoolExecutor处理Runnable任务过程源码分析

本篇博文主要介绍线程池如何接收并处理任务,在此之前你需要了解下面两个知识点: ①ThreadPoolExecutor创建过程以及各参数分析; ②线程池5种状态的表示方法以及原理; 了解上面两个知识点才能更好的理解本篇文章。 0.引言 线程池处理任务的逻辑决定于当前线程数(work...

2019-08-07 00:12:02

阅读数 129

评论数 0

面试|ThreadPoolExecutor有哪几种状态以及如何表示?

上一篇分析线程池的创建过程,那么本篇就要学习下线程池如何处理任务。本篇涉及到大量的源码分析,所以可能会有些枯燥,但我会尽量化繁为简,希望能够通俗易懂。 在学习线程池如何处理提交的任务之前,有必要了解下线程池的运行状态。我们应该知道一个线程的状态分为创建(NEW)、运行(RUNNABLE)、阻塞(...

2019-08-04 13:03:28

阅读数 139

评论数 0

面试|简述下ThreadPoolExecutor线程池创建过程以及参数含义

线程池是并发里面最经常使用的工具类,所以想要晋升为中级Java工程师,学好并发的前提就是学好线程池。这里会介绍关于线程池的一些内容,比如线程池的创建过程和原理,如何理解线程池的各种状态以及之间的转换,理解面试中常说的FixedThreadPool,single Java语言关于线程池的类图: ...

2019-08-03 09:58:10

阅读数 238

评论数 0

面试|详细了解Java中的字符流

上一篇博客讲了IO流中的字节流,分别介绍输入字节流和输出字节流的类结构图; 主要介绍字节流的读取方式和输出方式,分表对应着read()方法和write()方法;然后介绍不同形式的来源有不同的读取方式,同时根据输出的目的地不同有不同的输出方式。具体的内容可以看这里,这里我们介绍IO流中的字符流。 ...

2019-07-30 06:55:25

阅读数 232

评论数 3

面试|详细了解Java中的字节流

在Java中有一个名为java.io的包定义Java世界数据的输入(input)和输出(output);IO流根据读取的形式和结果的不同分为:字节流和字符流;根据数据流向不同分为:输入流和输出流; 1.字节流和字符流的区别 字节流,顾名思义就是以字节的形式读取文本内容到内存中;而字符流则是以字...

2019-07-28 21:29:15

阅读数 256

评论数 4

程序人生|毕业一年有感

毕业一年有感 不知道为什么,最近一直想写这篇文章但又无从下手,拖了快两个星期;我想大概是自己太懒,没有好好总结过去的一年,也就觉得没什么可写吧。但无论如何,终究还是提笔记录过去的一年。 毕业出来工作,对我而言感觉并没有什么新奇和不适应,这些新奇和不适应早在研一进入导师公司的时候就经历过,深知整...

2019-07-22 03:52:16

阅读数 10278

评论数 33

实战项目|自定义注解实现POJO类到CRUD语句的映射

1.前言 前段时间一直在整理Java基础面试题,大大小小共有二十余篇,虽然不足市场上现有面试题的十分之一,但每一个面试题都是从最基础的概念、作用、原理和使用场景等方面来解释的,对我自己而言,这个过程很痛苦也很快乐;痛苦的是深夜撸代码之余还要撸文档,但学完之后能够加深对Java语言的理解并且能够收...

2019-07-20 13:07:51

阅读数 140

评论数 1

面试|能说说你理解的泛型吗

这片博文围绕Java语言的泛型特性作了详尽的介绍。主要包括以下几个内容: 泛型的概念和作用,产生背景 泛型作为一种Java语言特性,如何定义泛型 介绍代码层面泛型的表达方式:泛型通配符和有限通配符 介绍泛型方法的定义和使用 泛型使用过程中的注意事项 1.泛型的概念和作用 泛型...

2019-07-17 02:07:43

阅读数 1243

评论数 2

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