自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(66)
  • 资源 (2)
  • 收藏
  • 关注

转载 RESTful和JAX-RS

一、简介  Java Web有很多成熟的框架,主要可以分为两类Web Application和Web Services。用于Web Application的框架包括官方的Servlet/JSP, JSTL/JSF以及第三方Struts/Spring MVC(action-based)。Web Services的项目又可以分为基于XML的(SOAP/WSDL)的和基于JSON的,Java Commu...

2018-05-29 14:48:10 465

转载 【Restful】三分钟彻底了解Restful最佳实践

https://blog.csdn.net/chenxiaochan/article/details/73716617 REST是英文representational state transfer(表象性状态转变)或者表述性状态转移;Rest是web服务的一种架构风格;使用HTTP,URI,XML,JSON,HTML等广泛流行的标准和协议;轻量级,跨平台,跨语言的架构设计;它是一种设计风格,不是一...

2018-05-29 14:37:22 214

转载 Sliding Window Median 滑动窗口中的中位数 解题报告

1 解题思想题目会给一个数组,和一个滑动窗口的大小K,让你找出当这个窗口滑动的过程中,这个K的窗口内的中位数分别是多少?最naive的方式就是在k个窗口内排序就好,这里不解释(因为开销很大啊,(n-k+1) * (k*log(k))。。这里的方法是使用两个优先队列,即出队列的顺序是按照某种排好序的方式进行的。 所以我们设立两个优先队列,这里叫做堆吧: 1、最大堆,值大的先出来 2、最小堆:值小的先...

2018-05-28 12:54:36 1925

转载 堆排序 快排 使用场景

堆排序比较和交换次数比快速排序多,所以平均而言比快速排序慢,也就是常数因子比快速排序大,如果你需要的是“排序”,那么绝大多数场合都应该用快速排序而不是其它的O(nlogn)算法。但有时候你要的不是“排序”,而是另外一些与排序相关的东西,比如最大/小的元素,topK之类,这时候堆排序的优势就出来了。用堆排序可以在N个元素中找到top K,时间复杂度是O(N log K),空间复杂的是O(K),而快速...

2018-05-28 11:01:30 14018 3

转载 深入理解Java闭包概念

闭包又称词法闭包闭包最早定义为一种包含<环境成分>和<控制成分>的实体.解释一:闭包是引用了自由变量的函数,这个被引用的变量将和这个函数一同存在。解释二:闭包是函数和相关引用环境组成的实体。注:<自由变量>:除了局部变量的其他变量 简单理解:闭包能够将一个方法作为一个变量去存储,这个方法有能力去访问所在类的自由变量。Java中闭包实现关键点:如何用变量去存储方法...

2018-05-28 09:23:53 218

转载 Java工程师成神之路(2018修订版)

https://blog.csdn.net/qq_16681169/article/details/79689085主要版本 更新时间 备注 v1.0 2015-08-01 首次发布 v1.1 2018-03-18 增加新技术知识、完善知识体系一、基础篇 JVM JVM内存结构 堆、栈、方法区、直接内存、堆和栈区别Java内存模型 内存可见性、重排序、顺序一致性、volatile、锁、final垃...

2018-05-28 08:59:12 159

转载 数据库常见死锁原因及处理

  在数据库中有两种基本的锁类型:排它锁(Exclusive Locks,即X锁)和共享锁(Share Locks,即S锁)。当数据对象被加上排它锁时,其他的事务不能对它读取和修改。加了共享锁的数据对象可以被其他事务读取,但不能修改。数据库利用这两种基本的锁类型来对数据库的事务进行并发控制。 下面总结下这两种锁造成的常见的死锁情况与解决方案:一. 事务之间对资源访问顺序的交替出现原因: 一个用户A...

2018-05-28 08:57:43 522

转载 SSL/TLS协议运行机制的概述

互联网的通信安全,建立在SSL/TLS协议之上。本文简要介绍SSL/TLS协议的运行机制。文章的重点是设计思想和运行过程,不涉及具体的实现细节。如果想了解这方面的内容,请参阅RFC文档。一、作用不使用SSL/TLS的HTTP通信,就是不加密的通信。所有信息明文传播,带来了三大风险。(1) 窃听风险(eavesdropping):第三方可以获知通信内容。(2) 篡改风险(tampering):第三方...

2018-05-28 08:37:21 108

转载 ConcurrentHashMap总结

并发编程实践中,ConcurrentHashMap是一个经常被使用的数据结构,相比于Hashtable以及Collections.synchronizedMap(),ConcurrentHashMap在线程安全的基础上提供了更好的写并发能力,但同时降低了对读一致性的要求(这点好像CAP理论啊 O(∩_∩)O)。ConcurrentHashMap的设计与实现非常精巧,大量的利用了volatile,f...

2018-05-26 18:36:28 133

转载 百度为啥HTTPS了

百度为啥Https了,有人这么一问,还真是,网上看看原因分析总结下。一种说法,服务提供商为了保护用户隐私:​为何要用HTTPS:越来越多人关注隐私,互联网的用户隐私和安全只会越来越受重视。国外在这方面已然走在了前面,全站HTTPS是未来的趋势,在天朝如今这种劫持泛滥、隐私窃取成灾的环境下,HTTPS会是用户前面一道强力的防线。无论如何,全站HTTPS对于用户还是公司本身,都是有价值的。​为何要全站...

2018-05-26 14:43:31 2542

转载 OnClick不被调用,onTouchEvent不被调用的情况是onTouch的DOWN返回true

(1)首先没有设置OnClickListener的情况下,onTouch的返回值表示的就是View对点击事件是否消耗,如果在DOWN事件传递过来时返回false,那么剩下的MOVE直到UP的事件都不会被onTouch接收到;如果在DOWN事件返回true,那么剩下的直到UP的事件都会接受到,无论你之后的返回值。 (2)在同时设置了OnTouchListener与OnClickListener之后,...

2018-05-22 16:33:50 3747 1

转载 内存溢出(oom)和内存泄漏(leak)

一、概念介绍:1、内存溢出 out of memory:是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory;比如申请了一个integer,但给它存了long才能存下的数,那就是内存溢出。2、内存泄露 memory leak:是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄露危害可以忽略,但内存泄露堆积后果很严重,无论多少内存,迟早会被占光。注:memory ...

2018-05-21 16:27:47 2044

转载 Java提高篇——静态代码块、构造代码块、构造函数以及Java类初始化顺序

https://www.cnblogs.com/Qian123/p/5713440.html阅读目录构造函数构造代码块静态代码块Java类初始化顺序静态代码块:用staitc声明,jvm加载类时执行,仅执行一次构造代码块:类中直接用{}定义,每一次创建对象时执行。执行顺序优先级:静态块,main(),构造块,构造方法。回到顶部构造函数public HelloA(){//构造函数 }关于构造...

2018-05-19 08:13:23 90

原创 React Native 中 static的navigationOptions中的点击事件不能用this

static navigationOptions = ({navigation, screenProps}) =>({ title: '厂区列表', headerRight: <Button color = "#3281DD" onPress={()=>navigation.state.para...

2018-05-17 15:12:03 3022

原创 React Native 导航栏头部右侧按钮

static navigationOptions = ({ navigation }) => ({ title: `厂区码: ${navigation.state.params.codeId}`, //导航栏头部 headerRight: <Button style={paddingright=10}title='修改密码' onPress="aaa"/&gt...

2018-05-17 14:10:15 3065

原创 Java基础知识

&和&&的区别? & 1、按位与运算 2、和逻辑与一样。但不管前面的条件是否正确,后面都执行&& 短路与。前面条件正确时,才执行后面,不正确时,就不执行,就效率而言,这个更好...

2018-05-16 07:31:57 95

转载 HTTPS

HTTPS的工作原理:①. 客户端将它所支持的算法列表和一个用作产生密钥的随机数发送给服务器;②. 服务器从算法列表中选择一种加密算法,并将它和一份包含服务器公用密钥的证书发送给客户端;该证书还包含了用于认证目的的服务器标识,服务器同时还提供了一个用作产生密钥的随机数;③. 客户端对服务器的证书进行验证(有关验证证书,可以参考数字签名),并抽取服务器的公用密钥;然后,再产生一个称作pre_mast...

2018-05-15 11:12:25 215

转载 HTTP头部

https://www.cnblogs.com/imyalost/p/5708445.htmlhttp请求和响应报文内容比较多,会分为大概四部分更新,最近比较忙,没太多时间整理- - 首先来看看报文结构吧1、http请求报文http请求报文由方法、URI、http版本。http首部字段等构成下面给大家示例一个访问my_view_page.php的请求报文首部信息GET /my_view_page....

2018-05-15 08:55:07 2956

转载 二维矩阵(杨氏矩阵)查找 、定义: 从左到右,从上到下,依次增大的矩阵

查找某元素假设矩阵为                   1     2   8   9                   2    4    9   12                   4    7   10  13                   6    8    11  15    在里面查找7,如果我们从1开始,则1的右半部分,也就是剩下矩阵的全体,都可能会存在7,这是显然不...

2018-05-15 08:09:31 1201

转载 二叉树遍历递归或者非递归

二叉树的定义:二叉树(binary tree)是结点的有限集合,这个集合或者空,或者由一个根及两个互不相交的称为这个根的左子树或右子树构成. 从定义可以看出,二叉树包括:1.空树 2.只有一个根节点 3.只有左子树 4.只有右子树 5.左右子树都存在 有且仅有这5中表现形式  二叉树的特点:性质1:在二叉树的第i层上至多有2^(i-1)个节点(i >= 1)性质2:深...

2018-05-14 07:38:10 175

转载 Java多线程的同步机制(synchronized)

一段synchronized的代码被一个线程执行之前,他要先拿到执行这段代码的权限,在 java里边就是拿到某个同步对象的锁(一个对象只有一把锁); 如果这个时候同步对象的锁被其他线程拿走了,他(这个线程)就只能等了(线程阻塞在锁池 等待队列中)。 取到锁后,他就开始执行同步代码(被synchronized修饰的代码);线程执行完同步代码后马上就把锁还给同步对象,其他在锁池中 等待的某个线程就可以...

2018-05-14 07:17:56 194

转载 线程间同步的方法

临界区(Critical Section)、互斥量(Mutex)、信号量(Semaphore)、事件(Event)的区别 1、临界区:通过对多线程的串行化来访问公共资源或一段代码,速度快,适合控制数据访问。在任意时刻只允许一个线程对共享资源进行访问,如果有多个线程试图访问公共资源,那么在有一个线程进入后,其他试图访问公共资源的线程将被挂起,并一直等到进入临界区的线程离开,临界区在被释放后,其他线程...

2018-05-14 07:13:39 231

转载 【数据结构】最小生成树之prim算法和kruskal算法

在日常生活中解决问题经常需要考虑最优的问题,而最小生成树就是其中的一种。看了很多博客,先总结如下,只需要您20分钟的时间,就能完全理解。比如:有四个村庄要修四条路,让村子能两两联系起来,这时就有最优的问题,怎样修才是做好的,如下图:第一个是网全图,后三个图的修路方案都可以1.树的定义:有n个顶点和n-1条边,没有回路的称为树生成树的定义:生成树就是包含全部顶点,n-1(n为顶点数)条边都在图里就是...

2018-05-14 07:06:33 1020 1

转载 JAVA线程与线程、进程与进程间通信

https://blog.csdn.net/ls5718/article/details/51878770I.线程与线程间通信一、基本概念以及线程与进程之间的区别联系:关于进程和线程,首先从定义上理解就有所不同1、进程是什么?是具有一定独立功能的程序、它是系统进行资源分配和调度的一个独立单位,重点在系统调度和单独的单位,也就是说进程是可以独 立运行的一段程序。2、线程又是什么?线程进程的一个实体,...

2018-05-14 06:50:21 373

转载 可重入锁

1 public class Counter{ 2 private Lock lock = new Lock(); 3 private int count = 0; 4 public int inc(){ 5 lock.lock(); 6 this.count++; 7 lock.unlock(); 8 ...

2018-05-14 06:25:37 131

转载 Spring中@Component的作用

今天在写程序的时候看见一个以前没有见过的注解(@Component),在网上查找过后,经过实践,决定把它记录下来。 1、@controller 控制器(注入服务)用于标注控制层,相当于struts中的action层2、@service 服务(注入dao)用于标注服务层,主要用来进行业务的逻辑处理3、@repository(实现dao访问)用于标注数据访问层,也可以说用于标注数据访问组件,即DAO组...

2018-05-14 06:25:21 154

转载 HashMap的实现原理

HashMap概述HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。HashMap的数据结构在Java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用),所有的数据结构都可以用这两个基本结构来构造的,HashMap也不例外。HashMap实际上是一个“链表散列...

2018-05-13 11:09:31 100

转载 如何判断单链表中有环及证明过程

问题:1.如何判断单链表里面是否有环?算法的思想是设定两个指针p, q,其中p每次向前移动一步,q每次向前移动两步。那么如果单链表存在环,则p和q相遇;否则q将首先遇到null。这里主要理解一个问题,就是为什么当单链表存在环时,p和q一定会相遇呢?假定单链表的长度为n,并且该单链表是环状的,那么第i次迭代时,p指向元素i mod n,q指向2i mod n。因此当i≡2i(mod n)时,p与q相...

2018-05-13 09:02:41 788

转载 判断两个链表是否右交点?如何找到交点?

问题描述:一个比较经典的问题,判断两个链表是否相交,如果相交找出他们的交点。思路:1、碰到这个问题,第一印象是采用hash来判断,将两个链表的节点进行hash,然后判断出节点,这种想法当然是可以的。2、当然采用暴力的方法也是可以的,遍历两个链表,在遍历的过程中进行比较,看节点是否相同。3、第三种思路是比较奇特的,在编程之美上看到的。先遍历第一个链表到他的尾部,然后将尾部的next指针指向第二个链表...

2018-05-13 08:53:33 198

转载 判断两个链表是否相交并找出交点

问题描述:一个比较经典的问题,判断两个链表是否相交,如果相交找出他们的交点。思路:1、碰到这个问题,第一印象是采用hash来判断,将两个链表的节点进行hash,然后判断出节点,这种想法当然是可以的。2、当然采用暴力的方法也是可以的,遍历两个链表,在遍历的过程中进行比较,看节点是否相同。3、第三种思路是比较奇特的,在编程之美上看到的。先遍历第一个链表到他的尾部,然后将尾部的next指针指向第二个链表...

2018-05-13 08:46:52 1111

转载 匿名内部类详解

匿名内部类匿名内部类就是没有名字的内部类;注意:匿名内部类不能定义任何静态成员、方法。匿名内部类中的方法不能是抽象的;匿名内部类必须实现接口或抽象父类的所有抽象方法。匿名内部类访问的外部类成员变量或成员方法必须用static修饰;代码:接口public interface Inner { public String say();}抽象类public abstract class Inne...

2018-05-13 07:42:13 627 1

转载 Java的静态方法不能被重写(详解!)

答案很明确:java的静态方法不能被重写。 静态成员(方法或属性)是类的成员存放在栈中,类可以直接调用(是属于类的静态成员,当然对象也可以调用,只是说你可以使用而已);实例成员是对象的成员,存放在堆中,只能被对象调用。 重写的目的在于根据创造对象的所属类型不同而表现出多态。因为静态方法无需创建对象即可使用。没有对象,重写所需要的“对象所属类型” 这一要素不存在,因此无法被重写。千言万语,不如代码:...

2018-05-13 07:28:57 1722 2

转载 startService bindService 区别

Android执行Service有两种方法,一种是startService,一种是bindService。下面让我们一起来聊一聊这两种执行Service方法的区别。 1、生命周期上的区别执行startService时,Service会经历onCreate->onStartCommand。当执行stopService时,直接调用onDestroy方法。调用者如果没有stopService,Se...

2018-05-13 07:27:58 9974

转载 Service 与 Thread 的区别

Service作为Android的四大组件之一,你或许会经常用它。当提到它时,我们都随口说,它会在后台执行长时间的任务,但是,这种表述真的对么?你是否真的了解Service,就让我们来揭开Service的真面目。ServiceAndroid Developer对于Service如下定义,A Service is an application component that can perform l...

2018-05-13 06:41:33 567

转载 Android中bindService基本使用方法概述

Android中有两种主要方式使用Service,通过调用Context的startService方法或调用Context的bindService方法,本文只探讨纯bindService的使用,不涉及任何startService方法调用的情况。如果想了解startService相关的使用,请参见《Android中startService基本使用方法概述》。bindService启动服务的特点相比于...

2018-05-13 06:16:36 4333

转载 Java程序编译和运行的过程

          Java整个编译以及运行的过程相当繁琐,本文通过一个简单的程序来简单的说明整个流程。                 如下图,Java程序从源文件创建到程序运行要经过两大步骤:1、源文件由编译器编译成字节码(ByteCode)  2、字节码由java虚拟机解释运行。因为java程序既要编译同时也要经过JVM的解释运行,所以说Java被称为半解释语言( "semi-interpr...

2018-05-12 15:53:12 4633

转载 10个经典的Java main方法面试题

1.不用main方法如何定义一个类?不行,没有main方法我们不能运行Java类。在Java 7之前,你可以通过使用静态初始化运行Java类。但是,从Java 7开始就行不通了。2.main()方法需要的参数不是字符串数组?不是的,main()方法的参数必须是字符串数组。但是,在引进变参时,你可以将字符串类型的变参作为参数传递给main()方法。变参一定得是数组。?1234567package c...

2018-05-12 15:29:45 533

转载 Android性能优化之布局优化

Android性能优化方面也有很多文章了,这里就做一个总结,从原理到方法,工具等做一个简单的了解,从而可以慢慢地改变编码风格,从而提高性能。一、Android系统是如何处理UI组件的更新操作的  既然和布局相关,那么我们需要了解Android系统是如何处理UI组件的更新操作的。  1、Android需要把XML布局文件转换成GPU能够识别并绘制的对象。这个操作是在DisplayList的帮助下完成...

2018-05-12 15:07:46 180

转载 进程与线程的生命周期

https://blog.csdn.net/amosilin/article/details/51077930关于进程、线程生命周期的总结、进程的三种基本状态在另外一些系统中,还有一种状态为挂起状态,这里暂且不提。实际系统中,为了管理的需要,还存在着另外两种状态:创建状态和终止状态。进程的五种基本状态创建状态:系统已为其分配了PCB,但进程所需资源尚未分配,进程还未进入主存,即创建工作尚未完成,进...

2018-05-12 14:46:50 5493

转载 Java可重入锁

重入锁(1)重进入:1.定义:重进入是指任意线程在获取到锁之后,再次获取该锁而不会被该锁所阻塞。关联一个线程持有者+计数器,重入意味着锁操作的颗粒度为“线程”。2.需要解决两个问题:线程再次获取锁:锁需要识别获取锁的现场是否为当前占据锁的线程,如果是,则再次成功获取;锁的最终释放:线程重复n次获取锁,随后在第n次释放该锁后,其他线程能够获取该锁。要求对锁对于获取进行次数的自增,计数器对当前锁被重复...

2018-05-12 14:03:40 133

gradle5.1和配置路径.rar

在新安装AndroidStudio时gradle下载会很慢,所以提供离线包,在Androidstudio的配置文件中进行配置,方便大家下载

2019-06-22

mysql 5.7 下载

mysql 5.7安装文件,大家自行下载。自己一直用这个版本的mysql,十分稳定。适用于Windows系统

2018-11-03

空空如也

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

TA关注的人

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