自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

在黑暗中寻找光明

个人博客 https://lei-zz.github.io/

  • 博客(53)
  • 资源 (2)
  • 收藏
  • 关注

原创 预览input上传的图片

通过input来上传图片并将图片显示出来 注意:终极解决方案在最后面<input id="imgPicker" type="file" /><img id="preview" />方法一监听input标签的change事件,用来观察用户是否选中了图片document .querySelector('#imgPicker') .addEventListener('change',

2017-10-19 17:25:57 302

原创 Comparable和Comparator区别

一、Comparable首先来看一下Comparable的定义:package java.lang;import java.util.*;public interface Comparable<T> { public int compareTo(T o);}Comparable是排序接口。若一个类实现了Comparable接口,就意味着该类支持排序。实现了Comparable接口的类的

2017-05-09 18:31:52 332

转载 集合框架

数据结构是以某种形式将数据组织在一起的集合,它不仅存储数据,还支持访问和处理数据的操作。Java提供了几个能有效地组织和操作数据的数据结构,这些数据结构通常称为Java集合框架。在平常的学习开发中,灵活熟练地使用这些集合框架,可以很明显地提高我们的开发效率,当然仅仅会用还是不够的,理解其中的设计思想与原理才能更好地提高我们的开发水平。下面是自己对Java集合框架方面的学习总结。

2017-05-07 22:07:10 2692

转载 记一次synchronized锁字符串引发的坑兼再谈Java字符串

问题描述业务有一个需求,我把问题描述一下:通过代理IP访问国外某网站N,每个IP对应一个固定的网站N的COOKIE,COOKIE有失效时间。并发下,取IP是有一定策略的,取到IP之后拿IP对应的COOKIE,发现COOKIE超过失效时间,则调用脚本访问网站N获取一次数据。为了防止多线程取到同一个IP,同时发现该IP对应的COOKIE失效,同时去调用脚本更新COOKIE,针对IP加了锁。为了保证锁的全

2017-04-18 13:04:42 471

原创 (一)Linux入门

写在前面在linux中,最最重要的就是命令,这就包含了2个过程,输入和输出输入输入当然就是打开终端,然后按键盘输入,然后按回车,输入格式一般就是这类的#创建一个名为 file 的文件,touch是一个命令touch file #进入一个目录,cd是一个命令cd /etc/#查看当前所在目录pwd输出输出会返回你想要的结果,比如你要看什么文件,就会返回文件的内容。如果只是执行...

2018-12-21 11:13:35 186

转载 Java 8中处理日期和时间示例

在Java 8以前,日期和时间处理一直被广大java程序员抱怨太难用,首先是java.util和java.sql中,都包含Date类,如果要进行时间格式化,还需要java.text.DateFormat类处理。同时java.util.Date中既包含了日期,又包含了时间,所以java8新的日期和时间库,很好的解决了以前日期和时间类的很多弊端。并且也借鉴了第三方日期库joda很多的优点。在java...

2018-12-20 19:26:51 304

转载 Java8 日期/时间(Date Time)API

为什么我们需要新的Java日期/时间API?在开始研究Java 8日期/时间API之前,让我们先来看一下为什么我们需要这样一个新的API。在Java中,现有的与日期和时间相关的类存在诸多问题,其中有:1、Java的日期/时间类的定义并不一致,在java.util和java.sql的包中都有日期类,此外用于格式化和解析的类在java.text包中定义。2、java.util.Date同时包含日...

2018-12-20 19:18:14 251

转载 增强for循环(for each)的实现原理

在JAVA中,遍历集合和数组一般有以下三种形式:for (int i = 0; i &lt; list.size(); i++) { System.out.print(list.get(i) + ",");}Iterator iterator = list.iterator();while (iterator.hasNext()) { System.out.print(i...

2018-10-23 14:01:51 1147 1

转载 Java中的fail-fast机制

遍历删除List中的元素有很多种方法,当运用不当的时候就会产生问题。下面主要看看以下几种遍历删除List中元素的形式:1.通过增强的for循环删除符合条件的多个元素2.通过增强的for循环删除符合条件的一个元素3.通过普通的for删除删除符合条件的多个元素4.通过Iterator进行遍历删除符合条件的多个元素/** * 使用增强的for循环 * 在循环过程中从List中删除非...

2018-10-23 11:33:52 198

转载 equals()和hashcode()

所有Java类的父类——java.lang.Object中定义了两个重要的方法:public boolean equals(Object obj)public int hashCode()一个常犯的错误import java.util.HashMap;public class Apple { private String color; public Apple(St...

2018-10-22 15:42:18 84

原创 LeetCode 6. ZigZag Conversion

Problem:The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows like this: (you may want to display this pattern in a fixed font for better legibility)P A H N...

2018-04-08 17:09:24 125

原创 LeetCode 5. Longest Palindromic Substring

这个算法,答案请看 经典算法(一)之回文接下来,我将里面的答案解释一下。Problem:Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s is 1000.Example:Input: "babad"Output: "ba...

2018-04-03 17:39:01 184

原创 LeetCode 4. Median of Two Sorted Arrays(详解)

Problem:There are two sorted arrays nums1 and nums2 of size m and n respectively.Find the median of the two sorted arrays. The overall run time complexity should be O(log (m+n)).Example 1:nu...

2018-04-03 15:26:06 203

原创 LeetCode 3. Longest Substring Without Repeating Characters

Problem:Given a string, find the length of the longest substring without repeating characters.Examples:Given “abcabcbb”, the answer is “abc”, which the length is 3.Given “bbbbb”, the answer is...

2018-03-30 18:06:26 135

原创 LeetCode(2):Add Two Numbers

Problem:You are given two non-empty linked lists representing two non-negative integers. The digitsare stored in reverse order and each of their nodes contain a single digit. Add the twonumbers ...

2018-03-29 15:06:16 157

原创 LeetCode(1):Two Sum

Problem: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 one solution, and you may not u...

2018-03-29 15:00:07 132

原创 计算数字k在0到n中的出现的次数,k可能是0~9的一个值

思路一:我们可以用最简单的办法先尝试一下,遍历1到n中间的每个整数,对每个整数从低位到高位依次检查,如果有k出现则计数器自加。 思路一最大的问题就是效率,当n非常大时,就需要很长的运行时间。想要提高效率,就要避开暴力法,从数字中找出规律。 思路二:来自《编程之美》 假设有一个5位数N=ABCDE,我们现在来考虑百位上出现2的次数,即:从0到ABCDE的数中,有多少个数的百位上是2。分析完它,...

2018-03-26 18:20:27 1755 1

转载 给出两个整数a和b, 求他们的和, 但不能使用 + 等数学运算符

思路: 考虑一个普通的加法计算:5+17=22在十进制加法中可以分为如下3步进行: 1. 忽略进位,只做对应各位数字相加,得到12(个位上5+7=12,忽略进位,结果2); 2. 记录进位,上一步计算中只有个位数字相加有进位1,进位值为10; 3. 按照第1步中的方法将进位值与第1步结果相加,得到最终结果22。下面考虑二进制数的情况(5=101,17=100...

2018-03-26 15:49:06 419

转载 80个网站提升自我

转载自人民日报!

2018-03-22 10:48:13 349

转载 设计模式

以下是学习过程中查询的资料,别人总结的资料,比较容易理解(站在各位巨人的肩膀上,望博主勿究)创建型 抽象工厂模式 http://www.cnblogs.com/java-my-life/archive/2012/03/28/2418836.html 工厂方法 http://www.cnblogs.com/java-my-life/archive/2012/03/25/2416227.htm...

2018-03-22 09:49:01 107

转载 java实现栈-输出最大值,最小值,时间复杂度O(1)

问题:定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的getMin函数。在该栈中,调用getMin、push及pop的时间复杂度都是O(1).最小值思路:用一个辅助栈stack2记住每次入栈stack1的当前最小值:在stack1入栈时,往stack2中加入当前最小值;stack1元素出栈时,stack2也出栈一个元素。最小值从stack2中获取及栈顶元素。O(1)最大值思路:...

2018-03-15 17:31:41 2579 1

原创 Spring的核心机制

Spring目的让对象与对象(模块与模块)之间的关系没有通过代码来关联,都是通过配置类说明管理的(Spring根据这些配置 内部通过反射去动态的组装对象) *.Spring是一个容器,凡是在容器里的对象才会有Spring所提供的这些服务和功能。Spring工作原理Spring框架的核心组件是Spring IoC容器(BeanFacory接口或者ApplicationCon...

2018-03-15 16:12:02 5228

转载 Java虚拟机是如何执行线程同步的

原文地址:How the Java virtual machine performs thread synchronization了解Java语言的人都知道,Java代码要想被JVM执行,需要被转换成由字节码组成的class文件。本文主要来分析下Java虚拟机是如何在字节码层面上执行线程同步的。线程和共享数据Java编程语言的优点之一是它在语言层面上对多线程的支持。这种支持大部分集中在...

2018-03-15 11:48:46 205

转载 TCP三次握手和四次挥手

TCP/IPTCP/IP协议是分层的,从底层至应用层分别为:物理层,链路层,网络层,传输层和应用层 从应用层至物理层,数据是一层层封装,封装的方式一般都是在原有的数据的前面加一个数据控制头,数据封装格式如下:对于TCP传输协议,客户端在与服务器建立连接前需要经过三次握手,过程如下:SYN是请求同步的意思,synchronize(同步)的缩写ACK是确认同步的意思,ac...

2018-03-13 21:52:06 117

原创 算法题:在N个乱序的数组中找第K大的数

在N个乱序的数组中找第K大的数思路: 类似于快速排序,执行一次快速排序之后,每次只选择一部分继续执行快速排序,直到找到第K大个元素为止,这个元素在数组位置后面的元素即为所求。时间复杂度:O(n)利用快排的思想,从数组arr中随机找出一个元素X,把数组分成两部分arr_a和arr_b。arr_a中的元素比x大,arr_b中的元素比x小。这个时候分为两种情况:1.arr_a中...

2018-03-12 18:38:01 3323 1

原创 数据结构中的十大排序算法

一、冒泡排序思想:重复走访过要排序的序列,一次比较两个元素,如果他们的顺序错误就将他们进行交换,一次冒上来的是最小的,其次是第二小。时间复杂度:O(n^2)空间复杂度:O(1)稳定性:稳定   /** * 冒泡排序 * @param disOrderArray * @return */ public static int[] Bu...

2018-03-06 21:19:26 409

原创 Git常用命令

1.mkdir test 2.git init 3.使用命令 git add readme.txt添加到暂存区 4.用命令 git commit告诉Git,把文件提交到仓库 git commit -m “描述” 5.git status来查看是否还有文件未提交 6.git diff readme.txt 文件到底改了什么内容 7.查看下历史记录 git log 8.上面显示的信息...

2018-02-27 15:10:06 99

原创 算法时间复杂度和空间复杂度

时间复杂度:(1)时间频度 一个算法中的语句执行次数称为语句频度或时间频度。记为T(n)。 n称为问题的规模,当n不断变化时,时间频度T(n)也会不断变化。(2)时间复杂度 一般情况下,算法中基本操作重复执行的次数是问题规模n的某个函数,用T(n)表示,若有某个辅助函数f(n),使得当n趋近于无穷大时,T(n)/f(n)的极限值为不等于零的常数,则称f(n)是T(...

2018-02-27 11:22:02 314

转载 JSONObject put,accumulate,element的区别

public Object put (Object key, Object value) 将value映射到key下。如果此JSONObject对象之前存在一个value在这个key下,当前的value会替换掉之前的value Associates the specified value with the specified key in this map(optional oper

2018-01-29 11:48:12 137

原创 Groovy 入门教程

Groovy 入门

2017-10-17 11:13:30 556

原创 spring boot 遇到的坑

使用Jsp作为模板来显示,遇到了jsp无法正常显示,请求返回404,页面显示Whitelabel Error Page。

2017-10-16 15:58:58 293

原创 Git入门到高级学习路线

Git入门到高级学习路线

2017-10-12 16:36:13 218

原创 JS转换HTML转义符

去掉html标签 function removeHtmlTab(tab) { return tab.replace(/<[^<>]+?>/g,'');//删除所有HTML标签}普通字符转换成转意符 function html2Escape(sHtml) { return sHtml.replace(/[<>&"]/g,function(c){return {'<':'<','>':

2017-10-10 10:50:01 208

原创 查询百万级条数据

1.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。2.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。3.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描

2017-07-24 08:40:33 1408

原创 Thread和Runnable的区别

进程和线程的区别:  进程:每个进程都有独立的代码和数据空间(进程上下文),进程间的切换会有较大的开销,一个进程包含1–n个线程。  线程:同一类线程共享代码和数据空间,每个线程有独立的运行栈和程序计数器(PC),线程切换开销小。  线程和进程一样分为五个阶段:创建、就绪、运行、阻塞、终止。  多进程是指操作系统能同时运行多个任务(程序)。  多线程是指在同一程序中有多个顺序流在执行。在java中要

2017-07-16 21:45:42 494

原创 设计模式-单例模式

什么是单例?单例对象的类必须保证只有一个实例存在。对单例的实现可以分为两大类——懒汉式和饿汉式,他们的区别在于: 懒汉式:指全局的单例实例在第一次被使用时构建。 饿汉式:指全局的单例实例在类装载时构建。懒汉式单例懒汉式:指全局的单例实例在第一次被使用时构建。

2017-07-11 15:24:28 200

原创 类的加载和初始化

类什么时候加载类的加载是通过类加载器(Classloader)完成的,它既可以是饿汉式[eagerly load](只要有其它类引用了它就加载)加载类,也可以是懒加载[lazy load](等到类初始化发生的时候才加载)。

2017-07-11 09:21:42 454

原创 HTTP 报文

HTTP报文是面向文本的,报文中的每一个字段都是一些ASCII码串,各个字段的长度是不确定的,HTTP有两类报文:请求报文和响应报文.

2017-07-10 18:26:35 206

原创 JVM(一)— 什么是JVM

Java程序运行机制计算机高级语言按程序的执行方式分为编译型和解释型两种。

2017-07-06 21:16:48 270

原创 (二)二叉树

1.什么是树树是由根结点和若干颗子树构成的。树是由一个集合以及在该集合上定义的一种关系构成的。集合中的元素称为树的结点,所定义的关系称为父子关系。父子关系在树的结点之间建立了一个层次结构。在这种层次结构中有一个结点具有特殊的地位,这个结点称为该树的根结点,或称为树根。

2017-06-28 22:56:52 173

activate-power-mode_v0.1.8.jar

activate-power-mode 写代码的时候体验狂拽酷炫的效果

2018-03-19

operamasks-ui-2.0-demo.zip

operamasks-ui-2.0-demo

2017-08-21

空空如也

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

TA关注的人

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