自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Yanliang

The man who has made up his mind to win will never say

  • 博客(87)
  • 资源 (5)
  • 收藏
  • 关注

原创 ubuntu18.04 初体验 -- 自定义主题和配置

原文地址Ubuntu18.04 Bionic Beaver(仿生海狸)已正式发布。该版本具有Canonical5年的支持还更新。听到这个消息笔者立马安装了一台体验。Ubuntu18.04预装了GNOME 3 Desktop。GNOME3是一个可定制的桌面环境。你可以调整它以适应你的日常需求。图标,主题,光标主题和许多其他内容都可以更改。下面我们来为ubuntu18.04自定义一些...

2018-04-29 19:21:48 27463

原创 LeetCode – 769. Max Chunks To Make Sorted

Given an array arr that is a permutation of [0, 1, ..., arr.length - 1], we split the array into some number of "chunks" (partitions), and individually sort each chunk.  After con...

2019-02-14 15:24:25 422

原创 LeetCode – 768. Max Chunks To Make Sorted II

This question is the same as "Max Chunks to Make Sorted" except the integers of the given array are not necessarily distinct, the input array could be up to length 2000, and the elements could b...

2019-02-14 15:21:19 475

转载 一篇关于CountDownLatch的好文章

CountDownLatch简介CountDownLatch是一种java.util.concurrent包下一个同步工具类,它允许一个或多个线程等待直到在其他线程操作执行完成。使用场景:在开发过程中,经常会遇到需要在主线程中开启多条线程去并行执行任务,并且主线程需要等待所有子线程执行完毕后再进行汇总的场景,CountDownLatch的内部提供了一个计数器,在构造闭锁时必须指...

2019-02-13 11:33:39 518

原创 阻塞队列 BlockingQueue

BlockingQueues在java.util.concurrent包下,提供了线程安全的队列访问方式,当阻塞队列插入数据时,如果队列已经满了,线程则会阻塞,等待队列中元素被取出后再插入,当从阻塞队列中取数据时,如果队列是空的,则线程会阻塞,等待队列中有新元素。BlockingQueue的核心方法package java.util.concurrent;import java....

2019-02-13 11:32:14 244

原创 Linux系统启动过程剖析

想要更好的了解Linux系统的运行原理,了解系统启动的流程是非常有必要的。通常,我们按过开机电源之后,会听到机箱内发出“滴”的一声,接着屏幕上开始打印出一些字符,然后开始显示出图形界面,最后屏幕上会显示需要输入用户名和密码的登陆界面。其实不管是Linux还是Windows,从用户感官的体验来说,启动顺序都是大同小异的。下面我会详细描述一下Linux系统的启动流程。相关概念GRU...

2019-02-12 11:25:56 213

原创 Shiro - 使用EhCache缓存

在Shiro中加入缓存可以使权限相关操作尽可能快,避免频繁访问数据库获取权限信息,因为对于一个用户来说,其权限在短时间内基本是不会变化的。在上一篇Shiro – 权限控制中,当用户访问”获取用户信息”、”新增用户”和”删除用户”的时候,后台输出了三次打印信息 这对数据库来说是没必要的消耗。接下来使用缓存来解决这个问题。 引入EhCache的相关依赖<!-- s...

2019-02-12 11:24:47 392

原创 Shiro - 权限控制

在上一篇《Shiro – 登陆验证》中我们在自定义的UserRealm中继承了抽象类AuthorizingRealm,实现该类中的doGetAuthenticationInfo方法完成了登陆验证功能的实现。这次我们继续实现另一个方法doGetAuthorizationInfo()来实现权限控制功能。授权也称为访问控制,是管理资源访问的过程。即根据不同用户的权限判断其是否有访问相应资源的权限...

2019-02-12 11:23:12 251

原创 Shiro - 登陆验证

本文将利用springboot集成shiro进行用户的登陆验证功能的开发实现。springboot集成shiro需要引入以下依赖<!-- shiro-spring --><dependency> <groupId>org.apache.shiro</groupId> <artifa

2019-02-12 11:20:50 307

原创 了解Shiro

Apache ShiroApache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理。三个核心组件:Subject, SecurityManager 和 Realms.Subject即“当前操作用户”。但是,在Shiro中,Subject这一概念并不仅仅指人,也可以是第三方进程、后台帐户(Daemon Account)或其他类似...

2019-02-12 11:19:45 156

原创 Docker 十分钟动手教程

主要内容:列出Docker的版本号在Docker的官方镜像仓库,搜索别人已经制作好的Docker镜像下载镜像,并以这个镜像为模板,在Docker容器中运行一个shell命令输出“hello world”在Docker容器中安装ping软件包,把他提交为新镜像基于安装有ping软件的新镜像为模板,在Docker容器中测试ping命令工作是否正常如果测试正常,说明安装有ping软件的镜像制作成...

2019-02-12 11:18:18 333

转载 如何在2小时内用1块钱赚到100块钱?

本文来源:道君说财(微信公众号:touzijuiebu)这篇文章将会告诉大家,如何跳出自己的思维去看待问题。跳出思维的盒子,你的生活也会增加许多可能性。如何在2小时内用1块钱赚到100块钱?别担心,并不是要让你去空手套白狼或是胸口碎大石。为自己增值的办法还有很多种,你需要的只是转换一下思路,来一场不一样的思考。在斯坦福大学的课堂上,Tina Seelig 教授做了这样一个...

2019-02-12 09:37:11 2189

原创 LeetCode – 547. Friend Circles

There are N students in a class. Some of them are friends, while some are not. Their friendship is transitive in nature. For example, if A is a direct friend of B, and B is a&nbsp...

2019-02-12 09:35:28 163

原创 为什么大部分编程语言的数组的下标都从0开始?

众所周知,数组的一大优点是随机访问,如何实现随机访问呢?数组的特点:线性连续的内存空间和相同类型的数据基于以上两个特点也就决定了数组原生的支持随机访问的特性。数组是如何实现根据下标随机访问数组元素的呢?下面我们用一个长度为5的int类型的数组为例,来看一下它的具体实现 https://uploader.shimo.im/f/l1upJJqvVl8DdrnW.png如上图,数组为...

2019-02-12 09:30:23 911

原创 LeetCode – 21. Merge Two Sorted List

Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists.Example:Input: 1->2->4, 1->3->4Output: ...

2019-02-12 09:26:39 182

原创 LeetCode – 583. Delete Operation for Two Strings

Given two words word1 and word2, find the minimum number of steps required to make word1 and word2 the same, where in each step you can delete one character in eith...

2019-02-11 11:36:54 140

原创 LeetCode – 759. Employee Free Time

We are given a list schedule of employees, which represents the working time for each employee.Each employee has a list of non-overlapping Intervals, and these intervals are in sorted order.Ret...

2019-02-11 11:35:50 462

原创 LeetCode – 198. House Robber

You are a professional robber planning to rob houses along a street. Each house has a certain amount of money stashed, the only constraint stopping you from robbing each of them is that adjacent hous...

2019-02-11 11:34:55 130

原创 LeetCode – 740. Delete and Earn

Given an array nums of integers, you can perform operations on the array.In each operation, you pick any nums[i] and delete it to earn nums[i] points. After, you must...

2019-02-11 11:32:40 252

原创 LeetCode – 802. Find Eventual Safe States

In a directed graph, we start at some node and every turn, walk along a directed edge of the graph.  If we reach a node that is terminal (that is, it has no outgoing directed edges), we stop....

2019-02-11 11:31:08 204

原创 LeetCode – 739. Daily Temperatures

Given a list of daily temperatures T, return a list such that, for each day in the input, tells you how many days you would have to wait until a warmer temperature. If there is no future day for...

2019-02-11 11:29:46 210

原创 LeetCode – 718. Maximum Length of Repeated Subarray

Given two integer arrays A and B, return the maximum length of an subarray that appears in both arrays.Example 1:Input:A: [1,2,3,2,1]B: [3,2,1,4,7]Output: 3Explanation: The ...

2019-02-11 11:28:39 195

原创 LeetCode – 752. Open the Lock

You have a lock in front of you with 4 circular wheels. Each wheel has 10 slots:'0', '1', '2', '3', '4', '5', '6', '7', '8', '9' The wheels can rotate freely and wrap around: for example, we can turn...

2019-02-11 11:27:19 179

原创 LeetCode – 801. Minimum Swaps To Make Sequences Increasing

We have two integer sequences A and B of the same non-zero length.We are allowed to swap elements A[i] and B[i].  Note that both elements are in the same in...

2019-02-11 11:25:52 150

原创 LeetCode - 875. Koko Eating Bananas

Koko loves to eat bananas. There are N piles of bananas, the i-th pile has piles[i] bananas. The guards have gone and will come back in H hours.Koko can decide her bananas-per-hour eating speed ...

2019-02-11 11:23:21 212

原创 杀死进程-LeetCode-582

英文版582. Kill ProcessGiven n processes, each process has a unique PID (process id) and its PPID (parent process id).Each process only has one parent process, but may have one or more children proces...

2018-10-11 08:53:14 2627

原创 最长斐波那契序列-LeetCode-873

英文版A sequence X_1, X_2, …, X_n is fibonacci-like if:n >= 3X_i + X_{i+1} = X_{i+2} for all i + 2 <= nGiven a strictly increasing array A of positive integers forming a sequence, find the le...

2018-10-09 22:12:40 356

原创 通过@Resource获取@Bean注入的bean

首先了解一下@Resource注解和@Bean注解的作用@Bean@Bean是一个方法级别上的注解,主要用在@Configuration注解的类里,也可以用在@Component注解的类里。作用为注册bean对象。@Bean注解在返回实例的方法上,如果未通过@Bean指定bean的名称,则默认与标注的方法名相同;@Bean注解默认作用域为单例singleton作用域,可通过@Scope(...

2018-09-26 15:23:01 11560 1

原创 @JSONField注解的使用

@JSONField注解可以用在方法(method),属性(field)以及方法中的参数(parameter)上。JSONField中的name属性用来指定JSON串中key的名称。Demo:@JSONField作用在Field时,其name不仅定义了输入key的名称,同时也定义了输出的名称。public class Person { @JSONField(name = "name"...

2018-09-26 15:19:33 115120 2

原创 SpringBoot中利用MyBatis进行数据操作

原文地址本例所用环境:SpringBootMySQLMyBatisjdk1.8Maven首先我们先创建一个SpringBoot 项目。数据库连接配置##数据库连接配置(部署到哪台,对应的ip需修改)spring.datasource.url=jdbc:mysql://127.0.0.1:3306/mybatis?connectTimeout=1000&useSSL...

2018-09-20 22:50:56 2435

原创 接口和抽象类的区别

这是一个非常经典的Java基础题,再次整理出来,除了巩固之用外也是对一些新特性的总结(随着Java的不断发展,Jdk8 Jdk9的发布,接口和抽象类也发生了一些改变)。根据“国际上”的标准回答(就业季看过面经的应该有过了解)接口和抽象类是Java的两个基础机制。接口是对行为的抽象,他是抽象方法的集合。接口不用被实例化,不能包含非常量成员。所有成员默认被public stat...

2018-08-24 13:51:44 19994 2

原创 Java集合问题大汇总

原文地址Java集合Java集合框架:是一种工具类,就像是一个容器可以存储任意数量的具有共同属性的对象。Java集合中成员很丰富,常用的集合有ArrayList,HashMap,HashSet等。线程安全的有Vector,HashTable。线程不安全的有LinkedList,TreeMap,ArrayList,HashMap等等。集合中用到的数据结构有以下几种:数组:最常...

2018-07-06 18:28:56 1129

原创 利用maven创建Java项目

原文地址之前写项目的时候,一直利用的start.spring.io这个网站,直接初始化的项目文件。一直没有自己创建过maven项目。最近再写JSON解析器的时候,由于不需要使用框架,就想着自己利用maven搭建一个Java项目。MavenMaven是一个项目管理工具。主要用于jar包管理,工程打包、编译、部署之类的事情Maven也可以来做。使用Maven构建一个项目之后,在项目目录...

2018-06-29 17:10:11 598

原创 撸一个JSON解析器

原文地址JSONJSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。JSON与...

2018-06-29 17:08:46 1956 6

原创 HTTP相关面试题

原文地址HTTP协议在 OSI 七层模型中,HTTP协议位于最顶层的应用层中。通过浏览器访问网页就直接使用了 HTTP 协议。使用 HTTP 协议时,客户端首先与服务端的 80 端口建立一个 TCP 连接,然后在这个连接的基础上进行请求和应答,以及数据的交换。HTTP 有两个常用版本,分别是 1.0 和 1.1。主要区别在于 HTTP 1.0 中每次请求和应答都会使用一个新的 TC...

2018-06-26 17:47:40 792

原创 Java集合之LinkedHashMap源码解析

原文地址LinkedHashMapLinkedHashMap继承自HashMap实现了Map接口。基本实现同HashMap一样,不同之处在于LinkedHashMap保证了迭代的有序性。其内部维护了一个双向链表,解决了 HashMap不能随时保持遍历顺序和插入顺序一致的问题。 除此之外,LinkedHashMap对访问顺序也提供了相关支持。在一些场景下,该特性很有用,比如缓存。在实现...

2018-06-24 11:50:33 261

原创 Java中日期和时间的应用

原文地址今天在写项目时用到了Java中关于时间和日期方面的东西,就顺便记录下这方面的几种用法。如何取得年月日、小时分钟秒?import java.time.LocalDateTime;import java.util.Calendar;public class Test04 { public static void main(String[] args) { ...

2018-06-19 20:45:05 884

原创 Java集合之HashMap源码解析

原文地址HashMapHashMap 是 Map 的一个实现类,它代表的是一种键值对的数据存储形式。大多数情况下可以直接定位到它的值,因而具有很快的访问速度,但遍历顺序却是不确定的。HashMap最多只允许一条记录的键为null,允许多条记录的值为null。不保证有序(比如插入的顺序)、也不保证序不随时间变化。jdk 8 之前,其内部是由数组+链表来实现的,而 jdk 8 ...

2018-06-07 14:10:53 239

原创 Java集合之ArrayList源码解析

原文地址ArrayListArrayList是List接口的 可变数组的实现。实现了所有可选列表操作,并允许包括 null 在内的所有元素。除了实现 List接口外,此类还提供一些方法来操作内部用来存储列表的数组的大小。ArrayList继承自 AbstractList<E>,这是一个抽象类对一些基础的list操作做了一些封装.实现了RandomAccess 标记接口,表明...

2018-05-30 17:29:32 137

原创 Java集合之LinkedList源码解析

原文地址LinkedList在Java.util包下继承自AbstractSequentialList实现 List 接口,能对它进行队列操作。实现 Deque 接口,即能将LinkedList当作双端队列使用。实现了Cloneable接口,即覆盖了函数clone(),能克隆。实现java.io.Serializable接口,这意味着LinkedList支持序列化,能通过序列化...

2018-05-29 17:11:10 178

各大排序算法视频及源码资源--第二部分

各大排序算法资源,视频讲解+动画演示+源码+经典例题。

2018-04-05

各大排序算法视频及源码资源--第一部分

各大排序算法资源,视频讲解+动画演示+源码+经典例题。

2018-04-05

敏捷软件开发:原则、模式与实践

《敏捷软件开发:原则、模式与实践》是2003 年清华大学出版社出版的图书,作者是Robert C. Martin。本书重点讲述了如何使用uml,并通过真实案例讲解如何用极限编程来设计、测试、量构和结对编程。

2018-04-05

算法第四版

本书全面讲述算法和数据结构的必备知识,具有以下几大特色。  算法领域的经典参考书 Sedgewick畅销著作的最新版,反映了经过几十年演化而成的算法核心知识体系  内容全面 全面论述排序、搜索、图处理和字符串处理的算法和数据结构,涵盖每位程序员应知应会的50种算法  全新修订的代码 全新的Java实现代码,采用模块化的编程风格,所有代码均可供读者使用  与实际应用相结合 在重要的科学、工程和商业应用环境下探讨算法,给出了算法的实际代码,而非同类著作常用的伪代码  富于智力趣味性 简明扼要的内容,用丰富的视觉元素展示的示例,精心设计的代码,详尽的历史和科学背景知识,各种难度的练习,这一切都将使读者手不释卷  科学的方法 用合适的数学模型精确地讨论算法性能,这些模型是在真实环境中得到验证的  与网络相结合 配套网站algs4.cs.princeton.edu提供了本书内容的摘要及相关的代码、测试数据、编程练习、教学课件等资源

2018-01-09

空空如也

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

TA关注的人

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