- 博客(46)
- 收藏
- 关注
原创 Java并发之 volatile关键字解析
volatile 是Java 语言提供的一种稍弱的同步机制.用来确保将变量的更新操作通知到其他线程,保证了新值能立即同步到主内存,以及每次使用前立即从主内存刷新. 当把变量声明为volatile类型后,编译器与运行时都会注意到这个变量是共享的.
2016-07-10 11:18:43 1413
原创 Java 堆和栈详解 -最新整理
在函数中定义的一些基本类型的变量和对象的引用变量都在函数的栈内存中分配。 当在一段代码块定义一个变量时,Java就在栈中为这个变量分配内存空间,当超过变量的作用域后,Java会自动释放掉为该变量所分配的内存空间,该内存空间可以立即被另作他用。 堆内存用来存放由new创建的对象和数组。在堆中分配的内存,由Java虚拟机的自动垃圾回收器来管理。 在堆中产生了一个数组或对象后,还可以在栈中定义一个特殊的变量,让栈中这个变量的取值等于数组或对象在堆内存中的首地址,栈中的这个变量就成了数组或对象的
2016-06-30 10:02:17 1696 4
转载 HTTP协议详解(很经典)
引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generatio
2016-04-28 13:46:32 600
转载 JavaEE中的Cookie与Session
本文分别对Cookie与Session做一个介绍和总结,并分别对两个知识点进行对比分析,让大家对Cookie和Session有一个更深入的了解,并对自己的开发工作中灵活运用带来启示。一、Cookie机制 Cookies是服务器在本地机器上存储的小段文本并随每一个请求发送至同一个服务器。IETF RFC 2965 HTTP State Management Mec
2016-04-28 13:43:11 970
原创 开发编程类技术书推荐
这个列表包括了 100 多本经典技术书籍,涵盖:计算机系统与网络、系统架构、算法与数据结构、前端开发、后端开发、移动开发、数据库、测试、项目与团队、程序员职业修炼、求职面试 和 编程相关的经典书籍。这篇文章主要是分类别推荐了该类别所属的经典书籍列表。每个类别下,从书名就可以看出来,是区分了方向。即使是同一个方向,也侧重点不同。即使侧重点相同,作者讲解的思路也是不同的。请选择自己关注的方向...
2018-08-30 17:27:46 535 2
转载 @RequestBody, @ResponseBody 注解详解
引言:接上一篇文章讲述处理@RequestMapping的方法参数绑定之后,详细介绍下@RequestBody、@ResponseBody的具体用法和使用时机;同时对曾经看的一篇文章中讲述的某些部分进行澄清 (文章地址:http://www.byywee.com/page/M0/S702/702424.html)。简介:@RequestBody作用:
2017-09-14 16:52:06 363
转载 幂等性理解和解决方案
Programming.log - a place to keep my thoughts on programming理解HTTP幂等性基于HTTP协议的Web API是时下最为流行的一种分布式服务提供方式。无论是在大型互联网应用还是企业级架构中,我们都见到了越来越多的SOA或RESTful的Web API。为什么Web API如此流行呢?我认为很大程度上应归功于
2017-09-11 21:55:54 3333
转载 mysql联合索引
mysql联合索引,命名规则:表名_字段名。使用条件:1、需要加索引的字段,要在where条件中2、数据量少的字段不需要加索引3、如果where条件中是OR关系,加索引不起作用4、符合最左原则
2017-08-21 21:37:17 665
转载 关于Git中.gitignore文件失效问题
查看发现这些文件并没有被忽略掉。查了资料发现,想要.gitignore起作用,必须要在这些文件不在暂存区中才可以,.gitignore文件只是忽略没有被staged(cached)文件,对于已经被staged文件,加入ignore文件时一定要先从staged移除,才可以忽略。
2017-07-14 10:24:50 537
转载 JAVA - ZIP压缩与解压文件
程序实现了ZIP压缩。共分为2部分 : 压缩(compression)与解压(decompression)直接上Demo, 有易于理解和上手,如下:
2017-07-12 20:41:02 462
转载 JSch - Java实现SFTP服务器上传
JSch是Java Secure Channel的缩写。JSch是一个SSH2的纯Java实现。它允许你连接到一个SSH服务器,并且可以使用端口转发,X11转发,文件传输等,当然你也可以集成它的功能到你自己的应用程序。 本文只介绍如何使用JSch实现的SFTP功能
2017-07-12 20:14:42 743
转载 图片压缩之-JPEGCodec失效替换方案
近期,由于项目需要,需要对图片进行压缩处理,一开始用的是JPEGCodec,但是运行在JDK8以上版本中会找不到该类而报错,故上网搜索了下资料,找出了高版本JDK中的替代方案ImageIO, 整理如下:
2017-07-12 16:24:24 15621 4
翻译 Google公共电话号码解析库: libphonenumber
libphonenumber是用于解析、格式化、存储和校验电话号码的Java、C++或JavaScript类库。2010年,libphonenumber的Java实现首次以开源形式发布。在2014年,libphonenumber成为Debian发行版的一部分。
2017-06-19 11:52:12 11174
转载 MYSQL AUTO_INCREMENT自增的用法
alter table tbname auto_increment = x ;设置表tbname的唯一auto_increment字段起始值从x开始,如果此表数据量很多的话,这样执行起来会很慢.auto_increment_offset表示自增长字段从那个数开始,他的取值范围是1 .. 65535auto_increment_increment表示自增长字段每次递增的量,其默认值是1,取值范围是1 .. 65535
2017-06-01 18:08:06 166877
转载 密码加盐&安全的账号系统
md5 这种不可逆的加密方法理论上已经很安全了,但是随着彩虹表的出现,使得大量长度不够的密码可以直接从彩虹表里反推出来。所以,只对密码进行 md5 加密是肯定不够的。聪明的程序员想出了个办法,即使用户的密码很短,只要我在他的短密码后面加上一段很长的字符,再计算 md5 ,那反推出原始密码就变得非常困难了。加上的这段长字符,我们称为盐(Salt),通过这种方式加密的结果,我们称为 加盐 Hash 。
2017-05-22 18:37:56 980
转载 非常好用的正则表达式"\\s+"
非常好用的正则表达式"\\s+" - 匹配任意空白字符详解 "\\s+"正则表达式中\s匹配任何空白字符,包括空格、制表符、换页符等等, 等价于[ \f\n\r\t\v]\f -> 匹配一个换页\n -> 匹配一个换行符\r -> 匹配一个回车符\t -> 匹配一个制表符\v -> 匹配一个垂直制表符而“\s+”则表示匹配任意多个
2017-05-22 16:29:43 56919 3
转载 Fetch请求 vs XMLHttpRequest
最近把阿里一个千万级 PV 的数据产品全部由 jQuery 的 $.ajax 迁移到 Fetch,上线一个多月以来运行非常稳定。结果证明,对于 IE8+ 以上浏览器,在生产环境使用 Fetch 是可行的。由于 Fetch API 是基于 Promise 设计,有必要先学习一下 Promise,推荐阅读 MDN Promise 教程。旧浏览器不支持 Promise,需要使用 polyfill es6-promise 。Why FetchXMLHttpRequest 是一个设计粗糙的 API,不符合关
2017-05-17 22:08:58 1828
转载 js URL编解码的应用说明
encodeURIComponent方法对所有的字符编码,请注意,如果该字符串代表一个路径,例如/folder1/folder2/default.html,其中的斜杠也将被编码。这样一来,当该编码结果被作为请求发送到 web 服务器时将是无效的。如果字符串中包含不止一个 URI 组件,请使用encodeURI方法进行编码。
2017-05-17 17:53:54 278
转载 Maven进价:Maven的生命周期阶段
Maven有三套相互独立的生命周期,分别是clean、default和site。每个生命周期包含一些阶段(phase),阶段是有顺序的,后面的阶段依赖于前面的阶段。
2017-05-17 16:05:14 742
转载 24时区,GMT,UTC,DST,CST时间详解 ISO8601
UTC和GMT时间:UTC是我们现在用得时间标准,GMT是老的时间计量标准。UTC是根据原子钟来计算时间,二GMT是根据地球的自转和公转来计算时间,也就是太阳每天经过英国伦敦郊区的皇家格林威治天文台的时间就是中午12点。
2017-04-12 18:38:15 10854
原创 MySQL 之.zip压缩包安装
MySQL是一个小巧玲珑但功能强大的数据库,目前十分流行。但是官网给出的安装包有两种格式,一个是msi格式,一个是zip格式的。很多人下了zip格式的解压发现没有setup.exe,面对一堆文件一头雾水,不知如何安装。下面笔者将介绍如何解决此情况下安装过程中的各种问题
2017-01-22 16:27:50 705
转载 小程序粉墨登场 --奉上开发教程及书籍合集
文本教程链接:http://pan.baidu.com/s/1qYk0Ubq 密码:078s视频教程链接:http://pan.baidu.com/s/1pLS2q63 密码:ehp9Demo代码链接:http://pan.baidu.com/s/1pLHDaNT 密码:0xjx基础课程链接:http://pan.baidu.com/s/1slwAnpz 密码:3z3r官方工具包链接:http://pan.baidu.com/s/1slaV6oP 密码:trn5其他(UI,插件等)链接:http:
2017-01-10 21:19:10 3478
转载 ANDROID WEBVIEW和JAVASCRIPT交互_JS调用ANDROID方法
ANDROID WEBVIEW和JAVASCRIPT交互_JS调用ANDROID方法
2016-12-20 12:40:48 314
转载 技术的正宗与野路子--论技术资料的重要性
每当我们接触一项新的技术的时候,我们都要把手头的资料按照类似的这样一个金字塔结构进行分类。如果我们阅读了一些技术博客和技术书籍,那么也要清楚地知道它们涉及到的是金字塔中的哪些部分。 最开始,一般读完Tutorial之后,就基本能上手做一些开发工作了。然后一边开发,一边查阅API Reference。注意,从这时候起,你的老板就开始向你付工资了,因为你的工作已经能够产出成果了。 但是,工作一段时间之后,我们发现,似乎身边的技术牛人学东西都比较快,而且在很短的时间内就能对某项新技术达到很深的理解。这
2016-10-25 14:12:43 358
转载 HashSet实现原理-源码调试
HashSet是基于HashMap的,进入HashMap类的put方法,后面具体实现就是HashMap。在这个特殊的hashMap中,使用hasSet的每个值作为key,所有key对应同一个Object对象作为value,所以可以说,HashSet是HashMap的一种特殊形式。
2016-08-26 12:17:06 356
转载 ConcurrentHashMap实现原理-源码调试
ConcurrentHashMap线程安全的总结是我从源码分析出来的:ConcurrentHashMap所谓线程安全是如果没有哈希冲突使用compareAndSwapObject方式新增节点,如果哈希冲突的时候锁住哈希冲突的节点,这样新增的节点是线程安全的,而 ConcurrentHashMap又不像hashtable那样整个put方法被锁定,所以性能比hashtable要好,因为这样不影响其他节点的插入和读取。
2016-08-26 11:28:35 982
转载 HashMap的工作原理jdk1.8-源码调试
jdk1.8版本对HashMap改动很大,jdk1.7之前的版本,HashMap采用的是链表+位桶的方式,也就是我们经常说的散列表的方式,但是在jdk1.8版本中,HashMap采用的是位桶+链表/红黑树的方式,也是非线程安全的。当某个位桶的链表的长度到达某个阈值的时候,这个链表就转化为红黑树。
2016-08-26 11:05:31 1605
转载 HashMap的工作原理JDK1.6
HashMap基于hashing原理,我们通过put()和get()方法储存和获取对象。当我们将键值对传递给put()方法时,它调用键对象的hashCode()方法来计算hashcode,让后找到bucket位置来储存值对象。当获取对象时,通过键对象的equals()方法找到正确的键值对,然后返回值对象。HashMap使用链表(拉链法)来解决hashCode碰撞问题,当发生碰撞了,对象将会储存在链表的下一个节点中。 HashMap在每个链表节点中储存键值对对象。如果两个不同的键对象的hashCode相同,那
2016-08-26 10:52:47 375
转载 Mysql 性能分析命令explain详解
Explain命令在解决数据库性能上是第一推荐使用命令,大部分的性能问题可以通过此命令来简单的解决,Explain可以用来查看 SQL 语句的执行效 果,可以帮助选择更好的索引和优化查询语句,写出更好的优化语句。 Explain语法:explain select … from … [where ...]
2016-08-09 14:19:38 444
转载 WebSocket 详解
WebSocket通过第一个 HTTP request 建立了 TCP 连接之后,之后的交换数据都不需要再发 HTTP request了,使得这个长连接变成了一个真.长连接。但是不需要发送 HTTP header就能交换数据显然和原有的 HTTP 协议是有区别的,所以它需要对服务器和客户端都进行升级才能实现。在此基础上 WebSocket 还是一个双通道的连接,在同一个 TCP 连接上既可以发也可以收信息。此外还有 multiplexing 功能,几个不同的 URI 可以复用同一个 WebSocket 连接
2016-08-03 18:04:10 374
转载 Java 线程池的使用详解
线程池的使用详解采用线程池的好处 在这里我们首先来说一下采用线程池的好处。 1. 重用线程池中已经存在的线程,减少了线程的创建和消亡多造成的性能开销。 2. 能够有效控制最大的并发线程数,提高了系统资源的使用率,并且还能够避免大量线程之间因为相互抢占系统资源而导致阻塞。 3. 能够对线程进行简单管理,并提供定时执行、定期执行、单线程、并发数控制等功能。
2016-06-30 17:10:10 436
转载 java获取当前类的绝对路径
在jsp和class文件中调用的相对路径不同。在jsp里,根目录是WebRoot 在class文件中,根目录是WebRoot/WEB-INF/classes 当然你也可以用System.getProperty("user.dir")获取你工程的绝对路径。另:在Jsp,Servlet,Java中详细获得路径的方法!1.jsp中取得路径:以工程名为TEST为例:(1)得到包含工
2016-05-18 15:07:11 2167
转载 Java实现图片添加水印
[代码] [Java]代码 package com.founder.cms.watermark.util; import java.awt.AlphaComposite;import java.awt.Color;import java.awt.Font;import java.awt.Graphics2D;import java.awt.Image;import java.
2016-05-18 14:55:39 456
转载 物理层、连接层、网络层、传输层、应用层概述
这篇文章主要介绍了网络协议概述:物理层、连接层、网络层、传输层、应用层详解,本文用生活中的邮差与邮局来帮助理解复杂的网络协议,通俗易懂,文风幽默,是少见的好文章,需要的朋友可以参考下信号的传输总要符合一定的协议(protocol)。比如说长城上放狼烟,是因为人们已经预先设定好狼烟这个物理信号代表了“敌人入侵”这一抽象信号。这样一个“狼烟=敌人入侵”就是一个简单的协议。协议可以更复杂,比
2016-04-28 13:51:03 2502
转载 OSI七层与TCP/IP五层网络架构详解
OSI七层与TCP/IP五层网络架构详解 OSI和TCP/IP是很基础但又非常重要的网络基础知识,理解得透彻对运维工程师来说非常有帮助。今天偶又复习了一下: (1)OSI七层模型 OSI中的层 功能 TCP/IP协议族应用层 文件传输,电子邮件,文件服务,虚拟终端 TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet表
2016-04-28 13:48:52 619
转载 计算机科学精彩帖子收集
转载自:http://blog.csdn.net/unix21/article/details/8492617linux源码LXR 源自“the Linux Cross Referencer”,中间的“X”形象地代表了“Cross”。与 Source Navigator 类似,它也是分析阅读源代码的好工具。不同的是,它将源代码借助浏览器展示出来,文件间的跳转过程成了我熟
2016-04-26 22:26:17 6626
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人