自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(63)
  • 资源 (1)
  • 收藏
  • 关注

原创 Java反射的使用入门详解

Java反射的使用入门详解,超实用!!指程序可以访问,检测和修改它本身状态或行为的一种能力,并能根据自身行为的状态和结果,调整或修改应用所描述行为的状态和相关的语义。 反射是java中一种强大的工具,能够使我们很方便的创建灵活的代码,这些代码可以再运行时装配,无需在组件之间进行源代码链接。但是反射使用不当会成本很高!反射提供了一种机制——用来检查可用的方法,并返回方法名.

2017-12-28 19:55:30 2482 2

原创 [Java基础]并发使用场景、线程数量、线程池介绍

为什么要使用并发编程?并发编程适用于什么场景?创建多少个线程合适?我们都知道并发编程能够提高CPU利用率,提高程序执行效率,简言之,很“快”。但是:并发编程在所有场景下都是快的吗?知道它很快,何为快?怎样度量?看似再问第一句,实则在问第二句。因此并发线程适用场景就是:通过设置正确个数的线程来最⼤化程序的运⾏速度,就是说能够充分利用CPU和I/O的利用率。下面具体谈谈:这里提出两个场景:CPU密集型程序I/O密集型程序CPU 密集型程序⼀个完整请求,I/O操作可以在很短时间内完成

2021-07-22 20:14:56 683 1

原创 [Java面试基础]几道常见的多线程编程题

1.线程安全的单例模式场景引入:什么是线程安全?如何判断一个方法是线程安全的?方法只要加了锁就是线程安全的吗?当多个线程访问某个方法时,不管你通过怎样的调用方式或者说这些线程如何交替的执行,我们在主程序中不需要去做任何的同步,这个类的结果行为都是我们设想的正确行为,那么我们就可以说这个类是线程安全的。并不是只要加了锁就是安全的,只有满足了那把锁的对象是锁同一个对象才是线程安全的。比如synchronized关键字中:synchronized修饰非static方法等同于synchronized

2021-07-15 22:24:35 847 1

原创 [Java面试基础]注解、反射详解

注解和运用注解编程内容:注解的作用注解的本质反射注解信息元注解属性的数据类型及特别的属性:value数组反射机制概述类的加载与ClassLoader理解Class类并获取Class实例注解的作用格式public @interface 注解名称{ 属性列表;}格式有点奇怪,我们稍后再研究。分类大致分为三类:自定义注解、JDK内置注解、还有第三方框架提供的注解。自定义注解就是我们自己写的注解。JDK内置注解,比如@Override检

2021-07-07 15:22:28 318 1

原创 [Java面试基础]Java泛型介绍

1.1泛型概述Java泛型(generics)是JDK5中引入的一个特性,泛型提供了编译时安全监测机制,该机制允许程序员在编译时监测非法的类型。使用泛型机制编写的程序代码要比那些杂乱地使用Object变量,然后再进行强制类型转换的代码具有更好的安全性和可读性。泛型对于集合类尤其有用。泛型的本质是参数化类型,也就是所操作的数据类型被指定为一个参数。1.2 泛型的好处在不使用泛型的情况下,我们可以使用Object类型来实现任意的参数类型,但是在使用时需要我们强制类型转换。这就要求程序员明确知道实际类型,

2021-07-05 15:13:27 141

原创 [算法系列]位运算技巧+Leetcode习题

[算法系列]位运算技巧+Leetcode习题知识点:判断2的幂取反+1 & 原数 为原数即可x & (-x) == x 如何统计一个整数里面有多少个1?for(int j = i ; j > 0 ; j >>= 1) s += j & 1;两个相同的数异或为0异或的一些规律a ^ b ^ b = aa ^ b ^ a = ba ^ a = 0 //这条可以用来找出只出现了一次的数0 ^ a = a异或满足交换律

2021-03-03 22:34:00 667 1

原创 [算法系列]吃透二分查找:经典题目+解题思路+模板

0.最原始的二分查找本文勉强算是递归系列的第八篇文章吧。不过实际上本文是二分专题。以多道LC上题介绍二分的解题思路与模板。沿着递归的思路,今天我们来谈谈二分查找严格来说,二分查找和递归联系不算太紧密,本文介绍的主要是非递归版本的二分查找类型习题的解析,话不多说,先来看看原始的BinarySearch吧!给定一个没有重复元素的有序数组arr,查找目标值target的下标,若arr中没有则返回-1由于是递归系列,那我们从递归版的二分开始:(ps:本文代码中中部分边界判空条件省略) /*

2020-10-18 00:17:38 629

原创 [算法系列]递归应用——二叉树(2):一种带信息递归返回的求解方式

[算法系列]递归应用——二叉树(2):一种带信息递归返回的求解方式本文是递归系列文的第七篇,和上篇文章类似,介绍BinaryTree的解题思路。这里介绍一种和“遍历”行为类似的,自下而上递归返回信息的解题思路。其规则的写法、并不复杂的思路,可解决大多bintree中与子树有关的问题(但愿吧哈哈哈)0.引子:求二叉树节点中的最大值和最小值此题当然可以通过遍历整棵二叉树,将遍历途中遇到的最大值和最小值进行保存。遍历完成后maxVal和minVla即为所求:class MaxAndMinInBinTree

2020-09-29 07:09:11 1584

原创 [JVM]专题:类加载过程

[JVM]专题:类加载过程类的加载过程简介类的加载过程一般分为三个大阶段,加载阶段、链接阶段、初始化阶段。加载阶段:主要负责查找并加载类的二进制数据文件,其实就是class文件链接阶段:链接阶段所做的工作多,细分为如下三个阶段。验证:主要是确保类文件的正确性,比如class的版本,class文件的魔数是否正确准备:为类的静态变量分配内存,并且为其初始化默认值解析:把类的符号引用转换为直接引用初始化阶段:为类的静态变量赋予正确的初始值(代码编写阶段给定的值)当一个JVM在我们通

2020-09-22 23:45:42 517

原创 [JVM]超详细JVM系列文(1):整体结构+类加载子系统+运行时数据区—程序计数器、栈(多图长文)

JVM整体结构与概述#多图长文预警#介绍了JVM中其中各个模块的结构与功能(主要包括类装载子系统、运行是数据区中的程序计数器与栈)。按照Java代码执行的流程,从类装载器子系统出发,剖析其各个子模块的结构与功能。结合Java语言中的相关设计思路(变量的初始化、存储;对象的生命周期、方法的调用)、OOP(继承、多态),在JVM进行追根溯源,解释其本质。后续博文将介绍运行时数据区中堆、方法区,垃圾回收与调优等。首先是JVM的结构图。更加详细版:Java代码执行流程JVM的架构模型Java编

2020-08-01 09:34:14 1753

原创 [算法系列]递归应用——二叉树(1):二叉树遍历详解解+LeetCode经典题目+模板总结

本文是递归算法系列文的第7篇,依然沿着递归的脉络,介绍了常常运用递归处理问题的一个典型数据结构——二叉树。分析总结了LeetCode中的相关习题在解法上的思路和模板。本文内容如下:树的前、中、后序、层次遍历的递归和非递归写法LeetCode上树的问题分类(基本遍历、路径、计数、加和、深宽、构造、BST等)两种遍历为思想的问题(判定、比较结点或子树 以及 路径[ 和 ]、累计)【小结】在解决树的遍历相关问题时,我们是如何使用基本遍历方法,进行递归设计的?由于树的相关问题题目较多,本文介绍第

2020-07-04 14:43:38 1819 1

原创 [算法系列]数据结构之——图(1):接口定义与实现+DFS+BFS

本文以实际代码一步步地定义和实现了图的基本定义与操作。本部分包括图的定义,两种遍历,拓扑排序相关知识与实现。本文中图的实际结构与部分教材的邻接表结构有微小差异,主要是用Set替代了顶点中的链表,Map替代了存放顶点的顺序表。1.图的基本操作接口定义public interface Graph<V,E> { int edgesSize(); //边的个数 int verticesSize(); //顶点的个数 void addVertex(V v); //添

2020-06-15 23:50:09 1081

原创 [算法系列] 数据结构并查集union-find sets多图详解:介绍+2种实现+多种优化

1. 为什么会有并查集?并查集做啥用的?假设有n个村庄,有些村庄之间有连接的路,有些村庄之间没有:设计一个数据结构,能够快速执行2个操作查询2个村庄之间是否有连接的路连接2个村庄对于上面这两个需求,可以用我们已知的一些数据结构进行完成(数组、链表、平衡二叉树、集合),比如用一个数组维护所有有连接的村庄。不过这样查询find和连接union的时间复杂度都为O(n)级别的。而并查集就是专门做这两件事的数据结构:“并”union 和 “查” find并且其查询、连接的均摊时间复杂度最佳可优化

2020-05-28 22:16:43 1477

原创 [算法系列]贪心算法策略介绍+10道经典例题解析

本部分介绍“贪心算法“ 。 接下来会介绍动态规划。回顾一下之前脉络:什么是递归?如何设计递归算法? || \/常见的递归算法应用(快排、归并、堆、) || \/深入递归本质:数学归纳,递推 || \/深度遍历优先搜索(DFS)、回溯、剪枝 || \/贪心算法、动态规划那么贪心、动规与前面这些有什么联系呢?为什么要放在这里介绍?首先,贪心、动规和dfs这样的搜素算法实际很相似,是为了搜索解空间获得(满足条件)的解。DFS是按照一定的(深度优

2020-05-23 00:17:52 9244

原创 [Java系列]搞懂HashMap,看这篇足够!!(万字长文/详细深入)

本文主要是从jdk源码入手, 结合常用操作, 图文并茂, 探讨Java中HashMap的一些设计与实现原理.1.HashMap集合简介(初探)HashMap基于哈希表的Map接口实现,是以key-value存储形式存,及主要用来存放键值对. HashMap的实现不是同步的,这意味着它不是线程安全的. 它的key,value都可以为null.此外,HashMap中的映射不是有序的.jdk1....

2020-04-12 14:23:02 1661 7

原创 [算法系列]搞懂DFS(2)——模式套路+经典例题详解(n皇后问题,素数环问题)

标题[算法系列]DFS(2)——模式套路+例题详解(n皇后问题,素数环问题)本文是算法系列递归讲解中讲述dfs的第二篇, 在上一篇: [算法系列]搞懂DFS(1)——经典例题(数独游戏, 部分和, 水洼数目)图文详解中, 已经通过三个例题讲述了dfs的思路以及设计方法, 本文先归纳常见dfs套路, 总结一般思路, 之后再通过两个经典例题(n皇后, 素数环) 进行巩固加深.1. dfs常见模式...

2020-03-21 14:49:36 1681 1

原创 [算法系列]搞懂DFS(1)——经典例题(数独游戏, 部分和, 水洼数目)图文详解

[算法系列] 搞懂DFS(1)——经典例题(数独游戏, 部分和, 水洼数目)图文详解本文是递归系列的四篇文章, 往期回顾:[算法系列] 搞懂递归, 看这篇就够了 !! 递归设计思路 + 经典例题层层递进[算法系列] 递归应用: 快速排序+归并排序算法及其核心思想与拓展 … 附赠 堆排序算法[算法系列] 深入递归本质+经典例题解析——如何逐步生成, 以此类推,步步为营在前面的递归相关的...

2020-03-08 00:14:10 3943 2

原创 [算法系列] 深入递归本质+经典例题解析——如何逐步生成, 以此类推,步步为营

[算法系列] 深入递归(1)本文是递归系列的第三篇, 第一篇介绍了递归的形式以及递归设计方法(迭代改递归),;第二篇以递归为引子, 详细介绍了快排和归排以及堆排的核心思想; 本篇主要通过几个题, 从递推, 归纳法的角度, 深入了介绍了递归的本质和具体应用.往期回顾:搞懂递归, 看这篇就够了 !! 递归设计思路 + 经典例题层层递进递归应用: 快速排序+归并排序算法及其核心思想与拓展 … ...

2020-02-29 15:56:35 2620

原创 [个人向]超快速了解微信小程序:看这篇就够了!(注册、语言、框架、配额等简要说明)

[个人向]超快速了解微信小程序看这篇就够了+相关简要说明本文精炼微信小程序开发文档相关内容,旨在对初次接触并准备开发小程序的童鞋(比如自己)提供一个快速了解攻略。其中包括注册相关、语言、框架模式、相关配额等说明。在具体深入小程序文档之前可以大概浏览浏览~1 定位与介绍微信小程序是一种全新的连接用户与服务的方式,它可以在微信内被便捷地获取和传播,同时具有出色的使用体验。是一种无需安装即可使用的...

2020-02-25 14:59:00 2447

原创 [算法系列] 多维数组--超详细解答!!记几道经典的多维数组习题(顺时针打印矩阵,z字型打印矩阵等)

[算法系列] 多维数组–记几道经典的多维数组习题1. 顺时针打印二维数组传入一个二维数组1 2 3 45 6 7 89 10 11 1213 14 15 16顺时针打印出: 1 2 3 4 8 12 16 15 14 13 9 5 6 7 8 12 11 10分析: 有如下二维数组, 那么它具体打印顺序是像右面这样的:按照 1…5...

2020-02-09 21:01:47 3198 1

原创 [算法系列] 递归应用: 快速排序+归并排序算法及其核心思想与拓展 .. 附赠 堆排序算法

[算法系列] 递归应用: 快速排序+归并排序算法, 核心思想与拓展 … 附赠 堆排序算法分治: 将原问题划分成若干个规模较小而原问题一致的子问题; 递归地解决这些子问题, 然后再合并其结果, 就得到原问题的解分治模式在每一层递归上都有三个步骤:分解devide : 将原问题分解(划分)成一系列的子问题解决conquer: 递归地解决各子问题, 若子问题足够小, 则直接有解合并combi...

2020-02-03 14:01:39 7589

原创 [算法系列] 搞懂递归, 看这篇就够了 !! 递归设计思路 + 经典例题层层递进

[算法系列] 搞懂递归, 看这篇就够了 !! 递归设计思路 + 经典例题层层递进从学习写代码伊始, 总有个坎不好迈过去, 那就是遇上一些有关递归的东西时, 看着简短的代码, 怎么稀里糊涂就出来了. 今天我们就来好好好探讨递归这个东西. 本文结合他的相关概念,引出有关递归程序设计的一些例子,并加以说明, 其旨在更好地理解递归,使用递归.0 什么是递归?很多文章对于递归有很深刻的字面上的解释, ...

2020-01-30 18:18:24 10045

原创 数据库系统概念(第6版) -- 第三章SQL复习总结+作业解析 ---- 超好的学习sql的文章!!!

数据库系统概念(第6版) – 第三章SQL复习总结+作业解析 ---- 超好的学习sql的文章!!!一些比较简单的就不再赘述了, 本文总结一些概念和书上的例子, 同时也会补充一些例子(包括作业题目), 希望对同样备考这门课程的同学有所帮助(顺便点个赞哟~~).本文组织基本按照图书页码顺序,可对照参考,一些书上的例子及其修改也会给出.查询语句# select 子句用于列出查询结果中所需要的属...

2019-12-28 23:55:26 5148

原创 编译内核驱动程序步骤 -- 基于aio-3399j 平台

编译内核驱动程序步骤 – 基于firefly的aio-3399j 平台1.进入kernel/device目录中 , 创建一个目录名 , 如lowfree2.进入lowfree,创建一个hello.c, 写入如下代码#include <linux/kernel.h>#include <linux/init.h>#include <linux/module.h&...

2019-12-11 16:52:40 4283

原创 [Java高并发系列(6)]Java中线程池(2)--Callable和Future

在上一篇博文中 , 我们了解了线程池相关概念, ExecutorService 与常用的创建线程池的方法一些参数概念, 大概了解了线程池的工作流程. 介绍了三种任务队列, 四种拒绝方式, 五种线程池模型. 本文将继续介绍 ExecutorService中相关的类和接口的概念 , 具体来说 , 是Callable 和 Future相关的使用.1 Callable1.1 Runnable关于 ...

2019-12-03 09:15:08 2851

原创 [Java高并发系列(5)][详细]Java中线程池(1)--基本概念介绍

1 Java中线程池概述1.1 什么是线程池?在一个应用当中, 我们往往需要多次使用线程, 这意味着我们需要多次创建和销毁线程.那么为什么不提供一个机制或概念来管理这些线程呢? 该创建的时候创建, 能复用的时候复用, 何乐而不为呢? Java 中开辟了一种管理线程的概念 , 即为线程池.1.2 为什么要使用线程池?那么究竟线程池有啥好处? 为啥要用它呢?线程创建所需时间为T1,线程执...

2019-12-02 13:34:15 2272

原创 [Java高并发系列(4)]Java中ReentrantLock介绍 + 一道面试题

[Java高并发系列(4)]Java 中 ReentrantLock 介绍 + 一道面试题1 ReentrantLock 简介jdk中独占锁的实现除了使用关键字synchronized外,还可以使用ReentrantLock. 虽然在性能上ReentrantLock和synchronized没有什么区别,但ReentrantLock相比synchronized而言功能更加丰富, 使用起来更为...

2019-11-26 09:43:05 2878

原创 [Java高并发系列(3)]Java中CountDownLatch介绍+一道面试题

[Java高并发系列(3)]Java 中 CountDownLatch介绍 + 一道面试题1 CountDownLatch介绍1.1 CounttDownLatch有什么用允许一个或多个线程等待直到在其他线程中执行的一组操作完成的同步辅助(类)CountDownLatch 用给定的计数初始化。await( ) 方法阻塞,直到由于 countDown( ) 方法的而导致当前计数达到零,之后...

2019-11-25 14:42:36 2435

原创 [Java高并发系列(2)]Java中volatile关键字详解 + volatile与sychronized区别

[Java高并发系列(2)]Java 中 volatile 关键字详解 + volatile 与 sychronized 区别1 几个概念1.1 可见性通常,我们无法确保执行读操作的线程能适时地看到其他线程写入的值,有时甚至是根本不可能的事情。**可见性,是指线程之间的可见性,一个线程修改的状态对另一个线程是可见的。**也就是一个线程修改的结果。另一个线程马上就能看到。比如:用vo...

2019-11-21 09:16:06 3048

原创 [Java高并发系列(1)]Java中synchronized关键字详解+死锁实例

[Java高并发系列]Java 中 synchronized 关键字详解 + 死锁实例1 概述synchronized用于给某个对象加锁 , 其修饰的对象可以是代码块和方法(分为实例方法和静态方法).不是说synchronized是对代码块或方法上锁, 它锁的是对象(当然也可能是类, 不过类也算对象吧hhh — 某个Object , 或者this, 或者 xxx.class)下面来...

2019-11-20 14:33:54 2794

原创 友善 NanoPC-T4 rk3399 Ubuntu18.04环境搭建

友善 NanoPC-T4 rk3399 Ubuntu18.04环境搭建参考官方wiki:http://wiki.friendlyarm.com/wiki/index.php/NanoPC-T4/zh?spm=2013.1.0.0.68b67302fGw8GS#FriendlyCore.E7.9A.84.E4.BD.BF.E7.94.A8工具即镜像下载链接: https://pan.baidu...

2019-11-19 19:28:05 5876 1

原创 Linux下的软硬链接介绍

1 Linux下的文件与目录概念要理解文件的软硬链接 , 首先来了解了解Linux下的文件的概念吧.在 UNIX 系统中 , 操作系统为磁盘上的文本与图像、鼠标与键盘等输入设备及网络交互等 I/O 操作设计了一组通用 API ,使他们被处理时均可统一使用字节流方式. 也即是说 , UNIX系统中除进程外一切皆文件, Linux 也保持了这一特性.另外, 为了便于文件可被分类管理 , 且目录...

2019-11-01 23:43:59 2273

原创 [算法系列]优先队列,堆与堆排序

优先队列,堆与堆排序1 优先队列有时我们在处理有序元素时,并不一定要求他们全部有序. 很多情况下我们会收集一些元素, 处理当前最大的元素, 然后再收集更多元素, 再处理当前最大元素 …这种情况下, 一个合适的数据结构一个支持两种操作 : 删除最大元素和 插入元素. 这种数据类型叫做 优先队列.我们可以使用有序或无序的数组或链表实现.使用无序序列是解决这个问题的 惰性方法, 我们仅在必要的时...

2019-10-31 16:21:36 2988

原创 ubuntu16.04下: Error running 'Tomcat8.5': Address localhost:8080 is already in use

Error running 'Tomcat8.5': Address localhost:8080 is already in use8080端口被占用, 用命令查看占用的进程并kill它lsof -i:8080跟据其pid将其删除即可kill -9 进程号pid最好重新部署, 然后重启服务器...

2019-09-16 11:00:37 3062

原创 Ubuntu16.04下安装MySQL8

Ubuntu16.04下安装MySQL81.输入命令:sudo apt-get install mysql-server mysql-client2.在安装过程中会要求设置密码:New password for MySQL "root" user:#输入你设置的密码,并重复3.安装完成后检查你的安装是否成功:$ sudo netstat -tap | grep mysql表...

2019-09-16 10:25:57 3284 1

原创 Linux下BUG系列:解决deepin-wine依赖问题

简单来说,就是常见的“为满足依赖错误”,一般是由于软件安装卸载冲突所造成的。报错:root@lowfree03:/home/lowfree# apt-get install libc6-dev:i386正在读取软件包列表... 完成正在分析软件包的依赖关系树 正在读取状态信息... 完成 您可能需要运行“apt-get -f install”来纠正下列错误:下...

2019-08-27 11:45:09 20418 9

原创 PC机与开发板间搭建nfs

PC机与开发板间搭建nfs PC端(nfs-server):装环境apt-get install nfs-kernel-server配置vim /etc/exports在里面追加一行:/home/lowfree/rk3399_nfs *(rw,sync,no_root_squash,no_subtree_check)前面的路径表示server上要共享的目录;*号表示所有i...

2019-08-10 10:51:55 2881

原创 gstreamer v4l2预览双摄像头

gstreamer预览双摄像头PC环境:Ubuntu16.04板子环境:RK3399linaro-alip 4.4.103 aarch64 Debian1.安装gstreamer环境按照网上或其他文档安装或多或少有错,经测试以下步骤能适用gst-launch-1.0 --version #查看版本,低于是1.14的一定要升级到 1.14移除原先相关的 Gstreamer...

2019-08-09 16:34:41 6648

原创 Linux下BUG系列: configure: Requested 'glib-2.0 >= 2.32.0' but version of GLib is 2.0.0

编译中报glib版本太低,得装个高版本才行.看看自己 /usr/include和/usr/local下的glib版本是不是确实只有glib-2.0$find /usr/local -name '*glib-2*'; find /usr/include -name '*glib-2*'结果/usr/local/include/glib-2.0/usr/local/lib/pkgconf...

2019-07-31 11:10:05 5344

原创 Ubuntu16.04下调试gstreamer+rkisp(一)

在上一个关于luvcview任务中发现许多isp功能未实现,考虑用gstreamer再找到独立rkisp插件进行编写.目前由于相关资料较少,可能没有直接的rkisp插件,好在能在githup上找到Linux-Rockchip相关文件.https://github.com/rockchip-linux根据 <RK_Linux_Camera_Gstreamer 应用开发>1.搭建gs...

2019-07-30 17:39:00 6516 1

c3p0-0.9.1.2.jar

c3p0-0.9.1.2,java一种数据库连接池jar包,并包含src文件

2017-12-30

空空如也

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

TA关注的人

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